返回
繁体
首页

阿基米德的报复

视觉:
关灯
护眼
字体:

第十章 计算机——未来的象棋之王(4 / 7)
我自学计算机程序设计,并花去许多晚上和周末时间编写计算机国际象棋程序。我向美国国际商业机器公司申请让我到该公司在纽约的约克顿海特斯研究机构中从事计算机国际象棋的工作。他们答复说:‘我们不资助这类项目。而且,你还没有博士学位,因此,如果你能做些对公司有益的其他事的话,我们顶多让你稍微做一点这方面的工作。’”

    “我认为,要达到我的目的,惟一的途径是获得博士学位,以便进入该公司。我对自己的基本情况很自负。我向几个学校提出了申请,但只有卡内基-梅隆大学接受我。”他在1968年获得世界通信国际象棋比赛冠军的胜利显然有助于他进入该校。

    “因此,我是在1969年秋季40岁时成为一名学生的。这对我是多么大的震惊。我觉得我需要学习的东西实在太多了,像自动化理论、各种不同的程序设计语言、多种多样的硬件配置、以及人工智能本身等等。”伯利纳早年在高等学校中不喜欢的许多课程,现在反而都要修读它们。

    在卡内基-梅隆大学时,伯利纳继续进行他在国际商业机器公司空余时间内开始的计算机程序设计工作。1970年,在美国纽约市举行的第一届美国计算机国际象棋锦标赛上,一种叫做J.Biit的计算机程序(其英文发音与“正好由于它在那儿”的英文首字母缩写词的发音相近)做出相当不错的表演。J.Biit程序也和Mac程序还不具备强大的实力,足以成功地应付整盘比赛。”

    在第一届美国计算机国际象棋锦标赛上,J,Biit程序败于国际象棋3.0程序,后者是美国西北大学研究生戴维·斯莱特和劳伦斯·阿特金设计的。3.0程序的后来版本执行的不是选择搜索法,而是全方位搜索法:对所有可能的续步进行彻底的分析,一直到规定的某种深度。虽然全方位搜索法总是包含它看到的候选棋步中的正确棋步(因为它看到了所有棋步!),但在选择一步棋时效率却很低。很多时间都浪费在令人吃惊地探索无价值的棋步上,即使是最笨的人类推木式棋手对此也不会给予片刻的考虑。要是计算机能够看清博弈的最后结局,比方说像它能够在三连棋中所做的那样,那么,这些无用的努力将是毫无意义的。

    国际象棋的数学可以证明全方位搜索的低效性。在人类国际象棋大师之间的对弈,典型的是对弈了84着棋(1着棋即指定的一方走一步棋)。由于每个棋位平均有38步法定棋步,因此穷举搜索法必须考虑3884个可能的棋位。那是一个庞大的数字:3884大于10132,即1的后面有132个0。宇宙已经存在了大约1018秒,因此,即使让计算机能够工作像宇宙年龄那么长的时间,每秒钟也要分析10114个国标象棋棋位,才能看清博弈的结局。

    在国际象棋比赛中,计算机也和人一样,不允许进行无限期的思考;40步棋大约只能给定120分钟,每步棋平均3分钟。即使计算机减小了胃口,仅探索出后续几步棋所有可能的棋步,数学上也是不允许的。在只走两着棋之后,即每方各走一步棋之后,可能的棋势数就会超过1,000。而走了4着棋之后,就可能有超过100万可能的棋势。

    计算机不仅生成所有这些棋势,而且还要求出它们的值。计算机是通过数值加权的方法来相当粗略地达到上述目的,诸如考虑实力(即各方的子与兵的数量与特点)、机动性、中心方格与纵列的控制、兵的结构、王的安全性、等等。比方说,在3分钟结束时,无论走什么棋步都要使对手的潜在的最大增益降至最低的程度;这种策略,是从有关竞赛的数学理论借鉴而来的,它设想对方可看出你所看出的一切,力求确保自身的利益。

    如果不是发现了a-β算法,全方位搜索法即使只局限于几着棋的深度,也是不实用的。a-β算法是一种巧妙的求值方法,可以让计算机无需求出每种可能棋势的值就能选择它所要走的棋步。然而令人惊奇的是,所选择的棋步正是计算机考虑了每一种续步后所要走的同一步棋。这怎么可能呢?

    假设计算机首先在一定范围内探索称之为A的某一特定棋步的所有后续棋步。设想两方都走最佳的弈法,计算机给A定的极小极大值比方说为1。(在这种方案中,正值相当于计算机所具有的优势,而负值相当于计算机所处的劣势。优势值为1,表示比对手多一兵,其他条件都相同。)现在,计算机开始对另一个叫做B的可选棋步求值,B是特别愚蠢的一步棋,表示将后置于可以立即被对手的弱兵捉住的方格中。如果计算机现在分析对手的正常应着棋步——以兵捉后,并排除掉一种微小的可能性,即为了一次锐不可挡的进攻而英勇牺牲了后,那么,计算机将定这个棋势的数值为-9,它表示其对手已具有强大的优势。

    现代的计算机国际象棋靠的是极小极大值法:所走的棋步应使对手的可能最大增益降至最小程度。假设计算机可选择的棋步为A和B。它看出了对手对A的最佳反应是走一步棋a(图中的数目表示按照计算机的观点所产生的棋势的优劣程度如何)。这时计算机又考虑棋步B,