標籤:

能否通過計算機找到適合速擰的魔方解法?

CFOP中OP基本上是死的,Corss和F2L卻十分靈活。

對於同一個打亂的魔方,不同的Cross架設方法以及架好十字之後的4組F2L復原的順序會對還原的步數或者說難易程度造成很大的影響,有時候碰巧選對了基本上都是一氣呵成。

那麼我的問題是:我們能不能通過計算機去算出完成CFOP最好的策略,從而避免複雜,難觀察的F2L,減少轉體的數量,同時做好多組F2L等等。

進一步來說,如果對於某一個打亂的魔方可以計算出比較合適的復原策略,那麼能否從中得出普適的一些規律呢?

或許用計算機解速擰策略現在還沒有成熟的演算法,是否有一些可以參考的理論和方法呢?


我先回答第一個問題:我們能不能通過計算機去算出完成CFOP最好的策略,從而避免複雜,難觀察的F2L,減少轉體的數量,同時做好多組F2L等等。

對於某一個特定的狀態,應該是可以的,但使用計算機搜索的結果很可能導致解法很奇怪。以CFOP為例,很可能在cross階段為了後面的「流暢性」,選用了某一個很長的cross公式,比如10或11步,而且順手性也會較差。但使用了軟體「精心挑選」的cross公式後,你驚奇地發現後面的F2L,OLL異常流暢地完成了,並且還跳P了。也就是說,軟體確實可以通過搜索,在還原的初期就預判到後面可能碰到的不利情況,從而在還原的初期就有意識的避開這些情況,或選擇對後期更有利的解法,即便這會導致cross的步數多一些。

但很顯然,這樣的演算法並不適用於人類。這主要是因為我們並不能像計算機一樣預判地那麼厲害。當然通過預判來避免不利情況出現的這個思路在速擰的應用還是比較常見的。例如很多單手玩家都會有意識的在做最後一組F2L的時候預判一下頂層是否會出現「點」的情況,從而改變最後一個塊的插入方式,等等。但受限於人腦的推理能力,在15秒的觀察時間,即使是世界頂尖選手至多也就預判到第二組F2L這樣的水平,而且這還只是預判,並沒有嘗試避開不利情況。至於想往後預判OLL甚至PLL幾乎不可能。而這對於計算機卻輕而易舉。

當然以上分析僅針對速擰,如果是最少步這類有相對充足的思考和嘗試時間的,人類也能在一定程度上模仿計算機的這種預判。這一點你可以直接去圍觀各種最少步比賽中茫茫多的OP連跳就知道了。

總結一下:對於某個給定的速擰演算法(如CFOP或橋式),計算機確實可以給出一個很驚人的、巧妙避開各種不利情況的解法,但這是基於計算機強大的推理和預判能力。對於人類速擰,由於觀察時間有限且推理能力不足,很難模仿。

關於第二個問題:能否從中得出普適的一些規律?

我個人認為很困難。首先根據前面的回答,人類幾乎無法做到「全預判」,所以幾乎不可能直接模仿計算機的行為。那麼有沒有可能根據計算機給出的解法,嘗試在一定程度上找出解法與狀態的關係呢?我個人觀點也是很困難。當我們在分析cross的時候,我們其實並不關注其他塊的位置、方向等信息。也就是說其他塊對我們來說其實是「灰色」的。

但如果不利用這部分信息,計算機的預判也是不可能的,這就是一組矛盾了。於是,找出解法和狀態之間規律的嘗試很可能變成Xcross,Multi-slot,ZBF2L等現有「預判」技術,很難產生其他新東西。


推薦閱讀:

學習魔方盲擰難度有多大?該怎麼練習?
2017年魔方界十大事件盤點
斜轉魔方有哪些手法,可以提速?
如何用排列組合求解魔方的狀態總數?

TAG:演算法 | 魔方 |