如何科学地测试引擎?:修订间差异
跳到导航
跳到搜索
无编辑摘要 |
无编辑摘要 |
||
(未显示2个用户的3个中间版本) | |||
第1行: | 第1行: | ||
<small>[[棋软知识|返回“棋软知识”]]</small> | |||
<br> | |||
<br>科学的引擎测试,要让引擎处于相同的机器下,用一个测试工具、双方测试条件和设置一致、用数量足够多的多样化开局局面、并确保是纯引擎计算出招(部分引擎对主流局面可能有内置开局库),每个局面进行分先测试,最好不要开后台思考,并尽量排除可能的后台程序干扰、排除引擎之间的棋规分歧棋谱与界面和引擎之间的棋规分歧棋谱。 | |||
最好不用超线程,除非只开一桌而非多开。并且排除可能的多路CPU调度问题。 | |||
并且测试数量要足够多,避免误差,例如几千局,最好使用统计学工具。如果差距过小甚至要至少几万局。 | |||
另外,建议采用局时加秒制测试,引擎会根据局面复杂度等信息自行分配思考时间,可以减少不必要的思考,相同用时下的棋力也更强,除非引擎的时间管理太差。 | |||
测试的作用是放大引擎之间的棋力差异,所以如果引擎棋力接近,一般采用优势局面分先测试,优势局面分先更能放大棋力的差异、减少通过误差所需的时间。 |
2024年4月7日 (日) 16:06的最新版本
返回“棋软知识”
科学的引擎测试,要让引擎处于相同的机器下,用一个测试工具、双方测试条件和设置一致、用数量足够多的多样化开局局面、并确保是纯引擎计算出招(部分引擎对主流局面可能有内置开局库),每个局面进行分先测试,最好不要开后台思考,并尽量排除可能的后台程序干扰、排除引擎之间的棋规分歧棋谱与界面和引擎之间的棋规分歧棋谱。
最好不用超线程,除非只开一桌而非多开。并且排除可能的多路CPU调度问题。
并且测试数量要足够多,避免误差,例如几千局,最好使用统计学工具。如果差距过小甚至要至少几万局。
另外,建议采用局时加秒制测试,引擎会根据局面复杂度等信息自行分配思考时间,可以减少不必要的思考,相同用时下的棋力也更强,除非引擎的时间管理太差。
测试的作用是放大引擎之间的棋力差异,所以如果引擎棋力接近,一般采用优势局面分先测试,优势局面分先更能放大棋力的差异、减少通过误差所需的时间。