Skip to content

回溯

这一节的内容属于博弈树。注意使用对称性减少需要讨论的情况。

MinMax 极大极小化评估

主要是博弈问题。使用一个函数来评估当前的局势,其中一方希望函数值最大,另一方希望函数值最小。

  • Tic Tac Toe 问题:
    • 评估函数:\(f = W_{AI} - W_{human}\)\(W\) 指的是可能的赢法数。Human 方希望函数最小,AI 方希望函数最大。

Alpha-Beta 剪枝

在 MinMax 的基础上,使用 Alpha-Beta 剪枝来减少搜索空间。

博弈树的层次间,不同玩家交互出手。

  • Max 玩家出手的层,一定会选择所有结果中值尽可能大的,就是该节点的值。
  • Min 玩家出手的层,一定会选择所有结果中值尽可能小的,就是该节点的值。

通过上面的步骤计算博弈树中每个节点的值(计算到的深度自行设定),然后根据这个值来选择最优的走法。

  • 对 Max 节点,定义 \(\alpha\) 值为下限。如果它的子孙节点的值小于 \(\alpha\),则不会选择这个节点。
  • 对 Min 节点,定义 \(\beta\) 值为上限。如果它的子孙节点的值大于 \(\beta\),则不会选择这个节点。

通过 Alpha-Beta 剪枝,可以将搜索空间减少到原来的 \(O(b^{d/2})\)。对于课内的博弈树,我们取 \(d = 1\)