📄 《对弈程序基本技术》专题——概述.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0048)http://www.elephantbase.net/computer/outline.htm -->
<HTML><HEAD><TITLE>《对弈程序基本技术》专题——概述</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb_2312-80">
<META content="MSHTML 6.00.3790.536" name=GENERATOR><!-- This document was created from RTF source by rtftohtml version2.7.5 --></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 size=3>黄晨 </FONT><FONT face="Times New Roman" size=3>*</FONT><FONT
size=3> </FONT><FONT face="Times New Roman" size=3>2005</FONT><FONT
size=3>年</FONT><FONT face="Times New Roman" size=3>9</FONT><FONT
size=3>月</FONT> </CENTER></DT></DIV>
<DIV align=center>
<CENTER>
<DT><FONT face="Times New Roman">( * </FONT>联系地址:复旦大学化学系表面化学实验室,<FONT
face="Times New Roman">eMail</FONT>:<A
href="mailto:webmaster@elephantbase.net"><FONT
face="Times New Roman">webmaster@elephantbase.net</FONT></A><FONT
face="Times New Roman">)</FONT> </CENTER></DT></DIV>
<DIV align=left>
<DT> </DT></DIV>
<DT> 我花了大量时间翻译了<FONT face="Times New Roman">F. D. Laram</FONT>é<FONT
face="Times New Roman">e</FONT>的《国际象棋程序设计》<FONT face="Times New Roman">(Chess
Programming)</FONT>连载,现在已经具备了设计象棋引擎的能力,但是还需要一些资料。为此,我查找了各个象棋程序设计的网站,收集了很多专题性的文章,并且整理成<FONT
face="Times New Roman">Laram</FONT>é<FONT
face="Times New Roman">e</FONT>写他的连载时形成的体系。
<DT> 我整理的文章除了<FONT face="Times New Roman">T. A. Marsland</FONT>的《<A
href="http://www.elephantbase.net/computer/anatomy.htm"
target=_blank>国际象棋程序剖析</A>》一文外,把它们分成四类,它们分别对应了<FONT
face="Times New Roman">Laram</FONT>é<FONT
face="Times New Roman">e</FONT>的连载的四个部分。由于是从不同的网站上收集的,作者也各不相同,他们分别是: </DT></DL>
<UL>
<LI><FONT face="Times New Roman">D. Eppstein</FONT>,加州爱尔文大学<FONT
face="Times New Roman">(UC Irvine)</FONT>的计算机教授,我收录了他<FONT
face="Times New Roman">1997</FONT>到<FONT
face="Times New Roman">1999</FONT>年做专题讲座的<FONT
face="Times New Roman">9</FONT>篇文章,基本上是概述性的,也有细节上的东西,包括源代码<FONT
face="Times New Roman">(</FONT>这可能是读者最感兴趣的<FONT
face="Times New Roman">)</FONT>。
<LI><FONT face="Times New Roman">J. Swafford</FONT>,公开源代码的国际象棋引擎<FONT
face="Times New Roman">Galahad</FONT>的作者<FONT
face="Times New Roman">(Galahad</FONT>并不算很成功,现在已经销声匿迹的<FONT
face="Times New Roman">)</FONT>,<FONT
face="Times New Roman">Laram</FONT>é<FONT
face="Times New Roman">e</FONT>的连载中提到过他的文章,我收录的<FONT
face="Times New Roman">3</FONT>篇文章<FONT
face="Times New Roman">(</FONT>都是关于位棋盘的<FONT
face="Times New Roman">)</FONT>则是一个叫<FONT face="Times New Roman">Allen
Liu</FONT>的网友翻译的,其实肯定不止这<FONT
face="Times New Roman">3</FONT>篇。不过现在他的网站现在已经关闭了,因此没有他的原文,这点让我非常遗憾。
<LI><FONT face="Times New Roman">B. Moreland</FONT>,微软<FONT
face="Times New Roman">(Microsoft)</FONT>的程序设计师,业余从事国际象棋引擎<FONT
face="Times New Roman">Ferret</FONT>的开发,在电脑奥林匹克大赛国际象棋业余组里,它和著名的<FONT
face="Times New Roman">Crafty</FONT>一样处于领先水平。<FONT
face="Times New Roman">Moreland</FONT>的文章涵盖的范围最广<FONT
face="Times New Roman">(</FONT>除了局面评价以外都涉及到了<FONT
face="Times New Roman">)</FONT>,所以我收集得最多。
<LI><FONT face="Times New Roman">M. Fierz</FONT>,瑞士<FONT
face="Times New Roman">Aargau</FONT>学院的物理学家,国际象棋业余棋手,业余从事棋类程序的设计,作品有<FONT
face="Times New Roman">Muse(</FONT>国际象棋<FONT
face="Times New Roman">)</FONT>、<FONT
face="Times New Roman">Cake(</FONT>西洋跳棋<FONT
face="Times New Roman">)</FONT>等。我收录了<FONT
face="Times New Roman">Fierz</FONT>写的关于残局库、开局库等其他方面的译文,使得整个专题更为完整。 </LI></UL>
<DL>
<DT><FONT face=楷体_GB2312 size=5><STRONG>一、数据结构</STRONG></FONT>
<DT>
<DT> 这部分内容极其丰富,不仅包括棋盘的表示方法,还包括着法产生当中需要用到的数据结构。我把关于“着法产生”的文章也并入其中,因为这部分内容实在很难归为一类,因此它代表了<FONT
face="Times New Roman">Laram</FONT>é<FONT
face="Times New Roman">e</FONT>的连载的第二和第三部分。
<DT>
<DT><FONT face="Times New Roman"><STRONG>1.1 </STRONG></FONT><A
href="http://www.elephantbase.net/computer/struct_intro.htm"
target=_blank><STRONG>数据结构——简介</STRONG><FONT
face="Times New Roman"><STRONG>(D.Eppstein)</STRONG></FONT></A><STRONG>;</STRONG>
<DT><FONT face="Times New Roman"><STRONG>1.2 </STRONG></FONT><A
href="http://www.elephantbase.net/computer/struct_bitboard.htm"
target=_blank><STRONG>数据结构——位棋盘</STRONG><FONT
face="Times New Roman"><STRONG>(J.Swafford)</STRONG></FONT></A><STRONG>;</STRONG>
<DT><FONT face="Times New Roman"><STRONG>1.3 </STRONG></FONT><A
href="http://www.elephantbase.net/computer/struct_rotation.htm"
target=_blank><STRONG>数据结构——旋转的位棋盘</STRONG><FONT
face="Times New Roman"><STRONG>(J.Swarford)</STRONG></FONT></A><STRONG>;</STRONG>
<DT><FONT face="Times New Roman"><STRONG>1.4 </STRONG></FONT><A
href="http://www.elephantbase.net/computer/struct_movegen.htm"
target=_blank><STRONG>数据结构——着法生成器</STRONG><FONT
face="Times New Roman"><STRONG>(J.Swarford)</STRONG></FONT></A><STRONG>;</STRONG>
<DT><FONT face="Times New Roman"><STRONG>1.5 </STRONG></FONT><A
href="http://www.elephantbase.net/computer/struct_0x88.htm"
target=_blank><STRONG>数据结构——</STRONG><FONT
face="Times New Roman"><STRONG>0x88</STRONG></FONT><STRONG>着法产生方法</STRONG><FONT
face="Times New Roman"><STRONG>(B.Moreland)</STRONG></FONT></A>;
<DT><FONT face="Times New Roman"><STRONG>1.6 </STRONG></FONT><A
href="http://www.elephantbase.net/computer/struct_zobrist.htm"
target=_blank><STRONG>数据结构——</STRONG><FONT
face="Times New Roman"><STRONG>Zobrist</STRONG></FONT><STRONG>键值</STRONG><FONT
face="Times New Roman"><STRONG>(B.Moreland)</STRONG></FONT></A><STRONG>。</STRONG>
<DT>
<DT><FONT face=楷体_GB2312 size=5><STRONG>二、基本搜索方法</STRONG></FONT>
<DT>
<DT> 目前象棋程序的搜索算法,都是在“带置换表的启发式<FONT
face="Times New Roman">Alpha-Beta</FONT>搜索”基础上发展起来的,这就涵盖了最小<FONT
face="Times New Roman">-</FONT>最大搜索、<FONT
face="Times New Roman">Alpha-Beta</FONT>搜索、迭代加深和置换表四个内容,把他们归入基本搜索方法的范畴是非常恰当的。
<DT>
<DT><FONT face="Times New Roman"><STRONG>2.1 </STRONG></FONT><A
href="http://www.elephantbase.net/computer/search_intro1.htm"
target=_blank><STRONG>基本搜索方法——简介</STRONG><FONT
face="Times New Roman"><STRONG>(</STRONG></FONT><STRONG>一</STRONG><FONT
face="Times New Roman"><STRONG>)(D.Eppstein)</STRONG></FONT></A>
<DT><FONT face="Times New Roman"><STRONG>2.2 </STRONG></FONT><A
href="http://www.elephantbase.net/computer/search_intro2.htm"
target=_blank><STRONG>基本搜索方法——简介</STRONG><FONT
face="Times New Roman"><STRONG>(</STRONG></FONT><STRONG>二</STRONG><FONT
face="Times New Roman"><STRONG>)(D.Eppstein)</STRONG></FONT></A>
<DT><FONT face="Times New Roman"><STRONG>2.3 </STRONG></FONT><A
href="http://www.elephantbase.net/computer/search_intro3.htm"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -