楚界象棋网

 找回密码
 立即注册
查看: 699|回复: 0

中国象棋软件开局库说明

[复制链接]

12

主题

23

帖子

123

积分

审核员

Rank: 7Rank: 7Rank: 7

积分
123
发表于 2019-9-8 23:25:05 | 显示全部楼层 |阅读模式
什么是开局库
开局库是棋类软件的组件之一,包括与开局有关的数据库,一个全面的开局库基本上包括所有的开局和变化,开局库主要运用在象棋中。在计算机博弈中论文中亦可见到相关说明。
开局库的意义
计算机的计算能力十分强大,但是由于其计算原理,导致一盘棋中有很多关键步数看不到,从而导致局势不利。这种情况在局势复杂(棋子数多)的情况下更容易出现。
优秀的开局是赢得一盘棋的基础,如果开局不利,往往导致全局的被动乃至输棋。而有很多布局陷阱计算机是不能发现的,因此就需要有一个东西指导计算机走好开局,这就是开局库。
如果加载开局库,理论上计算机会走开局库中得分最高的开局,直到开局库已经到头不再指引计算机时,计算机才会自己计算,而之前计算机是不会自己计算的。
计算方法
以中国象棋为例,通常开局第一步大家都会走中炮、进三兵、飞相等。一般没有人会走进中兵,上帅等棋,如果走了往往意味这局将会输棋。
开局库也是一样,收集大量的完整对局,按照一定的计算方法整理成开局棋谱。
计算方法
要自己制作一个开局库,首先我们要搜集足够的对局,而且尽量是名家大师的对局
之后使用制作工具加载这些棋谱,使用计算公式来制作
开局评分=(胜局数×胜局权重+和局数×和局权重+负局数×负局权重)÷附加系数
胜局数、和局数、负局数sgh由计算机自动统计,不用你填写
胜局权重:该步如果取胜将得多少分。比如第一步红方走的炮八平五取胜了715场,这里填3,该步将得到715*3=2145分
和局权重:该步做开局如果走和将得多少分。比如第一步红方走的炮八平五导致和棋了14场,这里填1,该步将得到14*1=14分
负局权重:该步做开局如果失败将得多少分。比如第一步红方走的炮八平五导致输棋111场,这里填-1(通常填写负值),该步将得到111*(-1)=-111分
附加系数:没什么实际用处,只是调整开局得分范围而已,li例如这里填2.则第一步红方炮八平五开局得分为(2145+14-111)/2=1074
黑方的计算方式也一样。直到开局某步得分低于0,则这个开局将被认为不可取开局,且不会继续计算分支了。
使用方法
旋风界面:下载以后重命名为cyclone.obk复制到软件文件夹内部覆盖以前的开局库即可!兵河界面需要手动加载具体请参考兵河五四内置的说明书或者棋中论坛教程
人机开局库
人机开局库和一般开局库不一样的地方是数据量巨大,而且基本没有经过人工修正只保留了原始的数据,使用的时候不能直接纯机走,只能人机进行选择招法。
使用方法讲解
相信大家都一直在听说,纯机永远是下不过人机的,真正的高手一定是人机高手!所以很多朋友一直在问我,人机到底是怎么回事?其实我个人理解,人机应该分为三个阶段,人机开局阶段,中局大量软件计算加少量人为判断阶段,残局大量人为判断加上软件计算阶段!那么今天先说说人机开局阶段!我个人是比较喜欢人机开局的,因为人机开局一般不会中刀而且对于棋力的提高绝对是有很大好处的,就像背棋谱一样,走的次数多了自然就记住了。一年以前,我的双核笔记本电脑在QQ新中国象棋高分一区(简称高一)里面用人机开局配上论坛上面现在的破解引擎也鲜有敌手,但是现在由于现在做库的大侠们不断的努力,使得人机开局越来越难占到优势,要是对于局面不熟悉的话,还很容易走成劣势局面!
在开始之前,我们先来了解一下,软件是怎么调用开局库的!这里就以象棋旋风为例!首先打开你的软件点击-查看-窗口-开局库、你应该可以看到一个上面写了着法的库,比如 炮二平五 分数300257 胜局数 89951 和局数 89354 负局数 69467 允许 Y这些数字的意思就是我们这个库里面现在统计的开局红棋走炮二平五这步棋,红棋赢过89951盘和过89354盘输过69467盘,如果软件自己走的话,就会自动选择分数最高的一步棋走!我们做开局库的时候一般默认赢过一盘得2分和过一盘得1分,输的不得分!那么问题来了、比如走到中局一个地方有两个选择,第一步棋炮八平六 胜10盘和2000负10000盘,那么开局库里面的分数就应该是2020分,而另外一个选择马六进七 胜 200盘和100盘负10盘那么开局库里面的分数就应该是500分,要是我们人来判断的话,我相信所有的朋友都会选择第二种着法吧!但是软件不会。这就需要我们来人机了,呵呵。那么有的朋友说,我选择胜率高的不就可以了,那我再举个例子。比如还是两个着法,第一种胜5盘和0盘负0盘,胜率100%应该还可以了吧,第二种着法胜3000和1000负100再要大家选择的话,我想大家都会选择第二步了吧!因为也许下一步对方就可以脱谱了。那么究竟要怎么选择才好呢,简单的说,就是要胜得多胜率又高的,要是有一步胜500000和0负0的棋步可以选择就最好,没有的话就选择走的盘数多,胜率又高的!而且对不同的人,不同的机器,选择也应该不同。比如我的电脑好,对家的水平也很一般,那么久可以选择胜率高一点,走的盘数少一些的,尽快脱谱,如果我是后手,对家的实力很强,那么尽量把谱拖长一点,先谋求一盘和棋,等换成先手再想法突破也是一个不错的选择!
另外,需要说的是,现在的兵河功能非常强大,支持观棋思考,如果时间充裕的话,可以再参考局面分数,这样更有把握。但是不要直接连线走子,开局像下棋一样,我一般会看看后面三步的变化。为什么要看呢,再举个例子。还是两步棋第一步胜2000和100负100第二步胜500和100负200,那么大家会说肯定第一步好,事实上,只要你再看看第一步后面对家的应发里面,显示,他有两步棋。第一种胜100和50输0第二种胜0和0输2000,很显然他会选择第一步,这下你就傻眼了!呵呵。一看这种情况就应该考虑第二步棋了!




回复

使用道具 举报

手机版|小黑屋(曝光台)|【楚界象棋网客服】 ( 鄂ICP备19002522号

GMT+8, 2020-9-26 04:01 , Processed in 0.068489 second(s), 19 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表