您当前的位置:首页 > 计算机 > 编程开发 > 数据结构与算法

其他策略――藐视因子

时间:08-20来源:作者:点击数:

藐视因子

Bruce Moreland /文

为杀棋定义一个值很容易——只需要一个很大的正数,如果你被将死了就用一个很大的负数。但是决定平局用什么值就稍难一些了。

如果程序对阵比它强的棋手,那么一个平局可能对程序来说非常不错,但是当程序对阵一个很弱的棋手时,平局却很失败。

“藐视因子”(Contempt Factor)只是平局分值的另一个名称而已,这就意味着平局分值必须根据对平局的渴望程度来调整。

典型的藐视因子是一个稍负一点的数,因此程序即使在局面稍差的情况下也会试图取胜,但是一些程序根本不用藐视因子,并且在平局时只返回零。

我认为有必要根据比赛进行的状况选择不同的藐视分值。如果是很激烈的中局并且程序稍微落后,通常发生在程序执黑时,可以考虑给个稍大些的值,这种条件下程序就可以为胜利而战。

在残局中即使有子力,用零或许就是好的。

我认为还有个诀窍,藐视因子在某些情况下应该取负数,这取决于哪一方走棋。否则的话从Alpha-Beta树向上返回时符号会出错。

我认为开局阶段合理的藐视值是-0.50个兵;整体上合理的藐视因子是-0.25;在残局中0.00比较合理,或者用一个不是很负的值。用一个负值来处理兵残局则不是一个好的策略。

【译注:某些棋类程序可由用户定义程序的下棋风格,如保守、均衡或冒进,译者认为这可能和藐视因子有关,风格保守时藐视因子正些,风格冒进时负些(注:藐视因子越负说明藐视程度越大,程序越想赢棋)。另外,参加比赛的程序还应该根据赛程来调整藐视因子,例如最后一轮比赛中程序只要守和就可以夺冠,那么这一轮藐视因子应该设得正些。】

原文:brucemo 商业网/compchess/programming/contempt.htm

译者:象棋百科全书网

类型:全译加译注

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