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

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

?? 基本搜索方法——簡介(三).htm

?? 象棋程序設計全資料集(介紹編寫象棋程序的方法思路)
?? HTM
?? 第 1 頁 / 共 2 頁
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0054)http://www.elephantbase.net/computer/search_intro3.htm -->
<HTML><HEAD><TITLE>基本搜索方法——簡介(三)</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb_2312-80">
<META content="" name=Owner>
<META content="" name=Reply-To>
<META content="MSHTML 6.00.3790.2759" name=GENERATOR></HEAD>
<BODY background=基本搜索方法——簡介(三)_files/background.gif>
<DL>
  <DIV align=center>
  <CENTER>
  <DT><FONT size=3>《對弈程序基本技術》專題</FONT> </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">David Eppstein */</FONT>文 
</CENTER></DT></DIV>
  <DIV align=center>
  <CENTER>
  <DT><FONT face="Times New Roman">* </FONT>加州愛爾文大學<FONT 
  face="Times New Roman">(UC Irvine)</FONT>信息與計算機科學系 </CENTER></DT></DIV>
  <DT>  
  <DT>  我還沒有講完<FONT 
  face="Times New Roman">Alpha-Beta</FONT>呢,因為我的偽代碼里包含神秘的“排序著法”還沒有解釋,暫時先扔在一邊,在講完散列技術后,我將繼續這部分內容。 

  <DT>  散列技術的思想非常簡單,很多棋類會出現“置換”的著法,即著法順序的不同會導致相同的局面。例如在國際象棋中,開局走“<FONT 
  face="Times New Roman">1. d4 Nf6 2. c4</FONT>”和“<FONT 
  face="Times New Roman">1. c4 Nf6 2. d4</FONT>”都會導致一樣的局面<FONT 
  face="Times New Roman">(</FONT>稱為印度防御<FONT 
  face="Times New Roman">)</FONT>,白方兩次進兵可以按不同的順序走。再看一個更加復雜置換:“<FONT 
  face="Times New Roman">1. e4 c6 2. d4 d5 3. ed Qxd5 4. Nc3 Qd6</FONT>”<FONT 
  face="Times New Roman">(</FONT>卡羅<FONT 
  face="Times New Roman">-</FONT>卡恩防御<FONT 
  face="Times New Roman">)</FONT>,“<FONT face="Times New Roman">1. e4 d5 2. ed 
  Qxd5 3. Nc3 Qd6 4. d4 c6</FONT>”<FONT 
  face="Times New Roman">(</FONT>斯堪的那維亞防御<FONT 
  face="Times New Roman">)</FONT>,以及“<FONT face="Times New Roman">1. e4 Nf6 2. 
  e5 Ng8 3. d4 d6 4. ed Qxd6 5.Nc3 c6</FONT>”<FONT 
  face="Times New Roman">(</FONT>阿廖欣防御<FONT 
  face="Times New Roman">)</FONT>都會在走不同的步數后到達相同的局面。 
  <DT>  因為換位,相同的局面能在<FONT 
  face="Times New Roman">Alpha-Beta</FONT>搜索樹的很多位置上找到。如果有一種數據結構能夠保存以前找過的每一個位置,那么我們不必重新搜索,取而代之的是查找局面。但是有兩個困難擺在面前,一是我們沒有足夠的存儲器來存放所有搜索過的局面,二是查找速度要足夠快以至于超過搜索的時間。幸運的是,找不到已經搜索過的局面也沒關系,再搜索一遍就是了,因為畢竟這種情況不會經常發生。 

  <DT>  這種數據結構就是“散列表”<FONT face="Times New Roman">(Hash 
  Tables)</FONT>,一個很大的數組,大到不超出物理存儲器為止<FONT 
  face="Times New Roman">(</FONT>不要擴展到虛擬存儲器,否則會非常慢的<FONT 
  face="Times New Roman">)</FONT>。 
  <DT>  
  <DD>struct { 
  <DD> long checksum; // long long 可能會更好 
  <DD> int depth; 
  <DD> enum { exact, lower_bound, upper_bound } entry_type; 
  <DD> double eval; 
  <DD>} hashtable[HASH_TABLE_SIZE]; //<FONT 
  color=#0000ff>【譯注:完整的散列表還應記錄最佳著法。】</FONT> 
  <DT>  
  <DT>  對于每一個需要搜索的局面,先計算散列值<FONT 
  face="Times New Roman"><EM>x</EM></FONT>作為散列表的指標,另計算散列值<FONT 
  face="Times New Roman"><EM>y</EM></FONT>來檢查這個局面是否是所要找的局面。 
  <DT>  在搜索一個局面前,先去找 <FONT 
  face="Times New Roman">hashtable[<EM>x</EM>]</FONT>,如果 <FONT 
  face="Times New Roman">hashtable[<EM>x</EM>].checksum == 
  <EM>y</EM></FONT>,<FONT 
  face="Times New Roman">hashtable[<EM>x</EM>].entry_type == exact</FONT>,并且 
  <FONT face="Times New Roman">hashtable[<EM>x</EM>].depth 
  </FONT>不比現在需要搜索的深度淺,那么就可以返回 <FONT 
  face="Times New Roman">hashtable[<EM>x</EM>].eval</FONT>。 
  <DT>  每搜索完一個局面,就把散列值<FONT 
  face="Times New Roman"><EM>y</EM></FONT>、當前搜索的深度和搜索的評分保存到 <FONT 
  face="Times New Roman">hashtable[<EM>x</EM>] </FONT>里。 
  <DT>  
  <DT><FONT face=楷體_GB2312 size=5><STRONG>如何計算散列值?</STRONG></FONT> 
  <DT>  
  <DT>  <FONT face="Times New Roman">Zobrist </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">Z[square, 
  piecetype]</FONT>。棋盤的散列值就是棋盤上各個棋子的<FONT face="Times New Roman">Z[s, 
  p]</FONT>相加,再加上一些額外的信息如是否能王車易位等。通常求和被“異或”運算所代替,因為它操作方便且快速,但算術加法會更好些。走完一步棋后,不要把散列值整個都算一遍,只要減去原來位置的棋子和格子值,并加上新位置的棋子和格子值,就實現了散列值的更新。這個技術同時適用于散列值<FONT 
  face="Times New Roman"><EM>x</EM></FONT>和校驗值<FONT 
  face="Times New Roman"><EM>y</EM>(</FONT>但要使用不同的隨機數表<FONT 
  face="Times New Roman">)</FONT>。 
  <DT>  在散列技術中,另有一些十分有用的訣竅: 
  <DT>  <FONT face="Times New Roman">(1) 
  </FONT>在走完一步后,不要把散列表清空,這樣不但浪費時間,而且原來的內容或許對后面的走法有用。<FONT 
  color=#0000ff>【這里指的是電腦完成整個局面的搜索,走完一步后不需要清空散列表,電腦進行下一回合時,上一回合留下的信息或許有用。當然,是否清空散列表不能一概而論,還要取決于散列表的覆蓋策略,以后的文章將談到這個問題。】</FONT> 

  <DT>  <FONT face="Times New Roman">(2) </FONT>如果相同的局面出現在搜索樹的不同深度中<FONT 
  face="Times New Roman">(</FONT>例如上面講到置換時的第二個例子<FONT 
  face="Times New Roman">)</FONT>,那么你可能得到比預期更深的搜索結果,這樣會非常好。<FONT 
  color=#0000ff>【譯者把這個現象稱為“搜索樹的遷移式延伸”,當這種情況出現在殘局時反而不是好事,因為你有可能找到一步殺棋,而它卻不是最短路線,你就停止了搜索。后面的文章會說明一個問題,當你搜索到殺棋時,如果你的著法不是最短路線,那么在實戰中可能明知殺棋但怎么也殺不了。】</FONT> 

  <DT>  <FONT face="Times New Roman">(3) 
  </FONT>不要在搜索樹靠近葉子的局面上用散列技術,因為這些局面太多了<FONT 
  face="Times New Roman">(</FONT>它們可能取代別的更重要的局面<FONT 
  face="Times New Roman">)</FONT>,并且不去搜索這些局面也不會省掉很多時間。<FONT 
  color=#0000ff>【如果把搜索分為完全搜索和靜態搜索兩個階段,那么靜態搜索的結果是肯定不寫入散列表的,因為靜態搜索的分枝因子非常小(只考慮吃子著法),所以查找散列表的時間或許比搜索的時間還長。在完全搜索中,這條法則是就“始終覆蓋”這一策略而言的,若使用“深度優先”策略則無所謂。】</FONT> 

  <DT>  
  <DT><FONT face=楷體_GB2312 size=5><STRONG>散列技術如何跟</STRONG></FONT><FONT 
  face=Arial size=5><STRONG>Alpha-Beta</STRONG></FONT><FONT face=楷體_GB2312 
  size=5><STRONG>聯系起來?</STRONG></FONT> 
  <DT>  
  <DT>  國際象棋程序中很多的錯誤都跟散列技術有關,原因是它們要跟<FONT 
  face="Times New Roman">Alpha-Beta</FONT>搜索聯系起來,但你無法繞開這個話題,因為散列技術和<FONT 
  face="Times New Roman">Alpha-Beta</FONT>都是非常有效的搜索方法。現在重新來看<FONT 
  face="Times New Roman">Alpha-Beta</FONT>,當你在一個局面中調用 <FONT 
  face="Times New Roman">alphabeta(depth, alpha, beta) </FONT>時,可能有三種情況發生:<FONT 
  face="Times New Roman">(1) </FONT>高出邊界<FONT face="Times New Roman">(Fail 
  High)</FONT>,即返回評分至少是<FONT face="Times New Roman">Beta</FONT>,但到底多少卻不知道;<FONT 
  face="Times New Roman">(2) </FONT>低出邊界<FONT face="Times New Roman">(Fail 
  Low)</FONT>,即返回評分最多是<FONT face="Times New Roman">Alpha</FONT>,但到底多少也不知道;<FONT 
  face="Times New Roman">(3) </FONT>準確值,即返回評分在<FONT 
  face="Times New Roman">Alpha</FONT>和<FONT 
  face="Times New Roman">Beta</FONT>之間。如果我們知道準確結果,那么散列表中只記錄準確評分,但是高出邊界和低出邊界的情況,仍然在以后的裁剪中有用。可以跟記錄準確評分一樣,散列表中也可以記錄這兩種情況的評分,“下界標志”<FONT 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看成人免费视频| 亚洲精品欧美激情| 中文字幕综合网| 免费看黄色91| 91成人看片片| 国产精品乱码一区二区三区软件| 午夜精品久久久久久久久| 不卡影院免费观看| 2022国产精品视频| 蜜臀av一区二区在线观看| 色噜噜夜夜夜综合网| 国产精品视频一二三| 国产一区二区0| 日韩女优电影在线观看| 亚洲成人动漫精品| 在线一区二区视频| 亚洲日本韩国一区| 成人一级片在线观看| 久久综合网色—综合色88| 五月综合激情日本mⅴ| 日本韩国精品一区二区在线观看| 中文字幕一区二区三区不卡在线| 九九**精品视频免费播放| 91精品国产一区二区人妖| 亚洲国产欧美日韩另类综合 | jiyouzz国产精品久久| 欧美大尺度电影在线| 日韩激情av在线| 欧美日韩国产a| 亚洲一区二区三区影院| 欧美性生活久久| 夜色激情一区二区| 欧美视频一区在线观看| 一区二区三区不卡视频| 欧美伊人久久大香线蕉综合69| √…a在线天堂一区| 91一区二区三区在线播放| 亚洲欧洲日韩综合一区二区| a在线播放不卡| 亚洲精品综合在线| 在线免费不卡视频| 国内精品国产三级国产a久久| 宅男噜噜噜66一区二区66| 首页亚洲欧美制服丝腿| 日韩三级免费观看| 国内成+人亚洲+欧美+综合在线 | 色哟哟一区二区在线观看| 亚洲天堂福利av| 欧美视频一二三区| 久久国产免费看| 久久久久久久免费视频了| 成人av资源网站| 亚洲综合在线视频| 884aa四虎影成人精品一区| 美女视频黄频大全不卡视频在线播放 | 欧美国产精品v| 91亚洲精品一区二区乱码| 亚洲高清一区二区三区| 日韩视频免费观看高清完整版在线观看 | 亚洲成人免费视| 精品国产乱子伦一区| 国产精品中文字幕一区二区三区| 中文字幕在线不卡视频| 在线观看日韩电影| 久久91精品久久久久久秒播| 中文字幕在线一区二区三区| 欧美日韩亚洲综合| 国产酒店精品激情| 亚洲一二三四在线| 国产日韩av一区二区| 91黄色免费版| 国产一区二区免费看| 亚洲私人黄色宅男| 精品欧美一区二区久久| 91视视频在线观看入口直接观看www| 天堂av在线一区| 中文字幕 久热精品 视频在线 | 欧美成人在线直播| 91在线视频18| 狠狠色伊人亚洲综合成人| 亚洲欧洲国产日韩| 精品成人一区二区| 欧美亚洲高清一区| 成人三级伦理片| 青青草伊人久久| 尤物av一区二区| 中文字幕不卡一区| 欧美成va人片在线观看| 欧美无乱码久久久免费午夜一区 | 91蝌蚪国产九色| 美女视频黄久久| 亚洲成人777| 成人免费一区二区三区视频| 欧美va在线播放| 欧美美女一区二区| 日本精品视频一区二区| 成人免费视频网站在线观看| 韩国午夜理伦三级不卡影院| 亚洲不卡在线观看| 亚洲一区视频在线| 综合色中文字幕| 国产精品久久久久久久久免费相片| 日韩午夜av一区| 欧美一区二区视频观看视频| 欧美伊人久久久久久久久影院| 91在线视频官网| 91在线porny国产在线看| 国产.欧美.日韩| 国产成人av电影在线| 国产精品一区一区三区| 国内一区二区视频| 国产美女在线精品| 国产精品小仙女| 国产高清不卡一区| 国产精品亚洲人在线观看| 久久97超碰色| 国产精品77777竹菊影视小说| 久久精品999| 国产一区二区三区黄视频| 狠狠色丁香婷婷综合| 国产一区二区在线视频| 国产盗摄精品一区二区三区在线| 国产福利一区二区| 成人免费视频视频| 91啪九色porn原创视频在线观看| av亚洲产国偷v产偷v自拍| 99视频国产精品| 欧美伊人精品成人久久综合97| 欧美视频在线观看一区二区| 91精品国产高清一区二区三区蜜臀| 中文字幕制服丝袜成人av | 亚洲国产成人在线| 欧美激情综合五月色丁香小说| 中文久久乱码一区二区| 亚洲精品老司机| 天堂蜜桃91精品| 久久99国产精品免费网站| 成人网在线免费视频| 色综合一区二区三区| 欧美日韩不卡在线| 精品99999| 亚洲精品一二三四区| 爽好多水快深点欧美视频| 国产一区二区调教| 91麻豆福利精品推荐| 91精品国产aⅴ一区二区| 久久日韩粉嫩一区二区三区| 中文字幕一区二区不卡| 亚洲电影激情视频网站| 国产真实乱对白精彩久久| 成人a免费在线看| 91精品久久久久久久99蜜桃| 国产欧美日韩激情| 亚洲电影一级片| 成人激情免费网站| 3751色影院一区二区三区| 欧美—级在线免费片| 五月天激情小说综合| 国产高清不卡一区| 欧美精品久久久久久久多人混战| 久久久国际精品| 亚洲成人黄色影院| 粉嫩一区二区三区在线看| 欧美精三区欧美精三区| 中文字幕精品—区二区四季| 日本aⅴ精品一区二区三区 | 欧美日本乱大交xxxxx| 国产免费观看久久| 日韩精品免费专区| 9久草视频在线视频精品| 欧美成人伊人久久综合网| 亚洲一区二区精品视频| 国产91精品一区二区麻豆网站| 91麻豆精品国产91久久久久久久久| 国产精品久久久久毛片软件| 韩国理伦片一区二区三区在线播放| 欧美在线视频全部完| 国产精品灌醉下药二区| 国产乱码字幕精品高清av | 国产精品国产三级国产普通话99| 青青草原综合久久大伊人精品优势| 91免费国产在线观看| 久久视频一区二区| 美国精品在线观看| 欧美久久久久久蜜桃| 亚洲综合网站在线观看| 99热精品一区二区| 中文字幕av一区二区三区高| 国产一区二区三区在线看麻豆| 欧美一区二区三区精品| 视频在线观看一区| 欧美日本视频在线| 香港成人在线视频| 欧美视频完全免费看| 一区二区三区国产精华| 91网站视频在线观看| 亚洲天堂免费在线观看视频| 99精品久久99久久久久| 亚洲手机成人高清视频| 一本一道久久a久久精品|