回答
This是最基本的資源開始,但它是相當完整的我敢說
目前所有的頂級機器人使用蒙特卡羅爲基礎的算法。他們通常很適應Go,並有很多附加層來支持MC算法預測每個移動的結果。例如,您可以查看一個開源的機器人,如Fuego。
特別是,蒙特卡羅樹搜索可能是Google搜索的最佳開始詞。例如,參見http://sander.landofsand.com/publications/Monte-Carlo_Tree_Search_-_A_New_Framework_for_Game_AI.pdf – 2013-02-15 17:16:42
我實現了類似它的Prolog的東西用α-β剪枝..這種方法可以方便地與轉到使用,因爲它是一個完美的信息博弈中
- 一切可能的舉措是衆所周知
- 比賽的狀態是完全知道
你可以從Minimax trees開始,然後深入挖掘其巧妙的方法,如AB-修剪,negmax等。
很酷的事情是,你可以先開發引擎,找出最好的舉措,然後嘗試找到最好的啓發式(也可以讓你的AI相互競爭,看看哪一個更聰明),決定如何這是一個很好的舉措。
當然,找到一個好的啓發式是你必須研究遊戲規則並需要考慮各種策略的實現的一部分,所以它是更復雜的一個,但也是最有趣的。
雖然在技術上可以使用AB修剪的極大極小,但Go的巨大狀態空間使得它不切實際,如果不是完全無用的話。據估計,宇宙中的原子比原子更多。你可以解析一個極大極小樹到時間的盡頭,但仍然不會比人類更好地發揮。 – Cerin 2010-08-29 15:23:10
這與沒有簡單啓發式的事實一起使用。即使決定誰贏得了一場完美的比賽也遠不是微不足道的。 – ziggystar 2010-08-30 07:38:39
評估職位的難度遠遠大於搜索空間的重要性。在國際象棋中,有一種簡單的線性啓發式方法,主教的價值是典當的3倍等。沒有什麼類似的,你可以計算來評估一個去的位置,即使是一個不接近的位置。如果將國際象棋移動到更大的棋盤上,以便有更多可能的位置,棋子評估可能需要修改,但可能仍然有一個簡單的線性評估器,您可以使用它來識別不平衡的位置。沒有這一點,認可機構不能引導合理的發揮。 – 2014-10-01 07:53:09
Amirim項目嘗試使用結合ab-pruning和分區搜索方法的minimax方法來獲取Go AI工作。他們似乎取得了一些成功,但我不記得他們通過與人類對手進行對抗來證明他們的AI。我建議你查找partition search。
不幸的是,我對Amirim項目的鏈接現在已經死亡(here)。
- 1. JAVA - Go遊戲算法
- 2. C++ Blackjack遊戲玩法
- 3. 計算遊戲「GO」的分數
- 4. 遊戲中的玩家停止遊戲
- 5. 多人遊戲玩家2人遊戲
- 6. 在Java中玩Flash遊戲(遊戲)
- 7. iPhone遊戲的在線玩法?
- 8. 如何使一個有效的魯道遊戲玩AI算法
- 9. 我的遊戲自己玩?
- 10. 算法的策略遊戲
- 11. 輪到遊戲的算法?
- 12. 遊戲的配對算法
- 13. Twitch API讓玩家玩X遊戲
- 14. SQL在玩遊戲!框架
- 15. 與自己玩遊戲
- 16. Spoj:ENIGMATH - 玩數學遊戲
- 17. PHP函數玩遊戲
- 18. 3玩家卡牌遊戲
- 19. 玩家死亡/ c遊戲#
- 20. CPU玩家骰子游戲
- 21. 有時玩遊戲作品
- 22. iOS遊戲玩家ID
- 23. 平衡游泳池的遊戲和家庭遊戲算法
- 24. OO Javascript遊戲,如何添加玩家遊戲的玩家數組?
- 25. 算法:從一組遊戲
- 26. A *算法和遊戲
- 27. 卡片算法遊戲
- 28. 算法在3D遊戲
- 29. 遊戲時間算法
- 30. socket.io遊戲開發算法
你想寫一個播放GO的AI嗎?您是否搜索CiteSeer或ACM存檔? – Ian 2010-08-29 11:10:16
我必須承認,我覺得有這麼簡單的規則的遊戲可以成爲頂級選手仍然擊敗電腦的「最後一站」比賽之一......當然,這裏的棋盤尺寸肯定有幫助。 – 2010-08-29 11:48:33