3 回答

TA貢獻1884條經驗 獲得超4個贊
我是該線程中其他人提到的AI程序的作者。您可以查看AI 行動或閱讀源。
目前,考慮到每次移動大約100毫秒的思考時間,該程序在我的筆記本電腦上的瀏覽器中的javascript中運行時,可以實現約90%的獲勝率,因此雖然效果不理想(但?。?,但它的表現還不錯。
由于該游戲是離散的狀態空間,完美的信息,基于回合的游戲(如國際象棋和西洋跳棋),因此我使用了已被證明可用于這些游戲的相同方法,即帶有alpha-beta修剪的minimax 搜索。由于已經有很多關于該算法的信息,因此,我將僅討論在靜態評估函數中使用的兩種主要啟發式方法,這些啟發式方法將其他人在這里表達的許多直覺形式化。
單調性
這種試探法試圖確保圖塊的值都沿著左/右和上/下方向都增加或減少。僅憑這種啟發式方法就可以捕捉許多其他人提到的直覺,即更高價值的瓷磚應聚集成一角。它通常會阻止越來越孤立的小有價值的瓷磚和將保持板非常有組織,有更小的磚級聯并填充到大磚。
這里有一個完美的單調格的屏幕截圖。我通過運行設置了eval函數的算法來忽略其他啟發式算法,而僅考慮單調性,從而獲得了此結果。
完美單調的2048板
光滑度
僅上述啟發式方法趨向于創建其中相鄰區塊的值減小的結構,但是當然為了合并,相鄰區塊需要具有相同的值。因此,平滑度啟發式方法只是測量相鄰圖塊之間的值差,以盡量減少此計數。
關于Hacker News的評論者從圖論的角度對該想法進行了有趣的形式化。
這是一個完美平滑的網格的屏幕截圖,這要歸功于出色的模仿叉。
完美光滑的2048板
免費瓷磚
最后,免費磁貼太少會受到懲罰,因為當游戲板太狹窄時,選項會很快用完。
就是這樣!在優化這些條件的同時搜索游戲空間會產生非常好的性能。使用這樣的通用方法而不是顯式編碼的移動策略的一個優點是該算法通??梢哉业接腥で页龊跻饬系慕鉀Q方案。如果您觀察它的運行,它通常會做出令人驚訝但有效的舉動,例如突然切換它要面對的墻或角。
編輯:
這是這種方法的強大功能的演示。我取消了圖塊值的上限(因此在達到2048后繼續保持不變),這是八次試驗后的最佳結果。
4096
是的,這是4096和2048的乘積。=)這意味著它在同一塊板上完成了3倍難以捉摸的2048瓦片。
添加回答
舉報