电脑围棋领域的研究概述

本文概述了电脑围棋领域的研究,包括围棋常识、编程挑战、历史发展和互联网资源。围棋与国际象棋的复杂性对比揭示了围棋编程的难度,如分支因子大、评估函数难以建立等。电脑围棋的历史始于学术研究,随着个人电脑的普及和应氏奖金的设立,商业程序开发逐渐兴起。文章还介绍了电脑围棋的互联网资源,如匿名FTP站点、围棋服务器、游戏记录格式等。
摘要由CSDN通过智能技术生成

电脑围棋领域的研究概述

原著:Jay Burmeister

   Janet Wiles

澳大利亚昆士兰州大学计算机科学与心理学系

Departments of Computer Science and Psychology The University of Queensland, QLD 4072, Australia

编译:George Zhong


本译文纯属志愿工作,如有不当之处,请参见原文:http://www.psy.uq.edu.au/~jay/

(原文也在增补中,故本译文也是不完全的,但将随原著的变动而变动)。

另外,译者本人的著作也将上网,敬请留意。


目录

1.0 概述

2.0 围棋常识
  2.1 气与提子
    2.1.1 自尽
  2.2 块棋
  2.3
    2.3.1 死活
    2.3.2 假眼
    2.3.3 Seki
  2.4
  2.5 打将
  2.6 征子
    2.6.1 印征
  2.7 联络
  2.8 棋块
  2.9 棋势
  2.10 数棋
  2.11 让子与段级位

3.0 围棋编程的挑战
  3.1 围棋与国际象棋的比较
  3.2 围棋的复杂性
  3.3 为什么围棋无法象国际象棋那样编程

4.0 电脑围棋的历史
  4.1 学术著作
    4.1.1 Zobrist
    4.1.2 Ryder
    4.1.3 Reitman and Wilcox
    4.1.4 其他
  4.2 程序
    4.2.1 The Many Faces of Go
      4.2.1.1 G2
      4.2.1.2 Cosmos
      4.2.1.3 其他
    4.2.2 Go4++
      4.2.2.1 着手选择
      4.2.2.2 评估函数
      4.2.2.3 性能和用时
    4.2.3 Handtalk(手谈)
  4.3 电脑围棋比赛
    4.3.1 应氏杯

5.0 围棋程序的结构

6.0 目前程序的性能
  6.1 程序之间的对抗
  6.2 人机对抗

7.0 今后在性能上的改善

8.0 Internet上围棋和电脑围棋资源
  8.1 电脑围棋资源
    8.1.1 匿名 FTP Archive 及镜像站点
    8.1.2 The Internet Go Server (IGS)
    8.1.3 棋局存储格式
    8.1.4 The Computer-Go Mailing List
    8.1.5 The Computer Go Ladder
    8.1.6 电脑围棋比赛和结果
    8.1.7 电脑围棋大全
    8.1.8 棋局库
  8.2 围棋资源
    8.2.1 棋规,入门指南
    8.2.2 围棋入门指南及演示
    8.2.3 The Go News Group
    8.2.4 围棋FAQ

9.0 结论

附录 术语汇编及英文对照

参考


1.0 概述

本文旨在向读者介绍电脑围棋领域的状况及 Internet 上的相关资源。

为照顾尚不熟悉围棋的读者,第2部分介绍了围棋的基本常识和规则,熟悉这些的读者可以跳过它,或在必要时参考。

第6部分将告诉读者,由于各自的特点,目前围棋程序的水平与国际象棋程序相比差距极大,有待于进一步投入力量开发;第3部分 给出了其理论和实践的依据,并指出围棋程序是不可能仿照国际象棋程序那样开发的(参见表一)。

第4部分简要回顾了电脑围棋的历史,同时介绍了一些以围棋为对象的学术著作、电脑围棋比赛及结果和一些为围棋程序。

第8部分介绍了有关围棋和电脑围棋的Internet资源,其中包括网上对弈服务器、FTP 站点、邮件表等。

