我试图了解如何分配的价值观,在人工智能国际象棋战略不同的动作。例如,用户有3个选择这些移动有值:移动车+ 3,移动皇后+2,移动典当-3等等。
那么,什么是代表这些数字,移动对手有多少或项目对手可以击败(如果击败一辆车是+2,如果击败一个棋子是0)?
如果我的问题混淆了,很抱歉。
发布于 2016-10-05 21:59:35
想象你可以玩到最后的每一个位置。在这种情况下,每一个最后的位置要么是白色的胜利,要么是黑色的胜利,或者是平局。使用Minimax算法,您可以计算开始位置上的每一个移动,无论是赢、输还是平局。
例如,如果白色下一步移动,而它的移动之一是获胜,之前的位置必须失去黑色(这里我们假设两个球员都是完美的,只会发挥最好的移动)。如果白色没有获胜的移动,但一些移动平局和一些将松散,它将不会玩松散的移动,所以之前的位置必须绘制为黑色。依此类推,直到你终于到达起点。
然而,这是不可行的,因为可能的移动数量爆炸过快,即使您使用更先进的算法。这就是为什么国际象棋引擎在几步棋之后停下来并调用评价函数的原因。这个函数为每个职位分配一个分数。这些分数是你在问题中描述的数字。
每个引擎都有一个独特的评估功能,但都共享最基本的国际象棋知识:
通常,你在输出中看到的分数是四舍五入的。例如,+1.09是大约一个典当的优势。这可能是因为一方在相同的位置上有一个更多的棋子,或者是材料是平等的,但是一方有一些位置优势。
发布于 2016-10-05 20:52:23
我也可以补充说,实际上你评估的是头寸,而不是移动。
位置值可计算为棋子之和(棋子= 1,骑士= 3,主教= 3.2,鲁克= 5,皇后= 9),黑色负值。
复杂的算法还考虑了典当结构、打开文件/对角线的控制、中央方格的控制等。
不管怎样,这个职位有一定的价值。因此,移动值是在板上移动时所达到的位置的值。
我希望这会有所帮助:)
发布于 2016-10-07 03:27:52
要将一个数字分配给国际象棋位置,我们使用
https://stackoverflow.com/questions/39883005
复制相似问题