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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 解剖大象的眼睛——中國象棋程序設(shè)計(jì)探索(六):并行搜索技術(shù)探索.htm

?? 象棋程序設(shè)計(jì)全資料集(介紹編寫象棋程序的方法思路)
?? HTM
?? 第 1 頁 / 共 2 頁
字號:
  face="Times New Roman">false</FONT>表示未加鎖,<FONT 
  face="Times New Roman">true</FONT>表示加鎖。加鎖時(shí)只要用<FONT 
  face="Times New Roman">true</FONT>和加鎖標(biāo)志交換,換出<FONT 
  face="Times New Roman">false</FONT>就表示加鎖成功<FONT 
  face="Times New Roman">(</FONT>原來加鎖標(biāo)志是<FONT 
  face="Times New Roman">false</FONT>,交換后變成<FONT 
  face="Times New Roman">true)</FONT>,該線程就獲得對共享單元的操作權(quán),換出<FONT 
  face="Times New Roman">true</FONT>則表示加鎖失敗<FONT 
  face="Times New Roman">(</FONT>原來加鎖標(biāo)志是<FONT 
  face="Times New Roman">true</FONT>,交換后仍舊是<FONT 
  face="Times New Roman">true)</FONT>。對共享單元操作完畢后,再將加鎖標(biāo)志設(shè)成<FONT 
  face="Times New Roman">false</FONT>來解鎖。 
  <DT>  并行計(jì)算的博弈程序會偶爾出現(xiàn)一種情況,即兩個(gè)線程同時(shí)存取同一置換表項(xiàng),為避免錯(cuò)誤可以使用加鎖技術(shù): 
  <DD>  
  <DD>struct HashRecord { 
  <DD> volatile int Lock; 
  <DD> …… 
  <DD>}; 
  <DD>  
  <DD>void RecordHash / ProbeHash (……) { 
  <DD> HashRecord *HashPtr = HashList + ZobristKey % HashSize; 
  <DD> while (Exchange(&amp;HashPtr-&gt;Lock, true)) { 
  <DD> } 
  <DD> …… 
  <DD> HashPtr-&gt;Lock = false; 
  <DD>} 
  <DT>  
  <DT>  但是,并行國際象棋程序的典范<FONT 
  face="Times New Roman">Crafty</FONT>并沒有這樣做,而是采用了不加鎖的技術(shù),來避免置換表的存取沖突。簡而言之,該算法的思想是當(dāng)置換表項(xiàng)的校驗(yàn)碼存取正確時(shí),必須保證局面信息也存取正確<FONT 
  face="Times New Roman">(</FONT>但允許校驗(yàn)碼存取不正確,此時(shí)探索置換表的例程就會跳過以后的操作而不會引發(fā)錯(cuò)誤<FONT 
  face="Times New Roman">)</FONT>。 
  <DT>  為此<FONT face="Times New Roman">Crafty</FONT>的<FONT 
  face="Times New Roman">128</FONT>位置換表項(xiàng)定義為兩個(gè)<FONT 
  face="Times New Roman">64</FONT>位數(shù)<FONT face="Times New Roman">W1</FONT>和<FONT 
  face="Times New Roman">W2</FONT>,<FONT 
  face="Times New Roman">W1</FONT>是局面信息,而<FONT 
  face="Times New Roman">W2</FONT>存儲了<FONT 
  face="Times New Roman">W1</FONT>和校驗(yàn)碼的異或值,探測置換表項(xiàng)時(shí),校驗(yàn)碼必須由<FONT 
  face="Times New Roman">W1</FONT>和<FONT 
  face="Times New Roman">W2</FONT>的異或值求得,這樣一旦<FONT 
  face="Times New Roman">W1</FONT>讀取錯(cuò)誤,就得不到正確的校驗(yàn)碼,換句話說,校驗(yàn)碼的正確就保證了局面信息的正確。 
  <DT>  <FONT face="Times New Roman">Crafty</FONT>的這種不加鎖算法是針對<FONT 
  face="Times New Roman">64</FONT>位處理器而設(shè)計(jì)的,這種技術(shù)當(dāng)然也適用于<FONT 
  face="Times New Roman">32</FONT>位處理器,而筆者認(rèn)為<FONT 
  face="Times New Roman">32</FONT>位處理器還有更為簡單的處理方式,即設(shè)計(jì)如下的置換表項(xiàng): 
  <DD>  
  <DD>struct HashRecord { 
  <DD> long CheckSum1, PositionInfo1, PositionInfo2, CheckSum2; 
  <DD>}; 
  <DT>  
  <DT>  以上<FONT face="Times New Roman">128</FONT>位的置換表項(xiàng)由<FONT 
  face="Times New Roman">4</FONT>個(gè)<FONT 
  face="Times New Roman">32</FONT>位單元組成,存取置換表時(shí)四個(gè)單元依次讀取或?qū)懭搿V灰挥谑孜驳男r?yàn)碼都能存取正確,就確保了中間兩個(gè)局面信息單元的正確。 

  <DT>  
  <DT><FONT face=Arial size=4><STRONG>6.3 </STRONG></FONT><FONT face=楷體_GB2312 
  size=4><STRONG>搜索樹的分割策略</STRONG></FONT> 
  <DT>  
  <DT>  <FONT 
  face="Times New Roman">Alpha-Beta</FONT>搜索是遞歸式的,因此作并行計(jì)算時(shí)可以仿照上面提到的<FONT 
  face="Times New Roman">Fibonacci()</FONT>遞歸的例子,但這里有兩個(gè)問題需要解決,一是某個(gè)子線程產(chǎn)生<FONT 
  face="Times New Roman">Beta</FONT>截?cái)鄷r(shí),如何通知其他子線程中止搜索,二是考慮什么樣的結(jié)點(diǎn)需要分割,什么樣的結(jié)點(diǎn)不需要分割。這兩個(gè)問題都是并行搜索技術(shù)的難點(diǎn),為此<FONT 
  face="Times New Roman">Crafty</FONT>花了大量的代碼來解決這些問題,其作者<FONT 
  face="Times New Roman">Robert Hyatt</FONT>對<FONT 
  face="Times New Roman">Crafty</FONT>的并行算法<FONT 
  face="Times New Roman">DTS(Dynamic Tree Split</FONT>,即搜索樹的動(dòng)態(tài)分割算法<FONT 
  face="Times New Roman">)</FONT>有專門的介紹。這里筆者只簡單地介紹第二個(gè)問題,即搜索樹的分割策略。 
  <DT>  通常<FONT face="Times New Roman">Alpha-Beta</FONT>搜索樹的結(jié)點(diǎn)可分為三個(gè)類型,即<FONT 
  face="Times New Roman">PV</FONT>結(jié)點(diǎn)、<FONT 
  face="Times New Roman">Beta</FONT>結(jié)點(diǎn)和<FONT 
  face="Times New Roman">Alpha</FONT>結(jié)點(diǎn),并且有明確的定義——搜索值在窗口<FONT 
  face="Times New Roman">(Alpha, Beta)</FONT>之間的是<FONT 
  face="Times New Roman">PV</FONT>結(jié)點(diǎn)<FONT 
  face="Times New Roman">(</FONT>根據(jù)最小<FONT 
  face="Times New Roman">-</FONT>最大原理,最佳著法的搜索值必須落在窗口內(nèi)<FONT 
  face="Times New Roman">)</FONT>,搜索值達(dá)到或超過<FONT 
  face="Times New Roman">Beta(</FONT>即高出邊界<FONT 
  face="Times New Roman">)</FONT>的是<FONT 
  face="Times New Roman">Beta</FONT>結(jié)點(diǎn)<FONT 
  face="Times New Roman">(</FONT>僅需要有一個(gè)著法超過<FONT 
  face="Times New Roman">Beta</FONT>即可<FONT 
  face="Times New Roman">)</FONT>,搜索值未能超過<FONT 
  face="Times New Roman">Alpha(</FONT>即低出邊界<FONT 
  face="Times New Roman">)</FONT>的是<FONT 
  face="Times New Roman">Alpha</FONT>結(jié)點(diǎn)<FONT 
  face="Times New Roman">(</FONT>所有著法都不能超過<FONT 
  face="Times New Roman">Alpha)</FONT>。由此可以看出,<FONT 
  face="Times New Roman">PV</FONT>結(jié)點(diǎn)和<FONT 
  face="Times New Roman">Alpha</FONT>結(jié)點(diǎn)都需要搜索所有的著法,而<FONT 
  face="Times New Roman">Beta</FONT>結(jié)點(diǎn)在最好的情況下只要搜索一個(gè)著法即可。 
  <DT>  如果能在搜索之前預(yù)測出結(jié)點(diǎn)的類型,就可以決定是否對該結(jié)點(diǎn)作分割了,在<FONT 
  face="Times New Roman">Crafty</FONT>及其相關(guān)論文中,預(yù)測的三類結(jié)點(diǎn)命名為<FONT 
  face="Times New Roman">PV</FONT>結(jié)點(diǎn)、<FONT 
  face="Times New Roman">Cut</FONT>結(jié)點(diǎn)和<FONT 
  face="Times New Roman">All</FONT>結(jié)點(diǎn),分別對應(yīng)剛才提到的<FONT 
  face="Times New Roman">PV</FONT>結(jié)點(diǎn)、<FONT 
  face="Times New Roman">Beta</FONT>結(jié)點(diǎn)和<FONT 
  face="Times New Roman">Alpha</FONT>結(jié)點(diǎn)。顯然,<FONT 
  face="Times New Roman">PV</FONT>結(jié)點(diǎn)和<FONT 
  face="Times New Roman">All</FONT>結(jié)點(diǎn)是有分割價(jià)值的,只要預(yù)測正確,這些結(jié)點(diǎn)下的全部著法都要搜索,不會因?yàn)楫a(chǎn)生截?cái)喽速M(fèi)搜索時(shí)間,而對<FONT 
  face="Times New Roman">Cut</FONT>結(jié)點(diǎn)作分割是沒有意義的,因?yàn)槟壳暗乃阉骷夹g(shù)使得<FONT 
  face="Times New Roman">Cut</FONT>結(jié)點(diǎn)的第一著法截?cái)嗦矢哌_(dá)<FONT 
  face="Times New Roman">80%</FONT>以上,對結(jié)點(diǎn)作分割只會浪費(fèi)處理器資源。 
  <DT>  至于如何來預(yù)測結(jié)點(diǎn)類型,在<FONT 
  face="Times New Roman">Crafty</FONT>及其相關(guān)論文也有介紹,但是另一個(gè)國際象棋程序<FONT 
  face="Times New Roman">Fruit</FONT>則描繪得更加明確,其分類策略是: 
  <DT>  <FONT face="Times New Roman">(1) </FONT>根結(jié)點(diǎn)總是<FONT 
  face="Times New Roman">PV</FONT>結(jié)點(diǎn)。 
  <DT>  <FONT face="Times New Roman">(2) PV</FONT>結(jié)點(diǎn)采用<FONT 
  face="Times New Roman">PVS</FONT>算法,即第一個(gè)著法以后首先嘗試零窗口的搜索,由于期望每個(gè)著法都低出邊界<FONT 
  face="Times New Roman">(</FONT>即子結(jié)點(diǎn)都高出邊界<FONT 
  face="Times New Roman">)</FONT>,所以預(yù)測這些零窗口的結(jié)點(diǎn)為<FONT 
  face="Times New Roman">Cut</FONT>結(jié)點(diǎn)。 
  <DT>  <FONT face="Times New Roman">(3) Cut</FONT>結(jié)點(diǎn)和<FONT 
  face="Times New Roman">All</FONT>結(jié)點(diǎn)是互相交替的,即<FONT 
  face="Times New Roman">Cut</FONT>結(jié)點(diǎn)的子結(jié)點(diǎn)是<FONT 
  face="Times New Roman">All</FONT>結(jié)點(diǎn),<FONT 
  face="Times New Roman">All</FONT>結(jié)點(diǎn)的子結(jié)點(diǎn)是<FONT 
  face="Times New Roman">Cut</FONT>結(jié)點(diǎn),空著裁剪同樣這么處理。 
  <DT>  <FONT face="Times New Roman">(4) Cut</FONT>結(jié)點(diǎn)的第一個(gè)子結(jié)點(diǎn)<FONT 
  face="Times New Roman">(All</FONT>結(jié)點(diǎn)<FONT 
  face="Times New Roman">)</FONT>如果不能產(chǎn)生截?cái)啵驼f明原來預(yù)測的<FONT 
  face="Times New Roman">Cut</FONT>結(jié)點(diǎn)是錯(cuò)的,應(yīng)該是<FONT 
  face="Times New Roman">All</FONT>結(jié)點(diǎn),那么以后的子結(jié)點(diǎn)都預(yù)測為<FONT 
  face="Times New Roman">Cut</FONT>結(jié)點(diǎn)。換句話說,不管預(yù)測是否正確,<FONT 
  face="Times New Roman">Cut</FONT>結(jié)點(diǎn)的第一個(gè)子結(jié)點(diǎn)<FONT 
  face="Times New Roman">(</FONT>不包括空著裁剪<FONT 
  face="Times New Roman">)</FONT>是<FONT 
  face="Times New Roman">All</FONT>結(jié)點(diǎn),其余的結(jié)點(diǎn)<FONT 
  face="Times New Roman">(</FONT>如果有必要搜索的話<FONT 
  face="Times New Roman">)</FONT>仍舊是<FONT face="Times New Roman">Cut</FONT>結(jié)點(diǎn)。 
  <DT>  <FONT face="Times New Roman">(5) PV</FONT>結(jié)點(diǎn)不采用各種形式的向前裁剪<FONT 
  face="Times New Roman">(Null-Move</FONT>、<FONT 
  face="Times New Roman">History</FONT>、<FONT 
  face="Times New Roman">Futility</FONT>等<FONT face="Times New Roman">)</FONT>。 
  <DT>  由于<FONT face="Times New Roman">Fruit</FONT>不支持并行搜索,所以<FONT 
  face="Times New Roman">Cut</FONT>結(jié)點(diǎn)和<FONT 
  face="Times New Roman">All</FONT>結(jié)點(diǎn)沒有區(qū)別,但給并行搜索留下了伏筆。 
  <DT>  我們關(guān)注的是<FONT face="Times New Roman">PV</FONT>結(jié)點(diǎn)的分割,顯然<FONT 
  face="Times New Roman">PV</FONT>結(jié)點(diǎn)是有必要分割的,因?yàn)榉指钤皆纾碌木€程所處理的搜索樹就越大,并行效率就越高。<FONT 
  face="Times New Roman">(</FONT>注意<FONT 
  face="Times New Roman">Fibonacci()</FONT>遞歸的例子,為保證效率只有參數(shù)充分大時(shí)才會分割,<FONT 
  face="Times New Roman">Alpha-Beta</FONT>遞歸也一樣。<FONT 
  face="Times New Roman">)</FONT>但是<FONT 
  face="Times New Roman">PV</FONT>結(jié)點(diǎn)的分割會遇到一個(gè)問題——窗口寬度可能會變窄,如果讓所有的子結(jié)點(diǎn)都作相同窗口的搜索,就無法體現(xiàn)<FONT 
  face="Times New Roman">Alpha-Beta</FONT>算法的效率了。為此,<FONT 
  face="Times New Roman">Crafty</FONT>對根結(jié)點(diǎn)的迭代加深過程用了期望窗口<FONT 
  face="Times New Roman">(Aspiration 
  Window)</FONT>,即讓所有的子結(jié)點(diǎn)都搜索一個(gè)較窄的窗口,這要比直接分割<FONT 
  face="Times New Roman">(</FONT><FONT face=Symbol>-</FONT><FONT 
  face="Times New Roman">MATE_VALUE, MATE_VALUE)</FONT>有效得多。而另一個(gè)極端的做法是<FONT 
  face="Times New Roman">MTD(<EM>f</EM>)</FONT>的零窗口,根結(jié)點(diǎn)從一開始就預(yù)測為<FONT 
  face="Times New Roman">Cut</FONT>或<FONT 
  face="Times New Roman">All</FONT>結(jié)點(diǎn),即可實(shí)施有效的分割,這就是<FONT 
  face="Times New Roman">MTD(<EM>f</EM>)</FONT>算法在并行計(jì)算上的優(yōu)勢。 </DT></DL>
