首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Negamax否定

Negamax否定
EN

Stack Overflow用户
提问于 2013-11-10 20:25:32
回答 2查看 795关注 0票数 1

抱歉,如果这是一个愚蠢的问题,但我很困惑。Negamax在开始时检查是否已达到结束状态或最大深度。然后插入一个求值函数,该函数返回状态的负或正分数(一边好,另一边不好,反之亦然)。我发现难以理解的是下面的否定。返回的平均分数是否乘以-1?这样做的目的是什么?我喜欢叶子状态的“泡沫”,在最低/最高分数之间交替。

行:-NegaMax(c,depth+1,单色)

EN

回答 2

Stack Overflow用户

发布于 2013-11-10 21:15:13

在交替移动的游戏中,这是用来翻转视角的。在每种状态下,你都希望根据当前玩家计算得分(正代表好,负代表坏)。当你看一些孩子的状态,对手会移动到那里,所以负极最大将返回根据他的估计分数。你需要否定它才能得到第一名玩家的分数。

示例:在每个状态下,选择最大的被否定的子项:

票数 4
EN

Stack Overflow用户

发布于 2021-02-02 17:10:26

我不知道你为什么要增加深度。Negamax最大化了当前玩家的位置。在执行搜索时,应该调用-negamax(position,depth-1)。当你下一步棋的时候,你需要在每一步棋中反转eval分数。例如,如果要移动的是白色,则eval应该是规则的,如果要移动黑色,则eval应该将黑色部分评分为正值,因此if (turn == black) then eval = -eval。你这样做是因为negamax算法最大化了玩家的得分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19889658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档