algorithm - Negamax否定

标签 algorithm minimax search-tree negamax

对不起,如果这是一个愚蠢的问题,但我很困惑。 Negamax 在最开始检查是否达到了结束状态或最大深度。然后,您插入一个评估函数,该函数返回状态的负分或正分(一个对一侧有利,对另一侧不利,反之亦然)。我觉得很难理解的是下面的否定。这是否意味着返回的分数乘以 -1?这实现了什么?我很欣赏叶状态在最小/最大分数之间交替的“气泡”备份。

线:-NegaMax(c, depth+1, 1-color)

最佳答案

这用于在交替移动的游戏中翻转视角。在每个状态下,您都希望根据当前玩家计算得分(正面为好,负面为坏)。当您查看某个子状态时,对手会移动到那里,因此 negamax 会根据他返回估计分数。您需要将其取反才能获得第一个玩家的分数。

示例:在每个状态中选择最大的否定子项: example

关于algorithm - Negamax否定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19889658/

相关文章:

javascript - 从图 block ID 获取 X 和 Y 坐标

c - 基于 2 个输入的伪随机数生成器

java - 适用于Android黑白棋游戏的Minimax/Alpha Beta

pseudocode - 理解 minmax 伪代码

algorithm - 带有离开源节点的负边的 Dijkstra

c - C中栈的高效实现

minimax - alpha-beta 剪枝如何降低运行时复杂性?

c - 打印功能未正确读取释放的值

algorithm - 骑士最短路径图数据结构及算法

Ruby 搜索树示例混淆