回答
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