【问题标题】:Minimax vs Alpha Beta Pruning algorithmsMinimax vs Alpha Beta 剪枝算法
【发布时间】:2017-03-22 10:18:53
【问题描述】:

我最近实现了 Minimax 和 Alpha Beta Pruning 算法,我 100% 确信(自动评分器)我正确地实现了它们。但是当我执行我的程序时,它们的行为不同。我 99% 确信 minimax 和 Alpha beta 的最终状态应该是相同的。我对吗?他们能否在实现结果的道路上有所不同?因为我们忽略了一些值 min 将选择 max 不会选择的值,反之亦然。

【问题讨论】:

  • 他们都应该给出相同的结果。 alpha-beta 中的修剪涉及永远不会有助于获得更好结果的分支 2 提升搜索树的级别。
  • Autograder 是来自UC Berkeley AI Course 的软件工具。 Minimax 和 Alpha beta 修剪的实现是 Pacman 示例挑战的一部分。目前尚不清楚 OP 是否询问如何在学术课程上取得成功或如何玩人工智能游戏。
  • 我没有要代码。正如我所提到的,我已经实现了算法并在不同的场景下测试了它们(这就是为什么我肯定 %100,autograder 给了我满分,所以这个问题与获得更好的成绩无关。)但即使 autograder 给了我完整的点我认为有问题,这就是我问的原因。

标签: algorithm artificial-intelligence minimax alpha-beta-pruning


【解决方案1】:

但是我知道这是一个老问题......

是的,Alpha-beta 和 minimax 返回相同的答案。 Alpha-Beta 所做的只是防止 minimax 进行 100% 保证不是当前玩家的最佳状态(MAX 或 MIN)的计算。

但是,对于给定的状态,您可能有等效的操作。您的算法如何决定返回哪些等效操作取决于它的实现方式。如果在某处使用集合/无序列表,则进行评估的顺序可能会改变。

如果 Alpha/Beta 值等于当前最佳选项,这也可能取决于您执行的操作。由于相等的值不会产生更好的结果,因此进一步探索这条路径没有意义。因此,您只需保留“遇到的第一个最佳操作”。但是,使用 Minimax,您无论如何都会探索一切,因此您可能会决定保留“最后最好的”值。这是 Minimax 将返回与 Alpha-Beta 不同的动作的一种情况。但就您的评分功能而言,它们仍然是等价的......

【讨论】:

  • 我现在才看到这个答案,经过进一步调试我也意识到了这一点,无论如何我接受这个答案它可能对将来的某些人有所帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-11
相关资源
最近更新 更多