<DIR>
<LI>上一篇 <A 
href="http://www.elephantbase.net/computer/eleeye_horizon.htm">中國象棋程序設(shè)計(jì)探索<FONT 
face="Times New Roman">(</FONT>五<FONT 
face="Times New Roman">)</FONT>:克服水平線效應(yīng)</A> 
<LI>下一篇 <A 
href="http://www.elephantbase.net/computer/eleeye_book.htm">中國象棋程序設(shè)計(jì)探索<FONT 
face="Times New Roman">(</FONT>七<FONT face="Times New Roman">)</FONT>:開局庫</A> 
<LI>返 回 <A href="http://www.elephantbase.net/computer.htm">象棋百科全書——電腦象棋</A> 
</LI></DIR>
<DIV align=center>
<CENTER>
<TABLE border=0>
  <TBODY>
  <TR>
    <TD>
      <P align=center><A href="http://www.elephantbase.net/" target=_blank><IMG 
      height=31 src="解剖大象的眼睛——中國象棋程序設(shè)計(jì)探索(六):并行搜索技術(shù)探索_files/elephantbase.gif" 
      width=88 border=0></A></P></TD></TR>
  <TR>
    <TD><A href="http://www.elephantbase.net/" target=_blank><FONT face=Arial 
      size=2><STRONG>www.elephantbase.net</STRONG></FONT></A></TD></TR></TBODY></TABLE></CENTER></DIV></BODY></HTML>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一线二线三线精华| www.欧美亚洲| 欧美吻胸吃奶大尺度电影| 国产精品你懂的在线| 国产ts人妖一区二区| 亚洲国产精品精华液ab| 成人精品电影在线观看| 国产精品国产馆在线真实露脸 | 激情综合色播五月| 正在播放一区二区| 婷婷久久综合九色国产成人| 8x8x8国产精品| 精品一区二区三区免费观看| 久久久无码精品亚洲日韩按摩| 国产成人无遮挡在线视频| 中文字幕欧美激情| 色婷婷国产精品综合在线观看| 亚洲国产中文字幕| 日韩欧美一区电影| 国产精品香蕉一区二区三区| 亚洲国产成人自拍| 欧美怡红院视频| 日本不卡免费在线视频| 久久精品日产第一区二区三区高清版 | 欧美电影免费观看高清完整版| 天堂在线亚洲视频| 欧美激情综合在线| 欧美a一区二区| 国产欧美日韩在线视频| www.色综合.com| 婷婷六月综合网| 国产亚洲精品7777| 色婷婷精品大在线视频| 久久99精品国产麻豆婷婷洗澡| 中文字幕欧美激情| 欧美丰满嫩嫩电影| 北条麻妃一区二区三区| 日韩av电影天堂| 中文字幕在线不卡| 日韩欧美你懂的| 色琪琪一区二区三区亚洲区| 麻豆精品一区二区| 亚洲一区二区在线观看视频| 久久免费国产精品| 91国偷自产一区二区使用方法| 国产福利91精品一区二区三区| 欧美精品777| 日韩一区欧美二区| 国产精品成人在线观看| 欧美一级生活片| 91九色最新地址| 国产精品一区免费视频| 琪琪久久久久日韩精品| 亚洲男人的天堂网| 欧美激情一区在线观看| 欧美成人艳星乳罩| 欧美色综合网站| 99久久伊人精品| 国产福利一区在线| 日本网站在线观看一区二区三区 | 美女视频免费一区| 亚洲自拍与偷拍| 国产精品久久久久久久久久久免费看 | 欧美性猛交xxxx黑人交| 国产91精品一区二区麻豆网站 | 777午夜精品免费视频| 色哟哟在线观看一区二区三区| 国产麻豆精品久久一二三| 日韩va欧美va亚洲va久久| 一区二区三区在线播放| 成人欧美一区二区三区小说 | 一区二区三区四区视频精品免费| 国产日韩欧美电影| 久久女同互慰一区二区三区| 91精品国产免费| 884aa四虎影成人精品一区| 欧美日韩精品欧美日韩精品一| 91丨国产丨九色丨pron| 波多野结衣在线一区| 国产成人精品一区二| 国产美女一区二区三区| 美女一区二区三区在线观看| 日韩成人午夜精品| 男人的j进女人的j一区| 日本美女一区二区三区视频| 视频一区二区不卡| 免费一级欧美片在线观看| 免费看欧美美女黄的网站| 日日夜夜精品视频免费| 日韩精品一二三区| 麻豆国产欧美日韩综合精品二区 | 欧美日韩黄色一区二区| 欧美日韩一区三区四区| 欧美老年两性高潮| 欧美va亚洲va国产综合| 久久先锋影音av| 亚洲国产精品高清| 亚洲色图欧美在线| 亚洲午夜激情网站| 日韩高清在线观看| 国产一区二区三区在线观看免费| 国产一区二区三区高清播放| 成人深夜在线观看| 色成年激情久久综合| 欧美精品一级二级三级| 日韩午夜在线观看视频| 国产农村妇女毛片精品久久麻豆| 中文成人av在线| 中文字幕在线免费不卡| 蜜臀精品一区二区三区在线观看| 久久午夜老司机| 亚洲欧洲日韩av| 亚洲国产精品久久不卡毛片| 日本欧美一区二区| 成人亚洲精品久久久久软件| 91美女视频网站| 国产农村妇女毛片精品久久麻豆 | 蜜臀av亚洲一区中文字幕| 国产一区二区三区美女| 色呦呦国产精品| 日韩免费高清视频| 亚洲柠檬福利资源导航| 蜜桃一区二区三区四区| 成人精品视频一区二区三区 | 中文天堂在线一区| 视频一区免费在线观看| 懂色av中文一区二区三区| 欧美色图在线观看| 日韩精品国产欧美| 99九九99九九九视频精品| 91视频在线观看免费| av亚洲精华国产精华精华 | 91网站黄www| 欧美一级日韩不卡播放免费| 中文字幕精品一区二区三区精品| 五月婷婷综合激情| 成人app软件下载大全免费| 欧美一卡二卡三卡| 一区二区在线观看免费| 国产精品一区免费在线观看| 欧美日韩国产综合一区二区| 中文字幕一区视频| 久久99国产精品久久99| 欧美日韩一区不卡| 1000精品久久久久久久久| 久久99国内精品| 欧美肥胖老妇做爰| 亚洲一区二区三区免费视频| 国产高清在线观看免费不卡| 日韩视频免费直播| 亚洲成人tv网| 色婷婷综合久久久久中文一区二区| 国产色产综合色产在线视频| 麻豆91免费观看| 欧美一区二区三区日韩| 亚洲成人动漫一区| 色8久久人人97超碰香蕉987| 国产精品免费av| 国产九色sp调教91| 欧美mv日韩mv| 麻豆精品视频在线观看免费| 777午夜精品免费视频| 亚洲国产欧美日韩另类综合 | 日韩欧美亚洲国产精品字幕久久久| 久久精品国产久精国产爱| 欧美日韩国产美女| 亚洲高清一区二区三区| 日本道在线观看一区二区| 中文字幕一区免费在线观看| 国产91丝袜在线播放0| 欧美激情在线一区二区| 国产精品自拍网站| 国产视频911| 福利一区福利二区| 国产精品毛片久久久久久久| 风流少妇一区二区| 中文字幕av一区二区三区免费看| 福利一区二区在线观看| 国产精品国产三级国产普通话蜜臀 | 精品人在线二区三区| 国内精品久久久久影院薰衣草| 2019国产精品| 国产精品一区二区不卡| 中文子幕无线码一区tr| 99久久伊人网影院| 亚洲一区二区视频在线观看| 欧美日韩高清一区二区不卡| 奇米精品一区二区三区在线观看 | 91麻豆精品秘密| 亚洲国产精品久久艾草纯爱| 欧美一区二区三区人| 另类中文字幕网| 国产欧美一区二区三区在线看蜜臀| 国产suv精品一区二区883| 最新国产の精品合集bt伙计| 在线一区二区视频| 蜜臀99久久精品久久久久久软件 | 欧美日韩一区三区| 久久国产精品72免费观看| 久久久久综合网|