#关于速度型和知识型引擎的思考
象棋引擎的主攻方向有速度型和知识型
假设两个引擎的起点一样(主搜索算法和审局一样),这个时候,如何进一步发展引擎?
1、采用剪枝算法或者精简审局
2、加大知识
我把第一种方法归为速度型,第二种归为知识型
两个起点一样的引擎,引擎A是速度型发展,引擎B是知识型发展,经过一段时间后,他们会有这样的差别
引擎A比引擎B多搜索一层,引擎B的每一步棋步质量比引擎A高
假设低层时多搜索一层的价值为1,同时,随着层数的增加,价值开始递减(例如,高层14层对15层,多一层的价值为0.2)
在这个时候,引擎B每一步的搜索质量分数多增加了0.1
这时候,知识型和速度型对上了,他们的胜负结果如下:
1. 速度型的引擎A在层数较低(如8层)时,每一次搜索比引擎B多0.2分,毫无疑问,这个时候速度型引擎A在多次棋步积累后会战胜引擎B
2. 知识型的引擎B在层数较高时(如10层),每一次搜索比引擎A多0.2分(层数效应衰减导致10层时多搜索一层只有0.8分,而每一层引擎B的积累分数为0.1分),同样引擎B胜出毫无疑问
上面的是一个抽象的模型,但是基本能通过这个模型,解释为什么一些引擎慢棋厉害,一些引擎快棋厉害
所以,我得出以下一些结论:
1、引擎纯速度的提高,随着硬件的发展,空间是有限的
2、剪枝算法,如果太多,快棋效果较好,慢棋是得不偿失
3、搜索算法上面的突破永远是最有效的提高方法
4、知识越多,快棋越差,慢棋越好
这让我多少明白到,为什么我的引擎,超快棋(3+2)怎么也下不赢对手,而快棋(10+3)能抗衡对手,到了慢棋能战胜对手的原因
象棋引擎的主攻方向有速度型和知识型
假设两个引擎的起点一样(主搜索算法和审局一样),这个时候,如何进一步发展引擎?
1、采用剪枝算法或者精简审局
2、加大知识
我把第一种方法归为速度型,第二种归为知识型
两个起点一样的引擎,引擎A是速度型发展,引擎B是知识型发展,经过一段时间后,他们会有这样的差别
引擎A比引擎B多搜索一层,引擎B的每一步棋步质量比引擎A高
假设低层时多搜索一层的价值为1,同时,随着层数的增加,价值开始递减(例如,高层14层对15层,多一层的价值为0.2)
在这个时候,引擎B每一步的搜索质量分数多增加了0.1
这时候,知识型和速度型对上了,他们的胜负结果如下:
1. 速度型的引擎A在层数较低(如8层)时,每一次搜索比引擎B多0.2分,毫无疑问,这个时候速度型引擎A在多次棋步积累后会战胜引擎B
2. 知识型的引擎B在层数较高时(如10层),每一次搜索比引擎A多0.2分(层数效应衰减导致10层时多搜索一层只有0.8分,而每一层引擎B的积累分数为0.1分),同样引擎B胜出毫无疑问
上面的是一个抽象的模型,但是基本能通过这个模型,解释为什么一些引擎慢棋厉害,一些引擎快棋厉害
所以,我得出以下一些结论:
1、引擎纯速度的提高,随着硬件的发展,空间是有限的
2、剪枝算法,如果太多,快棋效果较好,慢棋是得不偿失
3、搜索算法上面的突破永远是最有效的提高方法
4、知识越多,快棋越差,慢棋越好
这让我多少明白到,为什么我的引擎,超快棋(3+2)怎么也下不赢对手,而快棋(10+3)能抗衡对手,到了慢棋能战胜对手的原因