怎麼用演算法解開魔術方塊?
覺得我們的內容實用嗎? MyApollo 電子報讀者募集中!歡迎訂閱電子報!
雖然我個人沒有在玩魔術方塊,不過朋友用心製作的 YT 影片還是吸引到我(聲音真的很有磁性XD
原來現在常用來解開魔術方塊的演算法稱為 kociemba, 這是由一位德國數學老師 Kociemba 發明的,可以在一秒內找到 21 步以下的解法(好快的劍!
這個演算法有幾個技巧,現在也很常使用:
動態規劃(Dynamic Programming), 也就是將大問題切成小問題,將小問題解決之後,大問題就不難了
BFS 廣度優先搜尋
剪枝(pruning),用來增加廣度優先搜尋效率的做法,舉例像是事先預測到這條路徑無解或者太慢,就捨棄這條路徑的做法,很多機器學習(例如深度學習)的演算法也都會利用剪枝來改善效率,至於 kociemba 怎麼做到預測,影片中也有介紹,作法蠻聰明的,在此恕不劇透XD