解法思路(LBL、CFOP、兩階段法、降階法)
魔術方塊的解法大致分為兩類:人記憶並使用的,以及電腦搜尋得出的。兩者追求的目標不同。面向人的解法在控制記憶量的同時,重視手法的順暢。面向電腦的解法完全不考慮好不好記,轉而追求步數短、計算快。以下依各自的目標,介紹四種具代表性的思路。
LBL —— 一層一層地疊上去
LBL(Layer By Layer,層先法)是最樸素的解法:從底層開始逐層完成。順序是底層十字、底層角塊、第二層稜塊、頂層朝向、頂層位置。需要記的公式只有十來個,代價是步數常常超過 100 步。因為每一步都必須保住已完成的層,所以必然要繞遠路——先打亂再還原。而「打亂再還原」這個想法本身,正是玩方塊最基本的工具。
CFOP —— 多記一些,少走幾步
CFOP(Cross、F2L、OLL、PLL)是速解界使用最廣的解法。它與 LBL 有兩點不同。其一,不再分別處理底層角塊與第二層稜塊,而是配成對同時插入(F2L)。其二,把頂層整理成兩個階段:先統一朝向(OLL),再調整位置(PLL)。如此步數降到 50~60 步左右,代價是要記住 57 種 OLL 與 21 種 PLL。記憶量與步數是此消彼長的關係——這條原理貫穿了所有面向人的解法。
兩階段法 —— 把搜尋空間劈成兩半
電腦上使用最廣的是兩階段法(Kociemba 系)。3x3x3 的狀態約有 4325 億億種,正面硬找最短解並不容易。於是要用到子群這個概念。只允許半圈轉動的操作集合 G1 = ⟨U, D, R2, L2, F2, B2⟩ 所能到達的狀態,構成了一個遠小於整體的世界。兩階段法先找「把當前狀態落入這個小世界」的步驟,再找「只在這個世界裡活動並還原」的步驟。把一次大搜尋劈成兩次小搜尋,就能在現實的時間內求得足夠短的解。但劈成兩半的代價是:所得的解是準最短,未必是真正的最短。
降階法 —— 把大方塊當成 3x3x3
4x4x4 與 5x5x5 有 3x3x3 沒有的部件:每個面有多個中心塊,一條稜由兩塊或三塊組成。降階法(Reduction)反過來利用了這一點。先把同色的中心塊依面聚攏,再把散開的稜塊配成正確的組。做到這一步,大方塊看上去每個面就是一整塊,結構上與 3x3x3 完全相同,之後用任何 3x3x3 解法收尾即可。不過這個過程中會出現 3x3x3 絕不會有的狀態,即奇偶性(parity),看起來像是只有一組被對調了。這並不是壞掉了,而是偶數階方塊固有的性質。
cubepic 的解法
cubepic 依尺寸選用不同解法。3x3x3 用兩階段法。2x2x2 則把角塊嵌入同一套兩階段搜尋來求解。4x4x4 與 5x5x5 用降階法,降到 3x3x3 後交給兩階段法。各尺寸回傳的都是準最短解,不保證最短。少數著名預設局面(如 superflip)會顯示已證明在 HTM(半轉計量)下最短的解法。進一步搜尋以縮短解法計劃作為付費功能提供。此外目標狀態不限於還原態,可以登錄任意合法狀態。此時會分別求「目前到還原」與「目標到還原」兩個解,把後者逆序並反向後接在前者之後。
© アサラボ