计算机围棋是人工智能(AI)的一个领域,该领域致力于开发出可以下围棋的电脑程序。围棋是棋盘游戏的一种,有很古老的历史。
最先计算机围棋也试图用类似处理国际象棋的算法——alpha-beta 剪枝法,即一般认为的暴力搜索法,但成长非常慢。1986年,应昌期悬赏100万美金,征求可以打败人类的围棋软件,并以15年为期限,但没有任何人拿走奖金。到了20世纪末,这类程序表现最好的是陈志行制作的手谈,其宣称可以接近业余初段,至少与低段职业差距9子以上,其他如GNU Go更是只有业余5~10级左右。
代表:
Crazy Stone首次引进了蒙地卡罗搜索树,其原理是用蒙地卡罗法快速的把棋局下至终局,然后借此判断局势,用这个方法,计算机围棋得到飞快性的成长,并突破了业余初段的壁障。这时代表现最好的是Zen,在AlphaGo出现的前一年,Zen的平行运算版本可以达到与职业棋士差距3~4子的水平。
这时期开始,开始出现了UEC杯等计算机围棋比赛。在其中发生一个插曲,2010年时,黄士杰的Erica在2010电脑奥林匹亚获得19路围棋的冠军,隔年又在UEC杯拿下亚军,这在当时引起许多注目,因为Erica是单机程序,而其对手都是使用大型机,这也使得他获得DeepMind公司的邀请。
代表程序:
深度学习原本主要应用是图像分析,利用电脑模拟神经元,可以训练电脑有类似人类“直觉”的反应,2014年左右,Google DeepMind和facebook等公司意识这可能可以用在处理计算机围棋。最直接的想法是输入人类的围棋棋谱,并在程序中设置围棋规则,以及各棋谱的最后胜负,利用监督学习让电脑得到“棋感”,电脑因而可以给出特定局面下有哪些可能的行棋方法,后来这个方法在AlphaGo的论文中被称为“走子网”。2015年左右,DeepMind的David Silver意识到,其实围棋的形势判断也可以交由神经网络决定,“价值网络”因此诞生。接着DeepMind团队再使用强化学习——大众媒体称之为左右互搏——增强两种神经网络,在大约三千万盘的左右互搏后,超越了职业选手水平,这使得DeepMind最终赢得这项与facebook的竞赛。
2016年1月27日,《自然》发表了Google DeepMind开发AlphaGo 的论文,于2015年10月,在未让子的挑战中,以5:0战绩,击败欧洲围棋冠军——职业围棋二段樊麾。这是计算机程序首次在公平比赛中击败职业棋手。2016年3月,AlphaGo在韩国首尔以4:1击败棋士李世乭。 2017年5月,AlphaGo在中国乌镇围棋峰会的三局比赛中击败当时世界排名第一的中国棋手柯洁。
代表程序:
围棋给程序员们带来了许多人工智能领域里的挑战。当如IBM深蓝那样的超级电脑,已经能够击败世界上最好的国际象棋棋手的同时;却有不少人能击败围棋软件。可见,要编写出超越初级水平的计算机围棋程序,是极其困难的一回事。
围棋的棋盘很大(19×19),因此通常被认为是难以编写围棋程序的一个重要原因。然而,像Amazon这样的游戏,棋盘比围棋更大,却较易编写出超越初级水平的电脑程序。
与其它棋盘游戏相比,围棋的着法几乎不受规则限制。中国象棋第一步有42种选择,国际象棋有20种选择,但围棋有361种选择。有些着法较常见,有些几乎从未走过(例如第一步下在边线上),但所有着法都有可能。
象棋(以及大部分棋盘游戏如西洋跳棋和双陆棋)棋局过程中,棋子数逐渐减少,使游戏简化。但是,围棋中每下一子,都可能有其战略意义,使得单纯分析战术并不管用,会使局势变得更复杂。
第一个计算机围棋竞赛是由USENIX赞助,在1984年到1988年间举行。
宏碁电脑公司与应昌棋围棋基金会从1986年开始,联合举办计算机围棋竞赛,获得冠军的程序,可以挑战职业棋士,获胜奖金美金一百万元。有效期至2000年。