返回第 32 章(第3/4页)  炒作?没事找事的事件营销首页

关灯 护眼     字体:

上一页 目录 下一页

它既不是简单得微不足道,也不是高不可攀。”于是,自1950年以来,数百位计算机工程师、程序员和数学家的目标一直是设计出足以战胜世界国际象棋大师的具有创造力和想象力的计算机和软件。

    蓝色巨人IBM也在这个方面做了大量的工作。1989年IBM研究机构成立了“深蓝”工作小组,开始着手研究有关电脑下棋方面的技术,旨在探索如何利用并行处理技术解决复杂的问题,IBM的“深蓝”工作组成员谭崇仁、许峰雄、Murray Campbell 、 A.Joseph Hoan Jr.和GershonBrody等将这一复杂问题视为一种标准的研究课题:如何研制出一种下国际象棋的计算机来测试世界国际象棋顶尖高手。

    长期以来,人们对电脑下棋的原理普遍存在着误解,通常以为在电脑高速计算的威力下,可以毫不费力地算出双方所有可能的棋步,从中选择最优的方案。当时电脑下象棋之所以难突破,大概是计算机速度太慢的缘故。仔细思考一下,就会发现这种想法实在太幼稚。假如有台机器正在与人对弈,那么它首先必须考虑下一步棋有哪几种可能的走法,对方又可能应哪几着棋。比如,机器可以出“兵”,也可以出“车”;人的应棋可能是跳“马”,也可能是让“后”斜着走5格,如此等等。然后,对应着每一种可能的回合,都必须分别一步步推算下去,一直算到能把人类棋手的“王”杀死的那一步为止。也就是说,电脑若想找到当前最优的走法,需要全广度全深度地搜索双方棋子所有的可能走法。即使能按图林“估值函数”的方法计算优势,也必须算完可能走法的所有组合状态。

    搜索计算所有组合状态的后果是引出天文数字。有人曾作过这样的估算:国际象棋大师之间对奕的平均总棋步约为84步,任一种棋局状态下又有38种合乎规则的可能走法。因此,穷举搜索所有的可能走法,面对的组合数将达到38的84次方之巨,它大于10的132次方,即1后面有132个0,与整个世界中原子的总数相近。我们知道,迄今为止宇宙大约才存在了10的18次方秒钟,估算出的组合数字表明,哪怕启用最高速的PentiumPro微电脑计算,恐怕算到宇宙毁灭的那一刻,还是算不出如何走第一步!

    实际上,电脑棋力除了运算速度之外,另外一个重要方面是下棋时使用广阔的开局库和残局库。多少代人类大师的知识积累和经验可以轻易地储存在硬盘上并且在开局阶段采用。即使是个人电脑程序也懂得几千万个开局局面,并且对这些局面的每一个都有完全的统计(比如出现过那些着法、用哪些着法胜过、使用过的人有多少,等等)。程序经常是连走15到20步之后才第一次需要计算。如果没有从这些人类的开局知识精华中受益,程序将实力大减。当电脑从数目庞大的、从国际象棋历史积累下来的开局知识中取得坚实优势之时,它们也从对局的另一端搜索中受益。

    残局数据库C语言之父肯汤普森在80年代就开始生成和储存棋盘上剩四至五子的所有符合规则的残局。一个典型的五子残局,比如王双象对王单马,包含总数121万个局面。加上一只移动不连续的兵,这个数字增加到335万。汤普森编写程序产生所有符合规则的局面并计算出每个残局可能的强制变化。他还以一种方式把结果压缩,使得一张标准的CD-ROM能存放大约20个残局。电脑使用这些残局数据库,可以把每个残局走得绝对完美,就象上帝一样。对于棋盘出现子力及数目符合的任何局面,电脑可以立刻知道该胜、该和还是该负,并且知道要多少步。它经常宣布15步棋之后取胜或将死,而执输棋那一种颜色的则能够最优化地防守。深蓝使用了汤普森的残局数据库。

    “深蓝”小组收集了一种开局数据库

『加入书签,方便阅读』

上一页 目录 下一页