简而言之,调整国际象棋引擎参数的标准方法是:
- 定义参数
- 给出参数标称(起始)值
- 运行引擎以查看其性能
- 调整参数值以尝试改善其性能
然后重复步骤3和4,直到达到性能目标为止。
这样做的通常方法是建立一个实验室,让引擎在引擎比赛中对抗。引擎使用两种颜色进行多种游戏。感兴趣的主要比赛涉及将参数值设置为A的引擎与参数值设置为B的同一引擎运行。
您可能会猜到,这种方法的结果在很大程度上取决于:
- 选择的参数
- 如何指定参数
- 在整个测试过程中如何改变参数值
- 引擎的运行方式(有限的层深度,有限的时间,灵敏度等)
这种方法也消耗大量时间。
研究人员于2010年使用遗传算法技术开发了一种最新(创新的方法),用于:a)指定参数,b)调整参数值。研究人员首先针对一组大师级游戏运行了带有初始,名义上一组参数值的引擎,以查看其是否可以有效地选择“最佳动作”。“最佳举动”定义为大师级举动*。记录失败的地方。然后,尝试另一个参数值集,并确定相对性能与先前运行的对比。
然后,以编程方式组合参数值使用遗传算法的“适者生存”原理尝试。在这里,“最适合”是指产生最接近理想值的输出的那个。(它也恰好是“最小二乘拟合”回归的统计技术的一种双关语,该技术用于判断近似质量。)
只有找到了可以很好地模仿GM的发动机参数后,实际的发动机比赛阶段才开始。在这个阶段,不同的参数值集再次相互抵制,这一次是直接的。应用遗传算法改进技术来连续生成更好的引擎。
在该研究项目中,使用了36个参数,包括部件的所有材料值以及许多更常见的战略评估标准,例如后向典当,弱方,主教对等。但是,研究人员添加了一些新参数,例如每种碎片的“国王压力”,“机动性”值,在与国王相邻的文件上滚动,在半打开文件上的规则,在箭头上攻击国王的规则。 -/ b- / g- / h-文件,经过的棋子与后卫国王之间的分隔等等。
不幸的是,研究人员没有详细说明他们如何提出这组参数,以及他们可能测试并拒绝了哪些替代参数。可以合理地假设它们以更大的集合开头,并(通过反复试验)确定哪些对性能有最大的影响,哪些无关紧要或微不足道,因此可以删除。
如果这听起来可能有用,您可以在这里找到相关研究。
*关于研究人员使用的方法的一个阶段的警告是有序的。约翰·纳恩(John Nunn)在他的《理解棋棋步法简介》中,选择了“……强大的宗师之间的艰苦比赛……”来说明他的主题。然后,他补充说:
读者可能会很惊讶地看到本书中装饰游戏的问号数量。当然,您可能会认为,只有30款游戏可供选择,所以找到一些有声游戏应该很容易。但是,我可以向您保证不是。……几乎可以在任何复杂的,艰苦的比赛中发现缺点……我从来没有觉得自己的比赛是完全准确的,所以我个人并不觉得这些启示令人困扰。但是,有些人可能会发现很难接受人类下象棋的准确性不如以前想像的那样。
Nunn博士提出的观点表明,研究人员最初通过要求他们模仿大师的动作来设置发动机参数的最初方法可能是有缺陷的,因为人的行为是有缺陷的。事实上,引擎已经比人类更好地发挥了作用。
因此,设置初始参数的更好方法可能是使新发动机与现有的高级发动机匹配。