涌现
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1952年仲夏的一个夜晚,已经凌晨两点钟了,我和我的合作者阿瑟·塞缪尔(Arthur Samuel)仍在建立模型。我们是受雇来做这项工作的。

我们的工作场地是一间有很多笨重大柜子的房间。这些柜子比冰箱还大,大部分装满了发光的真空管。其中一个柜子里装着发光的阴极射线管阵列,它们就像一个个小的电视屏幕,显示着一行行的点。还有一个柜子上配有一块很大的控制板,上面布满了可拨动的开关和小小的橙黄色二极管指示灯。所有的这些柜子都用很粗的电缆相互连接,这些电缆又都嵌在活动地板下的电缆槽中。房间里到处都是大量精心设计的电路,它们是IBM公司研发的早期纯电子数字计算机的原型。在早期的使用手册中,它被称作防务计算器(Defense Calculator)。与同时代的科幻电影中的计算机相比,这个大块头要引人注目得多。

对于我和合作伙伴塞缪尔来说,计算机拓宽了我们探索模型的可能性,其中有很多情况无法依靠铅笔、纸和计算器完成。在可编程计算机出现之前的科学模型,几乎都很简单,因为那时科学家无法分析和探索复杂的模型。一些重要的物理定律都可由几个基本的方程表达出来,如牛顿方程和麦克斯韦方程组,这一事实导致人们更注重追求简单性。可编程计算机则开辟出一种新的可能性,因为它可以高速执行长指令序列,能够在短时间内探索以往无法比拟的复杂模型。这值得庆贺,但也带来了一个问题:你可能会太着迷于细节,以至于完全丧失发现重要原理的可能性。虽然存在这个问题,但可编程计算机带来的机会仍然令人着迷。

由于我和塞缪尔都直接参与了这台计算机的设计,所以我们控制这个电子巨物时得心应手。尽管防务计算器个头很大,但它只能存储几千个数字。它的运行速度虽然达不到今天的水平,但在当时已经算相当快了。它能以每秒10万条指令的速度执行指令序列。更重要的是,在计算过程中,条件指令支持根据计算结果在一定条件下改变执行顺序,并且不需要费时的人工干预。这些程序以及我们的模型,可以在程序执行时修改它们的计算,甚至修改定义计算过程的指令。这就是能对自身进行修改的程序吗?!这个想法令人兴奋,马上就会让我们想到自我复制、自学习以及自适应的种种愿景。我们当时觉得要慎重对待这些可能。

能够马上亲眼看到我们所建立的模型的各种结果,确实是件令人鼓舞的事。对于传统模型,即那些由一组方程定义的模型,人们通常需要花几个月甚至几年的时间进行大量研究,才能理解它们的行为。而由计算机程序实现的模型更像一份菜谱。计算机更像一个自动化的炉子,只要输入这个菜谱或说明书,它就会按照规定做出美味佳肴。用程序定义模型,再把它们输入到计算机中,我们就能依靠计算机来揭示模型定义中所隐含的行为。

计算机模型对建模者提出了严格的要求。用语言描述的模型,其结论经常是通过修辞得来的。对这样的模型,即使使用完全相同的论据也经常产生相互矛盾的结论,如全球变暖或物种保护方面的主张。那些传统的数学模型有时也是如此,甚至是最为严格的数学证明过程,有时也会跳过“显而易见”的步骤。但是计算机程序不可能跳过任何一步而继续向下执行。计算机要按照程序指定的序列执行每一条指令,一条指令的丢失或不正确就会导致整个程序的运行结果违背建模者的初衷。这样看来,计算机模型很像美国专利局早年间要求的可实现的机械模型,即无论专利模型描述是多么巧妙和令人信服,如果依照这个模型不能产生它所声称的结果,该专利申请就会被拒绝。同样,一个计算机模型既要有精确的描述——可以用程序设计语言来实现,又要能够实际运行。

下一节我会简单地回顾我和塞缪尔当时所做的建模工作,为说明模型与涌现研究之间的联系提供一些明显的例子。我们会进一步仔细考察三个人造模型:棋类游戏、数字和积木块。棋类游戏是古老而又最显而易见的例子,表明由简单的几条规则就可以衍生出大量复杂现象;数字表明了如何删除细节部分,抓住基本原理;积木块则给出了一种从简单构件直接产生复杂和涌现的方法。棋类游戏、数字、积木块所表达的概念正是本书的主要议题。

本章的最后一部分将重新回到计算机建模的话题上来,因为这正是将这些议题整合到涌现现象科学研究中的一种方法。在第4章和第5章,我将再次研究我和塞缪尔构建的这些模型,以便给这些基础议题提供一些可供实际使用的定义,这些定义反过来又能帮助我们构建一个普适框架。依托这个普适框架,我们可以观察那些展现涌现现象的各种各样的系统。