亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 其他策略——殘局庫.htm

?? 象棋程序設計全資料集(介紹編寫象棋程序的方法思路)
?? HTM
?? 第 1 頁 / 共 2 頁
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0051)http://www.elephantbase.net/computer/other_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>《對弈程序基本技術》專題 </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">Martin Fierz */ </FONT>文 </CENTER></DT></DIV>
  <DIV align=center>
  <CENTER>
  <DT><FONT face="Times New Roman">* </FONT>瑞士<FONT 
  face="Times New Roman">Windisch</FONT>應用科學學院<FONT 
  face="Times New Roman">(Aargau</FONT>學院<FONT face="Times New Roman">)</FONT> 
  </CENTER></DT></DIV>
  <DT>  
  <DT><FONT face=楷體_GB2312 size=5><STRONG>簡介</STRONG></FONT> 
  <DT>  
  <DT>  殘局庫在很多棋類游戲中扮演著非常重要的角色,例如九人<FONT 
  face="Times New Roman">Morris</FONT>,<FONT 
  face="Times New Roman">Awari</FONT>和西洋跳棋<FONT 
  face="Times New Roman">(Checkers)(</FONT>其中九人<FONT 
  face="Times New Roman">Morris</FONT>已經完全可解了,這要歸功于殘局庫的使用<FONT 
  face="Times New Roman">)</FONT>。在其他棋類中,殘局庫就不那么重要了<FONT 
  face="Times New Roman">(</FONT>例如國際象棋<FONT 
  face="Times New Roman">)</FONT>,而某些棋類制作殘局庫是不現實的<FONT 
  face="Times New Roman">(</FONT>如連四子棋、黑白棋和圍棋<FONT 
  face="Times New Roman">)</FONT>。你是否已經發現這些棋類的差異了?通常只有在盤面上棋子數量很少的情況下,殘局庫才能實現。適用殘局庫有個確切的棋子數量的界限,它取決于棋類的復雜性。有些棋類隨著對局的進行,棋子數量是減少的,那么殘局庫就是可行的;而有些棋類的棋子數量是增加的或者不變的,那么殘局庫就是無法計算的<FONT 
  face="Times New Roman">(</FONT>除非棋類異常簡單<FONT 
  face="Times New Roman">)</FONT>,無論如何殘局庫取決于具體的棋類。例如在國際象棋中,有多達<FONT 
  face="Times New Roman">6</FONT>子的殘局庫<FONT 
  face="Times New Roman">(</FONT>王車兵對王車兵等<FONT 
  face="Times New Roman">)</FONT>,而這種殘局<FONT 
  face="Times New Roman">(</FONT>包括其他不超過<FONT 
  face="Times New Roman">6</FONT>子的殘局<FONT 
  face="Times New Roman">)</FONT>在實戰中不是經常出現的,因此殘局庫對棋力的影響并不是很大。而在<FONT 
  face="Times New Roman">(</FONT>盎格魯<FONT 
  face="Times New Roman">-</FONT>薩克森式的<FONT 
  face="Times New Roman">)</FONT>西洋跳棋里,有多達<FONT 
  face="Times New Roman">8</FONT>子的殘局庫,而<FONT 
  face="Times New Roman">10</FONT>子的殘局庫也已經在計算了,這就意味著在有吃必吃的規則下,很多棋局會很快走到有殘局庫的局面中,因此殘局庫使得西洋跳棋的棋力有了很大的提高。要讓某種棋類完全可解,通常總是要借助于殘局庫的——從起始局面開始向前搜索,結合殘局庫,就能解出這盤棋。<FONT 
  face="Times New Roman">Gasser</FONT>用這種辦法解決了九人<FONT 
  face="Times New Roman">Morris</FONT>,而<FONT 
  face="Times New Roman">Chinook(</FONT>最著名的西洋跳棋程序<FONT 
  face="Times New Roman">)</FONT>的小組正在用這個方法解西洋棋。 
  <DT>  
  <DT><FONT face=楷體_GB2312 size=5><STRONG>殘局庫的不同類型</STRONG></FONT> 
  <DT>  
  <DT>  殘局庫有不同的類型,而它們都可以知道殘局庫中某個特定的局面是贏棋、是輸棋還是和棋。如果這就是殘局庫包含的所有信息,就稱為“勝負和”<FONT 
  face="Times New Roman">(WLD)</FONT>殘局庫;如果知道多少步以后棋局會結束,就稱為“殺棋步數”<FONT 
  face="Times New Roman">(DTM</FONT>,<FONT 
  face="Times New Roman">Distance-to-Mate)</FONT>殘局庫;如果只知道多少步以后會轉換為另一種類型的局面,就稱為“轉換步數”<FONT 
  face="Times New Roman">(DTC</FONT>,<FONT 
  face="Times New Roman">Distance-to-Conversion)</FONT>殘局庫。<FONT 
  face="Times New Roman">WLD</FONT>殘局庫有個問題,即便程序處于勝利局面,也未必能贏下棋局。盡管殘局庫知道某個局面已經是勝利局面,并且知道走哪步能繼續保持勝利局面,但是保持勝利局面的著法可能會距離殺棋更遠,而程序又不知道該選擇哪步保持勝利局面的著法。<FONT 
  color=#0000ff>【譯注:更具體的說明請參閱《</FONT><A 
  href="http://www.elephantbase.net/computer/other_winning.htm" 
  target=_blank><FONT color=#0000ff size=3>勝利局面中的強制過程</FONT></A><FONT 
  color=#0000ff>》一文。】</FONT><FONT 
  face="Times New Roman">DTM</FONT>殘局庫顯然在這個方面做得比較好,因為你只要選擇<FONT 
  face="Times New Roman">DTM(</FONT>轉換步數<FONT 
  face="Times New Roman">)</FONT>最少的那個保持勝利局面的著法。<FONT 
  face="Times New Roman">DTC</FONT>殘局庫也能夠在勝利局面下走出取得勝利的著法,但程序走的步數可能會比必要的步數多。至今還有人使用<FONT 
  face="Times New Roman">WLD</FONT>殘局庫,你可能很懷疑。原因很簡單,儲存勝負和的信息只需要很小的空間,如果殘局庫比計算機的存儲器大得多<FONT 
  face="Times New Roman">(</FONT>通常如此<FONT 
  face="Times New Roman">)</FONT>,那么殘局庫有很多部分可以放入存儲器。從磁盤上讀取殘局庫不是一個好的選擇,因為磁盤跟存儲器比起來慢得多。 

  <DT>  
  <DT><FONT face=楷體_GB2312 size=5><STRONG>殘局庫的生成</STRONG></FONT> 
  <DT>  
  <DT>  殘局庫的生成是一個相對比較簡單的過程,盡管有很多細節,但這不影響生成過程的理解。殘局庫生成的基本算法稱為“后退式分析”<FONT 
  face="Times New Roman">(Retrograde Analysis)</FONT>,它是由<FONT 
  face="Times New Roman">Ken Thompson</FONT>發明的<FONT 
  face="Times New Roman">(</FONT>至少是首先使用的<FONT 
  face="Times New Roman">)</FONT>。以下就是整個過程: 
  <DT>  以我們要生成“王車對王”的殘局為例,你要從“索引函數”<FONT face="Times New Roman">(Index 
  Function)</FONT>開始,每個可能的王車對王局面都有一個數字。索引函數必須能倒過來映射到以數字<FONT 
  face="Times New Roman"><EM>x</EM></FONT>為代表的局面。理想情況下,索引函數會把所有<FONT 
  face="Times New Roman"><EM>N</EM></FONT>個合理的王車對王局面映射為<FONT 
  face="Times New Roman">0, 1, ..., <EM>N</EM> </FONT><FONT 
  face=Symbol>-</FONT><FONT face="Times New Roman"> 
  1</FONT>。如果是這種情況,我們稱之為“無間隙”<FONT 
  face="Times New Roman">(Gapless)</FONT>的索引。一般情況下,索引函數把所有合理局面編號為<FONT 
  face="Times New Roman">0, 1, ..., <EM>M</EM> </FONT><FONT 
  face=Symbol>-</FONT><FONT face="Times New Roman"> 1</FONT>,而<FONT 
  face="Times New Roman"><EM>M</EM> &gt; <EM>N</EM></FONT>,我們稱其為“有間隙”<FONT 
  face="Times New Roman">(Gapped)</FONT>的索引。有間隙的索引往往更簡單,因為構造一個有間隙的索引函數要比無間隙的索引函數簡單得多。后退式分析需要的存儲器跟索引號的最大值成正比,因此如果構造了一個<FONT 
  face="Times New Roman"><EM>M</EM></FONT>比<FONT 
  face="Times New Roman"><EM>N</EM></FONT>大得多的索引函數,那么你會浪費很多存儲器。 
  <DT>  一旦有了索引函數,后退式分析算法就只要做以下幾件事: 
  <DT>  
  <DT>  <FONT face="Times New Roman">(1) </FONT>初始化:生成兩個長度都為<FONT 
  face="Times New Roman">N</FONT>的數組,分別存放結果<FONT 
  face="Times New Roman">(WIN/LOSS/DRAW</FONT>,代表勝負和<FONT 
  face="Times New Roman">)</FONT>和<FONT 
  face="Times New Roman">DTC</FONT>。把所有的結果都設成<FONT 
  face="Times New Roman">UNKNOWN(</FONT>代表未知<FONT 
  face="Times New Roman">)</FONT>,所有的<FONT 
  face="Times New Roman">DTC</FONT>計數器都設成<FONT 
  face="Times New Roman">0</FONT>。你會發現,你需要<FONT 
  face="Times New Roman">4</FONT>個數來表示結果,因此數組的數據類型是<FONT 
  face="Times New Roman">4</FONT>個值的數<FONT face="Times New Roman">(</FONT>即<FONT 
  face="Times New Roman">2</FONT>位<FONT 
  face="Times New Roman">)</FONT>。當然,還有些根本不存在的局面,你需要自行處理。 
  <DT>  <FONT face="Times New Roman">(2) 
  </FONT>殺棋遍歷:逐一檢查每個局面是否是殺棋局面,如果是的,就把這個局面的結果設成<FONT 
  face="Times New Roman">LOSS</FONT>,表示即將走的一方輸了。如果棋類允許“逼和”的存在,也必須作逼和的檢查,并賦值為<FONT 
  face="Times New Roman">DRAW</FONT>。把每個<FONT 
  face="Times New Roman">UNKNOWN</FONT>局面的<FONT 
  face="Times New Roman">DTC</FONT>計數器加<FONT face="Times New Roman">1</FONT>。 
  <DT>  <FONT face="Times New Roman">(3) </FONT>對每個<FONT 
  face="Times New Roman">UNKNOWN</FONT>的局面,生成所有后續局面并看它們都有哪些結果。只要其中有一個后續局面是<FONT 
  face="Times New Roman">LOSS</FONT>,就把這個局面設成<FONT 
  face="Times New Roman">WIN</FONT>。如果所有后續局面都是<FONT 
  face="Times New Roman">WIN</FONT>,就把這個局面設成<FONT 
  face="Times New Roman">LOSS</FONT>。如果你遍歷了所有局面但沒有一個局面能設<FONT 
  face="Times New Roman">WIN</FONT>或<FONT 
  face="Times New Roman">LOSS</FONT>的,就跳到第<FONT 
  face="Times New Roman">5</FONT>步。 
  <DT>  <FONT face="Times New Roman">(4) </FONT>把每個<FONT 
  face="Times New Roman">UNKNOWN</FONT>局面的<FONT 
  face="Times New Roman">DTC</FONT>計數器加<FONT 
  face="Times New Roman">1</FONT>,并回到第<FONT face="Times New Roman">3</FONT>步。 
  <DT>  <FONT face="Times New Roman">(5) </FONT>把每個<FONT 
  face="Times New Roman">UNKNOWN</FONT>局面設成<FONT 
  face="Times New Roman">DRAW</FONT>,算法就結束了。 
  <DT>  
  <DT>  這個算法顯然是確保完成的。在第<FONT 
  face="Times New Roman">3</FONT>步里當吃子發生時,你就要讀取少一個子的殘局庫。很明顯,沒有王車對王的殘局庫,你無法獨立地生成王車對王馬的殘局庫。如果你只要生成<FONT 
  face="Times New Roman">WLD</FONT>殘局庫,就可以不要<FONT 
  face="Times New Roman">DTC</FONT>計數器。如果你需要生成<FONT 
  face="Times New Roman">DTM</FONT>殘局庫,你就需要在局面轉換時傳遞<FONT 
  face="Times New Roman">DTM</FONT>值。以上算法有很多優化方案,但是我不想展開討論,最基本的算法已經非常簡單明了了,為什么再舍棄它呢? 

  <DT>  明白了整個算法后,你就知道為什么叫做“后退式”了——該算法總是從已知局面<FONT 
  face="Times New Roman">(</FONT>殺棋或能轉換為低級別的殘局庫局面<FONT 
  face="Times New Roman">)</FONT>向后找,按照上述算法的第<FONT 
  face="Times New Roman">3</FONT>和第<FONT 
  face="Times New Roman">4</FONT>步,每次遍歷就后退半步。我們拿一個局面舉例說明,白王在<FONT 
  face="Times New Roman">g3</FONT>,黑王在<FONT 
  face="Times New Roman">h1</FONT>,白車在<FONT 
  face="Times New Roman">a2</FONT>,黑先走<FONT color=#0000ff>【</FONT><FONT 
  face="Times New Roman" color=#0000ff>8/8/8/8/8/6K1/R7/7k b - - 0 1</FONT><FONT 
  color=#0000ff>】</FONT>。在遍歷殺棋局面時,按照上述算法找到白王在<FONT 
  face="Times New Roman">g3</FONT>,白車在<FONT 
  face="Times New Roman">a1</FONT>,黑王在<FONT 
  face="Times New Roman">g1</FONT>,黑先走<FONT color=#0000ff>【</FONT><FONT 
  face="Times New Roman" color=#0000ff>8/8/8/8/8/6K1/8/R5k1 b - - 0 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲女人小视频在线观看| 香蕉成人伊视频在线观看| 亚洲精品日韩综合观看成人91| 亚洲综合图片区| 国产黄人亚洲片| 91精品在线观看入口| 国产精品久久久久精k8| 男男成人高潮片免费网站| av影院午夜一区| 日韩欧美亚洲另类制服综合在线| 亚洲欧洲成人精品av97| 毛片一区二区三区| 欧美伊人久久久久久午夜久久久久| 精品精品欲导航| 五月婷婷色综合| 色欧美片视频在线观看| 欧美经典一区二区| 久久精品国产免费| 欧美美女网站色| 亚洲国产精品久久一线不卡| eeuss鲁一区二区三区| 久久在线观看免费| 麻豆精品在线播放| 6080日韩午夜伦伦午夜伦| 亚洲午夜视频在线| 91美女在线观看| 亚洲人成亚洲人成在线观看图片| 国产在线视频一区二区三区| 欧美精品黑人性xxxx| 亚洲一卡二卡三卡四卡五卡| 色婷婷av一区二区| 亚洲免费在线播放| 99精品视频在线观看免费| 亚洲国产精品av| 粉嫩一区二区三区在线看| 久久久天堂av| 国产乱妇无码大片在线观看| 精品成人一区二区三区| 青娱乐精品视频| 日韩欧美高清dvd碟片| 欧美96一区二区免费视频| 91精品午夜视频| 久久国内精品自在自线400部| 欧美另类z0zxhd电影| 日韩**一区毛片| 欧美www视频| 国产精品1024久久| 国产精品久久久久一区二区三区| 风间由美一区二区av101| 欧美高清在线一区二区| 国产成人精品网址| 中文字幕不卡在线| 日本福利一区二区| 亚洲va中文字幕| 欧美日韩免费观看一区三区| 午夜精品久久久久久久久| 51精品秘密在线观看| 老汉av免费一区二区三区| 日韩免费高清电影| 成人一区二区三区视频在线观看 | 国产suv精品一区二区三区| 国产午夜精品一区二区三区视频 | 国产欧美精品在线观看| 大胆亚洲人体视频| 尤物视频一区二区| 欧美肥胖老妇做爰| 国产精品香蕉一区二区三区| 17c精品麻豆一区二区免费| 91国产福利在线| 久久成人免费电影| 日韩码欧中文字| 日韩一区二区三区观看| 91免费在线视频观看| 性感美女极品91精品| 国产三级精品三级| 欧美日韩成人激情| 国产91精品一区二区| 婷婷综合在线观看| 国产精品萝li| 日韩精品专区在线影院观看 | 欧美制服丝袜第一页| 国产酒店精品激情| 一区二区三区日韩精品| 精品国产伦理网| 日本韩国欧美在线| 懂色中文一区二区在线播放| 午夜视频在线观看一区二区三区| 国产无一区二区| 337p亚洲精品色噜噜噜| 成人免费毛片高清视频| 午夜成人免费电影| 亚洲视频精选在线| 久久在线免费观看| 91精品国产品国语在线不卡| 97精品久久久午夜一区二区三区| 免费久久精品视频| 亚洲一区欧美一区| 综合欧美亚洲日本| 国产欧美日韩在线看| 欧美片在线播放| 日本福利一区二区| 99久久婷婷国产综合精品电影| 九九国产精品视频| 五月婷婷激情综合网| 亚洲精品国产成人久久av盗摄| 精品国产伦一区二区三区观看体验| 欧美亚洲禁片免费| 91免费国产视频网站| 国产成人免费视频网站 | 亚洲国产视频在线| 亚洲天天做日日做天天谢日日欢| 国产日韩欧美电影| 精品国产一二三| 精品少妇一区二区三区在线播放| 欧美日韩精品系列| 欧美日韩国产另类一区| 欧美视频在线不卡| 欧美日韩五月天| 欧美午夜精品久久久久久孕妇| 91在线观看免费视频| 国产成人精品亚洲777人妖| 国产一区二区精品久久91| 裸体一区二区三区| 另类小说视频一区二区| 欧美a级一区二区| 激情成人午夜视频| 欧美精品一区二区三区在线播放| 国内国产精品久久| 天堂久久一区二区三区| 午夜精品久久久久久久久久| 日本在线不卡视频| 一区二区三区久久| 精品久久久久久无| 一区二区三区资源| 久久99深爱久久99精品| 91免费视频网| 国产午夜亚洲精品午夜鲁丝片| 亚洲国产综合色| 成人动漫一区二区在线| 538在线一区二区精品国产| 亚洲桃色在线一区| 国产一区999| 日韩视频一区二区| 亚洲图片欧美综合| 99久久精品情趣| 久久―日本道色综合久久| 午夜精品久久久| 在线亚洲精品福利网址导航| 久久久久97国产精华液好用吗| 同产精品九九九| 91九色02白丝porn| 国产精品久久久久久久久久久免费看 | 国产欧美日韩精品a在线观看| 日本视频免费一区| 欧美日韩黄色一区二区| 亚洲精品ww久久久久久p站| 成人动漫精品一区二区| 久久久精品人体av艺术| 青青国产91久久久久久| 欧美精品自拍偷拍动漫精品| 亚洲欧美日韩在线| 99在线精品观看| 国产精品高潮呻吟久久| 国产一区二区伦理片| 欧美成人性福生活免费看| 丝袜诱惑制服诱惑色一区在线观看 | 欧美性生活影院| 亚洲一区在线电影| 欧美日韩国产综合视频在线观看| 亚洲主播在线播放| 欧美在线三级电影| 亚洲国产精品久久人人爱| 欧美写真视频网站| 亚洲第一二三四区| 91精品国产免费久久综合| 日韩综合在线视频| 日韩欧美国产成人一区二区| 日本午夜一区二区| 2019国产精品| 国产91在线观看| 国产精品久久久久久久久免费相片 | 老色鬼精品视频在线观看播放| 日韩限制级电影在线观看| 奇米色一区二区三区四区| 日韩精品在线网站| 国精品**一区二区三区在线蜜桃| 久久这里只精品最新地址| eeuss鲁片一区二区三区| 国产精品久久久久天堂| 94-欧美-setu| 亚洲二区在线视频| 日韩欧美国产综合在线一区二区三区| 美腿丝袜亚洲一区| 久久九九久久九九| 成人avav影音| 亚洲成人免费看| 精品区一区二区| 99久久综合色| 日韩和欧美一区二区| 精品动漫一区二区三区在线观看|