1701067015
这些都是最近的工作,还需要继续深入研究。我相信,用这种方法理解计算,虽然不符合正统,却对没有中央控制,分布在简单个体中的计算会有用。例如,关于感知信号的高级信息在大脑中如何编码和处理目前仍然是个谜。也许可以用某种类似于粒子的语言对其进行解释,也有可能是类似于波的计算,因为大脑是三维的,神经元在一起形成携带信息的波运动,并通过波的相互作用处理信息。
1701067016
1701067017
大脑计算当然与一维元胞自动机不在一个层面上。不过,有一种自然系统却可以用非常类似于粒子的语言解释:植物的气孔网络。所有有叶植物的叶子表面都布满了气孔——根据光线和湿度开合的微小孔隙。气孔打开时可以让二氧化碳进来,用于光合作用。但是气孔打开也会导致植物体内的水分蒸发。犹他州立大学(Utah State University)的植物学家莫特(Keith Mott)、物理学家皮克(David Peak)和他们的同事长期观察叶子气孔的开合模式 [166] ,他们认为气孔组成了一个有点类似于二维元胞自动机的网络。他们还发现气孔开合的时间模式很像二维形式的粒子相互作用。他们猜测植物通过气孔进行分布式计算——通过优化气孔的开合让二氧化碳的获取和水分流失达到最佳平衡——这种计算也许也能用粒子语言进行解释。
1701067018
1701067020
第12章 生命系统中的信息处理[167]
1701067021
1701067022
自从西拉德发现信息能将热力学第二定律从麦克斯韦妖的威胁下拯救出来之后,信息和计算就日渐成为科学的宠儿。在许多人看来,信息具有本体地位,同质量和能量一样,被当作实在的第三种基本成分。在生物学中尤其如此,将生命系统描述成信息处理网络已成为潮流。信息处理一词随处可见,以至于你可能会认为它的意义已没有疑义,也许就是基于香农对信息的形式化定义。然而,同其他复杂系统科学的核心概念一样,信息处理的概念也很不清晰;一旦脱离了图灵机和冯·诺依曼结构计算机的精确形式化背景,就经常很难厘清信息处理或计算的概念。上一章介绍的工作就是在元胞自动机的背景下针对这个问题的尝试。
1701067023
1701067024
这一章的目的是探讨生命系统中的信息处理或计算。我将描述三种不同的自然系统,免疫系统、蚁群和细胞代谢——在其中信息处理似乎都扮演了关键的角色——并尽力阐明信息和计算在它们中所扮演的角色。最后我将尝试弄清在此类分散系统中信息处理的共性。
1701067025
1701067027
什么是信息处理
1701067028
1701067029
我先引用一下自己在第10章的一段话:“自然系统的‘计算’指的是什么呢?大致上说,计算是复杂系统为了成功适应环境而对信息进行的处理。但是这样的说法还能更精确些吗?信息在哪里?复杂系统又是如何处理信息的?”这些问题似乎很显然,但如果深究一下,我们很快就会陷入复杂系统科学最深的泥沼之中。
1701067030
1701067031
当我们说一个系统在处理信息或计算(从现在开始,我会不加区分地使用这两个词)时,我们就面临着以下问题: [168]
1701067032
1701067033
◆“信息”在这个系统中扮演了什么角色?
1701067034
1701067035
◆信息又是如何传递和处理的?
1701067036
1701067037
◆这些信息是如何获得意义的?又是对谁有意义?(有些人会不同意计算需要某种类型的意义,不过我会先坚持己见,认为它需要。)
1701067038
1701067040
传统计算机中的信息处理
1701067041
1701067042
在第4章我们已经知道,20世纪30年代图灵用图灵机对输入的处理步骤定义了计算的概念。图灵的定义是传统冯·诺依曼结构计算机的设计基础。对于这些计算机,关于信息的问题很容易回答。我们可以说信息就是带子上的符号和读写头的可能状态。信息的处理则是通过读写头在带子上的读写和状态变化实现的。这一切都是根据规则进行的,程序就是由规则组成的。
1701067043
1701067044
对于传统计算机的程序,我们(至少)可以从两个层面来看:机器码层面和编程语言层面。在机器码层面上,程序是由具体的让机器一步一步执行的低级指令组成(例如,“将内存中地址n的数据移到CPU的寄存器j”,“对CPU寄存器j和i中的数据执行或逻辑运算,将结果存入内存中地址m处”,等等)。而在编程语言层面上,程序是由BASIC或JAVA这样的高级语言的指令组成,让人更容易理解(例如,“将某个变量乘以2,并将结果赋给另一个变量”,等等)。一个高级语言指令通常要用几个低级指令来实现,不同的计算机类型可能有不同的实现。因此高级语言程序可以以不同的方式实现为机器码;高级语言是对信息处理更抽象的描述。
1701067045
1701067046
图灵机输入和输出的信息的意义来自于人们(程序员或使用者)的解读。中间步骤产生的信息的意义也来自人们对高级语言命令步骤的解读(或设计)。高级语言描述让我们能容易理解在机器码或硬件层面上对于人来说很抽象的计算。
1701067047
1701067049
元胞自动机中的信息处理
1701067050
1701067051
对于元胞自动机等非冯·诺依曼结构的计算机来说,答案就不是那么显而易见了。例如我们在上一章用遗传算法演化出来执行多数分类任务的元胞自动机就是这样。与传统计算机做个类比,我们可以说元胞自动机的信息就是元胞格子在每一步的状态组合。输入就是初始状态组合,输出则是最终的状态组合,在每个中间步的信息则根据元胞自动机规则在元胞邻域内进行传递和处理。意义来自人们对所执行的任务的认识以及对从输入到输出的映射的解读(例如,“元胞最终都变成了白色;这意味着初始状态组合中白色元胞占多数”)。
1701067052
1701067053
在这个层面上描述信息处理就类似于在“机器码层面”进行描述,并不能帮助人们理解计算是如何完成的。同冯·诺依曼结构计算的情形一样,在这里我们也需要一种高级语言来理解中间步骤的计算,对元胞自动机底层的具体细节进行抽象。
1701067054
1701067055
上一章我提出,粒子以及粒子的相互作用可以用来描述元胞自动机的信息处理,类似于高级语言。信息通过粒子的运动来传递,粒子的碰撞则是对信息进行处理。这样,信息处理的中间步骤就通过人们对粒子行为的解释获得了意义。
1701067056
1701067057
冯·诺依曼结构的计算之所以容易描述,一个原因就是,编程语言层面和机器码层面可以毫无歧义地相互转化,因为计算机的设计让这种转化可以很容易做到。计算机科学提供了自动编译和反编译的工具,让我们可以理解具体的程序是如何处理信息的。
1701067058
1701067059
而元胞自动机则不存在这样的编译和反编译工具,至少目前还没有,也没有实用和通用的设计“程序”的高级语言。用粒子来帮助理解元胞自动机高级信息处理结构的思想也是最近才出现,还远没有形成此类系统的计算理论体系。
1701067060
1701067061
理解元胞自动机信息处理的困难在实际生命系统中也同样存在。“自然系统的‘计算’指的是什么?”对于这个问题目前仍然知之甚少,在科学家、工程师和哲学家之间存在着广泛的争议。然而它对于复杂系统科学又是极为重要的问题,因为对生命系统中信息处理的高层次描述不仅能让我们从更高的视角理解具体系统的运作,也能让我们超越系统繁杂的细节,抽象出一般性原理。实质上,这种描述就是为生物学提供一种“高级语言”。
1701067062
1701067063
这一章余下部分将力图用具体的例子来阐明这种思想。
1701067064
[
上一页 ]
[ :1.701067015e+09 ]
[
下一页 ]