国际象棋游戏的评估功能是否考虑了棋盘上的所有棋子?

Does an evaluation function for a chess game consider all pieces on the board?

我希望这是一个容易回答的问题,但我对国际象棋游戏的评估函数如何工作有点困惑。我正在使用 minimax 算法在叶节点评估棋盘,同时考虑 material、piece-square tables、mobility 等。minimax 算法(不是 negamax)的评估函数是否考虑了每一块在黑板上和白板上计算板值,还是只看最小值(黑色)或最大值(白色)的部分。

例如,当调用 evaluate_board() 方法时,我是将黑色和白色的 material 相加,还是只对轮到哪一边求和?

如果这让我感到困惑,我深表歉意,但我是新手。即使是一点点的澄清,我们将不胜感激。谢谢。

职位的评估可以考虑任何因素。如果您使用 minimax,您可能希望负分对白色有利,对黑色有利 - 或类似的东西。所以如果你只用material来计算,你可以把每个白色的棋子算作-N,每个黑色的棋子算作+N。起始位置为0.

请记住,即使进行了修剪,即使只修剪几层(深度),minimax 也可能需要很长时间。所以评价方法是越便宜或者越快越好。简单 material 优势恕我直言,这是您唯一需要的评估。

当然,国际象棋维基上有一篇关于国际象棋引擎评估部分的详尽文章:https://chessprogramming.wikispaces.com/Evaluation