我试图理解如何将值分配给AI国际象棋战略中的不同动作。例如,用户有3个选项移动棋子,女王或骑士,然后每次移动对手有3个动作。这些动作有值:移动车+3,移动女王+2,移动Pawn -3等等。
那么,代表这些数字的是什么,对手的动作次数或者对手可以击败的项目(如果击败一个棋子,如果击败一辆车就是+2)?
很抱歉,如果我的问题令人困惑。
答案 0 :(得分:1)
我还可以补充一点,实际上你评估的是位置,而不是动作。
位置的值可以计算为碎片的总和(pawn = 1,knight = 3,bishop = 3.2,rook = 5,queen = 9),黑色的负值。
复杂的算法也考虑了典当结构,打开文件/对角线的控制,中心方块的控制等。
无论如何,该职位获得了一些价值。因此,移动值是在棋盘上进行此移动时所达到的位置的值。
我希望这会有所帮助: - )
答案 1 :(得分:1)
成像你可以玩到最后的每个位置。在这种情况下,每个最终位置都将是白棋,黑棋或平局的胜利。使用Minimax algorithm,您可以计算起始位置的每次移动,无论是获胜,丢失还是抽出。
例如,如果白色要下一步移动,并且其中一个移动获胜,则前一个位置必须丢失为黑色(这里我们假设两个玩家都是完美的并且只会发挥最佳动作)。如果白方没有获胜的动作,但是有些动作会被吸引,而有些动作将会松动,它将不会发挥松动的动作,因此前一个位置必须为黑色。等等,直到你最终到达起始位置。
然而,这是不可行的,因为即使您使用更高级的算法,可能的移动数量也会爆炸得太快。这就是国际象棋引擎在几次移动后停止并调用evaluation function的原因。此功能为每个位置分配一个分数。这些分数是您在问题中描述的数字。
每个引擎都有独特的评估功能,但所有引擎都拥有最基本的国际象棋知识:
通常,您在输出中看到的分数将四舍五入为典当。例如,+1.09是大约一个棋子的优势。这可能是因为一方有一个棋子在一个相同的位置,或者可能是材料相等但一方有一些位置优势。
答案 2 :(得分:1)
要为国际象棋位置分配号码,我们使用