【发布时间】:2014-04-13 09:49:11
【问题描述】:
问题如题所示。
我知道 minimax 算法为 2 人游戏执行此操作(假设我们想要最大化 A 的利润):当轮到 A 时,我们取子值的最大值,因为我们正在最大化 A 的利润,而当它是轮到 B,我们取子值的最小值,因为我们想最小化 B 的利润。
但是,我不认为上面的逻辑证明了每个子问题,策略在极小极大算法中都是最优的。我提出的问题有任何提示或解决方案吗?如果上面的逻辑是这样,那你能详细说明一下吗?
【问题讨论】:
问题如题所示。
我知道 minimax 算法为 2 人游戏执行此操作(假设我们想要最大化 A 的利润):当轮到 A 时,我们取子值的最大值,因为我们正在最大化 A 的利润,而当它是轮到 B,我们取子值的最小值,因为我们想最小化 B 的利润。
但是,我不认为上面的逻辑证明了每个子问题,策略在极小极大算法中都是最优的。我提出的问题有任何提示或解决方案吗?如果上面的逻辑是这样,那你能详细说明一下吗?
【问题讨论】:
极小极大的主张是:如果其他玩家也使用相同的策略,极小极会给出最优策略。
基础:对于博弈树中的一个叶子 - 只有一个策略,极小极大显然选择了它,而且它是最优的 - 因为它是唯一的一个。
假设:minimax 为深度博弈选择最优策略d。
证明:
让我们看一个深度游戏d+1。显然有两种可能的情况:
max 阶段。在这种情况下,在我们可以做的所有可能的移动中 - minimax 递归地评估每个此类策略的最小-最大值,并为我们选择此移动的“子游戏”提供最佳结果。这些子博弈中的每一个都有深度d,并且从归纳假设来看,它是最优的。
min阶段。与上述逻辑类似,极小极大将案例分解为对手可以做的所有可能的动作,并评估他们的结果。根据归纳假设,评估是最优的,我们从中选择最小的——这将是对手会选择的,并且对他来说是最优策略(并假设对手在每一步都选择最优)——因此对手选择最小的评估,使我们的利润最小化,从而使他的利润最大化。QED
在此基础上,您可以得出另一个极小极大声明——策略返回的值不小于您实际得到的值(无论对手的策略如何)。这可以通过与上述非常相似的归纳来证明。
指南:
Base:只有一个策略,当“树”实际上是一片叶子时,您将返回它。
声明:minimax 返回的深度游戏d 的值是从这个级别进行的所有游戏的下限,您根据minimax 选择,并且对对手没有限制。
证明:
让我们看看深度游戏d+1。
d 的新“子博弈”,其中归纳假设成立。对手可以选择这些招式中的任何一个,所以你可以保证在这一招之后,你至少会有min{game after opponent move}的值,这正是最小阶段返回的值。QED。
【讨论】:
你无法证明 minimax 最大化玩家的利润,因为 minimax 不会尝试最大化玩家的利润。
minimax 所做的是最小化玩家可能的损失;也就是说,它的决定是保守的,并假设最坏的情况(其他玩家的最佳游戏)。尝试证明这一点;你会发现它更简单。
【讨论】: