【划水|魔方分析】魔方速拧方法开发刍议

本文可以视为《方法的开发——对Jessica Fridrich与Gilles Roux的采访》的补充说明。主要是结合自己的经验来分析他们的方法模式。亦是对某实名上网论坛中“魔方的解法是怎么被研究出来的?”问题的回应。


魔方方法的开发,至少是速拧方法的开发,并不是一个一目了然的问题。它绝不是某些人认为的那样,能通过得到公式化、科学化的完美的解,用群论、用转换机、用循环球面网就可以实现降维打击;也不是像某些人认为的那样,是实践经验的简单综合,是只有拧得快的玩家才能拥有的特权游戏。相反,它从来都是一种权衡,一种步数与顺手程度的权衡、公式量与观察能力的权衡、自由化块构与公式化互换的权衡、元理论与实践经验的权衡、科学性长期积累与艺术性灵光一现的权衡。或许可以把速拧方法的开发看成是对一个复杂的工程管理问题的解决——它与深层次的数学理论和速拧的具体实践在方法论层次上并不具有必然的联系,尽管两者都是速拧方法开发不可或缺的基础。
一、方法开发者的自我修养
或许我们永远无法知道成为一个优秀的速拧方法开发者需要什么,但是,通过长期方法开发的经验积累,结合对这些优秀方法开发者的访谈,我们大概可以勾勒出一个合格的方法开发者应该具备哪些素质:
1、理论基础与速拧实践基础。
首先,理论与速拧实践基础决定方法开发的下限。就理论来说,一些对魔方还原的根本性技术,像转换机、降群,是必须了解的。而降群衍生出的EO、CP等技术也基本是每一位速拧理论玩家的必修课程。就实践而言,事实上很多速拧理论玩家还原魔方并不是非常地快,但是他们可能掌握一些不太一般的技术以获得一些非常规的想法。当代许多优秀的方法开发这更倾向于使用Roux/ZZ/Petrus等方法作为自己的速拧主力解法,这可能是因为常规的CFOP的块构思路容易限制思维。但正如已经说过的那样,深层次的数学理论和速拧的具体实践与魔方方法开发在方法论层次上并不具有必然的联系,掌握它们只是意味着我们有能力去理解与应用速拧方法,而对于真正已经独立成为一种思维模式的方法开发的过程一无所知。
2、信息搜集能力与计算机技术。
其次,信息搜集能力与计算机技术影响方法的完成质量。一个好方法的诞生需要广泛的论证,对于相关信息的搜集能力因此尤为重要。像如果想要优化桥式的CMLL,那么我们不可能不去了解TCLL、SCOR、CMLL-EO等等的技术。当然国内的信息相对分散,有时候我们甚至需要通过逐页去翻mf8才能够详细地了解一项技术。对于计算机技术的掌握也是方法开发的重要一环。像Cube Explorer是公式制作必须掌握的工具。而对于一些Cube Explorer无法解决的情况,比如公式筛选、M流公式开发等,手动的编程也常常是必要的。
3、饱满的热情与负责任的心态。
再者,饱满的热情、负责任的心态有助于提高方法开发的成功率。开发方法是一件需要坐冷板凳的事情,也是一件需要投入大量精力的事情。一个变革性技巧发现到一个成熟方法的诞生有时需要一年甚至更多的时间,在这个过程中需要投入的热情与时间是难以计量的。更可怕的是这种付出往往会遭到现实的背刺,比如我们辛辛苦苦投入研究的CP技术在大多数情况下并不会给我们回报。尽管这种误入歧途难以避免,但我们依然始终应该坚持,一个合格的方法开发者依然应该对自己负责、对别人负责,而不是让一个在名字上就以挖苦桥式为乐实质上与B2法无异的鸡肋方法永远留在速拧方法的历史上[1]。
4、模型泛化能力与批判性思维。
最后,模型泛化能力与批判性思维决定方法开发的上限。模型泛化能力是对于速拧方法模型的抽象能力,它开始于把一个方法的技巧嫁接到另一个方法的能力,通过选择自己的方法开发取向,最终会发展为一套独具一格的速拧理论思想体系。像长期研究Petrus类方法的Athefre不仅开发出了他认为理论上最优的APB法,也系统地总结了EO+RB体系,并融入了他的方法地图中[2]。批判性思维一是要求我们要对魔方方法的历史持有一种批判的态度,深刻地认识到“方法不是方法史”,毕竟速拧wiki上80%的方法都是缺少洞见或者缺乏深挖的产品。二是要求我们应该坚持一种批判性的方法开发思路,毕竟魔方一共就6个外层、3个中层,我们可以开发方法的总范围是有限的,我们必然在别人的影子下开发我们自己的方法,我们要把自己的方法建立在对别人方法的优化而不是挖苦上[1]。
二、迈向成功的方法开发
自我修养与开发实践很有可能是同时进行的。然而,一个合格甚至成功的方法开发总是在达成一定自我修养之后才有可能涌现。在这个阶段,开发者绝对不会陷入什么重复开发RouxFOP的游戏——这基本是个玩家就会想到的无聊操作。方法开发有两步:方法构思和系统性开发。
对于第一步,方法构思,不同的方法类型在开发方式与开发效果上存在显著的不同,我们可以简单地区分出以下的三种类型:
1、集大成型。这种类型的方法构思是理论储备要求最高的,所花费的时间是最长的。具体构思过程需要遍历大量的方法,然后在众多平行的技巧中选择出最优秀的那几个进行组合。显而易见,这种方法的开发依赖长期的积累。代表性方法有CFOP、APB等。CFOP是层先法体系的集大成者;APB法是EO+RB体系的集大成者。
2、技巧驱动型。这种类型的方法构思是原创性最高的,所需要花费的时间也是最少的。具体构思过程是通过一个很小但却具有根本性变革潜力的新技巧的发现,驱动一个高度原创性方法的诞生。简单来说,就是为一碗好醋包一碟饺子。代表性方法有Roux、ZZ等。Roux法便是通过M流的新技巧创造的;而ZZ法则是EO技巧与速拧方法的首次结合。
3、缝合过渡型。这种类型的方法构思是原创性最低的,对理论储备的要求也是最低的。具体构思过程是将两种不用体系的方法进行缝合形成一个过渡方法,在结合它们优点的同时规避它们的缺点。通常这种方法都不会很出名,但它们依然能够提供某些有趣的洞见。代表性方法有WaterRoux、ZZ-4c等。WaterRoux法是结合了Waterman法与Roux法;而ZZ-4c法则是结合了ZZ法与Roux法。
对于第二步,系统开发,是在方法初具雏形的情况下对方法的进一步完善,由以下的工作组成:
1、技术细节完善。完善每一个子步骤的技术细节,对子步骤的具体操作进行标准化。这一步常常因为观察、公式量等原因导致失败。如果没能成功完善技术细节,将会导致整个方法的开发失败。
2、公式开发。与这一步首先需要充分使用计算机技术进行公式开发,通过平衡步数与顺手程度筛选出最优秀的公式。
3、实例化。这一步与实际的速拧还有一定的距离,但一般情况下通过慢拧的方式模拟真实情况下观察与转动的序列。实例化有时候会在所有公式整理完之前就进行。
4、系统评估。针对实例化之后展现的真实效果,对方法预估效率重新进行较为精确的计算,对方法的真实效果进行验收。一般来说,系统评估是验证方法理论上可行性的最后一步。
5、重复。如果发现方法还有改进空间,重复以上工作,直到方法基本完善。
三、科学社会学与方法神话
本来想这样就结束了方法的介绍,但猛然发现,迄今为止我们谈的都是“方法”的开发,而不是“牛x的方法”的开发。这里我们确实应该更进一步,谈谈是什么使得大多数玩家眼中一个精彩的方法能够成为一个神话,而又是什么让大多数总是对“什么是好方法”这个问题存在或多或少的误区。
在开始解释之前,我尝试用五个词来形容这两年来被提出的所谓的“五大解法”的特征。
华丽:CFOP。砍瓜切菜般的F2L,简单直接的OLL+PLL。
优雅:Roux法。行云流水的M流结束,独特的块构体系。
精致:ZZ法。别具一格的EO操作,彰显方法难度。
朴素:Petrus法。毫无修饰的EO+RB解法,原始的2*2*3块。
暴力:Mehta法。简单直接的两组块加两个公式,TDR变种有爆炸的公式量。
总体来说,CFOP和Mehta都非常漂亮、非常直接、非常易于理解。Roux法标榜自己独特的M流与自由的块构也圈粉无数。而ZZ法却因为EOLine实在有点难度而劝退众多玩家。而相对而言自由度最大的Petrus,尽管早在1981年就已经出现,但却几乎是这些方法中对速拧的影响力最小的。更有趣的是,Mehta法竟然在能在速拧方法开发在圈内爆火的时间段迅速抢占大量资源,甚至成为了像Tao Yu这样大佬的主力[3]。要知道,Athefre在2021年12月指出,与Petrus同为EO+RB体系的Mehta法的理论效率甚至低于Petrus,尽管似乎对许多玩家来说Mehta法“玩起来更舒服”[2]。由此,我们发现了一条鸿沟,这是在方法开发与圈内接受之间的鸿沟。
方法与圈子的关系其实有点类似于科学与社会的关系科学的发现与与接受的过程中始终充斥着社会学的影子。拉图尔(Bruno Latour)认为,与其将社会视为科学的一个“因素”,不如说科学是与社会“共同构建”的[4]。拉图尔发现,科学知识的广泛传播源于一种解除限定性词汇的制度化过程。同理,对于方法的传播我们也可以参照拉图尔的观点。那就是,在方法传播的过程中,原始方法曲折、矛盾、难以理解的部分被一层一层地消解,最终的胜出者几乎只剩下一个精致的,几乎不需要任何理解的壳。比如CFOP彻底地将块构变成一个插槽游戏,Mehta-TDR则彻底让还原变成两个块加两条公式。相比之下桥式如果不标榜自己“自由块构”的“异类”成分,也不会有今天的成就。我这里想要指出的是,没有脱离社会的科学,也没有脱离圈子的方法。因此,很多时候貌似不是一个方法的真正上限决定了它的影响力,而是它们如何表现得容易上手。甚至完全可以说,事实上一个看起来精简、有效、高度公式化的结构,加上足够鲜明的标识就足以一个产生足够影响力的方法。
然而,大多数的速拧玩家并不知道,Mehta法和Petrus法的区别甚至不会超过常规CFOP与菲神使用的CFOP进阶版的区别,毕竟后者可是包含了块构与WV、VLS等乱七八糟的末槽技巧甚至还有ZBLL。大多数玩家对Roux法的第一感知竟然只是F2L少了M层的块,而完全无法理解其相比CFOP在谱系上更接近角先法的事实。大多数玩家更不知道,真正能接近理论最优的方法必然是不对称的,对称总是指向低效。我们所熟悉的解法,其实连接近完美都算不上。对许多玩家影响很深的“少即是多”的观点,事实上甚至不是一个科学的速拧方法的观点。尽管它在某些人的速拧实践中可能有用,但这也绝不可能是顶尖玩家的观点。一个接受过方法学训练的玩家绝对会摒弃最原始的“一式解万方”的思维,也绝对会破除“降群就是一切”的思维。
然而,话也不能说得太满。回望库恩(Thomas Kuhn)的“范式”理论[5],当前这种方法开发的传统仅仅只是“当下有效的”。当前任何速拧方法都没有能够接近它们的理论界限,那么我们也无从知道我们追求的理论最优究竟有多大的效力。现有的范式是极不完整的,像观察、顺手程度等等的词汇,都停留在经验的想象阶段,尽管近期有所改观。我们也不过是从那些天才般玩家的手中才能够窥见方法的优秀。但没准哪天会有个新范式,说Roux法有可能根本就无法击败CFOP呢。没办法,任何学界都会倾向于先去量化可以量化的东西,而对于那些真正重要的难以量化的东西,作为方法开发者与速拧理论玩家,我们知道的依然太少太少。
半年不更新,一更废半年
[1] Yash Mehta. Roux-breaker? The YruRU method [EB/OL]. https://www.speedsolving.com/threads/roux-breaker-the-yruru-method.77201/
[2] Michael James Straughan. Mehta, APB, and other EO + RB systems: An analysis on speedsolving use and classification [EB/OL]. https://www.speedsolving.com/threads/mehta-apb-and-other-eo-rb-systems-an-analysis-on-speedsolving-use-and-classification.86019/
[3] Yash Mehta. CFOP-Breaker? Mehta method [EB/OL].
https://www.speedsolving.com/threads/cfop-breaker-mehta-method.78352/
[4] Shapin S. Here and everywhere: Sociology of scientific knowledge[J]. Annual review of sociology, 1995, 21(1): 289-321
[5] Kuhn T S. The structure of scientific revolutions[M]. University of Chicago press, 2012.