本帖最后由 草舍煮字 于 2018-12-22 11:11 编辑
电脑怎么下围棋 文/草舍煮字
我们知道,前几年有个叫做深蓝的电脑战胜了国际象棋大师。怎么会呢?是因为电脑里储存了自古以来所有象棋大师总结的棋谱,也就是说,实际上人类对手不是在和电脑下棋,而是相当于在和古今中外所有的大师下棋,电脑选择所有大师的最佳走法来对付对手。这样一来,对手怎么可能赢呢?有人说,棋谱都是一些套路,如果你不按套路走,电脑就会紊乱,甚至崩溃。呵呵,这个想法有点幼稚了。象棋的走法虽然是海量的,但是去掉那些不合规则的走法,依然是电脑能够记忆和处理的。换句话说,它的脑中自有亿万雄兵,就等着对手出错呢?况且,你都能想得到不按套路走棋,给电脑编程的人会想不到吗?
电脑战胜国际象棋大师后,有人预测距离电脑战胜围棋大师已经指日可待了。然而,象棋的规则是在棋盘上移动,所有的路数加起来,去掉不能走的路数,对于电脑来说,随着技术的发展,处理起来还是不成问题的,包括预测对手将要走的路数。而围棋的变化就不同了,它完全不是棋子在棋盘上移动引起的变化。围棋棋盘上的361个点位,理论上无一不可落子,每落一子或吃一子都是一个变化。围棋究竟有多少变化?大家公认有两种算法,其一,也就是沈括在《梦溪笔谈》中记载的,唐朝一行法师的计算方法。一盘棋下完,每个点都可能有三种情况,黑、白、空,所以围棋的变化是3的361次方,但是,这是唯结果论,因为即使每一种对局结果,都有n种不同的过程可以到达;我们更倾向于第二种算法,即第一步有361个点可以选择,第二步有360个点……以此类推,所以围棋的变化是361×360×359×……2×1,即361阶乘!也就是大约1.43乘以10的768次方,即1后面有768个零!这个数字远远超出人类的想象,要知道,即使人类已知宇宙中的原子数量,也不过是10的80次方。这样的变化数量真是太庞大了!所以也有人说,电脑战胜围棋大师,也许还有十多年的路要走。
前不久,我在中央台的《开讲了》栏目中看到,一位研究人工智能的科学院士提了一句,电脑解决围棋问题引入像素的理论。我曾经编过电脑程序,他这话让我豁然开朗。
电脑的编程人员可以放弃记录和应对象棋子移动路线的原理,把围棋的每一个变化看做是一幅平面图。这样,电脑对棋路(棋谱)的处理就变成了对图像的处理,而这可是电脑最擅长的工作之一啊!那么电脑怎么能够记录怎么多比海量还要海量的变化呢?简单地说,电脑屏幕的图像是由一个个细小的亮点(像素)组成的,一个最旧的电脑屏幕只有十几寸,也由几百乘以几百个亮点(分辨率)组成,每个亮点还要可以显示多种颜色。而现在75寸等离子屏幕早已上市,那上面该有多少个亮点呢?而且每个亮点都可以显示数十、上百种颜色。尽管如此,电脑处理起来依然得心应手。那么,围棋盘相当于有多少个亮点呢?只有19×19=361个,每个亮点相当于只有黑、白、空三种颜色。这就是电脑也能战胜围棋大师的秘密。
打个比方,如果一个人吃过包饺子捞面就算是美食家的话,那么,电脑就是吃过全世界所有菜系的家伙。不仅如此,它还能再这个基础上编出世界上从未出现过的菜谱,而且当中不乏美味绝伦的好吃的。这就是说,电脑还能创造从未有过的围棋谱。
从以上电脑下围棋的原理可以看出,它是把任何复杂的问题分解成许多简单的小问题,然后运用处理速度快的优势来解决。比如乘法,最早的电脑是用加法来解的,9615472×547,电脑是用9615472个547相加。如果你用笔算,当然是直接用竖式乘法快,而即使是老旧的电脑,每秒也能计算加法上万次,它还是比你快得多。那么,电脑若战胜围棋大师,算不算比人聪明呢?不算。因为用处理图像的方法(术语叫做模型、算法)来下围棋是人想到的,控制电脑运作的程序又是人编辑出来的。神奇的是,程序员们只需要懂得围棋的全部规则,而不必达到大师级别就能编出这样的程序。
电脑智能技术发展到当今,已经能够写出诗文了,比如情书、小说、古诗词等等,而且是不假思索地秒成。看看几年前报载,文章生成软件不足一秒生成的命题诗词,【清平乐·菊花】“相逢缥缈,窗外又拂晓。长忆清弦弄浅笑,只恨人间花少。黄菊不待清尊,相飘落无痕。风雨重阳又过,登高多少黄昏?”
有一部科幻小说《诗云》,讲一个外星超级文明,将中国文字组成所有可能的7言古诗而不考虑该诗是否有意义,存储这些诗居然要用到整个太阳系的物质。以此思路,假如每个原子能存下一个围棋对局,那么整个宇宙的物质,只能存下围棋变化的一个极小零头!
少年时我读过的书,有几本印象很深,其中一本是《从一到无穷大》,作者是美国物理科学家伽莫夫,他在数学、遗传学等领域也有很高造诣。这本书很值得推荐给初中以上水平的青少年读。书中设想了一种英文印刷机,将26个字母、10个数字、14个常用符号做成自动变换的滚轮字模,有点像汽车里的旧式机械里程表,装在印刷机上。理论上,这样的印刷机开动起来,虽然印出的大部分符号、语句毫无意义或匪夷所思,比如“提纯的氰化物是我的最爱”,呵呵,这肯定是胡说了,因为你只能享用一次。但是,其中肯定可以找出世界上曾经出现过,或从未出现过的,包括所有领域的全部文章、书籍,这太激动人心啦!类似的,我们用这个原理来印刷乐谱,那真是......妙不可言啊!
但是且慢,让我们来计算一下,假设我们有3乘以10的74次方(3后面有74个0,这是伽莫夫当时,已知宇宙中原子的数量)那么多台这种印刷机,每台每秒钟印刷100万亿行字符(原子振动频率),并且已经同时开动了30亿年(地球已存在的大约时间),那也只是印了应该印刷的总量的三千分之一而已,且不说有没有那么多制造机器的材料和纸张,要想从这些印刷品中找出什么来,那工作量可就大了去了,太不靠谱了。不过,1946年发明的第一套电脑设备,用来计算炮弹的轨迹。它的计算速度是每秒千次,炮弹打出去还没落地,它就计算出弹道轨迹和落点了。原来那个时候美国人就已经实现了让炮弹飞一会儿了。当时这套电脑设备占了一幢楼,70年后我们已经有了比它先进得多的掌上电脑了。这样的加速发展速度,再过70年,电脑的能力会不会达到穷尽所有领域的全部文章、书籍呢?要知道它是可以把文字虚拟储存起来,自动挑选,而不必耗费打印机和纸张打印出来的。一切皆有可能,就看值不值得做了。
当然,现今的机器是无感情的,它若战胜围棋大师并没有成就感,而程序员们也未必有成就感,因为他们知道这实际上并非机器战胜了围棋大师,而是人利用了人工智能的优势下赢了围棋。不过,人类对这件事却多少会有些挫败感,并因此应该对人工智能产生一定的警觉。
|