2.0 围棋常识

围棋是一种二人对弈的棋盘智力游戏,没有任何运气成分。它出现在2,500到4,000年前的东方,它在日本、中国(含台湾)和韩国(朝鲜)等国家的地位就如同国际象棋之于西方国家。

围棋的棋盘是由一些经纬线组成的网格点,通常是19 x 19的,称19路棋盘,但9路及13路棋盘也有使用,棋子分黑白两色,黑棋先行,对弈双方轮流落子,棋子就下在网格交叉点上。最后占据交叉点多的一方即为胜者。

2.1 气和提子

与棋子相邻的空点称该棋子的(如图1标L的点)。没有的棋子将被从棋盘上提起,称为提子(如图2中的白子)。提子又称吃棋,是一件很愉快的事,当然对手不见得如此,除此之外,落在棋盘上的棋子是不能移动的。

2.1.1 自尽

如果棋子落下后即处于没有气的状态,即要被提子,称为自尽。这是棋规所不允许的(如图3中的X)。(在应氏规则中允许块棋自尽)

2.2 块棋

同色的棋子在经线或纬线上相邻,称为连接。(如图4)连接在一起的棋子组成了一块棋,当然单一一颗棋子也可以称一块棋块棋是组成它的所有棋子的的总和,(如图5标L的点);也就是说,要提掉一块棋,必须包围它?⒉皇?A HREF="#2.1.1">自尽,因为要先提掉对方的子,它的气就有了。有两眼的块棋是永远不可能被提掉的,(如图9中标E的点),因为对方不可能同时落下两颗棋子填眼,而单在一眼中填子不能提子 就是被禁止的自尽了。

2.3.1 死活

有两眼的棋称为活棋,通常而言,如果即使对方先行也不能被提掉的就是活棋;而即使已方先行也不可能避免被提掉的就是死棋

2.3.2 假眼

有时眼是由两块或更多块棋围成的,这时要看它们之间的连接是否真实;它们之间肯定有一个或多个目前尚不属于已方的连接点,如果这些点都被对方占据,则这块棋围出的眼也会对方占据,是假眼。如果围成眼位的棋至少有一个对方无法占据的空连接点,或至少有两个空连接点,则该眼是真眼因为已方始终有机会将其连接。

2.3.3 Seki

2.4 劫

为了避免无休止的棋着循环,棋规规定对弈者不能奕出使棋局与上一手时相同的着法。通常这种情形发生在劫争的时候。如图10白子落在1位提掉了黑子2,此时由于白1只有1气,也可以在2位被黑提掉,反过来白又可以在1位提回来;这是被禁止的情形,当白1提子后,黑方不能立即着2位,而要在别的地方寻劫(一般是对方需要应付的地方),待对方应劫后再在2位提劫,这就是劫争

2.5 打将

高手有时可以通过打将引导棋局按自己的部署发展,这时他的着手使得对手只有唯一的应手。

2.6 征子

征子是一种吃子的方法,如图12,不管怎么走,黑棋注定要被提掉,因为白1打吃,黑只有2位逃,白再3位打,最后这个梯形延续到棋盘边黑棋被提掉。

2.6.1 引征

当棋子被征时,可以在征子的梯形路线着子接应,使得对方征子失败,称为引征。

2.7 联络

围棋规则中两棋子的连接仅指经纬线上的连接,又称。但实际的棋局中可以有许多连接方式(见图13)如并、关、二间关、尖、飞、大飞等,成为联络。如果两块棋没有联络,则称为开的。

2.8 棋块

两块或多块互相紧密联络的同色块棋组成棋块,如图15中的A和B以及C1、C2、C3和C4。由于互相之间有紧密的联络,它们可以被看作是一块棋。棋块是对局中棋手分析棋局的基本单位,其最重要的属性是它是否是活的,或是否可以做出两个眼,或是可以与一个已有两眼的活棋块联络

2.9 棋势

两块或多块联络松散的同色块棋组成棋势,如图15中的AB棋块与C1C2C3C4棋块组成棋势。这两棋块之间没有对方的棋子,似乎是围成了一块很大的地域,但这并没有保障;所以对于棋手而言将棋势转化为实地是很重要的。而对方侵入这块地域则称为打入

2.10 数棋

当对局完了时,从棋盘上提掉死子,分别数出双方的提子数和围空数之和,多的一方为胜者。

2.11 让子和段级位

围棋有着独特的让子和段级位制度。棋手按棋力分为30级。下过10到15局棋后棋手大致为20级,达到1级以后便是段位了,业余段位是1到6段,职业段位为1到9段。

随着级位的提高,升级越来越难,从20级升到10级需要一年每周下1、2局,再看一些棋书 ,而要达到职业段位的水平,则需要多年的专业训练。职业段位之间的差距相对业余的要小,初段和九段的差距大约相当于业余段位的两段之差。

为 平衡高手和下手之间的棋力差距,下手可以被授先。在应氏规则中,授子是由下手先行奕出的若干步棋着,而在中国/日本规则中,授子是有固定位置的。授子数根 据棋力的差距而定,例如10级棋手可以对15级棋手授5子。其确定的原则是使得下手对高手的胜率为50%,或可以按每输10子授1子概算。如果使用小棋 盘,则授子数相应减少。如9路上授1子相当于13路授2子或19路授1子。

没有授子时,先行的效力大致为5目。下手一般执黑先行。如果对弈双方段级位相当,则先行的黑方要贴还白方5目。在正式比赛中为避免平局,贴目为5目半。中国规则由于采用数子法,应贴2又3/4子。

3.0 围棋编程的挑战

同 国际象棋编程相比较,围棋编程领域的发展尚处于初级阶段。在国际象棋的编程研究领域中曾出现过象60年代和70年代时投入了强大的研究力量的情形,在围棋 编程领域从来没有过。在两者之间有着本质的区别,使得国际象棋受人青睐成为研究对象,同时,即使也有力量投入围棋编程,其结果也无法赶上国际象棋编程的进 步。这里有几大原因,一方面是由于围棋本身的复杂性,另一方面是由于在国际象棋领域取得的编程技术无法恰当地运用于围棋领域。

3.1 围棋与国际象棋的比较

1. 围棋棋子的类型简单,只有1种,而国际象棋则有6种;但围棋的棋盘为19x19,要远远大于国际象棋的8x8棋盘。

2. 棋盘的大小以及着手的相对自由,使得围棋棋局的平均手数大约为300步,大于国际象棋的平均80步。

3. 着手的相对自由,使得每步棋着的选择(分支因子)可以高达平均200个,而国际象棋中由于棋子走步的限制平均只有40个选择;随着棋局的进展,国际象棋棋 子减少,使得分支因子降低,而围棋中则没有这种优势。分支因子还影响棋局的各个阶段(布局、中盘和官子)。在国际象棋中, 开局有许多著名体系,通常深达10步之多;而在围棋中,布局种类非常之多,而深度很少有超过3手的。当然,在边角上围棋也有定式可循,但定式的选择仍要考 虑周围棋子的配置等等,需要一定的技巧。

4. 围棋与国际象棋棋局都有两种终了的方式:认输和自然终局,国际象棋的终局比较容易判别,就是将死,而在围棋中终局是由双方同时认可的,但初学者又很难判别 是否已经没棋可下,所以他们下出的棋局往往比高手之间的要长,围棋程序也会犯同样的毛病。如果按照日本的比目法计算胜负,则多余的着手会因为填在己方的空 里或变成对方的提子而减少目数。

5. 围棋和国际象棋的棋子都有一定的威胁度,就国际象棋而言,棋子的威胁度仅是它所能走到的格子,而在围棋中,棋子着下后就不再移动(仅当提子时例外),但可以对棋盘上其他的棋子产生影响,如引征可以改变某块棋的征子关系。

6. 国际象棋的棋局随棋子的移动立即发生变化,而在围棋中,这种变化并不显著,从而需要大容量的记忆分析棋局。即使是一个初学者也可以看出60步以后的征子结 果,这是一个很深但很窄的算路。只有最后当棋子被提掉的时候,棋盘的物理状态才发生显著变化。在围棋中,价值30目的棋经常作为交换被提掉,而最终胜负却 可能只有2目。

7. 在国际象棋和围棋的棋局中,棋手通常要考虑全局策略和局部战斗两个因素。在国际象棋中,由于存留棋盘上的棋子的数量和质量与棋局形势基本相关,所以在电脑 国际象棋中基本并不把全局策略考虑在内。而在围棋中,局部战役的得失与全局的胜败并不完全相关,在开局时,棋手要考虑棋势而不是实地。所以大多数围棋程序 都包含一个棋势的估价算法,但除了实战解决无法评价这类算法本身。

8. 综上所述,国际象棋的编程可以通过优秀的评估函数和修剪搜索树解决,而这样的方法在围棋中则行不通,因为后者的分支因子太大,又没有合适的评估函数用于修剪。

9. 人类棋手在国际象棋和围棋中的思维也是不同的。初学者都只能看几步,但在围棋中,类似征子之类的棋形,初学者可以不费力气地一目了然,因为这一连串的着手 都是打将。在典型的国际象棋棋局中,专家可以计算出10步左右,但每步只有几种变化而已,在围棋中,每步的变化就非常之多,其中也可能有很深的如征子手 段,这样用广度搜索和深度搜索都是无法很好把握的。

10.地平线效应,即在深度搜索取得一个评估之后,如果再深算几步,该评估就会被修正,例如在弃子的战术中。地平线效应在国际象棋领域只在大师级水平中才出现,而在围棋中,即使在初级棋手对局中也有,例如征子。

11. 国际象棋在70年代早期被用来作为人类思维的研究对象,Chase和Simon于1973年表明专家棋手使用的是棋子分级思维;而Reitman1976 年的研究结果则表明归于围棋棋手正相反,使用的是棋子交叉思维。确定棋子的联络与分割,是决定棋子死活的关键,Reitman的研究表明,只有到终局,棋 子间的关系才能澄清,这一研究结果显示了在围棋编程中使用分级理论产生评价函数可能带来的问题。

12. 在国际象棋和围棋的实际对局中,对手的水平是影响棋局的一大因素。在国际象棋中只有两位旗鼓相当的棋手才可能奕出可观的棋局,而在围棋中,由于存在授子制 度,高手的水平可以由授子来抵偿,在这种比赛中,下手总是力图简化棋局,保持优势,而上手就不得不出险着引得对方犯错误;尽管最终的目数可以反映双方的棋 力差距,但对局者更多关心的是输赢,宁可少赢也不肯冒险多赢,所以在许多棋局中对手的水平可以决定棋手的战略。棋手需要在各个方面下工夫,而不是偏重某种 技巧的原因,这样才能有效地攻击对方的弱点。根据电脑围棋程序对某人的首次对局确定其棋力是通常的做法,同一个人第一局输给了电脑,以后几局很可能都会 赢,因为他发现了对手的弱点,而电脑程序则没有任何改变。

3.2 围棋的复杂性

一个有限时间可求解的算法可以应用于现实世界的问题解决,而不能在有限时间求解的算法则称为指数时间算法,这类算法只能应用于非常小的问题。在计算机的有限内存空间中可解的问题称为P-空间可解问题。

研 究表明,对任意给定的n路棋盘围棋棋局,确定胜者这一问题是P-空间难解的。 (Lichtenstein and Sipser, 1980)另一项研究还涉及了劫争问题以表明,对任意给定的围棋棋局,确定胜方和选择着手都是指数时间问题。 (Robson, 1983)因此,在解决一些围棋问题时使用模糊算法以取得接近最优解是必要的,而单纯的搜索很快就会导致困难。

在Allis et al. (1991)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值