我正在为一个小游戏实现 minimax,并注意到我称之为“拖延”的事情。归结为一个非常简单的例子:
在夺旗游戏中,旗帜距离玩家 A 一格,玩家 B 距离玩家 50 格。轮到A了,他可以向前搜索6步。我所看到的是,所有可能的移动都具有“赢”的值(value),因为 A 知道即使他没有立即捕获它,他也可以在 B 之前到达标志。因此,如果 UP 是排序中的最后一步,他将向左和向右移动一段时间,直到 B 在攻击距离内,然后他必须最终拿到旗帜。
起初,这种行为看起来像一个错误,但通过它我说服自己每一步都是“赢”,但行为并不好。我可以通过使从现在开始捕获的旗帜比现在捕获的旗帜值(value)低 4 步来影响评估,但我想知道极小极大搜索是否有我遗漏的方面?是否有任何概念,即较早获得高分比后来获得同等高分更可取?
最佳答案
极小极大搜索本身没有任何东西可以让获胜更早。由于所有终端位置评估为相同的分数,该算法有效地随机选择移动。使您的评估函数在调用它的树中更深的每个级别略微降低获胜分数,并且 minimax 将选择更快获胜。
关于minimax - 在极小极大中解决 "procrastination",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10787749/