4. 讨论
当前的围棋程序都使用了一定量的“知识”。由于建立在设计者下棋成功经验的启发之上,每个程序都可被看作一种(可能是含蓄的)围棋理论的一次以经验为依据的实验。围棋理论成立的关键要靠数据结构的选择,因为它们决定了编码不同类型知识的难易和应用这些知识的计算开销。随着程序员同时在围棋和电脑围棋方面获得技能,程序会有发展(例如,在过去的十五年中随着 Fotland 的棋力从15级发展到2段,MFG也增长了棋力并且代码长度增加到目前的4万行)。程序的性能由它最弱的部件决定,而向程序增加新知识的难易是提高程序性能的重要部分。
由此可见,电脑围棋领域在关于怎样构筑一个围棋程序或者指配不同围棋知识的优先性(例如,Go4注重联接性而MFG注重死活)方面还没有一致性可言。必须提到的一点是:关于人类是怎样下围棋的至今也没个一致的说法,这是目前认知科学研究的一个课题(见Saito & Yoshikawa,1977,作为回顾)。这个领域的任何进展都会对围棋理论有个直接的促进,并可能导致电脑围棋程序算法的改进。
本文对目前比较成功的几个程序作了比较。通过这项工作,我们在博弈树搜索的框架内分析了围棋,并通过对示例电脑围棋编程的观察把有关的问题暴露出来。这种困难在电脑围棋领域是常识,但在更为广泛的人工智能范畴却很少被人们认识和接受。围棋全盘评估需要确定棋块的死活状态,不管是通过死活搜索还是战术搜索,评估是非常消耗计算资源的。缺乏快速有效的评估函数是电脑围棋遭遇的一个基本问题,并且和巨大的树枝因素、用户和电脑比赛的实时需求(一般来说,相对于国际象棋的每秒180步围棋每秒只有24步)等搅和在一起。因此,计算机国际象棋通常要用到的完全广度博弈树搜索在电脑围棋里是行不通的。
除了所列出的围棋领域固有的问题外,本文还探讨当前的程序怎样地处理这些问题,由此为未来的围棋程序员提供一个跳板。请注意电脑围棋是个商业的领域,程序本身(不是学术论文)就是它的主要产品。跟其它的参考不同的是,这里报告的细节都已经通过个人交流征询了(慷慨贡献自己的知识的)程序作者本人的意见,并且有相关的电脑围棋邮件列表<
computer-go@anu.edu.au>和FTP站点<ftp: //igs.nuri.net/Go/comp/>的信息为依据。
电脑围棋的挑战性在于要扩展当前的围棋理论或发展新理论——特别是与评估有关的,针对实时限制设计合适的数据结构和算法,解决知识瓶颈。目前还没有一个有力的程序使用学习技术,尽管有过几次这样的尝试(如,Pell,1991;Schraudolph, Dayan & Sejnowski,1994;Donnelly, Corr & Crookes,1994)。回顾这些程序已经超出了本文的范围,但我们推测这些程序也没有成功,因为它们的设计者的含蓄的围棋理论缺乏对围棋复杂性的必要理解。怎样把学习能力赋予现有的程序(或者它们暗示的围棋理论)是个等待解决的问题。
致谢
感谢陈克训、陈志行、David Fotland、Martin Muller 和Mick Reiss,他们向我们提供了有关程序的细节和对本文不无裨益的反馈。
参考文献
Allis, V.Searching for solutions in games and artificial intelligence. PhD thesis, University of Limburg, Maastricht, 1994.
Burmeister, J.&Wiles, J. The challenge of Go as a domain for AI research: a comparison between Go and chess. In proceedings of the Third Australian and New Zealand Conference on Intelligent Information System, pages 181-186, Perth, November 1995. IEEE Western Australia Section.
Chen, K. Group Identification in Computer Go. In D.N.L.Levy and B.F.Beal, (eds), Heuristic Programming in Aritificial Intelligence: the First Computer Olympiad, pages 195-210. Ellis Horwood, Chichester, 1989.
Chen, K. The move decision process of Go Intellect. In David Erbach, editor, Computer Go, 14: 9-17, 1990.
Chen, K. Attack and defence. In H. J. Van den Herik and L. V. Allis,(ed)s, Heuristic Programming in Artificial Intelligence 3 - The Third Computer Olympiad, pages 146-156. Ellis Horwood, Chichester, 1992.
Donnelly, P., Corr, P., and Crookes, D. Evolving Go playing strategy in neurl networks, 1994. Available on the Internet at
ftp://igs.nuri.net/Go/comp/egpsnn.ps.z.Fotland, D. Knowledge representation in The Many Faces of Go,1993. Available on the Internet at
ftp://igs.nuri.net/Go/comp/mfg.z.Lishtenstein, D. & Sipser, M. Go is polynomial-space hard. Journal of the ACM, 27(2):393-401, 1980.
Muller, M. Computer Go as a sum of local games: an application of combinatorial game theory. PhD thesis, Swiss Federal Institute of Technology Zurich, 1995.
Pell, B. Exploratory learning in the game of Go. In D. N. L. Levy and D.F. F. Beal,(eds), Heuristic Programming in Artificial Intelligence 2 - The Second Computer Olympiad, volume 2. Ellis Horwood, 1991
Robson, J. The complexity of Go. In R. E. A. Mason, (ed), Proceedings of the IFIP 9th World Computer Congress, pages 413-417, North Holland, 1983. IFIP, Elsevier Science Publishers.
Ryder, J. Heuristic analysis of large trees as generated in the game of Go. Phd thesis, Department of Computer Science, Standford University, 1971.
Saito, Y. & Yoshikawa, A. Go as a testbed for Cognitive Science studies. In IJCAI Workshop Proceedings Using Games as an Experimental Testbed for AI Research, 1997.
Schraudolph, N., Dayan, P. and Sejnowski, T. Temporal difference learning of position evaluation in the game of Go. In J. D. Cowan, G. Tesauro and J. Alspector, (eds), Advances in Neural Information Processing 6, pages 817-824. Morgan Kaufmann, San Francisco, 1994.
Zorbrist, A. Amodel of visual organization for game Go. In Proceedings of the Spring Joint Computer Conference, 34: 103-112, 1969.
Zorbrist, A. Feature extractions and representation for pattern recognition and the game of Go. PhD thesis, Graduate School of the University of Wisconsin, 1970.