【发布时间】:2013-03-29 04:42:16
【问题描述】:
我必须创建一个必须与其他 AI 竞争的 AI。
两个 AI 将在相同的硬件上运行,具有相同的处理时间和内存。我知道对手 AI 会使用带有 alpha beta pruning 的 minimax 算法。
现在我的问题是 - 有哪些方法可以击败这样的对手?如果我自己使用极小极大——那么两个 AI 都可以完美地预测彼此的动作,并且游戏会根据游戏的固有属性(先手获胜等)来解决。
显而易见的解决方案是以某种方式进一步了解可能的动作,这将允许更好的评估 - 因为处理器时间相同,我无法评估更深入(假设相反的 AI 代码同样优化) .我可以使用预先计算的树来获得额外的优势,但如果没有超级计算机,我肯定无法“解决”任何不平凡的游戏。
故意选择一个非最佳节点(例如 alpha beta 会修剪的节点)是否有价值?这可能会对对手造成 CPU 时间损失,因为他们必须返回并重新评估树。这会给我带来惩罚,而且我必须评估 minimax 树 + alpha beta 以查看 alpha beta 会修剪哪些节点而不会获得任何直接收益。
还有哪些其他策略可以针对这样的对手进行优化?
【问题讨论】:
-
我们在说什么游戏?
-
特别是奥赛罗,但我也对解决此类问题的更通用方法感兴趣。
标签: artificial-intelligence minimax alpha-beta-pruning