在极小极大算法中如何证明每个小节,策略是最优的?

Posted

技术标签:

【中文标题】在极小极大算法中如何证明每个小节,策略是最优的?【英文标题】:How to prove that every sub-section, the strategy is most optimal in minimax algorithm? 【发布时间】:2014-04-13 09:49:11 【问题描述】:

问题如题所示。

我知道 minimax 算法为 2 人游戏执行此操作(假设我们想要最大化 A 的利润):当轮到 A 时,我们取子值的最大值,因为我们正在最大化 A 的利润,而当它是轮到 B,我们取子值的最小值,因为我们想最小化 B 的利润。

但是,我不认为上面的逻辑证明了每个子问题,策略在极小极大算法中都是最优的。我提出的问题有任何提示或解决方案吗?如果上面的逻辑是这样,那你能详细说明一下吗?

【问题讨论】:

【参考方案1】:

极小极大的主张是:如果其他玩家也使用相同的策略,极小极会给出最优策略。

基础:对于博弈树中的一个叶子 - 只有一个策略,极小极大显然选择了它,而且它是最优的 - 因为它是唯一的一个。 假设:minimax 为深度博弈选择最优策略d证明

让我们看一个深度游戏d+1。显然有两种可能的情况:

    轮到了 - 这是max 阶段。在这种情况下,在我们可以做的所有可能的移动中 - minimax 递归地评估每个此类策略的最小-最大值,并为我们选择此移动的“子游戏”提供最佳结果。这些子博弈中的每一个都有深度d,并且从归纳假设来看,它是最优的。 由于这是最大阶段 - min-max 算法选择最大值,这是我们的最佳解决方案。 轮到对手了 - 这是min阶段。与上述逻辑类似,极小极大将案例分解为对手可以做的所有可能的动作,并评估他们的结果。根据归纳假设,评估是最优的,我们从中选择最小的——这将是对手会选择的,并且对他来说是最优策略(并假设对手在每一步都选择最优)——因此对手选择最小的评估,使我们的利润最小化,从而使他的利润最大化。

QED

在此基础上,您可以得出另一个极小极大声明——策略返回的值不小于您实际得到的值(无论对手的策略如何)。这可以通过与上述非常相似的归纳来证明。

指南:

Base:只有一个策略,当“树”实际上是一片叶子时,您将返回它。 声明:minimax 返回的深度游戏d 的值是从这个级别进行的所有游戏的下限,您根据minimax 选择,并且对对手没有限制。 证明

让我们看看深度游戏d+1

    如果轮到你,你选择了所有叶子中的最大值,因为你 在这里可以选择。每一片叶子都保证你(诱导 假设)至少某个值,并通过选择其中的最大值 - 您还可以保证所选择的价值。 如果轮到对手 - 你无法控制选择。你只能确定他会选择一些动作,不知道是哪个。然而,对于所有可能的移动 - 你会得到一个深度为d 的新“子博弈”,其中归纳假设成立。对手可以选择这些招式中的任何一个,所以你可以保证在这一招之后,你至少会有mingame after opponent move的值,这正是最小阶段返回的值。

QED

【讨论】:

您所做的假设很大。如果其他玩家没有使用极小极大,则不能保证您是最优策略。 @Sneftel Minimax 是最佳选择,以防其他玩家也使用 minimax 策略,这是我试图证明的主张,让我在答案中澄清一下。 因此,如果对手也在使用极小极大,极小极大只会在任何给定的子问题上给出最优策略。所以换句话说,如果我们不知道对手的算法,那么我们就不能说极小极大会在任何给定的子问题上给出最优策略。【参考方案2】:

你无法证明 minimax 最大化玩家的利润,因为 minimax 不会尝试最大化玩家的利润。

minimax 所做的是最小化玩家可能的损失;也就是说,它的决定是保守的,并假设最坏的情况(其他玩家的最佳游戏)。尝试证明这一点;你会发现它更简单。

【讨论】:

这里关于极小极大的优点是极小极大实际上试图防止做出错误的决定而不是做出正确的决定,因此它永远不会被证明是最优的,但会提供“不错”的解决方案,如果你有足够的深度将更接近最佳状态。 那么在你不知道对手算法的情况下,你会用什么算法在零和游戏中的1v1游戏中最大化结果呢? 没有。考虑一个两步游戏,其中玩家 1 选择“平局”或“不平局”。如果他选择“平局”,则得分为 0。如果他选择“无平局”,玩家 2 选择“1 胜”(得分 1)或“2 胜”(得分 -1)。显然,极小极大会为玩家 1 选择“平局”。但如果玩家 2 的策略不是最优策略,那么“不平局”可能是玩家 1 更好的策略。换句话说,如果不对玩家 1 做出假设,您通常无法保证最优性。其他玩家的策略。 @LarsChung 你不能,因为如果游戏真的是一场游戏,那么如果不考虑对手的移动,你就无法获得最佳解决方案,如果对手移动的可能性很大,那么它将需要很多是时候获得所有可能的游戏状态并选择最佳策略了。你只能通过增加极小极大的深度来增加做出好动作的机会

以上是关于在极小极大算法中如何证明每个小节,策略是最优的?的主要内容,如果未能解决你的问题,请参考以下文章

贪心算法正确性证明(转载from刘子韬)

常用算法之——贪心算法

CCF201803-4棋局评估,对抗搜索,极大极小算法

博弈论之极大极小搜索与alpha-beta减枝

数据结构之贪心算法

决策树理解