公安县公安局肖文红:谈人机技术 - Qzone日志

来源:百度文库 编辑:偶看新闻 时间:2024/07/04 21:09:46

 

        就目前网络象棋的现状分析,可以打个比方,如果把网络中下棋的人群按金字塔进行排列,大量的玩家都在纯人对弈,位于金字塔的底部;随着各种棋软的商业化宣传,论坛、帮派等网络媒介的推波助澜,在金字塔的底部不断涌现出大量棋软的使用者,这些棋软的使用者中有些是新手,有些则可以算是"元老"了[大约早在将族、棋隐时代就已经有人开始棋软的使用了];最初就是在这些"元老"之中,诞生了"人机"这个新生事物![当然,后来也不乏一些纯人高手涉足软件,亦为不折不扣的人机高手]。目前来说,人机占据了金字塔顶部的绝大部分位置。但请大家不要忽略了职业棋手的存在,他们跟人机之间的关系是很微妙的,顶尖的人机高手需要从职业棋手那里汲取对抗软件的思路[比如说弃子布局,陷车飞刀等等],而职业棋手呢?也从网络上学习参考一些新变应用于现实中的比赛。为什么这样说呢?因为从面上来看,人机棋手是比不上职业棋手的大局观的,审局上也存在一定的欠缺,甚至部分人机棋手残局功力很差,这都是人机的短处[人机的层次高低在此就有所区分了];而职业棋手呢,他们也不是没有弱点,普遍都存在职业性的惯性思维,亦不可能做到像棋软那样进行无差别的计算判断,中残局过程中出现软招、漏招均是很正常的现象,这也是纯人的共性!在目前的网络比赛中,除非按正规赛制的慢棋规则对弈,否则纯人棋手是明显吃亏的,事实也充分证明了这个问题!那么如何去掌握人机呢?笔者05年撰写过一些文章探讨过这个问题,但是太肤浅不够深入,理论上显得有些夸夸其谈了,没有给出具体的操作方法,同时很多棋友均反映,"人机"的境界是说起来容易做起来难!难到就真的没有方法成为人机高手吗?哪怕是最大可能的去接近人机高手的水平也可以啊!其实方法是有的,而且不只一种,但是任何方法都不可能一蹴而就,试想如果随便学个什么技术方法就能成为人机高手,那还能轮到你吗?大家都是高手,其实也就等于都不是高手!在象棋这方面,绝没有天上掉馅儿饼的事情,要想成为一名真正的人机高手必定要付出相当的时间和精力的。  说到这里,捎带说一下纯机吧,奉劝单纯依靠软件下棋的棋友,哪怕机器再怎么高档、引擎再怎么先进、操作再怎么熟练[如果使用连线器,连操作都省了,只要开着机器拿电费就行了!],到头来其实什么也得不到,徒具虚名而已,甚至很多纯机的朋友连虚名都混不上。如今的弈天,大量的棋软互相连线对砍,电脑前下棋的人只为了所谓的卫冕分和等级,根本不知道自己赢在哪里,输在何处,这样的对弈又有什么意义呢?笔者在此,谨希望通过自己的拙作能促使广大棋软爱好者正确的使用棋软,并在运用棋软的过程中,能或多或少的提升自己的棋力,则了此心愿矣!下面,笔者就具体谈一下自己对人机的一些理解,文中不当之处,请广大棋友批评指正:  
 人机的开局  开局的重要性就不必多说了!人机如何开局呢?就笔者所知,可分为如下几类:  一、借库开局  此类人机棋手应该说仅仅比纯机高明一点,算是初步认识到了开局的价值并付诸于行动了,为了在开局阶段保持(争夺)先手甚或扩大优势,在网络上四处寻找各种各样的开局库进行对弈测试,从棋隐时代,开局库的问题就是一个热门话题,一直持续到现在,各个象棋论坛上不乏出现"无敌开局库"、"红优开局库"、"黑优开局库"、"弈天华山开局库"……,可谓名目众多、琳琅满目,但只要动脑子想一下就不难料到,这样的开局库一旦公开发布,其威力效果肯定要大打折扣,大家都用红优开局库,难道一盘棋都抢着执红棋?你用红优开局库,我用黑优开局库,应该谁赢呢?如果对弈双方机器、软件旗鼓相当的话,赢了就觉得这开局库不错,输了就骂开局库垃圾,呵呵!这里我也不多说一些了,希望能引起纯机棋友的深入思考,用别人的开局库永远是嚼别人的馒头,甚或自己还浑然不知,当成珍馐美食一般津津有味,今天的A开局库赢了这盘棋,明天同样的局面就可能被B开局库砍杀!这世界上是不存在什么无敌的开局的,如果象棋没有其万千变化、无尽奥妙,早就没人下了!  二、自制开局  此类人机棋手可谓引领棋软布局潮流的精英了,收集、筛选出高手对局之后,通过工具软件制作成开局库(目前奇兵等棋软本身即可制作开局库了)。在公开发布开局库之前,应该说,其实战还是具有一定优势的,可一旦发布之后,大家都使用上这个开局库,再巧妙的布局也就不新鲜了,再隐蔽的陷阱也就不高明了!一般而言,开局库的棋步均源于弈天高手对局或者是全国性比赛对局,特别是弈天华山对局,更为开局库制作者所关注,这里是软件的测试战场、人机的顶峰、甚至很多职业棋手包括大师国手们,也能从这里得到他们所需要的灵感新招,谈到这里,笔者甚至在想,或许人机顶尖高手就是充当了职业棋手的陪练角色,而且是免费的,人家学了新招去参加现实比赛冲刺等级夺冠去了,人机呢?除了个别顶尖高手能在网络比赛中夺得一定名次之外,大部分人机能得到什么呢?也许只有对弈的乐趣聊以自慰吧!当然,还是有很多人乐此不疲,甘愿每天泡在网上体验人机的乐趣,这应该算是象棋的魅力呢?还是棋软的魅力呢?的确是一个有意思的问题,笔者也包括在内,呵呵。  言归正传,制作开局库的棋友很少有真正的人机高手,他们本人大都不一定能理解其布局中的变化玄机,所依赖的就是以对局的结果--红胜/黑胜/和,以此为依据合并制作开局库,仅此而已!具体开局库制作方法可以参考奇兵、大圣等棋软的帮助说明文件,在此略过不表。
 三、修改开局  深入研究奇兵软件的开局库,在自己对弈或观摩高手对弈时不断修改、调整自己开局库,从而自主控制开局的变化,使棋形朝己方有利的局势发展,应该算是拿到了进入人机殿堂的钥匙--登堂入室了。  如图(一):   双击自己满意的变化,出现"编辑开局库棋步"菜单,如图(二):   在上图的标志栏中,点击下拉菜单,我们可以看到?、??、!、!!、=、NULL等符号,通过把你熟悉擅长的棋步或者你认为能使局面暂时保持先手的棋步修改为!或!!,把你陌生不解的棋步或者是你认为对手可能下伏反先手段的棋步修改为?或??,还有那些你不喜欢或者已经被证明为过时甚至淘汰的棋步修改为NULL。具体修改开局库的技术可以参考魔法光圈的相关文章,这里不再赘述。  以上自制开局和修改开局两种人机开局方法,其优点在于开局库制作完成后,使用简单易行,节约时间,方便连线对弈,适合10分钟以内的快棋对弈,特别值得一提的是,类似弈天每周末黑龙潭抢灯这样的超快棋对弈,以修改开局库的方法来制作陷阱布局飞刀,效果奇佳,当然,弈天为了避免快棋抢灯过程中纯以机器档次高低决定成败的情况出现,采用了夹击的革新方案,值得赞同,起码抢灯人和守灯人都要具备相当的纯人棋力,否则单靠软件不足以应付对手的夹击。但同时我们也应该看到,自制开局和修改开局的人机布局方法仍然存在一定的局限性,对于自制开局库的棋手来说,因为收集的布局大都是别人的,使用时往往知其然不知其所以然,不能将其战术意图贯穿全局;对于修改开局库的棋手来说,首先是在棋路的选择上缺乏说明性文字,不易掌握,更不易交流,其次,当一路布局变化繁复时,很难随机应变,比如说,对付纯机用的弃子战术、飞刀陷阱可能在对付纯人时就显得班门弄斧了,甚至容易搬石头砸自己脚被对手将计就计;再比如,你修改的开局库如果多是争斗激烈的变化,那么用来对付高水平的棋手需要你策略和棋时怎么办?修改的开局库你是用呢还是不用呢?当然,如果你不嫌麻烦繁琐,可以制作多个开局库,但是在象棋布局发展曰新月异的今天,总要讲究一点效率吧!另外,修改开局库不能提前猜测对手的棋步,在对弈过程中容易造成被动,特别是步时有限的对弈中,能否提前掌握并控制棋形的发展方向,是能否取得(扩大)优势,保持(夺取)先手的关键。  四、辅助开局  以象棋桥、象棋演播室等打谱软件辅助开局,可以说是掌握了不断提高自身人机水平的法门!网络对弈毕竟不像现实正规比赛,具备一定象棋功力的棋手坐在电脑前面,思考之余,完全可以随时翻阅棋书棋谱的,特别是慢棋对弈!而象棋桥、象棋演播室等辅助打谱软件的出现更是帮了广大棋友一个大大的忙!  对于刚刚准备学习人机的棋手,应该如何使用这些辅助软件呢?在此笔者以象棋演播室软件为例进行一下操作解说。  首先,启动象棋演播室(可从网上棋牌乐下载此工具http://www.qipaile.net/,目前最新版本为XQStudio 1.62)  导入一个棋库,如图(三)所示:   图中当前局面为中炮过河车进七兵对屏风马开局,当前黑方可以选择的变化很多,主要变化有炮八平九--平炮兑车,马七进六--左马盘河,象三进五(象七进五)--飞象,士四进五--上士,车一进一--右横车,炮二进四--右炮过河,一般以平炮兑车和左马盘河两大变化为主!  那么针对黑方的变化,红方也要选择自己的变化,彼此交替,直到一方脱谱为止,那么脱谱时谁能占据优势,其布局可以说就算成功了!积累各种主流布局的变化是成为一名人机高手的基本功。有些朋友可能要问,象棋布局那么多,我从何入手呢?俗话说"不怕千招会,就怕一招熟",只要你认准一路变化深入研究下去,积累的变招必然越来越多,在对弈中此路布局演弈起来自然越来越有底气,特别在碰到对手很强或者出于战术上的考虑需要策略和棋的时候,可以及时选择平稳的变招(一般是以兑子的手段简化局面)谋和,这是单纯依靠棋软无法做到的。  有些棋友看到这里也可能会很不耐烦,"积累变招"实在太麻烦了,怎么下手呢?当然,具体操作起来还是有一定技巧的。  大家可能看到上面图中很多棋步的右侧有m*的标记,m代表此处有变招存在,而变招的数量与质量直接关系到整盘棋的局势走向。  1、先说变招的数量问题,笔者认为并不是积累红黑双方的变招越多就越好,如果这样的话,整盘棋你单是从变招中挑选棋步就要头疼不已,而且整体上看来思路不清,条理混乱,对自身棋力的提高有害无益。应该积累你所预料的或者是实战中见到的对手的变招,可能这话比较难以理解,举个例子吧!假设你想研究掌握仙人指路的变化,那么站在你的立场上分析,你必须要千方百计地考虑以仙人指路的布局谋胜,你所要积累的则是对手的变招。  如图(四):   执红选择炮二平五,接下来就要积累对手黑方的变化了,如果对手走象三进五则形成仙人指路转左中炮对卒底炮飞左象的布局,如果对手走炮八平五则形成仙人指路转左中炮对卒底炮转顺炮的布局,等等。以此类推,对弈结果红胜或和,可继续使用此布局--直到对手有新变出现导致黑胜!这时就要仔细分析输棋原因了,首先分析残局阶段,看能否分析出残局红方有无败招,是否还有可以抗衡或反先的正招,一直上溯至中局,看能否思考出针对黑方变招的应对之法,将棋形导入对自己有利的变化,反正有充足的时间分析,如果自己分析不出,还可以请教水平更高的棋友,实在没有应对之策或者不想亲自动脑分析,还有一个办法--在演播室注解栏中做好标记,以后对弈你执黑时如果碰到红方采用仙人指路布局,一定要采用黑方的变招看对手如何应对,并及时做好记录和分析,呵呵!这个办法在弈天软件横行、人机遍地的地方是相当有效的,而且随着积累变招的增多,自己对此路布局将有更加深刻的理解,甚至走上这路变化以后完全可以脱离演播室,熟悉以后,不需要特意去记忆自然也就背过了,如果对手是纯机的话,甚至可以一直走到残局,都不需要开启软件!  谈到这里,有的棋友可能会问,如果对弈时,棋库中记录的是炮二平五,而对手走炮八平五怎么办?这个问题非常简单的,象棋演播室可以左右调换的,只需要点击演播室工具栏中的 按钮即可。也有的棋友会问,如果是快棋对弈,一旦对手走出自己棋库中没有的新变,时间上来不及启动棋软摆设棋局,就算同时手工操作演播室和奇兵走子,也很浪费时间啊!这一点大家完全没必要担心,在演播室工具栏中还有一个按钮 ,这个按钮可以将当前演播室的棋局导入文本棋谱记录到剪贴板,当对手走出演播室没有记录的新招后,注意一下新招是在第几回合,启动奇兵,如图(五):   选择"粘贴棋谱",演播室中的当前棋局就成功导入到奇兵中了,这时奇兵盘面上显示的演播室棋局的最后一个回合,需要点击图(六)的奇兵按钮,将棋局调整到对手变招的那个回合,同时点击 中相应的按钮进行分析,由此,对弈顺利进入中局阶段!导入棋局的操作总共需要大约不到10秒的时间,其缺陷是不适合超快棋对弈,步时如果少于5秒就不建议使用了。  (图六)   2、再谈一下变招的质量问题,说到质量,这里先要排除一部分人机高手,他们自身的棋力达到了相当水平,对棋理理解深刻,布局完全可以脱离软件工具独立完成,这些人机棋手已经进入另外一个境界了,达到这个境界的途径有很多,或者纯人长期打谱练棋,或者用笔者上述的方法进行专项训练,时曰久了,自然也就记忆深刻了!我在下面第5类人机开局中会有相关论述,此处不提。  针对普通层次的人机棋手,同高手对局方有积累变招的必要,特别是纯人棋手甚至职业棋手,他们的布局是非常值得人机借鉴学习的,有些人机同纯人的对局,虽然最终结果是纯人输了,但是并不代表其布局是失败的,人限于自身棋力以及受各种外部因素影响毕竟很容易走出漏招、软招,但是如果人机棋手通过借鉴纯人的布局去对抗棋软或者另外的人机棋手,结果可能是大不一样的,不过是否有纯人高手愿意帮你喂招就要看各自的条件了,有些人机棋手跟纯人下棋冷嘲热讽,孰不知,人家纯人高手愿意动脑子跟你对弈这可是切磋棋艺、提高自己布局水平的大好机会啊!何况,现在已经有很多职业棋手表示不愿意频繁跟人机对弈,其原因很简单,纯人棋手们同棋软周旋费时费力,如果没有什么回报,凭什么让自己的新招被别人拿去啊?特别是他们打算用于自己比赛的布局更不会轻易祭出,最多偶尔去华山测试一下实战效果,这一点作为人机棋手应该有切身感受的,目前弈天华山有价值的对局已经曰渐稀少了,翻来覆去就那么几个人在下,反而近期联众象棋出现不少高水平的对局,可能是比赛的缘故吧!借用一位棋友的话说,"现在的高手,平时不知道躲在什么地方,一到比赛就都冒出来了",呵呵!  如果没有机会和条件同纯人对弈切磋,在各个象棋论坛、帮派内部收集一些棋局进行分析也是提高自身水平的办法。  总之,变招的积累需要一个过程,在这个过程中,由于一定的时间内只专注于研究一两种布局,水平提高还是很快的,试想,一路布局下上几个月,就算赢不了高手,想和棋总不难吧?当这一路变化在跟高手切磋时连续走成和棋谱,那么也意味着你可以去研究另外一路变化了!  在这里需要值得说明的是,对棋局变招的注释是有技巧的,笔者也在不断摸索之中,不是说,文字注释越多就越好,关键是以简练的语言或者符号标明当前的局势优劣,预测棋形发展是走向复杂还是归于平稳。这里,大体介绍一下笔者的标注方法--   如图(七):   在奇兵的曲线窗口中,我们可以看到标准的开局名称,演播室注释窗口标注对局时笔者就以奇兵开局名称为蓝本,粘贴拷贝,同时在开局名称前标注字母R(代表红胜)或者标注字母B(代表黑胜),另外,还有标注"均势"--代表演弈下去易和,标注"执红(黑)易走"--代表红方(黑方)行棋相对安全,不易落败,可选择其变化用来策略和棋,"局面复杂"--代表棋局凶险,易分胜负,可选择用来一拼高下,等等!这里笔者文后附上自己使用的部分布局棋库,以俟棋友,因为笔者毕竟精力有限,还有很多高质量对局未能及时录入棋库,已经录入棋库的有些变招陷阱也随着时间推移效用不是很强了。笔者还是希望广大棋友可以亲自动手,丰富自己喜欢擅长的布局,进而也能形成自己的棋路棋风。  五、独立开局  对于熟悉各类布局的人机高手,在开局阶段,以纯人的理解,运子布局,对棋局中演弈的各种布局变化均胸有成竹,怎么走棋形复杂多变,怎么走棋形平稳易和,只要对手没有脱谱走出新变,应对都是从容不迫,偶尔脑海中忘记谱招,随手翻查一下象棋桥或演播室的收藏棋谱,立即投入战斗,是不需要按笔者上面所说的方法进行操作的。这些人机高手平时关注的已经不再是软件了,更不会去追逐什么最新的引擎,最强的布局,而是会关注国内的大型比赛对局、棋艺上的布局研究、或者深入研究棋书棋谱不时推陈出新等等。
 转帖]〖研究〗☆奇兵开局库修改秘笈(修订完整版)☆ 转自娱乐天下行,作者魔法光圈 ☆★☆奇兵开局库修改秘笈(修订完整版)☆★☆ (转帖请注明出处,谢谢)众所周知,棋软的开局库对于软件发挥其棋力影响巨大。那么能不能让奇兵的开局库像棋隐一样随意修改,去掉其中的软着、错着,以期精雕细刻、精益求精呢?答案是肯定的,但是由于奇兵的编写最初是借鉴了无开局对称问题的国象引擎,在对称性上有一定的问题,直到2.1以后的版本才有了真正对称的开局库,至今仍有一些BUG存在。诚如luobing朋友所言: book.bin create qipu.xqm 300 3 50 与说明书不同的是后面的50 当这步胜局数不足负局数的50%时,棋步不做成开局库. 理论上可以做出优良的开局库. 不过再优良的开局库也难免出现瑕疵,需要小修小补,本文将向您介绍我总结出来的奇兵开局库修改方法,仅供大家参考。如果您有更好的方法,欢迎大家一起探讨。 ★友情提示★ 本文介绍的方法不能代替全新制作优质开局库,只适合精通开局的高手对开局库进行精心雕琢。请各位在尝试之前做好开局库和学习文件的备份工作。并请谨慎修改。切记!!!一、入门篇——让奇兵走喜欢的开局有棋友曾问起可不可以让奇兵一直走我喜欢的开局呢?如飞相局、仙人指路等等。以前我也不知道其中的窍门,后来经过一番摸索,终于领悟了修改的方法。很简单,一教您就会了。启动奇兵,打开分析模式,查看其开局库信息页,单击“相三进五”这一行,是不是看到有“编辑棋步”的小方框出现?按之,则出现“编辑开局库棋步”对话框。在标志中选择“!!”标记确定。看一下,是不是“相七进五”这一棋步后面的标志成为“!!”啦?各位可能会问,怎么不是“相三进五”起变化呢?这就不是我的问题了,请去问赵博士,应该是对称性上还有BUG吧。不管怎么样,尽管是反的,也是飞相局了。这样奇兵起步就一定会走飞相局。如果走腻了飞相局,想改回来,不对,怎么不听使唤了?“相七进五”怎么改不回来啦?没辙啦,恢复备份?且慢!试试看改“相三进五”为NULL,本来就是NULL?别管它,再确定一下,呵呵,恢复原貌了吧。大家不难发现其中的规律:修改的棋步信息会赋予与之对称的棋步,到底是赵博士有意为之,还是什么原因,我就不知道啦。反正,就这么简单,您一定已经掌握了吧。 ◇注意事项◇ 本篇中所介绍修改开局库棋步信息的方法只对book.bin有效。要更改bookc或books中的棋步,请将其命名为book.bin(原book.bin暂时退位)。实践中还发现有部分带“?”号的棋步无法修改标志,有待进一步研究。二、进阶篇——了解棋步信息的详细资料和book.lrn文件及两条命令 1.其实,学会修改棋步标志已经可以控制奇兵走棋了,但是了解一下奇兵开局库的其他参数也没有坏处吧。看看奇兵的说明书—— “棋步在开局库中是唯一的,而且是排序过的,因此查找开局库棋步的时候非常迅速。棋步在开局库中的信息包括棋步、标记(有!!、!、=、?、??五个标记,!!和!标记是必走棋步,?和??标记是避走棋步)、使用频率、学习分数和CAP分数。” 原来就是编辑棋步中的几项哦。使用频率和学习分数可以根据自己的经验和需要修改,但CAP分数好像都是统一的数值-655.36,所以不建议进行改动。使用频率修改后可以使用book trigger n 来控制。但请谨慎修改,不推荐使用。学习分数是奇兵学习后产生的分数,是通过自我学习功能产生的。一般来说,这个数值最好也不要改得太离谱,呵呵。需要注意的是在产生book.lrn文件的同时,book.bin已经发生了变化。book.lrn文件是显示学习内容和与别人交换用的。 2.用记事本打开book.lrn文件,可以看到类似下列的内容: [White "cavalier 10.3"] [Black "unknown"] [Date "2005.09.01"] 相七进五 马8进7 兵七进一 卒7进1 马八进七 马2进3 马二进一卒9进1 炮二平四 马7进8 炮八进三 卒3进1 {-300 11 0} 原来它把对局的双方、时间等相关信息都记录下来了。那么{-300 11 0}又是什么呢?经考证,这三个数分别代表局面分值、层数、等级差(目前都为0)。等级差理论上是“奇兵的等级分-对手的等级分”,以负数为好,表示对手强于奇兵,学习的东西越有价值。但是由于中象软件尚无完备的等级分制度,这一项目前无效。 3.输入学习文件的方法(效果待评估)奇兵中的学习文件,按照Crafty作者的说法,应该是将旧学习文件重命名为book.lrn.old,新的为new.lrn,然后打入import new.lrn clear命令, 会出现类似added 153 learned book lines to book.bin的提示,再import book.lrn.old,以最大限度抵消新旧学习文件之间可能的冲突。(后附作者原文供参考)。
 position.lrn参照此方法操作。实践中我自制了“帅五进一”的学习文件,想要将其添加进book.bin中,却没有显示。我想可能是帅五进一本身在开局库中应该是标记为??的棋步,故没有显示吧,理由是如果在分析模式下,你自己走帅五进一后,会显示炮2平5和炮8平5两步,说明帅五进一在开局库中不是没有,而是“隐藏”起来了,包括兵五进一也有后续棋步,说明奇兵开局库内部是有这样着法的,只是因为要提高效率,而故意将其放在暗处。那么这个import命令应该还是管用的,我猜想它应该只是修改开局库中已有棋步的学习分值,所以推荐采用更加透明可靠的办法。 4.bookupdate命令做个试验(本方法不推荐使用,仅供有兴趣的朋友用备份文件尝试!!)先打入bookupdate,看提示 usage: bookupdate move status learn CAP 再试试看bookupdate h2e2 100 0.70 0,是不是炮八平五的值变成了使用频率100、学习分0.69、CAP0.00?这个命令其实和入门篇中修改的方法是一样的,而且还不能修改棋步标志。此时的修改结果也是反的。三、高级篇——打造自己的飞刀开局库以上的方法只能修改奇兵开局库中已有的棋步,那么可不可以在开局库中加入原本没有的棋步呢?比如“帅五进一”…… “世上无难事,只怕有心人”,我相信一定有办法实现这一目标。但说实话,试验过import学习文件的方法、使用Crafty的命令bookupdate等等,均无功而返。就在想要放弃之时,终于灵光闪现,找到了正确的途径,虽然在严格意义上说或许有点投机取巧,但毕竟也算是实现了!(请看附图2中出现了“帅五进一”、“兵一进一”等着法)在此事先声明,这个方法说来其实很简单,但在没有揭晓之前,恐怕没有几个人会意识到。我也是研究了半天才猛然醒悟的。“踏破铁鞋无觅处,得来全不费功夫”,信哉斯言!或许你已经在用这个方法了也不一定,但相信不是每个棋友都知道的。如果你有比我更好的方法,敬请赐教!内容: 1.把自己想要增加的棋步从头走一遍,可先用save命令查看一下有没有差错,再save 1.pgn命令将其保存为1.pgn。 2.把想要加入的各种开局棋步以此类推,做成多份pgn文件,别忘记给关键棋步手工加上“!!”符号,放入一个新建文件夹内。(我加入了仅有一步的“帅五进一”、“兵一进一”两个文件。) 3.打开奇兵,在文件菜单中选择“文件合并”,将这些pgn文件合并成qipu.xqm,然后再选择“制作开局库”,将其制作为bookc.bin!这不就是制作开局库吗??!!呵呵,有没有上当的感觉?不好意思,并非是我有意“忽悠”大家,实在是“自古华山一条路”,别无二选。除此之外,我想没有能增加“帅五进一”的简易方法了。奇兵和棋隐相比,修改开局库确实不够简便。记得最早的3.6免费版本里面还能将棋步“添加到开局库”,后来的正式版本却取消了这一功能。害的我尝试了至少三种方法(learn 1、import、bookupdate)想要达到加入开局棋步的目的,都没有成功,想不到这个方法的雏形就在说明书里!其实说穿了,我虽然绞尽脑汁可终究也没有发现直接修改book.bin的方法,即使有,也一定相当繁琐(可能是像这样:Zobrist键值4字节,Zobrist锁4字节,着法2字节,权重2字节,学习分数2字节,CAP2字节等等,这样连二进制编辑程序都快不够用啦),几乎什么法子都试过了,却没想到做一个“拾遗补缺”开局库来填补空白!撅倒!闲言少叙,这样再进分析模式看看,两个开局库互通有无,想要的棋步都显示出来了吧,汗之~~~~当然“帅五进一”只是一个示范,请认真添加自己想要的开局进去。仔细推敲一下,此过程虽然和制作开局库并无二致,但实际从构想上和重新制作一个完整的开局库是有巨大区别的——打个比方,我们不是做四则运算,而是仅仅只做加法;不是重新出一本辞海,而是出一本辞海增补本!请相信:辞海+辞海增补本>辞海+现代汉语词典。这个bookc.bin其实就相当于谢谢大师中的userxxbook,是带有你自己想法的特制开局库,是针对book.bin中的不足增加了新着法的飞刀开局库!如果有足够自信的话,可以将其命名为books.bin,因为奇兵会首先搜索这个名字的开局库。这样,你自己独有的秘制飞刀开局库就算大功告成了,它可以弥补book.bin中的不足,再结合先前介绍的修改开局库已有棋步信息的方法,就能让奇兵走出你所期望的独到棋步!重申我们的原则:宁缺勿滥,只加飞刀!否则就失去了制作飞刀的本意!有些棋友迷信庞大的开局库,其实并不可取,甚至还有200多M的超级开局库出现,简直就是大而无当,看似包罗万有,实则千疮百孔(想想世家那个“三步死”的庞大开局库,呵呵)!运气好一些,也只是增加了大量可有可无的废着信息,虚增体积,对提高开局库的整体质量绝无益处!!我们追求的是1+0.1>2!!注意,那些pgn文件先别忙扔进回收站,强烈建议你保留下来,因为随着时间的推移,你可以不断累积新的局面,等到一定数量之后,再重新制作bookc.bin(原先的舍弃),这和奇兵的自我学习完全不同,自我学习多少有些盲目,如果遇到低手,说不定还会学点臭棋回来,所以建议采用这样的“可控学习方式”,开局库到底增加了什么内容完全在你的掌控之中,虽然这需要花费一点精力,但是你可以经过自己的不断琢磨,得到理想的开局库,而且在这个过程中,你的纯人水平也会得到相应的提高。多劳多得哦!如果要求更高一些,想在开局库上胜人一筹,一定要学谢谢的办法,把pgn文件分成红优、黑优两类,分别打造秘版飞刀库,奇兵在奥赛上(至少传说如此)不也是这么做的吗?如果你能坚持积累到30局左右的飞刀着法,你的开局就已经能体现优势了。当然,持续更新是十分必要的,连特大也要研究布局新动向呢。有些着法随着布局的进步会失去价值,那就及时赏它个“?”号吧。此外,你虽然可以用弈星连线XQStudio、象棋桥、WebCChess棋盘来省去手动搬子之苦,但最好能做到对这个小而精的飞刀库了如指掌。相信人机高手对此一定很有兴趣吧,那还不试试看?祝愿大家都能做出自己想要的完美开局库来!希望本文没有让大家失望,因为我已经竭尽所能,无所保留了。再次感谢各位的支持!!!附录一:意外发现我在bookc中只有帅五进一、兵一进一两个棋步,无论用奇兵怎么改标志都不成功。只能将book暂时改名为books,再将bookc改为book后,进入奇兵进行修改。这时可以看到,几乎原来book中所有的棋步都加上了“!”号,除了马二进三是一个“?”(原因待考),这就说明奇兵会自动给books中的每个着法加上“!”号,后续尝试了几步果然如此。所以有自信的高手可以将秘制互补飞刀库命名为books使用,绝对立杆见影!而如果只有bookc和books两个文件,则奇兵就不认开局库了。看来,bookc和books两个文件原本就是book的补充,看来我们制作飞刀库的方法不失作者本意哦。另外,试图把两个二进制开局库强行合并的想法并不可行,我尝试过用二进制编辑程序将bookc.bin中的内容直接复制到book.bin的后面,结果没有作用,并不能显示出“帅五进一”来,反过来复制则非法操作!可见用“庖丁解牛”将两个开局库嫁接的方法也是徒劳的。附录二:Craftyz作者关于import命令的原文 1. import will read and import the knowledge therein into your book.bin. Since I use the same learning code as is used when playing games, this information also gets appended to *your* book.lrn file as well, so that your book.lrn always reflects *everything* your program has learned, so long as you don't ever remove this file. It would be a mistake to use this command on your own book.lrn file, because the things would get counted twice, which might or might not be a good thing. 2. import clear will read Other than that, we are now "open for business"... when the urge strikes you, email me your .lrn file, I'll keep a large master here and update it on occasion. Probably the best thing to do is to send me your .lrn and at the same *instant* delete yours. This will capture anything learned *after* you send me the file, but you'll get it all right back with the next version of book.lrn that I distribute. After getting this new book.lrn back, here's what you should do: 1. rename your old book.lrn to something else. I'll call it "book.lrn.old" here. 2. copy my blearn.dat to your machine, but *do not* put it in the directory with your book.bin and books.bin file because it will get confusing very quickly if you do. Put it somewhere else, because you are going to remove it quickly anyway. I'll call it new.lrn for this example. 3. import new.lrn clear import book.lrn.old and you are ready to rumble again. The first command clears the learned values, sucks in my new learn file and updates everything. the second command re-learns everything you've learned since you sent me the last book.lrn file. After doing this your book.lrn will have my .lrn stuff, plus your old.lrn stuff, just waiting to be sent to me again... If this is confusing, I can probably add an automatic command to do all of this by renaming