Departments of Computer Science and Psychology The University of Queensland, QLD 4072, Australia
4.1.3 Reitman and Wilcox
4.2.1 The Many Faces of Go
8.1.1 匿名 FTP Archive 及镜像站点
8.1.2 The Internet Go Server (IGS)
8.1.4 The Computer-Go Mailing List
8.1.5 The Computer Go Ladder
8.2.3 The Go News Group
本文旨在向读者介绍电脑围棋领域的状况及 Internet 上的相关资源。
围棋的棋盘是由一些经纬线组成的网格点，通常是19 x 19的，称19路棋盘，但9路及13路棋盘也有使用，棋子分黑白两色，黑棋先行，对弈双方轮流落子，棋子就下在网格交叉点上。最后占据交叉点多的一方即为胜者。
同色的棋子在经线或纬线上相邻，称为连接。（如图4）连接在一起的棋子组成了一块棋，当然单一一颗棋子也可以称一块棋。块棋的气是组成它的所有棋子的气的总和，（如图5标L的点）；也就是说，要提掉一块棋，必须包围它?⒉皇?A HREF="#2.1.1">自尽，因为要先提掉对方的子，它的气就有了。有两眼的块棋是永远不可能被提掉的，（如图9中标E的点），因为对方不可能同时落下两颗棋子填眼，而单在一眼中填子不能提子 就是被禁止的自尽了。
为 平衡高手和下手之间的棋力差距，下手可以被授先。在应氏规则中，授子是由下手先行奕出的若干步棋着，而在中国/日本规则中，授子是有固定位置的。授子数根 据棋力的差距而定，例如10级棋手可以对15级棋手授5子。其确定的原则是使得下手对高手的胜率为50%，或可以按每输10子授1子概算。如果使用小棋 盘，则授子数相应减少。如9路上授1子相当于13路授2子或19路授1子。
同 国际象棋编程相比较，围棋编程领域的发展尚处于初级阶段。在国际象棋的编程研究领域中曾出现过象60年代和70年代时投入了强大的研究力量的情形，在围棋 编程领域从来没有过。在两者之间有着本质的区别，使得国际象棋受人青睐成为研究对象，同时，即使也有力量投入围棋编程，其结果也无法赶上国际象棋编程的进 步。这里有几大原因，一方面是由于围棋本身的复杂性，另一方面是由于在国际象棋领域取得的编程技术无法恰当地运用于围棋领域。
3. 着手的相对自由，使得每步棋着的选择（分支因子）可以高达平均200个，而国际象棋中由于棋子走步的限制平均只有40个选择；随着棋局的进展，国际象棋棋 子减少，使得分支因子降低，而围棋中则没有这种优势。分支因子还影响棋局的各个阶段（布局、中盘和官子）。在国际象棋中， 开局有许多著名体系，通常深达10步之多；而在围棋中，布局种类非常之多，而深度很少有超过3手的。当然，在边角上围棋也有定式可循，但定式的选择仍要考 虑周围棋子的配置等等，需要一定的技巧。
4. 围棋与国际象棋棋局都有两种终了的方式：认输和自然终局，国际象棋的终局比较容易判别，就是将死，而在围棋中终局是由双方同时认可的，但初学者又很难判别 是否已经没棋可下，所以他们下出的棋局往往比高手之间的要长，围棋程序也会犯同样的毛病。如果按照日本的比目法计算胜负，则多余的着手会因为填在己方的空 里或变成对方的提子而减少目数。
6. 国际象棋的棋局随棋子的移动立即发生变化，而在围棋中，这种变化并不显著，从而需要大容量的记忆分析棋局。即使是一个初学者也可以看出60步以后的征子结 果，这是一个很深但很窄的算路。只有最后当棋子被提掉的时候，棋盘的物理状态才发生显著变化。在围棋中，价值30目的棋经常作为交换被提掉，而最终胜负却 可能只有2目。
7. 在国际象棋和围棋的棋局中，棋手通常要考虑全局策略和局部战斗两个因素。在国际象棋中，由于存留棋盘上的棋子的数量和质量与棋局形势基本相关，所以在电脑 国际象棋中基本并不把全局策略考虑在内。而在围棋中，局部战役的得失与全局的胜败并不完全相关，在开局时，棋手要考虑棋势而不是实地。所以大多数围棋程序 都包含一个棋势的估价算法，但除了实战解决无法评价这类算法本身。
9. 人类棋手在国际象棋和围棋中的思维也是不同的。初学者都只能看几步，但在围棋中，类似征子之类的棋形，初学者可以不费力气地一目了然，因为这一连串的着手 都是打将。在典型的国际象棋棋局中，专家可以计算出10步左右，但每步只有几种变化而已，在围棋中，每步的变化就非常之多，其中也可能有很深的如征子手 段，这样用广度搜索和深度搜索都是无法很好把握的。
11. 国际象棋在70年代早期被用来作为人类思维的研究对象，Chase和Simon于1973年表明专家棋手使用的是棋子分级思维；而Reitman1976 年的研究结果则表明归于围棋棋手正相反，使用的是棋子交叉思维。确定棋子的联络与分割，是决定棋子死活的关键，Reitman的研究表明，只有到终局，棋 子间的关系才能澄清，这一研究结果显示了在围棋编程中使用分级理论产生评价函数可能带来的问题。
12. 在国际象棋和围棋的实际对局中，对手的水平是影响棋局的一大因素。在国际象棋中只有两位旗鼓相当的棋手才可能奕出可观的棋局，而在围棋中，由于存在授子制 度，高手的水平可以由授子来抵偿，在这种比赛中，下手总是力图简化棋局，保持优势，而上手就不得不出险着引得对方犯错误；尽管最终的目数可以反映双方的棋 力差距，但对局者更多关心的是输赢，宁可少赢也不肯冒险多赢，所以在许多棋局中对手的水平可以决定棋手的战略。棋手需要在各个方面下工夫，而不是偏重某种 技巧的原因，这样才能有效地攻击对方的弱点。根据电脑围棋程序对某人的首次对局确定其棋力是通常的做法，同一个人第一局输给了电脑，以后几局很可能都会 赢，因为他发现了对手的弱点，而电脑程序则没有任何改变。
研 究表明，对任意给定的n路棋盘围棋棋局，确定胜者这一问题是P-空间难解的。 (Lichtenstein and Sipser, 1980)另一项研究还涉及了劫争问题以表明，对任意给定的围棋棋局，确定胜方和选择着手都是指数时间问题。 (Robson, 1983)因此，在解决一些围棋问题时使用模糊算法以取得接近最优解是必要的，而单纯的搜索很快就会导致困难。
在Allis et al. (1991)一文详尽地分析了围棋与其他棋类相比的复杂性，文中定义了两个术语：可求解和完全可解；并演示了搜索空间的复杂度与决策复杂度的区别。 如果一种棋类在任意棋局中都可以通过程序得到最优解，称为可求解的；如果这一正解可以由人类语言解释，则它是完全可解的。演示是通过一种围棋的抽象模型完成的，该模型规定双方轮流落子或放弃着手，先占据181点的获胜，它具有与围棋相同的搜索空间复杂度，但只要先行一方不放弃着手就肯定会赢，所以没有决策复杂度。
Allis et al 就16种棋类按可解与不可解分类给出了其搜索空间复杂度的复对数指标和决策复杂度的对数指标图，图中显示围棋的两项指标都是最复杂的，而且是不可解的。对 于围棋与国际象棋的比较，研究结果表明9路棋盘围棋的复杂度与国际象棋近似，搜索空间以10为底的指数为35对50，而19路棋盘围棋要复杂得多，所以如 上所述是不可解的。(Allis et al. 1991).
在 围棋中评估棋局遇到了在国际象棋中不曾有的问题，围棋与后者相比更注重全局战略。围棋不象国际象棋那样注重单个棋子的得失，而棋势又是在漫长的对局中逐渐 形成的，在对局中有着各种各样直接的和间解的战略以赢得胜利，如围取实地、扩张外势、攻击弱子、防守、打入等等。由于棋盘很大，围棋棋局还包含了许多局部 定式。如果把国际象棋成为一场战役的话，那么围棋就是一场战争。许多局部战斗的应手都要根据全局战略做出选择，因此棋手必须掌握局部和全局的均衡。
由 于棋局评估带来的种种问题，在国际象棋编程中使用的人工智能优先搜索技术在围棋中无法适用。围棋在人工智能和认知科学中更有研究价值。Hans Berliner前国际象棋世界冠军、美国著名棋手、著名国际象棋编程专家曾就围棋说过"... 围棋必将取代国际象棋作为人工智能的研究对象" (Berliner, 1978).
最早的围棋程序是由Albert Zobrist作为他模式识别专业博士论文的一部分提出的(Zobrist, 1970)我们在此主要涉及与电脑围棋相关的部分。
Zobrist 引入了效果函数的方法将棋盘分为黑方和白方地域。效果函数计算棋盘上每一个交叉点的数值量，黑子取值+50、白子取值-50而空白点为0；正数效果的点要 给其邻接点加+1，同样负数效果点的邻点加-1，这样的算法递归执行4次，将棋盘最终数值化(如图17).
建 立内部表达诸侯，程序对棋局进行模式识别在自身的模式库中寻找匹配。模式库中包含着着手及其评估值，得到一个匹配后，就在该点加上它的评估值，在匹配过程 中需要使用旋转和对称等技术。最后把取得评估值最高的点选择为着手。Zobrist的程序大致是使用了累加评估值的方式。
Jon Ryder(Ryder, 1971)的程序是Zobrist研究的深入，同样使用效果函数和累加评估选择着手。但Ryder增加了全局战略和局部战术考虑，并增强了算路的深度，Ryder在短线目标中考虑局部战术而在长线目标中使用全局战略。
Ryder 的程序对深算产生的搜索树使用了向前修剪的方法，应用不同的方案决定是否有必要跟踪搜索树的某个分支，也就是说某一着手是否值得考虑。终止搜索的放；方案 包括目标块棋已有两眼、逃棋是否长出5气或是使块棋得救。向前修剪的风险在于最佳着手可能在被发现以前就被忽略了。
象Zobrist 一样Ryder也使用了一个效果函数提供每个棋子对其周围影响度的量化。他的效果函数与Zobrist的类似，也是黑方取正数、白方取负数，某点效果的取 值由其邻点的效果传播累加形成。Ryder的效果函数较Zobrist的简单，传播系数是固定的（如图18）
对 某点的效果估计过高或过低都将给判断带来问题，估计过高会使在该处过分注重而因此忽略大局，估计过低则可能被对手抓住要害。最优着手应当是接近效果估计曲 线峰值的点。Ryder把棋子的效果视为棋子的局部属性，尽管他也承认在某些情形下棋子可能对距离较远的棋子有影响，例如引征。在这种效果函数无法准确表 达的情形中，使用局部战术评估以弥补效果函数的缺点。
Ryder 提议的进一步改进方案包括搜索初期信息的复用、引征问题和弱势的定义，Ryder指出在处理中占10%时间的棋局阶段分析值得注意。Ryder程序的结果 不甚理想，其原因也在于它对于开局、中盘和官子没有一个清晰的区分，因此特别是在官子中使用了不恰当的局部战术，Ryder认为以后的改进应对此加强。
4.1.3 Reitman and Wilcox
Walter Reitman和Bruce Wilcox于1972年开始将围棋作为研究对象，作为研究结果的程序分别命名为Reitman-Wilcox和INTERIM.2。研究中断后 Wilcox重写了INTERIM.2程序而产生了一个商业围棋程序NEMESIS。
Reitman和Wilcox应用围棋开始的研究 主要集中于人工只能领域，包括模式识别(Reitman et al., 1978; Reitman and Wilcox, 1975,1978)、规划(Reitman and Wilcox, 1974)以及人类在围棋中的感觉与认知过程再现。事实上，程序的目的是与人类棋手对弈并将结果记录事后由高手复盘以发现人类的思维特点。
根 据Reitman和Wilcox围棋程序的三个基本方面是认知、知识和综合(Wilcox, 1988)。他们在程序中尽量加入描述以获得与熟练棋手相当的认知水平，识别并存储了两类围棋知识：着手决策知识包括如何吃棋、如何围空等；形势判断知识 包括确定棋块的属性及相关的量化分析等；通过适当的控制结构综合程序的认知和知识以选择着手。
程 序将棋局描述存储在一个称为GAMEMAP的结构中，包含着一组称为GAMEBOARDS的数组变量中。在每个GAMEBOARD数组中都有向各种特殊数 据结构的指针，如STRING-BOARD包含向棋盘上所有块棋的指针。GAMEBOARDS变量由简单而复杂：TYPEBOARD、 STRINGBOARD、LINKBOARD。特殊的GAME-BOARDS变量如LENSBOARD、WEBBOARD、SECTORBOARD和 TACTICSBOARD是为描述熟练的人类棋手的感觉与认知过程相应设计的。
程 序的战术部分，即PROBE是用于解决特殊问题的，取代通常的全盘考虑的目标驱动的算路。PROBE基于这样的假定，即如果对于一个给定的问题，一组智能 选择逻辑都返回同样的结果，则可以认为这是正解。这样的假定并非总是有效的，但Reitman和Wilcox认为这是为加速搜索而付出的小代价而且与人类 因类似原因误算造成的损失无法同日而语。PROBE是模拟人类围棋棋手进行选择性计算的过程设计的(Reitman and Wilcox, 1979).
PROBE可以用来解决一个特定的问题并给出一个适当的着手，最初的着手选择后可以得到一个假定落子后的棋局形势。 PROBE根据这一假定继续计算下一手，知道得到该问题的结果。如果结果是成功的PROBE返回初始着手，否则推翻假定重新计算，在非限制性的计算中，要 遍历所有的着手以求的正解。但在PROBE中不是所有的着手都计算，每方的失败都被限制在2到3次以返回失败结果。
着手的选择和检查是 由一组专家知识形成、评估并实现的直指目标的思维链(Wilcox, 1988).，其中包括各种各样的专家知识，如产生目标和子目标的、建议着手以明了目标的、当前棋局和目标专用的、使用所有目标与子目标的。专家知识包含 了许多特殊的围棋知识。Reitman和Wilcox在PROBE中实现的控制结构使得各种专家知识得以组织、便于测试并可扩展(Wilcox, 1988)。. The goal-directed behaviour of PROBE的直指目标的方式使得在特定情形下搜索可以深算到60-80步(Wilcox, 1988).
INTERIM.2 在描述棋局时维护了许多数据结构。点状态（黑、白或空）用以确定块棋，块棋的一个基本属性是死活。INTERIM.2可以识别尖、关、 二间关、小飞、大飞等联络，联络又分为普通联络、可能联络和死棋联络。联络的基本属性包括它们是否能连接或切断，是否与对方联络交叉，及建立联络的原因， 还可识别盘边四线以内的特殊联络。分界线即长距离的联络用于棋形评估及着手选择，不可能被切断的几块棋可以认为是成块棋形，而相互联络的块棋称为棋块，由 块棋、块棋联络及盘边围成的包含空点和对方死子的区域称为封闭区域。着手的动机也记录下来以增强选择水平并便于调试。
效果是根据 Ryder算法传播的，Reitman和Wilcox发现在某些形势下效果可能是一种误导，所以改进了效果的概念。大块的同号值效果区域结构中并没有包含 联络信息，其边界是通过效果传播的收缩形成的，在此过程中没有考虑棋子及其连接的属性，因此区域确定的最终结果可能是弧形的或带状的。独立的区域结构最后 又合并成为效果块，在效果块中越处于中心位置越有可能成为实地。
在INTERIM.2中Reitman和Wilcox建立维护的棋局描 述，即认知与数据结构有时也称认知表达，在INTERIM.2程序中使用的两个认知元素特别有趣，其一是网格，用于确定由棋子效果形成的区域，另一是透 镜，用于通过程序本身的模式库确定棋局中的实际棋形。
网格是围绕棋块建立的气数圈，向外发散最高可达9层，到其他棋子为止，不论是哪一 方的。棋子之间的联络或棋子与盘边的联系（最多距离3点）也可以终止网格。最外层的网格点构成其边界，网格边界对于识别可能的攻击来自何处、在何处可以躲 避攻击、周围己方棋块的位置、如何断开联络等。
INTERIM.2程序的3个对局结果在Reitman & Wilcox (1978)中发表，其中两局分别战胜了22级和34级棋手，一局输给了一位4级棋手，由此计算得出INTERIM.2程序的级位为27级。
Paul Lehner是Wilcox的学生，他在围棋战略规划领域获取了科学博士学位(Lehner, 1981) ，他的著作是Wilcox曾发现这在围棋棋手中经常表现出的基于替代搜索(Kerwin and Wilcox, 1973)。
David Stoutamire (1991)以围棋为对象研究机器学习，是通过专家知识库获取着手选择而不是运用围棋战术/战略知识组合。Stoutamire接着开发了一种名为模式优 先的分类技术以自动获取好棋的模式表达；由于模式库呈指数增长，还开发的一个补救程序在内存需求增加时降级处理。
为 避免由于使用搜索树评估和选择着手带来的指数爆炸，Peter Sander (1979)用自顶而下或目标导向的组织结构设计了一个选择着手的程序。Sander的程序名为Kyu，创建了一个随棋局进展变化的自底向上的组织结构， 将战略简化为目标，并据此选择着手。Kyu只能从开局走到25手，且没有后续的计算逻辑。
Kenneth Friedenbach以围棋为对象研究感觉和认知在解决复杂问题中的交互作用(Friedenbach, 1988)，他基于图论将层次抽象化并应用于围棋。他之所以使用围棋作为研究对象是因为其理念与多层组织相关。
Friedenbach 用三种条件规定一个分析：启动条件、终止条件和继续条件。以战术分析为例，其启动条件是有一少于三气的块棋，终止条件是所有块棋都至少有三气；其继续条件 包括打吃提子和防守方的新增棋子，在分析过程中如果一个着手导致了气数的变化，则需要重新分析。
4.2.1 The Many Faces of Go
The Many Faces of Go (MFG)是目前最好的商业围棋程序之一。David Fotland从1981年起开始利用业余时间编程围棋并于1990年发表了MFG。Fotland此后还不断的改进MFG并在电脑围棋邮件列表中经常就 电脑围棋编程和MFG发表论题。MFG发展为两个著名的程序：G2和Cosmos。
Fotland 的第一个围棋程序使用辐射效果函数确定边界。不幸的是，它很容易被一个简单的收气算法所击败，于是他又设计了G2。G2的内部结构分为数据结构、战术分析 和着手选择(Fotland, 1986)。G2使用了全盘考虑逐一评估有效着手并侧重战略部署，最后选择最高估值的着手。
G2 中的大多数代码是用来更新数据结构，棋子占据点（称格）并组织成块棋（称群）最后形成棋块（称大群）。数据与盘上每点相联系，包括到最近纵横边界的距离、 邻接点和对角点列表、块棋指针、气数及其列表、邻接点棋子颜色（黑、白或混合）、效果函数以及各个方向的最近邻接点。
有 趣着手被启发估值，最高值选为进一步分析，作为假定应手后以对方的视角评估全局。同样，又选出最佳着手假定，在每一步都使用回溯和最大-最小过程修剪。因 此要建立一个先深搜索树直至棋块被确定死活，搜索树深度最多可达80手，使得征子可以精确地计算出。“最佳”着手数（1到3个）取决于当前着手在搜索树上 的深度：在树根附近多在树叶附近少。由于其终止节点的取值只有两种（吃住或逃跑），所以最大-最小过程修剪非常有效(Fotland, 1996)。
使用含65条规则的战略评估器通过两步估值选择着手。第一步先评估战略着手，第二步评估所有着手。数据结构和战术分析的信息在这两步中都用来评估棋局。Fotland 感到由于数据结构的弱点使得G2在这方面也是弱点(Fotland, 1986)。
在1981 和1988年间Fotland花费了将近四年的业余时间编写G2，由于计算机的速度不能满足更强的围棋程序的需要，他终止了几年在G2上的工作 (Fotland, 1996)。G2大约有11000行C代码占用了700k左右的代码和数据内存。在此期间，Fotland的围棋水平由15级增强到1段。G2大致水平为 25-20段，不费太大力气就可以战胜初学者(Fotland, 1986)。Fotland在电脑围棋比赛中也获得成功，G21997年在台湾世界电脑围棋比赛中排名第四、在美国电脑围棋冠军赛中获得第一。
Fotland converted G2 into Cosmos in 1988. The main difference between Cosmos and G2 was that instead of evaluating all legal moves, only suggested moves were evaluated. This transition was achieved by increasing the number of move suggestors to over 250. Quiescent search was added and the connection, eye, and territory evaluations were made more accurate (Fotland, 1996).
The data structures used in Comos were basically the same as those used in G2. The eye information included the number of eyes achievable in gote, the number of eyes achievable in sente, the number of eyes achievable if the opponent moved twice, a list of vital points, and eye type. The information contained in the data structures was updated either incrementally (e.g., lists of liberties) or after every move (e.g., influence).
Essentially, Cosmos had the same tactician as G2 but better move generation and sorting. In Cosmos, the tactician was only used to determine dead and threatened strings by trying to capture them. Its parameters were maximum liberty count, maximum, depth, and maximum search size. The maximum liberty count was 4, and therefore as for G2, strings with more than 4 liberties were assumed to avoid capture.The maximum depth allowed was 100. The search size determined the playing level (Stoutamire, 1991) and since forcing moves were not counted, ladders could be accurately read even at low playing levels.
Territory was determined by radiating positive influence from alive groups and negative influence from dead groups. Radiated influence did not pass through stones or connections and was inversely proportional to distance.
Life and death of groups was the primary concern dealt with by the evaluation process. Board positions were evaluated by a similar process to that used in G2 with the addition of quiescent search.
The tactician was used to determine dead and threatened strings (those that could be captured if they moved second) and whether the stones at the diagonal of eyes could be captured. This information was useful in identifying unbreakable connections and forming strings into groups.
Eyes were analysed to determine their potential and then allocated to groups. False eyes were identified by checking the diagonals of eyes and some dead shapes were also known by Cosmos. Any group with enough eyespace to make two eyes was considered to be alive. Potential eye space could be gained by extensions along the edge, possible connections, being adjacent to a threatened enemy group, and by controlling territory which was not already considered to be an eye.
There were 25 values that described a groups strength in terms of its life and death status. The values were divided into five main categories which included very alive, alive, unsettled, weak and dead. Determining the strength of a group included considering potential connections, potential eyes, and potential extensions along the edge. Positive influence was radiated from alive groups and negative influence was radiated from dead groups with black and white influence being maintained separately.
Weak groups which were contacted by the influence from friendly alive groups were considered not to be surrounded. Weak groups were further divided into those that could run and fight and those which would almost certainly die.
In general, board points were scored according to the radiated influence values. However, occupied board points, board points adjacent to a stone and board points between a stone and an edge were scored differently. Unsettled groups were scored according to who as to play next.
Cosmos had over 250 rules that suggested moves which included fuseki moves (including shimari, kakari and joseki moves), edge moves, playing in the centre, playing safe when ahead of opponent, "squirming" around when behind opponent, pattern matching, saving weak friendly groups (including making eyes, running, or fighting semeais), killing weak enemy groups, cutting, connecting, contact fights, ko threats, and filling dame. Cosmos had a joseki library which contained around 5000 suggested joseki moves and a pattern database which had 60 patterns which were 5 x 5 in size. Whenever a match was made, the rule (code) associated with the pattern was applied (executed) and would then suggest a move. The addition of extra moves to be suggested could easily be accomplished by the addition of new move suggestor rules or the addition of patterns.
The rules would supply a guess value (probable evaluation of the move), bonus value, minimum aliveness value, and would indicate which groups were being attacked or defended if any. The moves were sorted by their guess values and, depending on playing level, a certain number were "played". Moves could be rejected before being evaluated if they did not "apply". A move applied if it accomplished what it was intended to do: if a move was intended to defend a group and the group ended up weaker than it started the move was rejected. Surviving moves were awarded a sente bonus if they achieved sente. The position resulting from the move was then evaluated. The evaluation score, the sente bonus and the rule bonus were summed together and the highest scoring move was selected as the next move.
Size, Performance and Timeline
It took Fotland nine months to compress G2 down to 512 k and add a new user interface. In 1988 Cosmos was released by Ishi Press for IBM-PC as Cosmos, The Computer Go Partner and was released a second time in 1989. Due to the amount of time spent on the user interface, Fotland was unable to devote sufficient time to improving Cosmos' playing level and its performance in various world computer Go championships was modest coming 8th in 1988 and 7th in 1989 (Fotland, 1996).
18.104.22.168 Many Faces of Go
After a rewrite of the user interface and addition of professional graphics and new features, Cosmos was released as The Many Faces of Go in 1990. Additions to MFG included a limited full board lookahead capability, consideration of the value of sente, and a strategy function which is used to focus attention on the important areas of the board and to identify urgent moves. The number of patterns in both the joseki and pattern databases were increased. The pattern database was also improved by increasing the pattern size from 5x5 to 8x8, by storing many suggested moves for each pattern in a move tree (rather than just one per pattern as for Cosmos), and by a complete rewrite which encompassed algorithms, code, and data structures and lead to an increase in speed (Fotland, 1996).
The dynamic data describing a board position is stored in three classes of data structures: incremental, locally recalculated, and globally recalculated. The data in the incremental data structures is updated upon addition or removal of a stone and includes low level information such as lists of empty points, number of liberties etc. Locally recalculated data is updated as it is needed i.e., it is only updated for regions of the board which have been affected by a particular move or move sequence, and includes connection strength, and eyes. Globally recalculated data is updated for the whole board and includes group strength and influence. The locally and globally recalculated data structures are maintained by the evaluation function.
The dynamic data is stored globally and is generated progressively in several passes of increasing abstraction. The dynamic data used in MFG includes point environment, string data, connection data, eye data, potential eye data, group data, territory, and score.
An instance of the connection data structure stores information pertaining to connectivity between two strings. Each connection has a list connection points i.e., a liberty of one string which is no more than three points away from the other string. Thus, the connection recognised by MFG include hane, one point jump (ikken tobi), knights move (kogeima), two point jump (nikken tobi), large knights move (ogeima), three point jump, and bent three point. Other special connections near the board edge are handled through the pattern database. The data stored in the connection data structure includes the strings involved in the connection(s), the number of and lists of one, two and three point connections (i.e., as measured from the connection points), the type of each connection, and the strength of each connection (e.g., already cut, cuttable, shared connection, connected with aji, connected solidly). Other than the type and strength data which is stored in a locally recalculated data structure, the connection data is stored in an incremental data structure.
The eye data structure records information pertaining to either a block of empty point or dead enemy strings which are partially or completely enclosed by friendly stones. Data stored in the eye data structure includes colour, a list of the points in the eye, vital points, and eye type (e.g., one point, two point, line eye, big eye, and dead group eye). The number of eyes (to a resolution of 1/8 of an eye) achievable under various conditions were recorded including the number of eyes if opponent moves twice, number of eyes if opponent moves next, and number of eyes if program moves next. A board point can only be recorded as belonging to one eye. The eye data structure is a locally recalculated data structure since eye data does not lend itself to incremental update. In hindsight, Fotland says that a pattern based approach to recognizing eyes would be preferable (Fotland, 1993).
The evaluation of group strength and the generation of attacking and defending moves involves identifying potential eye space and running points. The potential eye data structure contains type, value and location data for potential eyes. An examples of data stored in the potential eye data structure is "extend along edge" (type), value is number of new points of eye space, and location is the liberty to extend from. Running points are stored by type (e.g., running towards friendly/unfriendly stones) in several different lists. Potential eyes and running points are stored in a globally recalculated data structure.
Every string with three or less liberties and many strings with four liberties are read by the tactician. Each string is read twice, once with White moving first and once with Black moving first. The tactician determines whether a string is captured (i.e., can not live even if it moves first), threatened (i.e., it lives if it moves first and dies if it moves second), or stable (i.e., lives regardless of who moves next). The tactician relies on simple heuristics concerned with the number of liberties and connectivity; pattern matching is not used in the tactician.
The tactician has two separate move generators; one to generate attacking moves and one to generate defensive moves. The moves suggested by the move generators are sorted according to criteria which include second order liberties, cut points, and simple eye shapes. Once sorted, an alpha-beta depth-first search is employed with the performance of the search depending on the quality of the move sorting (Fotland, cgm1 5 Mar. 1993).
Tactical searches are goal directed and are limited to a maximum number of nodes. For string captures this is around 100, however, when only one move is suggested, it is not counted towards the node limit. In this way, ladders can be read without problems (Fotland, cgm1 14 Oct. 1993). The number of nodes for a search are allocated to the branches according to the value given to the moves by the first ply move generator and thus different branches may end at different depths. The branching factor at each successive ply is progressively constrained by the tactician. The branching factor falls from five at the first ply to one or two by the fifth ply.
Since the data structures in MFG are separated into incremental, locally recalculated and globally recalculated, low level local tactical searches can be executed quickly by only updating the incremental data structures. However, the possible goals of such a search are limited since the high level data structures are not recalculated. It is not possible, for example, for MFG to search for x liberties and two eyes (Fotland, cgm1 3 Nov. 1993).
The tactician is used to read connections and eyes. A cutting stone can be examined by the tactician to determine whether or not it will be captured. Stones on the diagonal of eyes can be examined to determine whether they can be captured. These types of search do not exceed around 12 ply since the program actually plays worse if more plies are considered (Fotland, 1996).
MFG uses caching to reduce the amount of time spent reading. Since strings are read twice, tactical results related to eyes, capture or threat, and cuts are cached rather than re-evaluated. Life and death analysis are cached as trees since they are smaller than the trees which would result from tactical searches (Fotland, cgm4 16 Aug. 1994).
The influence function radiates influence which is inversely proportional to distance. Influence is radiated to a fixed maximum distance of nine although when lower playing levels are chosen, the distance is smaller. Stones and connection impede the radiation of influence. Black and White influence are radiated separately (i.e, they are not summed together to give a single value for each board point) so that their relative values can be compared. Dead stones radiate negative influence and thus, since Black and White influence is maintained separately, dead stones reduce their own influence rather than increase their opponents influence. The initial influence value radiated from a stone depends on its strength.
Influence is not used to determine group connectivity. The use of influence in MFG includes determining thickness and territory, identifying surrounded groups, and generating moyo building or reducing moves. Another way in which influence is used is to determine a group's running ability. A group's ability to run towards a liberty depends on the relative values of friendly and unfriendly influence nearby. The sum of a group's ability to run toward each of its liberties determines its running ability whilst the gradient of the influence determines the direction in which it should run.
Board positions are evaluated in a multiple pass process. The evaluation function consists of many components which include the tactical analyser and evaluators for connections, eyes, group strength, and territory. A score for the position being evaluated is achieved by assigning a value between -50 and +50 to each board point to indicate the level of Black or White control exerted on them. The overall score for the board position is the sum of these values for each board point.
In order to try and overcome the difficulties associated with the horizon effect, Fotland chose to use quiescent search rather than modify the evaluation function. In quiescent search, positions are evaluated when they become quiet rather than when they are in a state of flux (e.g., such as in the middle of a piece exchange in chess). Positions which are not quiet are characterised by oscillations in the evaluation values returned for successive moves which makes it difficult to make good decisions based on the evaluations. MFG uses quiescent search as part of the evaluation function for full board evaluation to overcome this problem by either calling itself recursively (i.e., generating further moves) until a position becomes quiet or by using patterns suggested as obvious local answers to make the position quiet. MFG will generate up to six plies of moves in a quiescent search which improves its performance by up to four stones (Fotland, cgm1 30 Sep. 1993).
Moves are suggested by a rule-based expert system and include fuseki (e.g. shimari, kakari, and joseki moves), moves on the edge (e.g., invasions and extensions), playing in the centre, conservative play when ahead, risky play when behind, pattern matching (e.g., cutting and connecting, surrounding and escaping, invasion and defence, endgame, killing and saving groups, and shape-based moves), group defensive moves (e.g., making eyes, running, and fighting semeais), contact fights (e.g., blocking, extending for liberties, and hane), ko threats, and dame.
A limited form of full board lookahead is achieved by storing move sequences in the pattern and joseki databases. Move sequences attached to patterns in the pattern and joseki databases are played onto the board and evaluated at their endpoints. Thus if a particular joseki is suggested as appropriate, the stones in that sequence are played and the resulting board position is evaluated. This enables MFG to "play" to the end of a lookahead sequence and minimax the score returned by the evaluation function for the resulting board position.
Each pattern in the pattern database has a a move tree associated with it. The pattern database contains around 1200 patterns of size 8x8 and around 6900 suggested moves with the average number of moves stored for each pattern being about 5.
Each point in a pattern is marked as black, white, empty, white or empty, black or empty, black or white, or anything (i.e., do not care). Patterns are categorised according to whether they are in the middle of the board or whether they contain edges and/or corners.
A successful match of a pattern depends on both matching the stones in the pattern with those on the board and matching any attributes associated with the pattern. Each pattern has as many as 10 attributes which pertain to stones and include whether they were dead or alive, minimum number of liberties, and connectivity between stones.
To match over a 1000 patterns on a 19x19 board in 16 different orientations requires around 3 million primitive operations. Since performance is a big issue, the patterns are compiled into a bit array which facilitates fast bit-parallel comparisons. By using an 8-bit hash function and bit-wise operations, the number of primitive operations is reduced to around 350000. This number of operations still takes enough time to make it too expensive to match all patterns more than once per move.
Patterns from the pattern database are evaluated after being played on the board in their entirety i.e., they are evaluated at the endpoints of their move trees. A small subset of patterns are used to read local sequences based on shape. Fotland has recently begun evaluating the strength of one point jump connection using patterns (Fotland, 1996).
A fast pattern matcher is necessary for a strong Go program according to Fotland. Pattern matching can be used to suggest and sort moves, and to classify connections and eyes. Reading is employed to determine whether eyes are false. Pattern matching on its own is not adequate for life and death and group strength determination (Fotland, cgm1 8 Apr. 1993). The eye and connection patterns are hand coded decision trees.
One method that Fotland tried to increase the number of patterns in the pattern database was to take them from professional games.When replaying a professional game, if MFG didn't consider the move played by a professional or the move played was low on the suggestion list, Fotland would manually cut-and-paste an 8x8 section from the game into the pattern database using a self-written graphics pattern database editor. Fotland discontinued this method since most of the missed moves were tactical (i.e., based on read-out not shape) or depended on a larger context than the 8x8 section that was placed in the pattern database. Fotland found that the cut-and-paste approach to patterns was more profitable from even games played on the IGS (Fotland, cgm1 13 Jan. 1994).
The joseki database contains around 45000 moves. Joseki sequences are stored as directed acyclic graphs (i.e., they contain no loops) having empty corners at their roots. Moves in a joseki sequence can be one of several types including urgent, complex, trick, and bad. The urgent move have priority whilst the complex and trick moves are only played if MFG is behind. The bad moves are not for the program to play, rather they are used by the program to know how to respond to bad moves played by its opponent.
Joseki patterns are evaluated by being played on the board in their entirety and evaluating the resulting board position. MFG selects joseki sequences that are appropriate given the status of the other corners (Fotland, 1993).
A strategy function is used to focus attention on important areas of the board before each move (Fotland, 1993). The dynamic data is examined to determine what phase the game is in, the relative score, the value of taking sente, and whether there are any urgent offensive or defensive moves that need to be made.
Urgent offensive and defensive moves are examined initially and if sufficiently urgent are played without any further considerations. Urgent moves can be suggested by the pattern matcher or by examination of groups which are determined to need urgent attention. Friendly groups which need urgent defence include big groups and cutting groups. Opposition groups which need urgent attack include big groups, cutting groups, and groups adjacent to friendly groups needing urgent defence.
Move suggestion is affected by the phase that the game is in. Certain rules will only fire in certain phases of the game. The fuseki phase lasts until joseki sequences have been pursued in all the corners. The middle game lasts until at least move 120 and MFG enters the end game when there are no unsettled groups on the board. Transition between middle game and end game phases may occur many times during a game.
The types of moves suggested are also affected by the relative score. MFG plays more conservatively when it is far ahead of its opponent and makes unsound invasions when it is far behind its opponent. The relative score is classified into many states including "way ahead" (over 40 points), "ahead (20 - 40 points), "about even", "behind" (over 10 points), and "way behind" (over 20 points).
Since the evaluation function is very slow (Fotland, cgm4 16 Aug. 1994), a limit is placed on the number of full board evaluations which can be performed each move depending on the playing level. MFG can only look at 5 to 10 moves in detail (depending on playing level) before selecting the move it finally plays. A safeguard against errors in the evaluation function is that only reasonable moves are suggested for full board evaluation (Fotland, 1993).
By employing the strategy function, the move suggestion expert system, and the joseki and pattern databases, MFG fully examines a small number of moves, playing the one which receives the highest score from the evaluation function.
The score returned from a full board evaluation is also modified by the addition of sente if applicable. Thus if MFG plays a sente move, the value of sente is added to the evaluation for the resulting position. The value of sente varies from 7 points during the fuseki to 1 or 2 points in the endgame and is determined by the strategy function.
Size, Performance and Timeline
With some help from Ishi Press and a professional artist, Fotland rewrote Cosmos' user interface and released it as MFG in 1990. Until the present time (July 1996), MFG has had 3 releases with various improvements. MFG contains around 40000 lines of C code with around another 20000 lines of user interface code.
MFG has performed well in various world computer Go championships including 4th in 1993, 2nd in 1994, and 3rd in 1995. According to Fotland, MFG gains about one stone in strength each year (Fotland, 1996). MFG plays on both the IGS and the NNGS as ManyFaces. MFG participates in the NNGS rating scheme and was rated 9 kyu (as at July 1996). It was also awarded an 8 kyu diploma from the Nihon Ki-in in Japan based on its performance against a 1 dan amateur at 9 stones and a sample play against a professional in September 1995 (Fotland, 1996).
Micheal Reiss started writing Go programs in 1983 and his current program, Go4++, has evolved from various predecessors over that time. Reiss has met with some success in computer Go competitions and Go4++ came 2nd in both the 1st and 2nd FOST cups.
Reiss' programming philosophy is to use simple algorithms on a large amount of data rather than complex algorithms on a small amount of data. Go4++ calculates everything from first principles; complex concepts are calculated from simpler concepts which are in turn functions of even simpler concepts. Thus, Go4++ does not have an elaborate rule-based expert system at its core. A positive consequence of this approach is that Reiss' relatively weak ranking (2 kyu) compared to other top Go programmers is not a deficit. It also means that Go4++ usually responds well to the strange moves (by human standards) that are quite often played by computer Go programs and which are difficult to foresee when designing a rule-based system. The major drawback of this approach is that it is computation intensive and requires a powerful computer.
At the foundation of Go4++ is a massive amount of connectivity data from which almost everything else is eventually derived. Go4++ selects a move by first generating about 50 candidate moves that are analyzed by an evaluation function which estimates territory. The move scoring the highest evaluation is played as the next move. Thus, Go4++ uses 1 ply global lookahead although tactical lookahead and search is used in evaluating each move.
22.214.171.124 Candidate Move Generation
Candidate moves are generated by a process of pattern matching to determine the best 50 moves to examine in depth. Go4++ has around 15 high level patterns which include terms for the probability of an eye, safety, and territorial value. Whenever a match is made, the board point(s) suggested as good places to play have an appropriate value added to them. The 50 highest scoring board points are then examined by the evaluation function. The board point which receives the highest score from the evaluation function is played as the next move.
In some circumstances, Go4++ effectively evaluates more than 50 candidate moves per turn. Pattern matching is not applied to regions of the board where the stone safety (see Stone Safety in section 126.96.36.199) and territory (see Territory in section 188.8.131.52) do not differ from those of the previous move. Thus after evaluating the 50 highest scoring board points after pattern matching, the next move is selected from the combined set of evaluation scores of the 50 board points just considered and the evaluation scores of any board points in the undisturbed regions which were considered during the selection of the previous move.
184.108.40.206 Evaluation Function
The evaluation function is a six step process: 1. a connectivity probability map is generated, 2. groups are determined, 3. eye space is determined from which individual eyes are identified, 4. the safety of each stone is determined, 5. a radiation function combines the stone safety data and connectivity probability map to radiate safety to empty points, and 6. territory is determined. Reiss describes the evaluation function as pessimistic since whenever it is applicable, the evaluation function considers that the opponent is the next to move.
Connectivity Probability Map
Each time a hypothetical move is played on the board, a connectivity probability map for all friendly and opponent stones (including the hypothetical stone) is generated and stored. The connectivity probability map for a stone contains the probability of connecting to nearby friendly stones already on the board or to an empty point if it was occupied by a friendly stone. Stones and empty points which can be reached directly (nobi), by a diagonal move (kosumi link), a one point jump (ikken-tobi link), a two point jump (nikken-tobi link), a small knight's move (kogeima link), or a large knight's move (ogeima link) are examined (total of 32 possible points).
The probability of connecting two stones is calculated empirically by playing out the sequences of moves needed to determine whether the stones can be connected or whether the opponent can cut them. This process requires the use of lookahead, particularly when ladders are generated by cutting moves (e.g., cutting a kogeima link generates two ladders, one for each cutting point). If all possible cutting stones are captured, then the probability of connection is 100%. However, if the cutting stones can not be captured, a hand-tuned algorithm estimates the connection probability.
A massive amount of data is generated in calculating the probability map for each stone on the board for every hypothetical stone being evaluated. The process is very computationally expensive and requires a powerful computer (Go4++ currently runs on a Pentium-Pro 200).
Stones and strings are catalogued into groups: any stones which are 100% connected are considered groups. A tactical search on all strings with less than 4 liberties is used to determine which strings are definitely dead. Dead strings are not included as part of any group.
Identifying eyes is achieved in a two step process: 1. eye space is determined, and 2. individual eyes are identified from the eye space.
A floodfill type algorithm is used to identify contiguous regions in which opponent connectivity probability is low. Points in those regions whose 8 neighbouring points are mostly clear of opponent connectivity probability are considered to be eye space.
Individual eyes within a groups eye space are identified by shape. There are several grades of eyes with the grade being a function of the opponent's connectivity map. Eyes with a grade above a certain level (see Stone Safety below) are considered to be true eyes.
The safety of each group is determined by the number of true eyes it has. The safety process is repeated 5 times; each successive pass is more pessimistic about which points will eventually become true eyes (i.e., the threshold is raised for selecting which grade of eyes will eventually become true eyes). The final safety value for a group is the average of its safety scores on each of the 5 passes.
The safety value for each stone is radiated to the nearby empty points in proportion to the connectivity probability map for that stone. The inverse of a stones safety (100% - safety) is radiated in the same manner and contributes to the opponents radiated value i.e., dead stones radiated full opponent safety. Black and white radiation (including inverse radiation) is summed at each empty point.
Black and white territory is estimated from the radiation values of the empty points. The difference between black and white territory is returned as the evaluation of the hypothetical move for which it was generated.
220.127.116.11 Performance and Timeline
Reiss' Go skill has progressed from 10kyu in 1987 to 4 kyu in 1992 to 2 kyu in 1996. Reiss has programmed full-time on Go4++ for about the last year (1996) and also programmed full-time for one and a half years around 1986. Other than for these two periods since starting Go programming in 1983, Reiss has programmed part-time with the most effort usually expended in the two months leading up to a competition.
There have been many commercial releases of Reiss' programs by Oxford Softworks with another soon to follow. Notable releases have been Go Player Professional and an updated windows version, Go Professional II, released in Japan.
Reiss characterized Go4++ as the weakest of the current strong programs at tactical situations requiring life and death analysis although it is good at creating moyos and gaining territory in the middle and endgame. Since Go4++ tends to play well in the centre of the board, Prof. Chen played 200 games against Go4++ in an attempt to test modifications to Handtalk which were designed at playing better in the centre.
According to Reiss, other weaknesses are the absence of global lookahead, lack of a concept of "shape", and the reluctance of Go4++ to invade. Since the evaluation function pessimistically considers that the opponent moves next during tactical searches, Go4++ does not usually evaluate the likelihood of invading stones forming eyes as being favourable. To compensate for not invading well, Go4++ always plays it first move at the 3,3 point and also tries to live in as many places as possible to stop its opponent creating moyos early.
Reiss uses many empirically hand-tuned algorithms within Go4++ although no learning algorithms are used. Carefully crafted changes to these algorithms can improve the strength of Go4++ e.g., by making the connection algorithm more accurate, eye and territory evaluation also become more accurate, resulting in an increase in playing strength. Before the 2nd FOST Cup in 1996, Reiss tuned the performance of Go4++ by playing 700 test games against Handtalk, resulting in Handtalk's only defeat during that competition.
Handtalk has been one of the strongest programs in recent years and is written by Zhixing Chen, a Chinese professor from the University of Guangzhou. Although Handtalk becomes stronger each year and was awarded a 4 kyu diploma by the Nihon Kiin in 1996, Prof. Chen does not believe that Go programs will reach shodan by 2000 if shodan is taken at its international level (2 - 3 dan Japanese).
Details of the architecture and algorithms used by Prof. Chen are not abundantly available. Some of the details which have emerged from discussions that various people have had with Prof.Chen at various competitions are provided below.
Handtalk is written completely in IBM-PC assembly language and is very small (around 250k) and very fast. Only a very small number (around 4) candidate moves are evaluated using a static evaluation function which seems to be accurate and stable. Handtalk also uses an influence function whose influence decreases as 1/2^distance.
Handtalk does not use very much global search. Pattern matching is used to some extent although it is unclear whether the patterns are contained in a database or if the pattern matching is rule-based. Handtalk does not use joseki much and has only about 10% as many josekis as MFG.
According to Prof. Chen, Handtalk's strong points are its fighting, group safety estimation, ability to recognize life and death, the end game, and board evaluation. Other people have also commented on its strength at estimating a group's running ability, sense of shape, the middle game, and winning semeais. Prof. Chen characterizes its weaknesses as surrounding, ko, and attacking territory. Recent changes include fighting less often than in previous versions and an improvement in gaining territory in the centre which was achieved by testing alterations in around 200 games played against Go4++.
4.3 Computer Go Competitions
There are various computer Go competitions throughout the world including the United States Computer Go Championship, the North American Computer Go Championship, the Computer Go European Championship, and the International Go Contest. There is also a computer Go competition conducted as a part of the Computer Olympiads held in England.
%A cash prize of around $6000 is offered to the winning program in the World Computer Go Congress as well as the chance of challenging dan ranked junior opponents to win the Ing prize. The challenging program plays 3 junior players (ages 11 - 13) which are ranked around 3 to 6 dan.
4.3.1 The Ing Prize
%Acer Incorporated and the Ing Chang-Ki Wei-Chi (Go) Educational Foundation have been joint sponsors of the International Computer Go Congress since 1985 (Shih, 1989) and also sponsored the First Computer Olympiad in 1989. The three top contestants from the North American; European; and Japan and Asia-Pacific region are invited to the International Go Congress in Tapei. A prize of approximately $1.5 million US will be won by the programmer(s) of the first program to beat a nominated human competitor without handicap on a 19x19 board. This prize is known as the Ing prize.
1994 年世界电脑围棋冠军Go Intellect在对年青棋手的受14子对局中连败三局，由于应氏规则允许让子由下手自行摆放，这就意味着让15子即由黑方（电脑）先下16手，再由白 走。1991年世界电脑冠军Goliath在对5段棋手的受15子比赛中三局全胜但在受14子对局中三局全败。
8.0 Internet 上的围棋与电脑围棋资源
(本章摘自Accessing Go and Computer Go Resources on the Internet将 发表于《the proceedings of the Second Games Programming Workshop in Japan》许多章节选自bsdserver.ucsf.edu/Go的README文件，由于站点的更新，不能保证其中所有部分都可访问）
8.1.1 匿名FTP Archive和镜像站点
aga 美国围棋组织文件clients Internet 围棋服务器客户comp 电脑围棋编程
igs IGS棋局以Postscript或Smart-Go格式info 普通文本文件信息mgt MGT程序，可读写Smart-Go文件printing 用于打印棋局的程序pro 未评论的职业对局problems 围棋问题，主要是关于Smart-Go格式 prog 与围棋相关的程序，但不是对弈的
Amiga, Macintosh, IBM PC (DOS and Windows), Linux, and X windows公用程序电脑围棋邮件列表的Archives电脑围棋大全电脑围棋人物与程序各种关于围棋程序和电脑围棋的报告、文章和论文
The Internet Go Server (IGS) provides a means for people to play real-time interactive games of Go against other people or against Go programs over the internet. The IGS serves as a virtual Go club which is particularly useful for players who do not have local access to other Go players or a Go club.
First time users can login as "guest". Full access can be gained by registering for an account. Information about registering can be obtained by typing "help register". The help command provides information on how to use the interface. Once logged on to the IGS, you can play a game against another player, watch games in progress, or even comment on games in progress.
Interfacing to the IGS can be difficult and as a result, client programs have been written for various platforms e.g. Atari ST, Amiga, Macintosh, NeXT, MS Windows, IBM PC, Unix (ASCII) and X11.
Client programs available in the clients directory:
Help on client programs:
www.well.com/user/mmcadams/igs.howto.html (follow the "getting software" link)
Help files on using the IGS:
8.1.3 Game Record Formats
Several game record formats exist although currently the two most commonly used are Smart Go Format (SGF) and Ishi "Standard" Format. Information, executables, converters etc. related to game record formats can be found in the info, mgt and prog directories of the FTP archive sites.
8.1.5 The Computer Go Ladder
Discussions on the computer-go mailing list resulted in the establishment of an informal competition between computer Go programs called the Computer Go Ladder. The primary purpose of the ladder is for the enjoyment of the participants with the secondary purposes of stimulating both interest and work on computer Go programs and providing a way of measuring the state-of-the-art of current programs.
There are HTTP links from the Computer Go Ladder page to pages related to some of the programmers and some of the programs involved in the Computer Go Ladder, world computer Go competition results, the IGS and various other associated pages on the Internet. The Computer Go Ladder is maintained by Eric Pettersen (email@example.com).
有几种不同版本的电脑围棋大全igs.nuri.net/Go/comp/compbibs.Z (Peter Lipp)
nobi.ethz.ch/martin/references.html (Martin M黮ler)
www.reiss.demon.co.uk/webgo/bib.htm (Michael Reiss)
www.psy.uq.edu.au/~jay/go/comp-go.bib.html (Jay Burmeister)
IGS以postscript和Smart Go格式存储棋局库。Jan van der Steen在进行一项名为GoBase的围棋数据库项目，可以查询数以千计的棋谱。
igs.nuri.net/Go/IGSArch/ (IGS archive)
imageek.york.cuny.edu/search5d.html (5+ dan IGS games)
www.cwi.nl/~jansteen/gobase/gobase.html (Go Base) www.geocities.com/SiliconValley/Park/4872/index.html
hyperg.iicm.tu-graz.ac.at/GTL (Teaching Ladder page)
Section 2 of this document
8.2.4 The Go Frequently Asked Questions (FAQ)
The Go FAQ contains questions that are frequently posted to the rec.games.go newsgroup and includes sections on basic Go, the IGS, and computer Go related issues.
以下围棋术语及英文对照摘自(definitions.Z) 由Fletch Holmquist编制，Bill Taylor改编。.
Atari: An immediate threat to capture; a single liberty remains. A verbal warning is often issued when placing an opponent into ate.
Dame (useless): A neutral point, territory for neither; a liberty.
Dan: Advanced grade.
Fuseki: The opening moves of the game where influence and territory outlines are formed. (literally: `no stones')
Gote: Defensive play, loss of initiative. (Literally:'lower hand'.)
Hoshi: (`star point'), 4-4 point.
Ikken-tobi: One point extension.
Joseki (established stones): Known sequences of moves near the corner which result in near equal positions for white and black.
Keima: Knight's move extension.
Ko: Repetitive capture. (literally: `eternity')
Ko threat: Intervening move (that one hopes will force a reply) before a ko can be recaptured.
Komi: Score adjustment usually penalizing black for playing first. Often 5.5 points.
Kosumi: A diagonal play next to one's own stone.
Kyu: Learner grade.
Nobi (Stretch): An extension away from an opponent's tsuke, cross-cut, etc.
Ogeima (large knight's move): Three across and one vertically (or vice versa).
Seki: A situation where neither player may place the other in ate without placing himself in ate. Stalemate, with no territory awarded.
Sente: Threat forcing direct response, creates initiative. The right to choose where to play next. Opposite to gote. (Literally: `upper hand'.)
Shicho: Ladder play.
Shicho-atari: Ladder breaker. A stone played in the path of a potential shicho, threatening to make it fail.
Wei Chi: The Chinese name for Go. (literally:"game of encirclement")
(以下为general Go Bibliography中没有的部分 )
Berliner, H. J. A chronology of computer chess and its literature. Artificial Intelligence, 10, pages 201 - 214, 1978.
Fotland, D. The program G2. Computer Go 1, 1986.
Fotland, D. Knowledge representation in the many faces of Go. Available on the I nternet at ftp://bsdserver.ucsf.edu/Go/comp/mfg.gz, 1993.
Fotland, D. Personal communications, 1996.
Stoutamire, D. Machine learning, game play and Go. Technical Report TR 91-128, Case Western Reserve University, Cleveland, Ohio, 1991.
Computer-go mailing list references (cgm)
Fotland, D. E-mail communication on the computer-go mailing list.
Mailing list archive available on the Internet at ftp://bsdserver.ucsf.edu/Go/comp/