我想知道如何使用negamax算法。我正在尝试为C#中的游戏mancala编写代理。给定游戏节点时,该算法会为您提供一个数字。
假设我的AI玩家想要采取行动。 negamax函数返回一个数字。所以它告诉我从那一点开始的最佳移动得分是多少。如何使用此一个号码?
如果是玩家A轮到我尝试做出可能的动作并检查每个动作的负面动作。然而,如果我首先进行移动然后检查negamax,那么当negamax运行时(让我们假设我们仍然只有1级深度)它将评估移动,然后下一步将是玩家B的。 / p>
我对此感到非常困惑。当我看到negamax伪代码(例如在维基百科页面上)时,它会说尝试该播放器的移动。如果我这样做,它将返回最高分而不告诉我哪个动作得到了那个分数。
如何使用negamax?
答案 0 :(得分:2)
Onemancat给出了非常彻底的解释 - +1。
你问题的简短回答是,negamax会返回特定位置的分数,所以你要做的就是在第一层进行每一步动作,为每个结果位置调用negamax进行评估,然后选择作为结果的最佳分数。