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