?? 中國象棋對弈程序elephanteye(象眼).htm
字號:
<DIV align=left>
<DT> <FONT face="Times New Roman">ElephantEye
</FONT>的著法排序非常簡單清晰,依次是迭代加深著法、好的吃子著法、殺手著法和按歷史表排序的生成著法。 </DT></DIV>
<DIV align=left>
<DT><FONT face="Times New Roman">(7) </FONT>將軍<FONT
face="Times New Roman">/</FONT>殺棋<FONT face="Times New Roman">/</FONT>兌子延伸:
</DT></DIV>
<DIV align=left>
<DT> 在選擇性延伸上,<FONT face="Times New Roman">ElephantEye
</FONT>采用了將軍、殺棋和兌子延伸,由于<FONT face="Times New Roman">ElephantEye
</FONT>沒有避將的著法生成器,所以無法實現單一應著延伸。 </DT></DIV>
<DIV align=left>
<DT><FONT face="Times New Roman">(8) </FONT>歷史表裁剪: </DT></DIV>
<DIV align=left>
<DT> <FONT face="Times New Roman">ElephantEye </FONT>參考了國際象棋 <FONT
face="Times New Roman">Fruit </FONT>的設計思路,使用閾值為<FONT
face="Times New Roman">1/8</FONT>的歷史表裁剪。 </DT></DIV>
<DIV align=left>
<DT><FONT face="Times New Roman">(9) Alpha-Beta</FONT>主要變例搜索: </DT></DIV>
<DIV align=left>
<DT> <FONT face="Times New Roman">ElephantEye </FONT>使用傳統意義上的遞歸式<FONT
face="Times New Roman">Alpha-Beta</FONT>主要變例搜索。 </DT></DIV>
<DIV align=left>
<DT><FONT face="Times New Roman">(10) </FONT>開局庫: </DT></DIV>
<DIV align=left>
<DT> <FONT face="Times New Roman">ElephantEye </FONT>的開局庫共包含了<FONT
face="Times New Roman">20,000</FONT>個著法,是從<FONT
face="Times New Roman">1990</FONT>年到<FONT
face="Times New Roman">2005</FONT>年全國象棋個人賽、團體賽、五羊杯、聯賽等<FONT
face="Times New Roman">8,000</FONT>局頂尖比賽中提取的。開局庫是以<FONT
face="Times New Roman">FEN</FONT>串為主的文本格式,讀取時直接導入到置換表中。 </DT></DIV>
<DIV align=left>
<DT><FONT face="Times New Roman">(11) </FONT>后臺思考和時間分配策略: </DT></DIV>
<DIV align=left>
<DT> <FONT face="Times New Roman">ElephantEye
</FONT>支持后臺思考功能,同時提供了時段制和加時制兩種時間分配策略,會自動合理分配時間。 </DT></DIV>
<DIV align=left>
<DT> </DT></DIV>
<DIV align=left>
<DT><FONT face=楷體_GB2312 size=4><STRONG>六、源程序</STRONG></FONT> </DT></DIV>
<DIV align=left>
<DT> </DT></DIV>
<DIV align=left>
<DT> <FONT face="Times New Roman">ElephantEye </FONT>的源程序包括<FONT
face="Times New Roman">9</FONT>個模塊,內容大致為: </DT></DIV>
<DIV align=left>
<DT><FONT face="Times New Roman">(1) ucci.h/ucci.cpp</FONT> </DT></DIV>
<DIV align=left>
<DT> <FONT face="Times New Roman">UCCI</FONT>協議的命令解釋模塊,包括 <FONT
face="Times New Roman">Windows </FONT>和 <FONT face="Times New Roman">Unix
</FONT>下的行輸入接收程序; </DT></DIV>
<DIV align=left>
<DT><FONT face="Times New Roman">(2) pregen.h/pregen.cpp</FONT> </DT></DIV>
<DIV align=left>
<DT> <FONT face="Times New Roman">Zobrist </FONT>數組和著法預置表的生成模塊。<FONT
face="Times New Roman">ElephantEye </FONT>的預置表分兩個部分,一是滑動棋子的著法預置表<FONT
face="Times New Roman">(</FONT>包括不吃子、車吃子、炮吃子和隔兩子吃子<FONT
face="Times New Roman">)</FONT>,它是實現位行和位列技術的基礎;二是其他棋子的著法預置表,使得著法生成時避免了煩瑣的邊界判斷。
</DT></DIV>
<DIV align=left>
<DT><FONT face="Times New Roman">(3) position.h/position.cpp</FONT>
</DT></DIV>
<DIV align=left>
<DT> 主要描述著法和局面的數據結構及功能。局面的處理是本模塊的重點,處理內容包括局面初始化、<FONT
face="Times New Roman">FEN</FONT>串導入、棋子移動、殺手著法的合理性判斷、將軍判斷、長將和循環檢測、子力價值分調整等過程,還包括<FONT
face="Times New Roman">5</FONT>個子力位置價值表。 </DT></DIV>
<DIV align=left>
<DT><FONT face="Times New Roman">(4) genmoves.cpp</FONT> </DT></DIV>
<DIV align=left>
<DT> 著法生成器,包括生成吃子著法和生成不吃子著法的兩個,但不能只生成解除將軍的著法。在生成吃子著法的同時賦予每個著法以相應的<FONT
face="Times New Roman">MVV(LVA)(</FONT>或稱準<FONT
face="Times New Roman">SEE)</FONT>值。該模塊還有一個專門判斷棋子是否有保護的函數,來計算<FONT
face="Times New Roman">MVV(LVA)</FONT>值,對于有保護的棋子,計算<FONT
face="Times New Roman">MVV-LVA</FONT>的值<FONT
face="Times New Roman">(</FONT>小于零不計<FONT
face="Times New Roman">)</FONT>,對于無保護的棋子,只計算<FONT
face="Times New Roman">MVV</FONT>的值。因此,判斷棋子是否有根的程序也包括在本模塊中。 </DT></DIV>
<DIV align=left>
<DT><FONT face="Times New Roman">(5) evaluate.cpp</FONT> </DT></DIV>
<DIV align=left>
<DT> 局面評價函數,<FONT face="Times New Roman">ElephantEye
</FONT>采用了終端結點和四級偷懶評價的機制,最粗的層次包括防守缺陷和特殊棋型的評價,進一層次包括子力區域平衡和牽制的評價,再進一層次包括兵的保護和子力互相聯系保護的評價,最高層次包括馬的阻礙和車的靈活性的評價。
</DT></DIV>
<DIV align=left>
<DT><FONT face="Times New Roman">(6) hashbook.h/hashbook.cpp</FONT>
</DT></DIV>
<DIV align=left>
<DT> 置換表、歷史表和著法列表管理模塊,包括置換表的分配和存取、開局庫的導入和讀取、主要變例獲取等操作。 </DT></DIV>
<DIV align=left>
<DT><FONT face="Times New Roman">(7) movesort.h/movesort.cpp</FONT>
</DT></DIV>
<DIV align=left>
<DT> 根據歷史表對著法列表賦值、著法列表排序等操作。該模塊是整個程序的核心模塊。 </DT></DIV>
<DIV align=left>
<DT><FONT face="Times New Roman">(8) search.h/search.cpp</FONT> </DT></DIV>
<DIV align=left>
<DT> 搜索模塊,除了靜態搜索、完全搜索和根結點搜索這三個主要過程外,還包括迭代加深控制、后臺思考、時間分配、搜索參數統計和搜索信息輸出等內容。該模塊是整個程序的核心模塊。
</DT></DIV>
<DIV align=left>
<DT><FONT face="Times New Roman">(9) eleeye.cpp</FONT> </DT></DIV>
<DIV align=left>
<DT> 主程序<FONT face="Times New Roman">(</FONT>即 <FONT
face="Times New Roman">main </FONT>函數<FONT face="Times New Roman">)</FONT>。
</DT></DIV>
<DIV align=left>
<DT> </DT></DIV>
<DIV align=left>
<DT><FONT face=楷體_GB2312 size=4><STRONG>七、程序表現</STRONG></FONT> </DT></DIV>
<DIV align=left>
<DT> </DT></DIV>
<DIV align=left>
<DT> <FONT face="Times New Roman">ElephantEye </FONT>偏重于搜索,但在知識上非常欠缺。在<FONT
face="Times New Roman">2.8GHz</FONT>的處理器上每秒可搜索約<FONT
face="Times New Roman">1,200,000</FONT>個結點<FONT
face="Times New Roman">(</FONT>包括常規搜索和靜態搜索<FONT
face="Times New Roman">)</FONT>,一般的中局局面在<FONT
face="Times New Roman">1</FONT>分鐘內可搜索約<FONT face="Times New Roman">11</FONT>層。
</DT></DIV>
<DIV align=left>
<DT> 在棋力上,<FONT face="Times New Roman">ElephantEye </FONT>和“棋隱”、<FONT
face="Times New Roman">SaoLa (</FONT>象棋挑戰者<FONT
face="Times New Roman">)</FONT>等程序具有同等水平,但由于局面評估函數上的缺陷,<FONT
face="Times New Roman">ElephantEye </FONT>距離頂尖的商業象棋軟件<FONT
face="Times New Roman">(</FONT>謝謝大師、象棋世家、象棋奇兵等<FONT
face="Times New Roman">)</FONT>尚有一定的差距。 </DT></DIV>
<DIV align=left>
<DT> <FONT face="Times New Roman">ElephantEye
</FONT>在聯眾、弈天等象棋對弈網站上作過測試,用等級分來衡量,聯眾網的戰績在<FONT
face="Times New Roman">2500</FONT>分左右,弈天網快棋的戰績在<FONT
face="Times New Roman">2000</FONT>分左右,慢棋在<FONT
face="Times New Roman">1500</FONT>分左右。 </DT></DIV>
<DIV align=left>
<DT> <FONT face="Times New Roman">ElephantEye </FONT>于<FONT
face="Times New Roman">2005</FONT>年<FONT
face="Times New Roman">9</FONT>月參加在臺北舉行的第<FONT
face="Times New Roman">10</FONT>屆<FONT
face="Times New Roman">ICGA</FONT>電腦奧林匹克大賽中國象棋組比賽,戰績是<FONT
face="Times New Roman">7</FONT>勝<FONT face="Times New Roman">5</FONT>和<FONT
face="Times New Roman">14</FONT>負,在<FONT
face="Times New Roman">14</FONT>個程序中排名第<FONT face="Times New Roman">11</FONT>。
</DT></DIV>
<DIV align=left>
<DT> </DT></DIV>
<DIV align=left>
<DT><FONT face=楷體_GB2312 size=4><STRONG>八、相關資源</STRONG></FONT> </DT></DIV>
<DIV align=left>
<DT> </DT></DIV>
<DIV align=left>
<DT> <FONT face="Times New Roman">ElephantEye </FONT>必須在支持<FONT
face="Times New Roman">UCCI</FONT>協議<FONT
face="Times New Roman">(</FONT>如《象棋巫師》<FONT
face="Times New Roman">)</FONT>的象棋程序下運行,《象棋巫師》安裝程序包含了最新版本的 <FONT
face="Times New Roman">ElephantEye</FONT>,下載地址是: </DT></DIV>
<DIV align=left>
<DT> <A href="http://www.elephantbase.net/download/xqwizard_simp.exe"><FONT
face="Times New Roman">http://www.elephantbase.net/download/xqwizard_simp.exe</FONT></A><FONT
face="Times New Roman"> (</FONT>簡體版<FONT face="Times New Roman">) </FONT>或
</DT></DIV>
<DIV align=left>
<DT> <A href="http://www.elephantbase.net/download/xqwizard_trid.exe"><FONT
face="Times New Roman">http://www.elephantbase.net/download/xqwizard_trid.exe</FONT></A><FONT
face="Times New Roman"> (</FONT>繁體版<FONT face="Times New Roman">)</FONT>
</DT></DIV>
<DIV align=left>
<DT> 如果已經安裝好《象棋巫師》,也可直接安裝最新版本的 <FONT face="Times New Roman">ElephantEye
</FONT>及其源程序包: </DT></DIV>
<DIV align=left>
<DT> <A href="http://www.elephantbase.net/download/eleeye.rar"><FONT
face="Times New Roman">http://www.elephantbase.net/download/eleeye.rar</FONT></A>
</DT></DIV>
<DIV align=left>
<DT> </DT></DIV>
<DIV align=left>
<DT> <FONT face="Times New Roman">ElephantEye </FONT>的源程序包除了 <FONT
face="Times New Roman">ElephantEye </FONT>本身的源程序外,還包括以下幾個附加模塊: </DT></DIV>
<DIV align=left>
<DT> <FONT face="Times New Roman">(1) </FONT>通用低級接口<FONT
face="Times New Roman">(utility)</FONT>:提供了匯編指令、快速位操作、隨機數、位棋盤、多線程輸入、<FONT
face="Times New Roman">Visual Basic </FONT>下的原子語句等功能; </DT></DIV>
<DIV align=left>
<DT> <FONT face="Times New Roman">(2) </FONT>中國象棋規則模塊<FONT
face="Times New Roman">(cchess)</FONT>:為其他軟件使用 <FONT
face="Times New Roman">ElephantEye </FONT>代碼提供了接口; </DT></DIV>
<DIV align=left>
<DT> <FONT face="Times New Roman">(3) </FONT>淺紅象棋適配器<FONT
face="Times New Roman">(ucci2qh)</FONT>:為淺紅象棋調用<FONT
face="Times New Roman">UCCI</FONT>引擎提供了接口; </DT></DIV>
<DIV align=left>
<DT> <FONT face="Times New Roman">(4) UCCI</FONT>引擎聯賽模擬器<FONT
face="Times New Roman">(uccileag)</FONT>:為<FONT
face="Times New Roman">UCCI</FONT>引擎測試和比賽提供了自動批量對局的平臺; </DT></DIV>
<DIV align=left>
<DT> <FONT face="Times New Roman">(5) BIG5</FONT>碼和<FONT
face="Times New Roman">GB</FONT>碼轉換器<FONT
face="Times New Roman">(BIG2GB)</FONT>:一個用 <FONT face="Times New Roman">Visual
Basic </FONT>制作的文本文件轉換程序; </DT></DIV>
<DIV align=left>
<DT> <FONT face="Times New Roman">(6) BBS Chess(BBSCHESS)</FONT>:一個用 <FONT
face="Times New Roman">Visual Basic </FONT>制作的國際象棋局面設置工具,可在各高校<FONT
face="Times New Roman">BBS</FONT>上粘貼彩色的國際象棋局面; </DT></DIV>
<DIV align=left>
<DT> <FONT face="Times New Roman">(7) </FONT>棋盤圖片生成器<FONT
face="Times New Roman">(FEN2BMP)</FONT>:一個可以把國際象棋和中國象棋的<FONT
face="Times New Roman">FEN</FONT>文件轉換成<FONT
face="Times New Roman">BMP</FONT>文件的實用工具。 </DT></DIV>
<DIV align=left>
<DT> 以上模塊都提供了源程序,<FONT face="Times New Roman">"cchess"</FONT>、<FONT
face="Times New Roman">"ucci2qh"</FONT>、<FONT
face="Times New Roman">"BBSCHESS"</FONT>和<FONT
face="Times New Roman">"FEN2BMP"</FONT>這四個模塊必須在遵循<FONT
face="Times New Roman">GPL</FONT>協議的前提下使用。 </DT></DIV>
<DIV align=left>
<DT> </DT></DIV>
<DIV align=left>
<DT> 如果要獲得關于 <FONT face="Times New Roman">ElephantEye
</FONT>的更加詳細的信息,可登錄《象棋百科全書》網站: </DT></DIV>
<DIV align=left>
<DT> <A href="http://www.elephantbase.net/"><FONT
face="Times New Roman">http://www.elephantbase.net/</FONT></A> </DT></DIV></DL>
<DIR>
<LI>上一篇 <A href="http://www.elephantbase.net/league/coony.htm"><FONT
face="Times New Roman">UCCI</FONT>引擎——<FONT
face="Times New Roman">Coony</FONT></A>
<LI>下一篇 <A href="http://www.elephantbase.net/league/eychessu.htm"><FONT
face="Times New Roman">UCCI</FONT>引擎——愛華象棋<FONT
face="Times New Roman">/EYChessU</FONT></A>
<LI>返 回 <A href="http://www.elephantbase.net/league.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="中國象棋對弈程序ElephantEye(象眼)_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>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -