用于黑白棋/黑白棋游戏的Beta Pruning算法

我正在实施Alpha-Beta Pruning算法,该算法将用于在“黑白棋”游戏中获得最佳移动。 当算法到达一个叶节点时(即没有有效的移动或达到最大深度),我根据这个计算该节点的启发式值:

在这个节点上,最大化的玩家(运行该算法的玩家将使用该算法返回的移动)具有多少块砖块? (每块砖+1)

这个节点最大化的玩家有多少有效的动作? (每移动+10)

最大化玩家有多少角砖? (每个角砖+100)

问题是:如果不是最大化玩家转向叶节点,该怎么办? 那么计算他的有效动作是不可能的,因为它不是轮到他。 我可能误解了整个alpha-beta修剪算法,或至少启发函数应该如何工作。 有人可以给我一个提示吗?

谢谢


无论您是使用算法的传统minimax公式还是negamax公式,您都应该从移动侧的角度评估董事会。

然后,两种算法处理不同的值; minimax只有单独的代码片段,无论是MAX还是MIN玩家,而negamax指定“val = - negamax(孩子)”。

ChessProgrammingWiki有很好的解释和伪代码:Minimax和Negamax。

链接地址: http://www.djcxy.com/p/56409.html

上一篇: Beta Pruning algorithm for a Othello/Reversi game

下一篇: How to create a good evaluation function for a game?