⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 棋弈软件基础——残局库.htm

📁 象棋程序设计全资料集(介绍编写象棋程序的方法思路)
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0045)http://www.elephantbase.net/computer/egtb.htm -->
<HTML><HEAD><TITLE>棋弈软件基础——残局库</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb_2312-80">
<META content="MSHTML 6.00.3790.2759" name=GENERATOR></HEAD>
<BODY background=棋弈软件基础——残局库_files/background.gif>
<DL>
  <DIV align=center>
  <CENTER>
  <DT>《<A href="http://www.chessit.net/" target=_blank>国际象棋译文苑</A>》文摘 
  </CENTER></DT></DIV>
  <DIV align=center>
  <CENTER>
  <DT>  </CENTER></DT></DIV>
  <DIV align=center>
  <CENTER>
  <DT><FONT face=隶书 size=6>残局库</FONT> </CENTER></DT></DIV>
  <DIV align=center>
  <CENTER>
  <DT>  </CENTER></DT></DIV>
  <DIV align=center>
  <CENTER>
  <DT><FONT face="Times New Roman">Aaron Tay</FONT> </CENTER></DT></DIV>
  <DIV align=center>
  <CENTER>
  <DT>  </CENTER></DT></DIV>
  <DT>  <FONT face=Arial><STRONG>A1.</STRONG></FONT><FONT 
  face="Times New Roman"> </FONT><FONT 
  face=黑体><STRONG>什么叫残局库?</STRONG></FONT><FONT face=Arial><STRONG>(endgame 
  tablebase</STRONG></FONT><FONT face=黑体><STRONG>,简称</STRONG></FONT><FONT 
  face=Arial><STRONG>egtb)</STRONG></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>一系列交换之后直接进入残局库里存有的局面。引擎于是搜索探查残局库并取得那个设想局面的结果。如此当然提高了棋力。 

  <DT>  <FONT 
  color=#000080>【译注:作者说他不熟悉残局数据库的技术细节;译者也不熟悉,那也需要一定数学和程序设计基础。但作者的解释未免也太过简单些了,不妨试着这样解释:残局库是经特别算法产生的特定格式的、储存各限定棋子数目的残局之所有局面及其估值的数据库文件集合。比如王</FONT><FONT 
  face="Times New Roman" color=#000080>+</FONT><FONT 
  color=#000080>车对王的最简单残局,其相应数据库文件就储存了由这三个棋子在棋盘上组成的一切可能局面及估值,所以当局面到达王</FONT><FONT 
  face="Times New Roman" color=#000080>+</FONT><FONT 
  color=#000080>车对王局面时,引擎就直接在数据库中搜索、对照局面并取出相应估值,这样它“想都不用想”就知道该如何走。因为制作残局库文件时,用回溯分析计算过所有局面,得出最佳结果,因此按残局库里的走法走相对应的残局是最正确最完美的</FONT><FONT 
  face="Times New Roman" color=#000080>(</FONT><FONT 
  color=#000080>这是对合格残局库的要求</FONT><FONT face="Times New Roman" 
  color=#000080>)</FONT><FONT color=#000080>。所以使用残局库大大提高了引擎走末段残局的棋力</FONT><FONT 
  face="Times New Roman" color=#000080>--</FONT><FONT 
  color=#000080>几乎不花时间计算且又走出最准确的棋步。目前,棋子数目最大的是六子残局,即双方剩下棋子加起来一共六只,不管什么组合</FONT><FONT 
  face="Times New Roman" color=#000080>(</FONT><FONT 
  color=#000080>显而易见,双方各有一只王加起来就占了两子</FONT><FONT face="Times New Roman" 
  color=#000080>)</FONT><FONT color=#000080>。】</FONT> 
  <DT>  
  <DT>  <FONT face=Arial><STRONG>A2.</STRONG></FONT><FONT 
  face="Times New Roman"><STRONG> </STRONG></FONT><FONT 
  face=黑体><STRONG>有多少种残局库格式?彼此有什么不同?</STRONG></FONT> 
  <DT>  有各种各样的残局库格式,包括肯·托普森式<FONT face="Times New Roman">(Ken 
  Thompson)</FONT>、史蒂文·爱德华兹式<FONT face="Times New Roman">(Steven J. 
  Edwards)</FONT>、欧根尼·纳利莫夫式<FONT face="Times New Roman">(Eugene 
  Nalimov)</FONT>以及<FONT face="Times New Roman">Chessmaster9000</FONT>专用的<FONT 
  face="Times New Roman">EDGB</FONT>残局库格式。 
  <DT>  不过总的来说它们划分为两种残局库类型:将杀步数<FONT 
  face="Times New Roman">(DTM)</FONT>类型和变换步数<FONT 
  face="Times New Roman">(DTC)</FONT>类型。粗略地以非专业语言来说,彼此之间区别如下: 
  <DT>  将杀步数<FONT face="Times New Roman">(DTM)</FONT>类型:即<FONT 
  face="Times New Roman">Distance to mate</FONT>,这种类型的库为每一个局面储存最短的将杀可能<FONT 
  face="Times New Roman">(</FONT>以层,即<FONT 
  face="Times New Roman">ply</FONT>来计算,一层相当于半个回合<FONT 
  face="Times New Roman">)</FONT>。例如<FONT 
  face="Times New Roman">Nalimov</FONT>残局库。 
  <DT>  变换步数<FONT face="Times New Roman">(DTC)</FONT>类型:即<FONT 
  face="Times New Roman">Distance to 
  conversion</FONT>,这种类型的库储存每一个局面及其一个“转换”之间的最短层数。所谓一个转换,指或者是兵升变,或者某子被吃去,或者出现将杀。例如<FONT 
  face="Times New Roman">Thompson</FONT>残局库。 
  <DT>  另外,无论是<FONT face="Times New Roman">DTM</FONT>还是<FONT 
  face="Times New Roman">DTC</FONT>类型的残局库,都不能识别<FONT 
  face="Times New Roman">50</FONT>回合自然限着规则。为了克服它们的缺点,已经提出了<FONT 
  face="Times New Roman">DTZ</FONT>和<FONT 
  face="Times New Roman">DTR</FONT>另外两种类型。但至今只停留在理论上。 
  <DT>  说到具体每种格式的区别,还不能简单就说得清楚的。<FONT 
  face="Times New Roman">Crafty</FONT>的作者于<FONT 
  face="Times New Roman">2000</FONT>年<FONT 
  face="Times New Roman">10</FONT>月在新闻组作过如下解释: 
  <DT>  “<FONT face="Times New Roman">Edwards</FONT>式:属于将杀步数<FONT 
  face="Times New Roman">(DTM)</FONT>类型。<FONT 
  face="Times New Roman">Edwards</FONT>式的主要问题是这种残局库体积比其它的庞大。 
  <DT>  “<FONT face="Times New Roman">Nalimov</FONT>式:也属于将杀步数<FONT 
  face="Times New Roman">(DTM)</FONT>类型,但<FONT 
  face="Times New Roman">Nalimov</FONT>式的残局库文件是压缩的,也可以以压缩形式使用而无不利之处。对于拥有全部<FONT 
  face="Times New Roman">3</FONT>、<FONT face="Times New Roman">4</FONT>、<FONT 
  face="Times New Roman">5</FONT>子残局的残局库,别的格式其文件总数大小超过<FONT 
  face="Times New Roman">30G</FONT>,而使用这种格式的大约只有<FONT 
  face="Times New Roman">7.5G</FONT>。 
  <DT>  “<FONT face="Times New Roman">Thompson</FONT>式:属于变换步数<FONT 
  face="Times New Roman">(DTC)</FONT>类型<FONT 
  face="Times New Roman">(</FONT>每当发生吃子,残局的‘级数’都变小<FONT 
  face="Times New Roman">)</FONT>。这种格式难以以压缩形式使用,相对于<FONT 
  face="Times New Roman">Nalimov</FONT>式,它提供的信息也不相同……比如,它告诉你一些信息,却没有区分是负还是和,而<FONT 
  face="Times New Roman">Nalimov</FONT>式对此则有区分。 
  <DT>  “<FONT face="Times New Roman">Nalimov</FONT>式是最佳选择。几乎每个引擎都支持它……” 
  <DT>  当然,他没有提及仅是<FONT face="Times New Roman">Chessmaster9000</FONT>专用的<FONT 
  face="Times New Roman">EDGB</FONT>格式残局库,因为<FONT 
  face="Times New Roman">EDGB</FONT>是<FONT 
  face="Times New Roman">2002</FONT>年<FONT 
  face="Times New Roman">8</FONT>月才发布的。<FONT 
  face="Times New Roman">Nalimov</FONT>式仍然是最流行的在用残局库格式,因此我想再多谈一点这种格式。 
  <DT>  <FONT 
  face="Times New Roman">Nalimov</FONT>式几近“完美”,因为它把吃过路兵也考虑进去了。但是没把王车易位也考虑进去。只不过,大概只有排局迷才会对此计较。 

  <DT>  总的来说,现代几乎所有的国际象棋程序包括大多数<FONT 
  face="Times New Roman">Winboard</FONT>引擎使用<FONT 
  face="Times New Roman">Nalimov</FONT>式残局库,一部分原因是它们不设版权,一部分原因它们更高效。现在<FONT 
  face="Times New Roman">Nalimov</FONT>式残局库已经出了部分<FONT 
  face="Times New Roman">6</FONT>子残局库。<FONT 
  face="Times New Roman">Nalimov</FONT>式残局库有两种形式,压缩的和非压缩的,压缩的以“<FONT 
  face="Times New Roman">emd</FONT>”为文件后缀。 
  <DT>  多数现代棋弈程序能解压使用压缩的残局库,例如<FONT face="Times New Roman">Crafty</FONT>从<FONT 
  face="Times New Roman">16.5</FONT>版本后就支持压缩的<FONT 
  face="Times New Roman">Nalimov</FONT>式残局库。我注意到有个<FONT 
  face="Times New Roman">Winboard</FONT>引擎<FONT 
  face="Times New Roman">Esc</FONT>只能用非压缩的。 
  <DT>  残局库还有其它一些格式,但比较少见。比较著名的,商业性高级棋弈软件<FONT 
  face="Times New Roman">Nimzo8</FONT>使用它的<FONT 
  face="Times New Roman">Nimzo</FONT>残局库,这种残局库放入到内存中使用,因此读取比较快。一直没有公开发表但棋力不俗的<FONT 
  face="Times New Roman">Ferret</FONT>也使用它的专用残局库。我文章余下部分,除非特别说明,残局库都是指<FONT 
  face="Times New Roman">Nalimov</FONT>式。 
  <DT>  
  <DT><STRONG>  </STRONG><FONT face=Arial><STRONG>A4.</STRONG></FONT><FONT 
  face=黑体><STRONG> 常见棋弈程序是否支持、以及各支持什么格式的残局库?</STRONG></FONT> 
  <DT>  这里有一些:<FONT 
  face="Times New Roman">Chessbase</FONT>出版发行的那些大名鼎鼎的高级软件比如<FONT 
  face="Times New Roman">(Deep)Fritz</FONT>、<FONT 
  face="Times New Roman">Junior</FONT>、<FONT 
  face="Times New Roman">HIARCS</FONT>、<FONT face="Times New Roman">Shredder 
  5.0+</FONT>等都支持<FONT face="Times New Roman">Nalimov</FONT>式;<FONT 
  face="Times New Roman">Shredder 5.0+</FONT>另支持<FONT 
  face="Times New Roman">Thompson</FONT>;<FONT 
  face="Times New Roman">Nimzo8+</FONT>另支持自身的<FONT 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -