📄 棋弈软件基础——残局库对引擎棋力的负面影响.htm
字号:
face="Times New Roman">50</FONT>步自然限着即可。然而,当前的托普森残局库也没考虑这一点。至于其它类型的残局库考虑了<FONT
face="Times New Roman">50</FONT>步自然限着,但又有它们自身的问题。
<DT> 似乎除了让引擎懂得如果在残局库里找到了能杀但却是突破<FONT
face="Times New Roman">50</FONT>步自然限着的路线,就继续搜索,之外引擎作者还难以找到其它解决办法。别说这只是部分的解决,而且该法本身还有不少技术困难。
<DT>
<DT><FONT face="Times New Roman" size=4><STRONG>4) </STRONG></FONT><FONT
face=楷体_GB2312 size=4><STRONG>“懂得太多”的尴尬</STRONG></FONT>
<DT>
<DT> 由于有残局库,引擎有时会因为“懂得太多看得太远”了反而出现尴尬情况。比如,装有残局库的一方引擎在残局库里发现自己要输棋,它就可能过早投降;问题是对方<FONT
face="Times New Roman">(</FONT>人或者没有装残局库的引擎<FONT
face="Times New Roman">)</FONT>却不一定知道怎么杀的<FONT
color=#000080>【译注:比如要漫长几十步之后才能杀且很不好找到正着的那些局面】</FONT>。类似的尴尬还有,某个局面里假如走某个变化取胜的机会达到<FONT
face="Times New Roman">99%</FONT>,对方只有在最精确的防守下才能和棋<FONT
face="Times New Roman">(</FONT>如果没有残局库将非常困难<FONT
face="Times New Roman">)</FONT>;可是正因为残局库就是指示最精确的变化,结果持有利一方的引擎由于发现在这“最精确”的变化里必然成和,于是就会放弃这条有<FONT
face="Times New Roman">99%</FONT>取胜机会的路线。
<DT> 不过严格来说,这也不好怪残局库,特别是你要追求<FONT
face="Times New Roman">100%</FONT>客观着法的时候。某些情况下,几乎所有引擎,不管用没用上残局库,都会由于看得太远而出这些“过于精确”的尴尬。
<DT>
<DT><FONT face="Times New Roman" size=4><STRONG>5) </STRONG></FONT><FONT
face=楷体_GB2312 size=4><STRONG>残局库降低了搜索速度</STRONG></FONT>
<DT>
<DT> 由于要在残局数据库里探测,所以引擎的搜索速度下降。这个效应很难评估。我们知道探测数据库会降低引擎的每秒搜索速度,通常使单位时间内搜索的深度下降<FONT
color=#000080>【译注:残局数据库是存放在硬盘上的文件,搜硬盘当然比在</FONT><FONT face="Times New Roman"
color=#000080>CPU</FONT><FONT
color=#000080>和内存中运算慢很多;这主要是当前硬件技术决定的】</FONT>。有时搜索深度下降,但由于使用到了残局库,也能找到好棋。问题是在部分分支变化里找得到好棋一定能抵消搜索速度全面下降的负面影响吗?在还没探测到残局库末端的情况下搜索速度全面下降意味着引擎思考短浅得多;假如当前探测的其实是没有用的局面,根本不会发生的或者能避免的,这种时候搜索速度全面下降的负面影响就大了。
<DT> 这个问题如果在引擎-引擎之间对战情况,就只能通过专用测试局面来解决。曾经有一次残局能力测试,包括<FONT
face="Times New Roman">7</FONT>种商业引擎,使用了<FONT
face="Times New Roman">10</FONT>个专用残局测试局面。引擎<FONT
face="Times New Roman">(</FONT>轮流<FONT
face="Times New Roman">)</FONT>分成一方用残局库另一方不用,残局库包括全部<FONT
face="Times New Roman">5</FONT>子残局。测试结果,用残局库一方仅以<FONT
face="Times New Roman">1</FONT>分之微险胜不用残局库一方,<FONT
face="Times New Roman">70.5-69.5</FONT>。
<DT> 但是,人们发现在其中某些局面里,不用的那一方表现得比用的那一方更好!把其中一个看来非常需要残局库的局面拿走<FONT
face="Times New Roman">(</FONT>在这个局面的测试里用的一方大胜<FONT
face="Times New Roman">)</FONT>,余下<FONT
face="Times New Roman">9</FONT>个局面的测试总结果,却是不用的那一方以<FONT
face="Times New Roman">66-60</FONT>大胜!
<DT> 不用残局库的一方成绩最好的是图<FONT face="Times New Roman">3</FONT>局面,黑先。
<DIV align=center>
<CENTER></DIV>
<DT> </CENTER>
<DIV></DIV>
<DIV align=center>
<CENTER></DIV>
<DT><IMG height=256 src="棋弈软件基础——残局库对引擎棋力的负面影响_files/egtbweak3.gif" width=256>
</CENTER>
<DIV></DIV>
<DT>
<DT> 当然我们可以看出,仅仅拿走一个测试局面就导致成绩逆转,可见测试局面的选择有很大关系。但这个测试仍然充分说明了对于某些引擎和某些局面来说,用上全套<FONT
face="Times New Roman">3</FONT>到<FONT
face="Times New Roman">5</FONT>子残局库的确降低了引擎的棋力水平,而不仅是有没有作用那么简单。
<DT> <FONT color=#000080>【译注:译者也曾在本站留言簿发过一个棋图局面,如图</FONT><FONT
face="Times New Roman" color=#000080>4</FONT><FONT color=#000080>白先。</FONT>
<DIV align=center>
<CENTER></DIV>
<DT> </CENTER>
<DIV></DIV>
<DIV align=center>
<CENTER></DIV>
<DT><FONT color=#000080><IMG height=256
src="棋弈软件基础——残局库对引擎棋力的负面影响_files/egtbweak4.gif" width=256></FONT> </CENTER>
<DIV></DIV>
<DT>
<DT><FONT color=#000080>只要有些经验可以看出白方走哪步胜,高级的引擎也很快看出这步</FONT><FONT
face="Times New Roman" color=#000080>(</FONT><FONT
color=#000080>另一步</FONT><FONT face="Times New Roman"
color=#000080>1.Nf3</FONT><FONT color=#000080>也行</FONT><FONT
face="Times New Roman" color=#000080>)</FONT><FONT
color=#000080>,但前提是不要用残局库;如果给这些引擎挂了残局库,结果是哭笑不得的——虽然也不能说它们一定错。试试?】</FONT>
<DT> 我认为需要做更多的测试,测试更多的局面和使用更多的引擎。我无法细分每种引擎来说,所以如果有引擎设计调试得用上残局库全部都表现得好也不是不可能的。
<DT> 另外,若用<FONT
face="Times New Roman">5</FONT>子残局库,要注意优选做法可能是也装上其残局库子集。似乎使用<FONT
face="Times New Roman">4</FONT>子残局库很“安全”,另外再加上王车兵对王车残局库吧,它很常出现。<FONT
color=#000080>【译注:所谓“残局库子集”,是指上一级残局库演变而来的各种可能残局,典型的比如王兵对王兵,既然兵有可能升变为后、车、马、象,那么残局库子集就是王后对王兵、王车对王兵等等类推,由于</FONT><FONT
face="Times New Roman" color=#000080>Nalimov</FONT><FONT
color=#000080>残局库每一种残局文件总是一白方一黑方成对出现下载的,所以只要成对下载,究竟是哪一方升变就不用专门考虑了;否则若只有王兵对王兵残局库,却没有王后对王兵等子集,如其它文章说过,有些引擎到此会出现糊涂的;到译此文为止,不知道这个问题有多少引擎已解决了;大可一试】</FONT>
<DT> 有一个情况要注意,上面提到的残局库削弱引擎棋力水平的五种情况<FONT
face="Times New Roman">(</FONT>可能要除去第一种<FONT
face="Times New Roman">)</FONT>,只会是当引擎在搜索的同时又已经开始进行残局库探测的情况下,才会产生所说的负面影响。如果当前局面已经到达了你残局库里所拥有的局面,就不会出现上述负面问题。
<DT> 有研究者提出的建议很有意义,如果引擎能够让使用者指定在引擎搜索过程中去探测哪些残局库<FONT
face="Times New Roman">(</FONT>最理想的是探测那些光靠引擎自己的常规搜索和内建知识还不能很好处理的局面<FONT
face="Times New Roman">)</FONT>,以及指定局面到了哪个阶段才去探测残局库<FONT
face="Times New Roman">(</FONT>其它的就不探测<FONT
face="Times New Roman">)</FONT>,那就太好了。
<DT>
<DT><FONT face=楷体_GB2312 size=4><STRONG>结论</STRONG></FONT>
<DT>
<DT> 我希望这篇文章不会吓得你不敢用残局库了。我个人认为,上述五点除了最后一点,其它的都不大可能有显著影响,即使是最后一点也还需要更多测试去说明。我自己还是会用全套的残局库。
<DT>
<DT> 出处:<FONT face="Times New Roman">Aaron's Winboard and Chess Engines
FAQ</FONT>
<DT> 译者:<FONT face="Times New Roman">michael</FONT>
<DT> 类型:略有删节 </DT></DL>
<DIR>
<LI>上一篇 <A href="http://www.elephantbase.net/computer/egtb.htm">棋弈软件基础——残局库</A>
<LI>下一篇 <A
href="http://www.elephantbase.net/computer/basic_started.htm">国际象棋程序设计<FONT
face="Times New Roman">(</FONT>一<FONT face="Times New Roman">)</FONT>:引言</A>
<LI>返 回 <A href="http://www.elephantbase.net/computer.htm">象棋百科全书——电脑象棋</A>
</LI></DIR>
<DIV align=center>
<CENTER>
<TABLE border=0>
<TBODY>
<TR>
<TD>
<P align=center><A href="http://www.elephantbase.net/" target=_blank><IMG
height=31 src="棋弈软件基础——残局库对引擎棋力的负面影响_files/elephantbase.gif" width=88
border=0></A></P></TD></TR>
<TR>
<TD><A href="http://www.elephantbase.net/" target=_blank><FONT face=Arial
size=2><STRONG>www.elephantbase.net</STRONG></FONT></A></TD></TR></TBODY></TABLE></CENTER></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -