第12章 生命系统中的信息处理
自从西拉德发现信息能将热力学第二定律从麦克斯韦妖的威胁下拯救出来之后,信息和计算就日渐成为科学的宠儿。在许多人看来,信息具有本体地位,同质量和能量一样,被当作实在的第三种基本成分。在生物学中尤其如此,将生命系统描述成信息处理网络已成为潮流。信息处理一词随处可见,以至于你可能会认为它的意义已没有疑义,也许就是基于香农对信息的形式化定义。然而,同其他复杂系统科学的核心概念一样,信息处理的概念也很不清晰;一旦脱离了图灵机和冯·诺依曼结构计算机的精确形式化背景,就经常很难厘清信息处理或计算的概念。上一章介绍的工作就是在元胞自动机的背景下针对这个问题的尝试。
这一章的目的是探讨生命系统中的信息处理或计算。我将描述三种不同的自然系统,免疫系统、蚁群和细胞代谢——在其中信息处理似乎都扮演了关键的角色——并尽力阐明信息和计算在它们中所扮演的角色。最后我将尝试弄清在此类分散系统中信息处理的共性。
什么是信息处理
我先引用一下自己在第10章的一段话:“自然系统的‘计算’指的是什么呢?大致上说,计算是复杂系统为了成功适应环境而对信息进行的处理。但是这样的说法还能更精确些吗?信息在哪里?复杂系统又是如何处理信息的?”这些问题似乎很显然,但如果深究一下,我们很快就会陷入复杂系统科学最深的泥沼之中。
当我们说一个系统在处理信息或计算(从现在开始,我会不加区分地使用这两个词)时,我们就面临着以下问题:
◆“信息”在这个系统中扮演了什么角色?
◆信息又是如何传递和处理的?
◆这些信息是如何获得意义的?又是对谁有意义?(有些人会不同意计算需要某种类型的意义,不过我会先坚持己见,认为它需要。)
传统计算机中的信息处理
在第4章我们已经知道,20世纪30年代图灵用图灵机对输入的处理步骤定义了计算的概念。图灵的定义是传统冯·诺依曼结构计算机的设计基础。对于这些计算机,关于信息的问题很容易回答。我们可以说信息就是带子上的符号和读写头的可能状态。信息的处理则是通过读写头在带子上的读写和状态变化实现的。这一切都是根据规则进行的,程序就是由规则组成的。
对于传统计算机的程序,我们(至少)可以从两个层面来看:机器码层面和编程语言层面。在机器码层面上,程序是由具体的让机器一步一步执行的低级指令组成(例如,“将内存中地址n的数据移到CPU的寄存器j”,“对CPU寄存器j和i中的数据执行或逻辑运算,将结果存入内存中地址m处”,等等)。而在编程语言层面上,程序是由BASIC或JAVA这样的高级语言的指令组成,让人更容易理解(例如,“将某个变量乘以2,并将结果赋给另一个变量”,等等)。一个高级语言指令通常要用几个低级指令来实现,不同的计算机类型可能有不同的实现。因此高级语言程序可以以不同的方式实现为机器码;高级语言是对信息处理更抽象的描述。
图灵机输入和输出的信息的意义来自于人们(程序员或使用者)的解读。中间步骤产生的信息的意义也来自人们对高级语言命令步骤的解读(或设计)。高级语言描述让我们能容易理解在机器码或硬件层面上对于人来说很抽象的计算。
元胞自动机中的信息处理
对于元胞自动机等非冯·诺依曼结构的计算机来说,答案就不是那么显而易见了。例如我们在上一章用遗传算法演化出来执行多数分类任务的元胞自动机就是这样。与传统计算机做个类比,我们可以说元胞自动机的信息就是元胞格子在每一步的状态组合。输入就是初始状态组合,输出则是最终的状态组合,在每个中间步的信息则根据元胞自动机规则在元胞邻域内进行传递和处理。意义来自人们对所执行的任务的认识以及对从输入到输出的映射的解读(例如,“元胞最终都变成了白色;这意味着初始状态组合中白色元胞占多数”)。
在这个层面上描述信息处理就类似于在“机器码层面”进行描述,并不能帮助人们理解计算是如何完成的。同冯·诺依曼结构计算的情形一样,在这里我们也需要一种高级语言来理解中间步骤的计算,对元胞自动机底层的具体细节进行抽象。
上一章我提出,粒子以及粒子的相互作用可以用来描述元胞自动机的信息处理,类似于高级语言。信息通过粒子的运动来传递,粒子的碰撞则是对信息进行处理。这样,信息处理的中间步骤就通过人们对粒子行为的解释获得了意义。
冯·诺依曼结构的计算之所以容易描述,一个原因就是,编程语言层面和机器码层面可以毫无歧义地相互转化,因为计算机的设计让这种转化可以很容易做到。计算机科学提供了自动编译和反编译的工具,让我们可以理解具体的程序是如何处理信息的。
而元胞自动机则不存在这样的编译和反编译工具,至少目前还没有,也没有实用和通用的设计“程序”的高级语言。用粒子来帮助理解元胞自动机高级信息处理结构的思想也是最近才出现,还远没有形成此类系统的计算理论体系。
理解元胞自动机信息处理的困难在实际生命系统中也同样存在。“自然系统的‘计算’指的是什么?”对于这个问题目前仍然知之甚少,在科学家、工程师和哲学家之间存在着广泛的争议。然而它对于复杂系统科学又是极为重要的问题,因为对生命系统中信息处理的高层次描述不仅能让我们从更高的视角理解具体系统的运作,也能让我们超越系统繁杂的细节,抽象出一般性原理。实质上,这种描述就是为生物学提供一种“高级语言”。
这一章余下部分将力图用具体的例子来阐明这种思想。
免疫系统
在第1章曾讲到过免疫系统。现在我们来更深入地了解一下,为了保护身体免受病毒、细菌、寄生虫等病原体的侵害,免疫系统是如何处理信息的。
我们知道,免疫系统是由数以亿计的各种细胞和分子组成,它们在身体里循环,通过各种信号相互影响。
在免疫系统各种类型的细胞中,我关注的是淋巴细胞(白细胞的一种,图12.1)。淋巴细胞是在骨髓中产生的。有两种淋巴细胞很重要,释放抗体攻击病毒和细菌的B细胞,以及杀死入侵者同时还调节其他细胞反应的T细胞。
图12.1 人类淋巴细胞,表面覆盖着受体,可以与遇到的特定形状的分子相结合[图片来自美国国家癌症研究所(National Cancer Institute, http://visualsonline.cancer.gov/details.cfm?imageid=1944)]
身体中所有细胞表面都有称为受体的分子。顾名思义,这些分子是细胞接收信息的途径。信息表现为能与受体分子结合的外界分子。受体能否与某个分子结合取决于它们的分子结构是否能充分匹配。
一个淋巴细胞表面覆盖的受体是一样的,可以与特定的某一类分子形状匹配。如果恰好遇到了形状相匹配的病原体分子(称为“抗原”),淋巴细胞的受体就会与其相结合,淋巴细胞就“识别”出了抗原,这是消灭病原体的第一步。结合可强可弱,依赖于分子与受体的匹配程度。图12.2描绘了这个过程。
图12.2 淋巴细胞(图中为B细胞)受体与抗原结合的示意图
免疫系统面临的主要问题是,它不知道什么病原体将会入侵身体,因此它也就不可能“预先设计”出一组淋巴细胞,让它们的受体与入侵病原体的分子形状刚好能紧密结合。而且可能的病原体种类是个天文数字,因此免疫系统永远也不可能在同一时间产生出那么多淋巴细胞以应对每一种可能。虽然身体每天会产生数以百万计不同的淋巴细胞,但是身体可能遇到的病原体却还要多得多。
我们来看看免疫系统是如何解决这个问题的。为了能“覆盖到”各种各样可能的病原体外形,身体内会同时存在许多种类型的淋巴细胞。免疫系统利用随机性,让淋巴细胞能识别的形状范围互不相同。
当淋巴细胞产生时,通过淋巴细胞DNA复杂的随机重组过程,新的受体会被创造出来。由于淋巴细胞群体不断更新(每天会产生上千万新的淋巴细胞),身体也就不断产生具有新的受体形状的淋巴细胞。对于任何进入体内的病原体,身体很快就产生出能与病原体的标记分子(也就是抗原)相结合的淋巴细胞,虽然结合可能不是很紧密。
一旦发生了结合事件,免疫系统就得搞清楚这是不是真正的威胁。病原体当然是有害的,一旦它们进入身体,就会开始大量复制。不过发动免疫系统攻击会导致发炎等对身体有害的症状,攻击太强烈甚至有可能致命。免疫系统作为一个整体必须确定威胁是否足够严重,值得承担让免疫反应伤害身体的风险。免疫系统只有在强结合事件足够多之后才会进入高速运转模式。
B细胞和T细胞这两种类型的淋巴细胞协同工作,判断攻击是否有必要。一旦B细胞表面强结合受体的数量超过了某个阈值,与此同时B细胞从有类似受体的T细胞那里收到了“发动”信号,B细胞就会被激活,表明它现在感觉到了身体受到威胁(图12.3)。一旦激活,B细胞就会向血液中释放抗体分子。这些抗体与抗原结合,使它们失效,并对它们进行标记,好让其他免疫细胞摧毁它们。
图12.3 通过与抗原结合和接收T细胞的“发动”信号激活B细胞的示意图。信号刺激B细胞产生和释放抗体(y形分子)
激活的B细胞被输送到淋巴结,在那里迅速分裂,产生出大量后代,复制时由于变异,许多后代的受体形状都改变了。然后这些后代会与淋巴结俘获的抗原进行测试。不能结合的细胞很快就会死去。
存活下来的后代被释放到血液中,其中一些会遇到抗原并与其结合,有时候会比它们的母细胞结合得更紧密。这些激活的B细胞同样又被输送到淋巴结,在那里产生出自己的后代。这也就是为什么当你病了的时候淋巴结会肿大,因为它在大量产生淋巴细胞。
这个循环不断进行,与抗原匹配得越好的B细胞产生的后代也越多。简而言之,这就是一个自然选择过程,B细胞群体进化出能与目标抗原紧密结合的受体形状,从而使得通过选择“设计”出来攻击特定抗原的抗体武器库不断扩大。
这个侦测和摧毁过程一般需要数天或数周时间才能将目标病原体从身体中清除干净。
这种策略起码存在两个潜在问题。首先,免疫系统如何防止淋巴细胞错误攻击身体自身的细胞?其次,免疫系统在对身体的伤害作用太大时如何停止或调整攻击?
免疫学家们还没有完全弄清这些问题,现在这些问题都还是活跃的研究领域。有人认为避免攻击自身的一个主要机制是所谓的负选择(negative selection)。当淋巴细胞产生出来时,它们不会被立即释放到血液中去,它们会在骨髓和胸腺中进行测试,与身体自身的分子进行接触。与“自身”分子紧密结合的淋巴细胞可能会被杀死或对基因进行“编辑”以改变受体。也就是说免疫系统只使用不会攻击自身的淋巴细胞。这个机制经常会失效,有时候会产生出糖尿病或类风湿性关节炎这类自身免疫性疾病。
另一个防止自身免疫攻击的主要机制可能是调节性T细胞(regulatory T cells)的作用。调节性T细胞是T细胞的一个特殊亚种。目前还不清楚调节性T细胞是如何工作的,只知道它们通过某种化学机制抑制其他T细胞的活动。还有一种可能的机制是B细胞之间对一种有限资源的竞争——一种称为B细胞刺激因子(BAFF)的特殊化学物质,B细胞需要它才能存活。在负选择过程中漏网并且仍然与自身分子紧密结合的B细胞,由于总是与自身分子结合在一起,因此比其他B细胞需要更多的BAFF。对这种有限资源的竞争导致结合自身分子的B细胞死亡的可能性增加。
虽然免疫系统攻击外来病原体,但它也还是有义务在攻击的毒性和尽可能防止伤害身体之间进行平衡。免疫系统使用了一系列机制来实现这种平衡(目前对这些机制还知之甚少)。其中许多机制都依赖于一组信号分子,被称为细胞因子(cytokines)。对身体的伤害会导致细胞因子的分泌,细胞因子会抑制活跃的淋巴细胞。可能伤害越严重,细胞因子的浓度就越高,活跃的细胞也就越有可能遇到它们,从而被关闭,达到调节免疫系统的目的,而不用对整个免疫系统进行抑制。
蚁群
第1章曾说过,蚁群与大脑很相似。都可以看作由相对简单的个体(神经元、蚂蚁)组成的网络,并且涌现出宏观尺度上的信息处理行为。有两个例子表现出蚁群的这种行为,一是以最佳和适应性的方法搜寻食物的能力,以及适应性地根据蚁群整体的需要分配蚂蚁执行各种工作。这两种行为都是在没有中央控制的情况下完成的,所使用的机制与前面描述的免疫系统惊人的相似。
大部分蚂蚁种类的食物搜索大致是这样进行的。蚁群中搜寻食物的蚂蚁随机朝一个方向搜索,如果遇到食物,就返回蚁穴,沿途留下作为信号的化学物质——信息素(pheromones)。当其他蚂蚁发现了信息素时,就有可能会沿着信息素的轨迹前进。信息素的浓度越高,蚂蚁就越有可能跟着信息素走。如果蚂蚁找到了那堆食物,就会返回巢穴,将信息素的轨迹增强。如果信息素的轨迹得不到增强,就会消失。通过这种方式,蚂蚁一起创造和沟通关于食物位置和质量的各种信息,并且这种信息还会适应环境的变化。存在的轨迹和强度很好地表达了搜索蚁协同发现的食物情报(图12.4)。
图12.4 蚁迹(Flagstaffotos版权所有,经许可重印)
蚁群的任务分配也是以分散方式进行的。生态学家戈登(Deborah Gordon)曾研究过红色收割蚁(Red Harvester ants)的任务分配。蚁群中的工蚁分为四个工种:搜寻食物、维护蚁穴、巡逻和垃圾处理。执行各种任务的工蚁数量能随着环境变化。戈登发现,如果蚁穴被稍微搅乱,维护蚁穴的工蚁数量会增加。如果附近的食物源很多,质量很好,搜寻食物的工蚁数量就会增加。单只蚂蚁可以根据蚁穴环境的变化做出适应性响应,决定采取哪种工作,无需另外的蚂蚁来指挥,每只蚂蚁也仅与其他少数蚂蚁交互,它们是如何做到的呢?
答案可能是蚂蚁根据它们周围的环境以及它所遇到的执行各种任务的蚂蚁比例来决定自己干什么。比如,一只闲逛的蚂蚁——目前什么也没有做——在蚁穴附近遇到了杂物,它执行蚁穴维护工作的概率就会增加。另外,如果它发现很多维护蚁穴的工蚁在进进出出,也会增加执行蚁穴维护工作的概率;因为这种活动的增加表明有重要的蚁穴维护工作在进行。类似的,维护蚁穴的工蚁如果遇到了很多搜寻食物的蚂蚁带着种子返回蚁穴,就会增加它转向搜寻食物工作的概率;因为种子搬运信号的增加表明发现了高质量的食物源,需要进行采集。显然,通过用触须与其他蚂蚁交流,侦测与各项工作有关的特殊化学物质,蚂蚁就能知道其他蚂蚁在做什么。
类似的这种利用信息素与其他个体直接交互的机制可能也是其他种类蚂蚁和社会昆虫集体行为的基础,例如第1章中看到的蚂蚁用身体搭桥和构建庇护所,这些行为的许多方面还有待进一步研究。
生物代谢
新陈代谢是指一系列化学过程,生物消耗从食物、空气或阳光中获取的能量,维持生命所需的所有功能。这些化学过程大部分发生在细胞内部,通过称为代谢途径的化学反应链进行。在生物体内的每个细胞中,营养分子通过反应产生能量,细胞组分也通过代谢途径产生。这些组分维持和修复内部的以及外部的功能和细胞间通信。数以百万的分子不断在细胞质中随机运动,分子不断相互碰撞,偶尔(微秒级尺度)酶会碰到形状匹配的分子,从而加速由酶控制的化学反应。这样逐级反应逐渐形成大分子。
淋巴细胞通过释放细胞因子影响免疫系统,蚂蚁通过释放信息素影响收集食物的行为,同样,代谢途径上的化学反应也会不断改变特定途径的速度和获得的原材料。
代谢途径一般是复杂的化学反应序列,受自我调节反馈控制。例如,糖酵解(glycolysis)是所有生命中都存在的代谢途径——它通过多步反应将葡萄糖转化为丙酮酸(pryruvate),丙酮酸又通过称为柠檬酸循环的代谢途径产生许多物质,其中包括ATP(三磷腺苷),ATP是细胞能量的主要来源。
这种代谢途径的数量数以百计,有些独立,有些相互依赖。代谢途径生成新的分子,开启其他代谢途径,并调节自身或其他代谢途径。
与前面描述的免疫系统和蚁群的调节机制类似,代谢调节机制也是基于反馈。糖酵解就是这样的例子。糖酵解的一个主要作用是为制造ATP提供必需的化学原料,如果细胞中ATP的量很多,就会减缓糖酵解的速度,从而降低ATP的产生速度。反过来,如果细胞缺乏ATP,糖酵解的速度就会加快。代谢途径的速度一般都受途径产生的化学物质调节。
这些系统中的信息处理
现在我们来尝试回答这一章开始时提出的关于信息处理的问题:
◆“信息”在这些系统中扮演了什么角色?
◆信息是如何被传递和处理的?
◆信息是如何获得意义的?又是对谁有意义?
信息扮演了什么角色
在元胞自动机的例子中,当我说到信息处理时,我指的不是细胞、蚂蚁或酶这样的单个个体的行为,而是一大群这种个体的集体行为。根据这个框架,信息不像在传统计算机中那样,位于系统中的某个具体位置。在这里它表现为系统组分的动态模式和统计结果。
在免疫系统中,淋巴细胞的空间分布和时间动力学可以解释为体内病原体数量变化信息的动态表示。类似的,细胞因子浓度的空间分布和动态可以解释为免疫系统杀死病原体和避免伤害身体的宏观尺度信息。
对于蚁群,食物源的信息则动态地表示为蚂蚁在不同蚁迹上的统计分布。蚁群的整体状态表示为执行各种任务的蚂蚁的动态分布。
至于细胞代谢,当前状态以及细胞需求的信息则不断通过各种分子的浓度和动态变化反映出来。
信息是如何被传递和处理的
通过采样实现通信
将信息编码为基本组分的统计和变化模式的一个后果是,没有哪个个体组分能感知或传达系统状态的“宏观画面”。信息必须通过空间和时间采样来传递。
在免疫系统中,淋巴细胞通过受体接受抗原和免疫系统其他细胞释放的细胞因子来对环境采样。淋巴细胞采样这些分子信号的空间和时间分布,进而被激活或是休眠。其他细胞反过来又会对激活的淋巴细胞的浓度和类型进行采样,并受其影响,将对抗病原体的细胞吸引到身体的特定区域。
对于蚁群,单只蚂蚁则是通过感受器对信息素信号进行采样。它们根据对环境中信息素浓度特征的采样决定移动方向。前面讲过,单只蚂蚁也会用基于浓度的采样信息——遇到的其他蚂蚁——来决定是否进行某项工作。在细胞代谢中,通过酶与特定分子结合,酶对分子浓度的时空变化进行采样,进而又反馈到代谢途径。
行为的随机成分
由于获得的信息具有统计性,系统组分的行为就必然是随机的(至少“不可预测”)。前面描述的三个系统本质上都利用了随机性和或然性。每个淋巴细胞的受体形状都有随机生成成分,从而能采样许多可能的形状。淋巴细胞随血流分布,因此体内淋巴细胞的空间分布也有随机成分,从而可以采样抗原的多种可能空间特征。淋巴细胞激活的具体阈值、实际的分裂速度以及后代的变异都具有随机性。
类似的,蚂蚁搜寻食物的活动也具有随机成分,蚂蚁对信息素的侦测以及是否受其轨迹吸引也是随机的。蚂蚁改变工种也是以随机的方式。生物化学家齐夫(Edward Ziff)和科学史学家罗森菲尔德(Israel Rosenfield)这样描述随机性的作用:“最终蚂蚁会建立通往食物源路径的详细地图。观察者可能会认为蚂蚁的食物分布地图是由某位智能设计者提供的。通往食物源的路径看上去就像是精心画出来的,但实际上却是一系列随机搜索的产物。”
细胞代谢依赖于分子的随机扩散和分子相遇的概率,随着系统的变化,相对浓度会发生变化,从而概率也会跟着变化。
为了让数量相对较少的简单个体(蚂蚁、细胞、分子)能探测相比起来要大得多的可能范围,这种内在的随机性和或然性似乎是必需的,尤其是通过探测获得的信息本质上是统计性的,而且对于将要遇到的事物也没有什么先验知识。
但是随机性必须与确定性达成平衡:复杂适应系统的自我调节不断调整各项事务的概率——个体应该向哪里移动,它们应当采取什么行动,以及如何探测庞大空间中的具体路径。
微粒化探测
复杂生物系统绝大多数都有微粒化结构,它们由大量相对比较简单的个体组成,个体以高度并行的方式协同工作。
这种结构有几个可能的好处,稳健、效率高、可以演化。还有一个额外的好处就是微粒化并行系统能进行侯世达所说的“并行级差扫描(parallel terraced scan)”。他指的是对许多可能性和路径同时进行探测,某项探测所能获得的资源依赖于其当时的成效。搜索是并行的,许多可能性被同时探测,但是存在“级差”,意思是并不是所有可能都以同样的速度和深度进行探测。利用获得的信息不断调整探测,从而有所侧重。
例如,免疫系统需要随时确定,在病原体可能形状的庞大空间中,哪部分区域需要用淋巴细胞进行探测。体内每个淋巴细胞都可以看作形状空间的微小探测器。探测器的形状范围越成功(与抗原结合得越紧密),获得的探测资源也就越多,即后代淋巴细胞越多;形状范围不成功的(结合不紧密的淋巴细胞)则得不到那么多资源。不过,在处理获得的信息的同时,免疫系统也在不断产生新的淋巴细胞,用来探测全新的形状范围。这样系统在应对当前状况的同时,也不会忽略新的可能性。
与此类似,蚂蚁搜寻食物时也使用并行级差扫描策略:开始时许多蚂蚁随机寻找食物。一旦在某个方向发现了食物,就会分派更多的系统资源(蚂蚁),通过前面描述的反馈机制,进一步探测这个方向。路径得到的探测资源不断通过其相对绩效——所发现食物的数量和质量——进行动态调整。但是,由于蚂蚁数量很多,再加上具有随机性,绩效不好的路径也会继续探测,当然分派的资源会少得多。谁知道呢,说不定就能发现更好的食物源。
在细胞代谢机制中,微粒化探测是由代谢途径实现的,每条途径执行特定的任务。代谢途径的反应速度受其本身和其他途径的反馈影响。反馈通过分子浓度变化的形式体现,从而使得各途径的相对速度可以不断根据细胞的当前需求进行调整。
此外,系统微粒化的特性不仅使其能探测各种不同的路径,同时也使得系统能够连续地调整探测路径,因为采取的动作都相对较小。而如果更加粗粒化,就很有可能在没有绩效的探测路径上浪费时间。因此,探测的微粒化特性使得系统能根据其获得的信息连贯地对探测进行调整。不仅如此,微粒化系统天生具有冗余度,因此即使有个体组分不能可靠工作,获取的信息也只是统计性的,系统还是能正常运转。冗余度使得对信息有许多独立的采样,而且只有大量组分采取同样的微粒化行动时才会产生效果。
分散探测与集中行动之间的互动
在三个例子中,根据系统的需要,随机分散探测与集中行动之间不断进行互动。
在免疫系统中,分散探测是通过带有各种受体、尝试匹配可能抗原的淋巴细胞群体的不断变化进行。集中行动则是让成功匹配的淋巴细胞产生后代,集中应对特定形状的抗原。
蚂蚁搜寻食物时是由蚂蚁随机移动、四处寻找食物来进行分散探测,在集中行动中则是蚂蚁循着信息素轨迹活动。
在细胞代谢中,作为分散行动的分子随机探测则与由化学浓度和基因调节控制的集中激活或抑制结合在一起。
对于所有的适应性系统,在两种探测模式中保持适当的平衡都是关键。而最优的平衡点随时间不断变化。开始时所知的信息很少,探测基本是随机分散的。随着信息增多并产生影响,探测逐渐变得具有确定性,集中于对系统的感知进行响应。简而言之,系统既要探测信息,又要对信息加以利用,不断调整适应。在分散探测和集中行动之间进行平衡可能是适应性和智能系统的共性。例如霍兰德就曾用这种平衡解释遗传算法的工作原理。
信息是如何获得意义的
信息如何获得意义(有些人称为目的性),这是哲学的一个永恒话题。对于哲学家们的看法我无从置评,但是要想理解生命系统中的信息处理过程,我们必须面对这个问题。
在我看来,意义与生存和自然选择密切相关。如果事件影响到某个生物的生存或繁衍能力,那么事件对生物就具有某种意义。总之,事件的意义是如何应对事件的依据。事件对生物免疫系统的意义是其对生物适应度的影响。(我在这里非正式地使用适应度一词。)这些事件对免疫系统有意义是因为它们告诉免疫系统该如何应对,以提高生物的适应度——对于蚁群、细胞以及其他生物的信息处理系统也是一样。聚焦于适应度是我理解意义的概念,并将其应用到生物信息处理系统的一条途径。
但是在前面描述的复杂系统中,并不存在中央控制或领导者,那么是谁或是什么在觉察当前情势的意义,然后据此做出适当的反应呢?这个问题实际上问的就是什么构成了生命系统的意识或自我意识。对我来说,这个问题是复杂系统研究和整个科学最深的谜团。这个谜团是许多科学和哲学书的主题,但是至今还没有让人完全满意的答案。
将生命系统视为在进行计算的观点有个有趣的副产品:它激发了计算机学家编写程序模仿这类系统来完成真实任务。例如,免疫系统的信息处理思想引出了所谓的人工免疫系统:保护计算机免受病毒和各种入侵者攻击的适应性程序。类似的,蚁群启发了所谓的“蚁群算法”,模拟蚂蚁释放信息素和转换工作的原理来解决移动电话路由优化和货运调度优化等困难问题。下一章我还将介绍我与我的博士导师合作研究的人工智能程序,这个工作是受包括细胞代谢在内的全部三个系统的启发。