1984年8月底,结束了“开复剧场”的表演,通过这一次的教学,我也开始关注计算机对弈这个领域了。
奥赛罗是一种类似于五子棋的两人对弈游戏,棋盘为8×8,开盘时,棋盘正中共有4粒棋子,呈对角线排列,两白两黑,由执黑者先行。写对弈程序的时候,就是要教电脑往后推算,一般来说,机器能够分析五六步,就感觉下得不错了。
在我教的天才班里,我认识了萨卓依·玛哈俊(Sanjoy Mahajan),他是暑期班里的第一名,可以说是“天才当中的天才”。他设计了很多种不同的算法,将原来只有400行的程序增加到两万行,把五层的推算搜索增加到了七层,我决定带着他一起继续在“奥赛罗”上努力。
那一年,我23岁,我的“学生”萨卓依·玛哈俊16岁。下课后,他就跟我一起沉浸在“奥赛罗”的运算里,晚上,我带他到我家去吃饭,吃完饭我们又冲回学校继续作研究。我们把统计的方法做进“奥赛罗”里,虽然困难超过了我们的想象,但是成功也超过了我们的想象:最后,“奥赛罗”的运算比以前快了1000倍,最多能够完整搜完14层(就是推算下面所有14步棋的排列与组合,在还有14步棋没有下时就能精确地预测输赢)。
将统计学应用于奥赛罗棋,通俗来说,就是将过去的棋谱输入电脑,把所有输棋的选择都归纳成“输”,赢棋的都归纳成“赢”,然后再做一个“分类器”来分辨输赢。我们共同下出了4万盘完全不同的棋谱,每一谱走60步,这样,我们得到了240万步不同的走法,每一步都定义成最终“黑赢”或者“白赢”,还精确地统计出赢的概率。到这个时候,每走一步棋,机器就能推算出之后14步的走法,并准确判定赢的概率。比如刚开始你赢的概率是51%,再走一步,就可能是48%,如果走错了一步棋,那么它会告诉你,赢的概率是5%。
精确的统计学使得我们的“奥赛罗”机器人无可匹敌。我把这个消息告诉瑞迪教授时,他对我过去一个月的分心不但不介意,还鼓励我们参加世界杯的比赛。要参加比赛,我们就得给这个程序取个名字,我说:“奥赛罗来自莎士比亚名着,所以我们就命名为莎士比亚吧!”萨卓依说:“这样太死板了,不如我们用莎士比亚的名字威廉,叫威廉吧!”我说:“既然要有趣,那干脆用莎士比亚的小名,叫比尔算了!”于是,“比尔”就这样进入了世界奥赛罗计算机比赛。
下一个就是经费的问题。我那可爱的瑞迪教授这回又扮演了拯救者的角色,他拿出自己的私人经费,让我们花3000美元发表了学术论文,又花了1000美元,让我们飞到加州一个城市参加了世界奥赛罗计算机比赛。我希望借到老板最好最快的机器,瑞迪教授二话不说就借给了我们。比赛结束后,我们不负众望,打败了所有的对手,以八场全胜的成绩夺得了世界杯冠军,这让我们激动不已。
赢得了机器比赛以后,我们就希望能够挑战人类的冠军,看看在人和机器的博弈中,我们设计的机器能不能战胜人类。通过一本《奥赛罗棋》的杂志,我们很容易地找到了当时的世界冠军布赖恩·罗斯(Brian Rose),他听说要进行人机博弈,也非常感兴趣,他对自己的技艺非常有信心,一口答应要和我们进行比赛,我们约定三局两胜。
一天下午,这场世界冠军与机器之间的比赛通过电话开始了。机器走一步,对方通过电话告诉我们他走的是哪一步。我们进行现场操作。这个时候,“奥赛罗”的智慧开始发挥出来,当世界冠军最多一步棋想之后的四五步的时候,机器已经开始想之后的十四步如何布局。刚开始走的15步之内,两者的输赢率还差别不大。然而,在第16步,布赖恩走出致命的错误一步之后,我们的机器显示,机器的赢率达到了95%。但是,这时布莱恩还没有意识到大势已去。几步棋后,我们才听到他的叹息,知道早已进入了“比尔”的陷阱。再接着走下去,世界冠军最终“溃不成军”。他崩溃了,气愤地说:“不玩了。”最终,他放弃了第二局和第三局的比赛。我们的机器奥赛罗“比尔”,以56∶8战胜了人类冠军。
这是机器第一次打败人类冠军,是一个历史性的里程碑。而在计算机学界,人们对人工智能充满了信心,而我也对计算机世界中的统计学有了更大的信心。我和萨卓依·玛哈俊在最高级别的期刊《人工智能》上发表了两篇文章。萨卓依·玛哈俊成为第一个在《人工智能》上发表论文的高中生作者,后来,他在剑桥大学拿到博士学位,成为了一名优秀的教授。
后来,“比尔”被系里的汉斯·柏林(Hans Berliner)教授知道,他约我吃饭,对我说他正在做一个国际象棋的硬件,希望打败世界棋王,看到我统计学工作的成绩,希望我考虑加入他的组,把统计学的方法应用在国际象棋上。他说:“这样你很快就可以毕业了。”但是,我拒绝了他,因为我还是希望做一个真正有用的软件,而不是把游戏作为自己的论文。另外,瑞迪教授对我恩重如山,我不能无缘无故就离开他。