?? 棋弈軟件基礎——殘局庫.htm
字號:
<!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 + -