银行 社区服务 每日签到 会员排行 网站地图
  • 2844阅读
  • 46回复

引擎公平对战测试的建议

楼层直达
我发帖:不隐藏、不叫卖、不加密。
级别: 论坛检查
[棋中红钻4级]发帖数量≥1000篇 [棋中黄钻5级]金币数量≥10000枚 [棋中蓝钻1级]乐币数量≥10枚 [未点亮棋中粉钻]贡献值数量<1点 [棋中彩钻3级]精华帖数量≥5篇
发帖
1507
金币
10614
威望
13
贡献值
0
乐币
33
主题
138

  1、相同的时间,如相同的局时,或者相同的步时


  2、相同的线程数,相同的Hash。那种为了减少和棋数,把一方设置时间很短,线程很少,另一方却相反的打压式设置千万不要,如果这样测试一万局也没有意义


  3、建议不要使用非平衡局面,这样对引擎不公平。旋风的评估软件内置了非平衡局面,但是并不知道一共内置了多少局面,假如说一共有1000局面,那测试时总局数需要是内置局面的整数倍,让每个引擎都能平均遇到每种局面,才比较公平,非则可能会导致某个引擎遇到更多的不利局面。所以建议不要使用旋风来测试


  4、如果不喜欢用图形界面测试,建议使用Sylvan-CLI来测试,这个是跟旋风类似的命令行界面,但是Sylvan-CLI可以自定义开局局面(自定义openings.epd文件)。让对战引擎从初始局面开始,通过openings.epd文件来控制随机的红方第一步,把你认为公平的红方第一步写在openings.epd文件里面,Sylvan-CLI就能随机从里面选择一步作为第一步。随机第一步之后,就完全让引擎自己走。这样既可以使开局第一步多样性,又照顾了公平性。避免测来测去都是炮二平五、炮八平五的单一局面。


  比如我自定义的openings.epd文件在如下24步随机选择一步作为红方开局的第一步:炮二平一、炮八平九,炮二平三、炮八平七,炮二平四、炮八平六,炮二平五、炮八平五,炮二平六、炮八平四,炮二平七、炮八平三,马二进一、马八进九,马二进三、马八进七,相三进五、相七进五,仕四进五、仕六进五,兵一进一、兵九进一,兵三进一、兵七进一


  各位可以根据自己的喜好增删,具体的24步局面内容如下,一个局面单独占用一行:
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/NC5C1/9/R1BAKABNR b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C6C/9/RNBAKABNR b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C4NC1/9/RNBAKAB1R b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1CN4C1/9/R1BAKABNR b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1CC6/9/RNBAKABNR b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C3C3/9/RNBAKABNR b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C4C2/9/RNBAKABNR b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C1C5/9/RNBAKABNR b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C2C4/9/RNBAKABNR b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/2P6/P3P1P1P/1C5C1/9/RNBAKABNR b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/P8/2P1P1P1P/1C5C1/9/RNBAKABNR b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/8P/P1P1P1P2/1C5C1/9/RNBAKABNR b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/6P2/P1P1P3P/1C5C1/9/RNBAKABNR b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C5C1/4A4/RNBAK1BNR b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C2B2C1/9/RN1AKABNR b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C5CN/9/RNBAKAB1R b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C5C1/4A4/RNB1KABNR b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C2B2C1/9/RNBAKA1NR b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/4C2C1/9/RNBAKABNR b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/5C1C1/9/RNBAKABNR b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/3C3C1/9/RNBAKABNR b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/C6C1/9/RNBAKABNR b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/2C4C1/9/RNBAKABNR b - - 0 1
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/6CC1/9/RNBAKABNR b - - 0 1


  5、关于引擎对打,一直以来对后台思考就有两种处理方式:一种是对战双方都自动关闭后台思考,引擎交替思考;另一种是双方都打开后台思考,对方在思考时,己方也在思考。这个不用太过于拘泥于某个引擎不打开后台思考,而觉得不公平。只要都是同时打开后台思考,或者同时关闭,就是公平的。如果使用兵河测试,那就是同时关闭后台思考;如果使用Sylvan-CLI测试,就是同时打开后台思考。


  6、为了避免某些引擎太多超时判负,可以适当给点时间补偿。但不易补偿过多,因为走棋快本身就是一种优势,补偿多了又不公平了。
本帖最近评分记录: 1 条评分 金币 +8
石破天惊 金币 +8 2023-08-27 优秀文章,我一直认为用高优局面或者把一方设置时间很短,线程很少,另一方却相反的设置根本不太靠谱
我发帖:不隐藏、不叫卖、不加密
级别: 上尉
[棋中红钻4级]发帖数量≥1000篇 [棋中黄钻4级]金币数量≥5000枚 [棋中蓝钻3级]乐币数量≥100枚 [棋中粉钻2级]贡献值数量≥5点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
1582
金币
6166
威望
0
贡献值
5
乐币
384
主题
4
只看该作者 一楼  发表于: 2023-08-27
回 楼主(lingshi) 的帖子
版主对引擎测试的建议非常中肯!
我发帖:不隐藏、不叫卖、不加密。
级别: 论坛检查
[棋中红钻4级]发帖数量≥1000篇 [棋中黄钻5级]金币数量≥10000枚 [棋中蓝钻1级]乐币数量≥10枚 [未点亮棋中粉钻]贡献值数量<1点 [棋中彩钻3级]精华帖数量≥5篇
发帖
1507
金币
10614
威望
13
贡献值
0
乐币
33
主题
138

只看该作者 二楼  发表于: 2023-08-27
另外如果旋风内置的局面不是随机抽取的,而是从头至尾按顺序抽取,那就有可能更加不公平了。

假如是顺序抽取,那就更加要求测试的总局是是内置局面数的整数倍,如果小于内置局数,同时是顺序抽取,那就会导致每次测试都是遇到固定的局面,而这些固定的局面往往是一个引擎遇到的有利的局面比较多,另一个遇到的不利的比较多。
我发帖:不隐藏、不叫卖、不加密
舟遥遥以轻扬  风飘飘而吹衣
级别: 少尉
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻1级]金币数量≥100枚 [棋中蓝钻1级]乐币数量≥10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
265
金币
740
威望
0
贡献值
0
乐币
18
主题
5
只看该作者 三楼  发表于: 2023-08-27
全局设置
思考策略    限时制:1+0+0 0.6
线程数    1
哈希表    128
后台思考    ×
开局库    ×
局面文件    tournament\220-250分80426局面.txt
随机选取    √
编排模式    循环赛
循环次数    1000
同时进行场数    8
超时宽限    200ms
自动判和    回合数>=60 双方分数绝对值<=25
每场对局重新加载引擎    ×
舟遥遥以轻扬  风飘飘而吹衣
我发帖:不隐藏、不叫卖、不加密。
级别: 论坛检查
[棋中红钻4级]发帖数量≥1000篇 [棋中黄钻5级]金币数量≥10000枚 [棋中蓝钻1级]乐币数量≥10枚 [未点亮棋中粉钻]贡献值数量<1点 [棋中彩钻3级]精华帖数量≥5篇
发帖
1507
金币
10614
威望
13
贡献值
0
乐币
33
主题
138

只看该作者 4楼 发表于: 2023-08-27
回 3楼(风的线条) 的帖子
建议不要使用非平衡局面

建议使用初始局面,就是从第一步开始走起,只要随机控制红方第一步就可以了,这样比较公平
我发帖:不隐藏、不叫卖、不加密
xxx
级别: 首席版主
[棋中红钻5级]发帖数量≥2000篇 [棋中黄钻1级]金币数量≥100枚 [棋中蓝钻1级]乐币数量≥10枚 [未点亮棋中粉钻]贡献值数量<1点 [棋中彩钻2级]精华帖数量≥2篇
发帖
2238
金币
845
威望
5
贡献值
0
乐币
26
主题
256

只看该作者 5楼 发表于: 2023-08-27
楼主说的不错,值得喜欢搞测试的棋友参考一下
级别: 少尉
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻2级]金币数量≥1000枚 [未点亮棋中蓝钻]乐币数量<10枚 [棋中粉钻2级]贡献值数量≥5点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
325
金币
1290
威望
0
贡献值
6
乐币
0
主题
0
只看该作者 6楼 发表于: 2023-08-27
级别: 四级士官
[棋中红钻1级]发帖数量≥10篇 [棋中黄钻3级]金币数量≥2000枚 [棋中蓝钻3级]乐币数量≥100枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
95
金币
4725
威望
0
贡献值
0
乐币
298
主题
4
只看该作者 7楼 发表于: 2023-08-27
他们不是说过了,这样测试的话基本上就全是和棋的结果吗………………
我发帖:不隐藏、不叫卖、不加密。
级别: 论坛检查
[棋中红钻4级]发帖数量≥1000篇 [棋中黄钻5级]金币数量≥10000枚 [棋中蓝钻1级]乐币数量≥10枚 [未点亮棋中粉钻]贡献值数量<1点 [棋中彩钻3级]精华帖数量≥5篇
发帖
1507
金币
10614
威望
13
贡献值
0
乐币
33
主题
138

只看该作者 8楼 发表于: 2023-08-27
回 7楼(棋中弃帅) 的帖子
如果棋力相差不大,和棋是正常啊,只要测试的局数够多,总有能分出胜负的。

但是如果为了减少和棋,分出胜负。搞打压式设置,或者搞不均衡局面,那就真的不公平了
我发帖:不隐藏、不叫卖、不加密
舟遥遥以轻扬  风飘飘而吹衣
级别: 少尉
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻1级]金币数量≥100枚 [棋中蓝钻1级]乐币数量≥10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
265
金币
740
威望
0
贡献值
0
乐币
18
主题
5
只看该作者 9楼 发表于: 2023-08-27
非平衡局面是换先的,这和举重一个道理,我能举200公斤,你能举180公斤,不就分出胜负了么,如果红开局亏分-200分,我后手能顶和您后手输了,这样能适当拉大胜负比,一样能综合判断引擎棋力的强弱.起始局面,开局红随机走一步,开局红黑各随机走一步,红黑随机走二步,非平衡各种分值比,我都试过了,现在用最多还是200-300分的非平衡局面,分差太大太小意义不大,个人见解,您可以参考着用不同的方法对比测试一下.
舟遥遥以轻扬  风飘飘而吹衣
舟遥遥以轻扬  风飘飘而吹衣
级别: 少尉
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻1级]金币数量≥100枚 [棋中蓝钻1级]乐币数量≥10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
265
金币
740
威望
0
贡献值
0
乐币
18
主题
5
只看该作者 10楼 发表于: 2023-08-27
时间长短上我也各种测试过,现在也是按stockfish的1分加1/100秒,3分+1.8秒的标准来.
舟遥遥以轻扬  风飘飘而吹衣
我发帖:不隐藏、不叫卖、不加密。
级别: 论坛检查
[棋中红钻4级]发帖数量≥1000篇 [棋中黄钻5级]金币数量≥10000枚 [棋中蓝钻1级]乐币数量≥10枚 [未点亮棋中粉钻]贡献值数量<1点 [棋中彩钻3级]精华帖数量≥5篇
发帖
1507
金币
10614
威望
13
贡献值
0
乐币
33
主题
138

只看该作者 11楼 发表于: 2023-08-27
回 9楼(风的线条) 的帖子
局面换先也有问题讨论的,是每一个局面立即换先,还是所有局面轮完再换先。如果是立即换先,同一局面,会不会被之前搜索的Hash干扰呢?如果轮完再换先,要怎样设置总局数才能确保每个局面都轮到呢?

局面换先是每个局面有2局,那设置总局数1000局,实际上是打了1000局还是2000局呢?

引擎不同对局面的优略认定也不同,比如你拿一个200的局面来说,你凭什么肯定两个引擎都一致认为该局面时200呢?

如果人为选局面不当,看是200的局面,实际上大优或者大劣呢?

所以还是初始局面公平。


(好在时机器对决,如果是人和人打架,搞局面换先,允许一个人先拿铁锤把对方捶一下,请问对方还有能力换先吗)
我发帖:不隐藏、不叫卖、不加密
级别: 三级士官
[棋中红钻1级]发帖数量≥10篇 [未点亮棋中黄钻]金币数量<100枚 [未点亮棋中蓝钻]乐币数量<10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
73
金币
23
威望
0
贡献值
0
乐币
0
主题
0
只看该作者 12楼 发表于: 2023-08-27
这个帖子很有用
舟遥遥以轻扬  风飘飘而吹衣
级别: 少尉
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻1级]金币数量≥100枚 [棋中蓝钻1级]乐币数量≥10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
265
金币
740
威望
0
贡献值
0
乐币
18
主题
5
只看该作者 13楼 发表于: 2023-08-27
全局设置
思考策略    限时制:1+0+0 0.6
线程数    1
哈希表    128
后台思考    ×
开局库    ×
局面文件    tournament\220-250分80426局面.txt
随机选取    √
编排模式    循环赛
循环次数    200
同时进行场数    10
超时宽限    200ms
自动判和    回合数>=60 双方分数绝对值<=25
每场对局重新加载引擎    ×

排名
排名    引擎    胜    和    负    胜率    ΔElo
1    0819-pika-avx2    462    335    403    52.46%    +17.1±16.7
2    0818-pika-avx2    424    361    415    50.38%    +2.6±16.4
3    0810-pika-avx2    398    371    431    48.63%    -9.6±16.3
4    0807-pika-avx2    408    349    443    48.54%    -10.1±16.5

计算公式是引擎数n*(n-1)*轮数x*局数y,4*(4-1)*1*200=2400局,2个引擎换先是2*1000=2000局.立即换先,局面数有N个万的,随机抽取,分数么用的和云库的一样,A引擎认为亏了200,B引擎认为亏了180分,忽略不计了,我用的鱼群测试局面为主,旋风的百万局面也有用,没自己单独做,
舟遥遥以轻扬  风飘飘而吹衣
306275732@qq.com
级别: 伯爵
[棋中红钻4级]发帖数量≥1000篇 [棋中黄钻5级]金币数量≥10000枚 [棋中蓝钻1级]乐币数量≥10枚 [棋中粉钻2级]贡献值数量≥5点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
1616
金币
15021
威望
0
贡献值
6
乐币
26
主题
480
只看该作者 14楼 发表于: 2023-08-27
优秀文章,我一直认为上面的两种测试引擎的方法(即高优和核心数和时间设置不平等的测试)不靠谱
计算永远是下好棋的不二法则
https://www.ixigua.com/channel/dianying
xxx
级别: 首席版主
[棋中红钻5级]发帖数量≥2000篇 [棋中黄钻1级]金币数量≥100枚 [棋中蓝钻1级]乐币数量≥10枚 [未点亮棋中粉钻]贡献值数量<1点 [棋中彩钻2级]精华帖数量≥2篇
发帖
2238
金币
845
威望
5
贡献值
0
乐币
26
主题
256

只看该作者 15楼 发表于: 2023-08-27
现在的风、虫、鱼、猫的棋力都在伯仲之间,想要测出引擎的差别真是太难了,也不知道哪种方法最好
306275732@qq.com
级别: 伯爵
[棋中红钻4级]发帖数量≥1000篇 [棋中黄钻5级]金币数量≥10000枚 [棋中蓝钻1级]乐币数量≥10枚 [棋中粉钻2级]贡献值数量≥5点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
1616
金币
15021
威望
0
贡献值
6
乐币
26
主题
480
只看该作者 16楼 发表于: 2023-08-30
Sylvan-CLI 这个是什么软件啊?哪位知道的大神说一下。
计算永远是下好棋的不二法则
https://www.ixigua.com/channel/dianying
级别: 四级士官
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻1级]金币数量≥100枚 [未点亮棋中蓝钻]乐币数量<10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
130
金币
106
威望
0
贡献值
0
乐币
0
主题
1
只看该作者 17楼 发表于: 2023-08-30
回 15楼(xxx) 的帖子
主要是一些低端局占大优后攻杀方面有很大的差别。。在这些低端局里面.新版小虫(老版也有这个问题)与皮卡鱼残局攻杀能力是最差的。(其它几款软件稍好一点。新版名手没试过。老版名手还是可以的。但326不行。是64位176名手多子残局占大优后挺不错的。少子残局略弱于倚天64位版但倚天64位版多子残局占大优后略弱于176名手。所以他们攻杀各有千秋)有很多局面都绝杀分了。大数软件 有时候给时间都算不到。非要纯人变招提示。才能算出来。

这样局面是非常多了。我都测了几年了.测的时候不限时间发现有问题的局面我会让软件 算很久。不管怎么更新。有些局面没很大的改善.最后我得出结论。所有带NNUE引擎都没跑过低端的谱。导至陌生局面占大优后。有些招数走不太理想。有些十几步弃车叫杀算不到。(以上我所说的软件缺点是通过对象棋巫师对战发现问题的)测高端局是发现不了这些问题
级别: 少尉
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻3级]金币数量≥2000枚 [棋中蓝钻1级]乐币数量≥10枚 [棋中粉钻1级]贡献值数量≥1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
285
金币
2766
威望
0
贡献值
1
乐币
37
主题
2
只看该作者 18楼 发表于: 2023-08-30
回 16楼(石破天惊) 的帖子
森罗万象的命令行接口。
级别: 中尉
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻2级]金币数量≥1000枚 [未点亮棋中蓝钻]乐币数量<10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
378
金币
1016
威望
1
贡献值
0
乐币
4
主题
12

只看该作者 19楼 发表于: 2023-08-31
回 13楼(风的线条) 的帖子
我用此方法测试pk0827 pk0408 lingshipk0827,同一cpu指令集,同-规则(亚规),0408关闭胜率计分,也用原始计分。循环500,3*2*500=3000。结果我就不公布了,想请你也来测一下。最近,我在编译方式方法的不同,对可执行文件的影响,产生的引擎性能不同,这个问题上花了太多时间。
快速回复

限56 字节
请不要在回贴只采用字母:“ PP、asdfhjkl、HAO、OK、ddddddd ......”。  请不要在回贴过于简单的内容:“不错、顶、支持、厉害、呵呵、靠、晕........”
 
验证问题: 我们的论坛名字是?
上一个 下一个