第5章 马慧元序(2)
而从小就迷恋解码思想的图灵,不知是否也经历过类似的惊讶和好奇:加密思想其实是有哲趣的。人活着,一边攻破一边设障。最有效的障碍,不是靠小聪明,一个一旦告诉你答案就不堪一击的秘诀,而是靠数字本身的复杂度和无序性来实现的。加密技术多多,基本可归为隐藏,换句话说,是让有序的东西看上去无序,从而无法获得有意义的信息。而意义,不正意味着方向和秩序吗?打乱(不管是人为还是自然)和生成秩序的方法有多种,并且随着人的认知能力的增加而增加。
从第二次世界大战甚至更早,用统计分析的方式来找规律并解密的方法就存在了——图灵他们也用过。比如某个字母出现的频率,分析多了就可以对应上答案。所以加密也是针对于此。物理中“熵”(EniroPy)这个概念是衡量混乱度的,熵值越高越混乱,故加密的理想正是找到一种编码方式,达到比较高的无序状态,让你看不出哪个字母出现频率高,并且在你设想出一条规律的时候来迷惑你,让规律显得似是而非。你看,多数时候科学研究都是寻找规律,但加密则相反,把牌洗到最乱,淹没规律——这当然是为了对付人。所以人和人、人和自然界的关系转了个圈:你要掌握一个东西,要减低其熵,等你获得它之后要用盾对付别人的矛,也就是增强其混乱度。攻防之间,此规律输给彼规律——往往是复杂度比较高的规律获胜。
当然,解密也可以不那么正大光明地跟真正的数学问题对决。它可以通过分析时间来接近解密,特别是对某些算法。比如,加密中某些运算,比如耗时较长的乘法,时间较短的移位等。因为其计算复杂度有差别,解密者分析时间,可以大概猜到到底什么运算进行得比较多。后来加密者想出对策,把这些运算统统改成查表,也就是说,无论快慢运算,索性都改成查表找结果,这样一来,不但加快了速度,还统一了时间。当然,查表也不是万灵药——万灵药是不存在的,秩序和反序之间,从来都是“道高一尺,魔高一丈”,而对解密的成就,往往带来纯数学研究的进展。
在战争中,这些看上去有趣并纯洁的数学游戏,背后则是暴力、血腥和性命。
(三)图灵机
战后,科学家们兵分几路,兴趣开始分散。图灵最热衷的是继续发展解码思想,并制成真正“能计算的机器”,他认为总有一天,人类在科学、艺术各个领域都会遇到“机器”的挑战。而写作《哥德尔、艾舍尔、巴赫:集异璧之大成》的作者侯世达,在《艾伦·图灵:生活和思想传奇》一书的序言中说,“我怀疑图灵是否真的以为,机器会代替人类。”“彻底了解任何一个人,都不是我们全部的智慧所能抵达的——连试图彻底了解自己都只会带来无尽的谜语和矛盾。对此图灵应该比任何人都更清楚,因为这正是图灵机的核心。”
其实,计算机的发展限度,并非图灵所能预料(或者打算预料)。霍奇斯说自己对侯世达的担心毫无兴趣。如今我们眼看计算机飞速发展,笔者对新鲜模型倒有那么点审美疲劳。相当多的时候,最感兴趣的不是人工智能进展如何了,而是这个老掉牙并且不好使的图灵机模型。图灵自己说过,“我的模型只能做非常简单低级的工作。”在场的人大哗,也许潜台词是,“那你做它干什么?”
那么图灵机到底是什么?它的功能很有限,资源就是无限长的带子,有个读写头在一个个孔上左右移动,而孔代表0或1。你可以读之写之,但只能写0或1。读写头的移动方式则根据函数决定,而函数是以过去的状态作为输入,决定下一状态的。同时可以以另一纸带辅助计数,比如在带子A上走三格,在带子B上走一格,并且还可以擦掉某些已写的痕迹。而且,已写的被记住,随时可用。它的能力,基本就这些。
你看,图灵机本身不是计算机模型,而是数学模型,看上去和“电脑”毫无关系。图灵机本身并没有直接带来计算机的发明,但它对计算的本质认识,是计算机科学的基础。它告诉我们计算是系列指令的集合,还有,什么可算,怎么决定,什么可以决定。
S₀表示起始状态,上面弯弯的指回自己的线表示可走无限个1或0,是往右走,是往左走,走到最后如果红点掉进最后那个圆圈,“有限状态(Finiie Siaie)”,它就决定了,这个字符串(红点的足迹)是所定义的语言——这个判断正是操作的目的。如果掉不进去,就不是。在这里,语言规则本身指定读写头的移动。游戏规则当然有很多种,但都基于状态导致输出(这种方式引发了庞大的递归体系),读写头左右移动,所经历的“历史”被判断,和定义相符与否。相符就接受,否则拒绝。
要实现它,只需这样的设备:一条或多条无限长的纸带;一个读写头;一套控制规则(根据当前状态决定下一步走法);一个状态寄存器(存储当前状态)。你可以对纸带读之写之,但只能写0或1,而且,已写的被记住,随时可用。图灵机后来生出一些“变种”,但它的“智商”,总是限于读写和涂抹。注意,图灵机是虚拟的,只供思想模型之用。
和图灵机相关的一个概念还有,“有限状态机”(Finiie SiaieMa-chine),也是描述语言之间的抵达,换言之,设计一种从此达彼的路线——也是我们曾经奋斗一学期的事情。那时我们每天的作业都是用铅笔画圆圈和线(你瞧,计算机系研究生有时完全不需要计算机!),表明从此怎么达彼,一般来说,手段是字符串后面连接上0还是1。比如,用它表示所有被4整除的数,要研究被4整除的数变成二进制有什么规律,然后为这样的二进制字符串设计出路线——一个字符出发,中间路过0或1,都捡起来垫在屁股底下,然后越坐越高,转了一圈之后发现自己已经人模狗样,“扑通”一声栽进某个“状态”,化成语言丛中一滴水珠。
注意,这种模型虽然和“计算机”有关,其思想和途径跟东方古老的算盘完全不同。世界在图灵机中被简化成这个样子,缤纷的变化缩成如此有限的能力,不能不说是一种奇迹。此思想模型其实古已有之(比如把计算过程当作“黑箱”的想法),不过图灵是第一个把它系统化、形式化的人,而且为之提供清晰的算法和证明。
你看,它不像算盘那样,以口诀之助提高计算速度,反倒把数字计算“原始化”,好像回到了用小石头在沙滩上计数的年代——正是因为状态简单,所以能和硬件(磁带、晶体管等)接轨,开始了无限制的增长。最终引向计算机科学——最少产生了最多,最原始变成最先进。
从思想来说,图灵机这条无限长的纸带和可以无限进行的读写动作,就概括了一切纸笔上进行的数字表达和数学运算。这个思维过程,妙在对“等价”的认识。比如,纸带可一端伸展和两端伸展是等价的——前提是不考虑效率。而对效率和空间、资源的忽略,将数学世界的认知推进了一大步。这是用算盘来增加资源、方便计算的思路不能想象的。我们从而关注“可能”、“不可能”,而不是快慢、长短,于是我们看待数学的目光被更新了。从这个简单的数学模型,图灵和后来的丘奇、哥德尔等人提出的可计算性、停(图灵)机、可判定性、不完备定理等,掀起一场革命。
而当年我囿于学生的视角,哪有时间去惊叹模型之美?我们最关心的是习题结果和作业成绩。大家都知道,各种科学课程,不做题是学不会的,为什么?因为做题让你明白“场合”和“条件”,听上去非常正确和简单的定理,在什么条件下可以用,要对“条件”有反反复复娴熟区分才可,也就是,要明白A,得知道什么是非A。想想看,图灵机的抽象和了不起也在于此:当年有了图灵机的设想,但没有衬托它的“非图灵机场合”,图灵在黑暗中摸索,从尚未吸收到学术经验中的未知,驶向更遥远的未知。
时至今日,他的猜测,有一些被划分到“非图灵机”——图灵机这个抽象化奇想的结果,终于在无数次的辨识中,转变成“习题”。好在还有一系列后来者,包括彭罗斯,对“图灵”和“非图灵”争辩不休。图灵机的概念仍然是开放而活跃的。
(四)停机
除了搞研究,图灵是个段位不低的长跑者,据说最好成绩曾经接近当时的马拉松世界纪录。这个充满奇想的人,却沉醉于这样简单枯燥的运动。他好比一只长“纸带”上的读写头,一生不停地“计算”。计算可以转化,生命却并不如此简单。它不禁错读、无法重写。智慧的生命在简单而无穷的纸带面前悲哀地告负,“图灵机”无言地停机,而他的生命和别的生命一样,消失得简简单单。
霍奇斯提到图灵之死,其实也有自己的诠释。“你问他为什么死,好比问第一次世界大战为何发生:某一声枪击,列车时刻表,或者国家情结,可能都是原因。从某个角度看,不过是原子运动而已,遵循着物理定律,从另一个角度看则是个神话;再换个角度,是不可避免的发生。”在我读来,“不同水平的描述”,让我想起人工智能研究中的人机对弈。其实,任何一个事件,都有巨大的复杂度,如果你仰头追问,为何同性恋被视为犯罪,为何他们一定要被“纠正”成“正常人”,为何事物总有自己的边界和极限,为何总有些语言要掉落到图灵机之外?我自己的解释是,个体生命之间是不同的,不同的质地和经历造成交流的阻隔。这个社会能做的事情,只是在他死后竖起好几座铜像,英国首相布朗在几千人的呼吁下,2009年正式表示“向图灵道歉”。再有,同性恋早就不会因此进监狱了,而图灵则成了同性恋组织的骄傲。
可是,人生之间的差异仍然存在。想象力、欲望和需求,总是在世上处处受制。
我们都熟悉的丘奇-图灵论题,大意是这样:一切直觉上可计算的函数都可用图灵机计算,反之亦然。我们今天制造出的形式化的关系,都来自“等价”的认识。而要认识等价,首先要理解将一个计算过程粉碎到底层的过程。这个论题的哲学意味也非同小可:人性、伦理、社会、历史,是不是都有个事关生命特质的“底层”基础?人群有着惊人的“求同”本能,而社会中的人,时时处处关心“自己眼中的他人之眼”,一些奇异的个体要么被扭曲、被多数人同化,要么被遗弃。
在求同和挣脱之间,我们好比用图灵机来考量的“语言”,用一生来判断自己的归属。