残局库

更新时间:2024-05-21 15:50

残局库是经特别算法产生的特定格式的、储存各限定棋子数目的残局之所有局面及其估值的数据库文件集合。概述地说,残局数据库是储存了残局局面并经回溯分析计算过的数据库文件,它使用在棋弈程序上,当进入残局时,只要适合使用的残局数据库文件存在,程序将走得非常完美。 多数棋弈引擎并不一定要到达残局库所涵盖的局面时才使用残局库。例如,在到达如此局面之前几步,引擎计算(但还没走棋)一系列交换之后直接进入残局库里存有的局面。引擎于是搜索探查残局库并取得那个设想局面的结果。如此当然提高了棋力。

简介

残局库格式是多种多样的,包括肯·托普森式(Ken Thompson)、史蒂文·爱德华兹式(Steven J. Edwards)、欧根尼·纳利莫夫式(Eugene Nalimov)以及Chessmaster9000专用的EDGB残局库格式。  不过总的来说它们划分为两种残局库类型:将杀步数(DTM)类型和变换步数(DTC)类型。粗略地以非专业语言来说,彼此之间区别如下:  将杀步数(DTM)类型:即Distance to mate,这种类型的库为每一个局面储存最短的将杀可能(以层,即ply来计算,一层相当于半个回合)。例如Nalimov残局库。  变换步数(DTC)类型:即Distance to conversion,这种类型的库储存每一个局面及其一个“转换”之间的最短层数。所谓一个转换,指或者是兵升变,或者某子被吃去,或者出现将杀。例如Thompson残局库。  另外,无论是DTM还是DTC类型的残局库,都不能识别50回合自然限着规则。为了克服它们的缺点,已经提出了DTZ和DTR另外两种类型。但至今只停留在理论上。  说到具体每种格式的区别,还不能简单就说得清楚的。Crafty的作者于2000年10月在新闻组作过如下解释:  “Edwards式:属于将杀步数(DTM)类型。Edwards式的主要问题是这种残局库体积比其它的庞大。  “Nalimov式:也属于将杀步数(DTM)类型,但Nalimov式的残局库文件是压缩的,也可以以压缩形式使用而无不利之处。对于拥有全部3、4、5子残局的残局库,别的格式其文件总数大小超过30G,而使用这种格式的大约只有7.5G。  “Thompson式:属于变换步数(DTC)类型(每当发生吃子,残局的‘级数’都变小)。这种格式难以以压缩形式使用,相对于Nalimov式,它提供的信息也不相同……比如,它告诉你一些信息,却没有区分是负还是和,而Nalimov式对此则有区分。  “Nalimov式是最佳选择。几乎每个引擎都支持它……”  当然,他没有提及仅是Chessmaster9000专用的EDGB格式残局库,因为EDGB是2002年8月才发布的。Nalimov式仍然是最流行的在用残局库格式,因此我想再多谈一点这种格式。  Nalimov式几近“完美”,因为它把吃过路兵也考虑进去了。但是没把王车易位也考虑进去。只不过,大概只有排局迷才会对此计较。  总的来说,现代几乎所有的国际象棋程序包括大多数Winboard引擎使用Nalimov式残局库,一部分原因是它们不设版权,一部分原因它们更高效。现在Nalimov式残局库已经出了部分6子残局库。Nalimov式残局库有两种形式,压缩的和非压缩的,压缩的以“emd”为文件后缀。  多数现代棋弈程序能解压使用压缩的残局库,例如Crafty从16.5版本后就支持压缩的Nalimov式残局库。我注意到有个Winboard引擎Esc只能用非压缩的。  残局库还有其它一些格式,但比较少见。比较著名的,商业性高级棋弈软件Nimzo8使用它的Nimzo残局库,这种残局库放入到内存中使用,因此读取比较快。一直没有公开发表但棋力不俗的Ferret也使用它的专用残局库。我文章余下部分,除非特别说明,残局库都是指Nalimov式。

常见格式

Chessbase出版发行的那些大名鼎鼎的高级软件比如(Deep)Fritz、Junior、HIARCS、Shredder 5.0+等都支持Nalimov式;Shredder 5.0+另支持Thompson;Nimzo8+另支持自身的Nimzo残局库;Rebel Tiger 2.0和Chess Tiger 14.0也支持Nalimov式和CT15,早期Rebel不支持任何残局库;Chessmaster 9000及以后版本支持其专用的EDGB残局库;Chess Genius 6.5支持Thompson式;绝大部分免费的Winboard引擎都是支持Nalimov式,其中Crafty在15.21版本之前使用Edwards式,之后只支持Nalimov式;16.5版本之后可使用压缩的Nalimov式残局库。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}