我为 TTT 实现了极小极大算法。当我让 AI 玩家迈出第一步时,它会将所有可能走法的极小极大值评估为 0。这意味着它可以选择网格上的任何方 block 作为第一步。但是,任何 Tic Tac Toe 指南都会告诉您,在迈出第一步时选择角落或中心方格是更好的选择,因为获胜的机会更高。
为什么我的算法没有反射(reflect)这一点?
编辑:澄清一下,我想问的是:这是 minimax 算法的限制还是我的实现不正确?
最佳答案
您的算法不必反射(reflect)这一点:如果您尝试所有起始位置,您会发现角落和中心比其他单元格为您提供更多获胜路径。
由于 tic-tac-toe 缺乏复杂性,minimax 可以从第一步开始一直向前看直到游戏结束。随着游戏的进行,可用移动的数量会迅速减少,因此完整搜索的完成速度非常快。
对于更复杂的游戏(奥赛罗、西洋跳棋、国际象棋),所谓的“开卷”变得更加重要。游戏开始时可用的着法数量非常多,因此传统的方法是从开局“书本”中选择一个着法,并在前三到六局中使用预先计算好的“书本着法”。不考虑书外的 Action ,在基本保持相同的 Action 上节省了大量 CPU。
关于algorithm - Minimax 和 tic tac toe - 我的算法正确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16122946/