如何为国际象棋中的 minimax 或其他策略的移动分配价值?
How are value assigned to moves in minimax or other strategy in Chess?
我正在尝试了解如何为 AI 国际象棋策略中的不同动作分配值。例如,用户有 3 个选项移动棋子、女王或骑士,然后对于每个移动对手有 3 个移动。这些移动具有值:移动 rook + 3,移动 Queen +2,移动 Pawn -3 等等。
那么,这些数字代表什么,对手的步数或对手可以击败的物品(如果打车是+2,如果打兵是0)?
抱歉,如果我的问题令人困惑。
我还可以补充一点,实际上您评估的是位置,而不是移动。
位置的值可以计算为棋子的总和(pawn = 1,knight = 3,bishop = 3.2,rook = 5,queen = 9),黑色为负值。
复杂的算法还要考虑棋子结构、打开的控制 files/diagonals、中央方块的控制等
不管怎样,这个职位还是有价值的。因此,移动值是在棋盘上进行此移动时到达的位置的值。
希望对您有所帮助:-)
想象一下你可以把每一个位置都玩到最后。在那种情况下,每个最终位置要么是白方获胜,要么是黑方获胜,要么是平局。使用 Minimax algorithm,您可以计算起始位置的每一步棋是赢、输还是平。
例如,如果白方下一步要走,并且它的其中一步是获胜,那么黑方必须失去之前的位置(这里我们假设双方都是完美的,只会走最好的一步)。如果白方没有必胜步,但有平局和松局,则不走输局,所以黑棋必须先平局。依此类推,直到最终到达起始位置。
但是,即使您使用更高级的算法,这也是不可行的,因为可能的移动数量爆炸得太快了。这就是国际象棋引擎在几步后停止并调用 evaluation function 的原因。此函数为每个位置分配一个分数。这些分数是您在问题中描述的数字。
每个引擎都有独特的评估功能,但都共享最基本的国际象棋知识:
- Material(一兵+100,knight/bishop+300,车+500,后+900)
- 移动性(鼓励引擎将其碎片移向中心)
- 国王安全(弱国王很容易交配,除非是残局)
- 通过棋子
- 兵结构(应避免双兵或孤立兵)
- 等等
通常,您在输出中看到的分数四舍五入为棋子。例如,+1.09 是大约一兵的优势。这可能是因为一方多了一个棋子处于相等的位置,或者可能是 material 相等但一方有一些位置优势。
要为棋局分配一个数字,我们使用
- 数白棋和黑棋的棋子数
- 计算棋子的位置,比如七排的车很强
- 计算棋子可以攻击的方格数,特别是未设防的方格
- 计算棋子攻击敌王附近的方格数
我正在尝试了解如何为 AI 国际象棋策略中的不同动作分配值。例如,用户有 3 个选项移动棋子、女王或骑士,然后对于每个移动对手有 3 个移动。这些移动具有值:移动 rook + 3,移动 Queen +2,移动 Pawn -3 等等。
那么,这些数字代表什么,对手的步数或对手可以击败的物品(如果打车是+2,如果打兵是0)?
抱歉,如果我的问题令人困惑。
我还可以补充一点,实际上您评估的是位置,而不是移动。
位置的值可以计算为棋子的总和(pawn = 1,knight = 3,bishop = 3.2,rook = 5,queen = 9),黑色为负值。
复杂的算法还要考虑棋子结构、打开的控制 files/diagonals、中央方块的控制等
不管怎样,这个职位还是有价值的。因此,移动值是在棋盘上进行此移动时到达的位置的值。
希望对您有所帮助:-)
想象一下你可以把每一个位置都玩到最后。在那种情况下,每个最终位置要么是白方获胜,要么是黑方获胜,要么是平局。使用 Minimax algorithm,您可以计算起始位置的每一步棋是赢、输还是平。
例如,如果白方下一步要走,并且它的其中一步是获胜,那么黑方必须失去之前的位置(这里我们假设双方都是完美的,只会走最好的一步)。如果白方没有必胜步,但有平局和松局,则不走输局,所以黑棋必须先平局。依此类推,直到最终到达起始位置。
但是,即使您使用更高级的算法,这也是不可行的,因为可能的移动数量爆炸得太快了。这就是国际象棋引擎在几步后停止并调用 evaluation function 的原因。此函数为每个位置分配一个分数。这些分数是您在问题中描述的数字。
每个引擎都有独特的评估功能,但都共享最基本的国际象棋知识:
- Material(一兵+100,knight/bishop+300,车+500,后+900)
- 移动性(鼓励引擎将其碎片移向中心)
- 国王安全(弱国王很容易交配,除非是残局)
- 通过棋子
- 兵结构(应避免双兵或孤立兵)
- 等等
通常,您在输出中看到的分数四舍五入为棋子。例如,+1.09 是大约一兵的优势。这可能是因为一方多了一个棋子处于相等的位置,或者可能是 material 相等但一方有一些位置优势。
要为棋局分配一个数字,我们使用
- 数白棋和黑棋的棋子数
- 计算棋子的位置,比如七排的车很强
- 计算棋子可以攻击的方格数,特别是未设防的方格
- 计算棋子攻击敌王附近的方格数