【问题标题】:How could a minimax algorithm be more optimistic?极小极大算法如何更乐观?
【发布时间】:2013-12-13 22:22:13
【问题描述】:

Minimax 似乎在不输方面做得很好,但假设对手不会犯错是非常宿命的。当然,很多比赛都是打成平手的,但即使没有强制获胜的情况,也应该以“尽可能努力争取胜利而不冒失败”为目标。 也就是说,给定具有相同(绘制)结束位置的两棵树给定最佳游戏,如何调整算法以选择如果对手采取次优行动或使对手更有可能获胜的最有可能获胜的树滑倒?

使用井字游戏的简单示例,更强大的玩家通常会瞄准设置分叉,从而保证获胜。即使对手可以看到这样的诡计并提前阻止它,他们更有可能错过这一点,而不是你只是将两个 X 放在一个空行中并希望他们暂时忘记他们正在玩什么游戏。类似地,强大的玩家往往会从中心或角落开始,但在简单的 minimax 中,没有理由(因为您仍然可以强制平局)不选择边缘方格。

【问题讨论】:

    标签: minimax


    【解决方案1】:

    如果我正确理解了你的问题,那么你是在问如何调整极小极大算法,以便它不会假设对手总是做出最好的举动。

    查看expectiminimax algorithm,minimax 的一种变体。 本质上,它不是只处理最小或最大节点,而是引入了机会节点,其中存储了对手将选择当前移动的概率。

    为了更简单,您可以假设对手以相同的概率选择每个动作(节点)。

    简而言之,当对手转身时,不是返回最低分数,而是返回他们可能移动的平均分数。

    【讨论】:

    • 我不认为这直接是我想要的解决方案,因为它担心不完整的信息游戏(即你必须从游戏中预测(相对简单和可预测的)混乱,而不是来自对手的混乱。)也就是说,这似乎是进一步思考的一个很好的起点。谢谢。
    【解决方案2】:

    调整“最小”节点怎么样?

    在常规极小极大中,当评估对手的位置时,得分是他每一步的最低得分。可以通过使用与最小值不同的函数来向搜索中注入一些乐观(来自“最大”玩家的 pov)。 一些可以尝试的东西:

    -使用第二差的分数

    -使用最小值和平均值(或中位数)之间的混合

    也许这应该与随节点深度增加的乐观因素相关联。这样可以避免忽略树中较低的对手的非常糟糕的举动(在大多数游戏中这意味着更明显的举动)。

    【讨论】:

    • 我认为这里有一个非常重要的想法,即考虑对手可能会采取什么样的行动,而不是纯粹考虑他们可能会采取的行动。模拟较弱玩家的行动肯定会让人感到乐观。我想理想的情况是跟踪不同强度对手的一组评估,例如一个做完整(最小)极小值的对手和另一个只使用启发式的对手。最初将使用较强的玩家评估,而较弱的值用于打破平局。
    猜你喜欢
    • 1970-01-01
    • 2021-08-29
    • 2016-01-24
    • 2019-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多