- 在比设计者预期的更大范围的情况下具有可接受行为的系统是很难构建的。
- 可进化,可自我演绎,只需稍加修改即可轻松适应新情况。
- 生物系统就是一个庞大的足够健壮的系统
- 最初开发支持符号计算和人工智能的技术可以被视为增强程序和其他工程系统的鲁棒性和可演进性的方法。 相比之下,计算机科学的习惯做法实际上阻止了健壮系统的建设。
Robustness 抽象
- 设计一个通用程序很难很好的去做任何特定的工作,没有银弹,所以大多数工程系统被设计为执行特定的工作。 如螺丝固件,当它们出现时,具有重要意义。 数字电脑是这种发明的一个突破,
这是因为它是可以模拟任何其他信息处理机器的通用机器。 我们可以编写配置我们计算机的软件,以对我们需要完成的特定工作进行模拟。
- 作为我们过去工程实践的延伸,我们一直在设计我们的软件来很好地完成特定的工作。每一个软件都被设计来做一个相对狭窄的工作。当要解决的问题改变时,软件必须改变。但是,要解决的问题的微小变化并不仅仅意味着软件的微小变化。软件设计得太紧,没有太大的灵活性。因此,系统不会优雅地进化。它们很脆弱,随着问题领域的发展,必须用全新的设计来代替。这是缓慢而昂贵的。
- 当然,也有一些奇妙的例外。例如,EMACS [26]是一个可扩展的编辑器,它已经优雅地进化的以适应计算环境的变化和用户期望的变化。计算世界刚刚开始探索“工程框架”,例如.net和Java。这些都是支持进化系统的基础设施。
- 我们的工程系统不一定是脆弱的。互联网已经从一个小系统变成了一个全球规模的系统。我们的城市有组织的演变,以适应新的商业模式、生活方式以及交通和通讯手段。事实上,从对生物系统的观察中,我们看到有可能建立能够适应环境变化的系统,无论是单独的还是作为一个进化整体。为什么这不是我们设计和构建大多数软件的方式?有历史原因,但主要原因是我们一般不知道怎么做。此时,如果一个系统对需求的变化表现得很稳健,那就是一个意外。
Redundancy and degeneracy 冗余和简并
- 生物系统已经进化出很强的鲁棒性。生物系统的特点之一是冗余性。像肝脏和肾脏这样的器官是高度冗余的:它们的容量远远超过了工作所需,所以一个肾脏缺失的人没有明显的能力丧失。生物系统也是高度简并的:通常有许多方法来满足给定的要求。例如,如果一个手指受损,有许多方法可以配置其他手指来拾取物体。我们可以从各种各样的来源获得生命所需的能量:比如代谢碳水化合物、脂肪和蛋白质,尽管从这些来源中消化和提取能量的机制非常不同。
- 遗传密码本身是可简并的,因为从密码子(三个核苷酸)到氨基酸的映射不是一对一的:有64个可能的密码子,只指定了大约20个可能的氨基酸。因此,许多点突变不会改变密码区指定的蛋白质。这是变异积累的一种方式,同时不会导致明显的表现型后果。如果一个基因被复制(这种情况并不少见),复制基因可能会无声无息地发散,从而允许变异的发展,这些变异在未来可能会变得有价值,但是不会干扰当前的生存能力(就像是人口足够多,一个人发疯对整个社会起不到多大影响的)。此外,这些复制基因可以置于不同的转录控制下。
- 简并是进化的产物,它当然能够进化。可能选择简并本身是因为只有具有大量简并的生物才足够适应环境变化而生存。例如,假设我们有一些简并的生物(或工程系统),因为有几个非常不同的相互依赖的机制来实现每个基本功能。如果环境发生变化(或需求发生变化),使得实现一项基本功能的方法之一变得站不住脚,生物将继续生存和繁殖(系统将继续满足其规格)。但是已经不起作用的子系统现在可以进行突变(或修复),而不会影响整个系统的生存能力(或当前运行)。
- 在故障成本极高的关键系统中,工程系统可能包含一些冗余。但是它们几乎从不有意地引入生物系统中发现的那种退化,除非是作为非最佳设计的[副作用](side effect)
- 在经典力学中,人们可以使用牛顿矢量力学或拉格朗日或哈密顿变分公式来构造运动方程。在三种方法都适用的情况下,它们是等效的,但在特定情况下各有其优点
Exploratory Behavior 探索行为
- 探 索行为也是生物系统健壮的基石。生物需要的合适功能通过“生成-测试”的机制获得。生成器机制是通用的,独立于进行特定生成结果的测试机制。
- 例如,支撑细胞形状刚性骨架的一个重要组成部分是微管阵列。每个微管由聚集形成微管的蛋白质单元组成。微管在活细胞中不断被生成和摧毁;那些有幸碰到细胞膜里稳定子的微管们得以存活。最终结果就是细胞的形状由稳定子的位置决定。因此,细胞形状的生成和维护机制同确定细胞最终形状的机制分开。这种机制部分决定了复杂生物中许多类型细胞的形状,在多细胞生物中几乎普遍存在。
- 探索行为出现在生物系统的各个细节层次。成长中的胚胎神经系统产生的神经元数量远远多于成年后的数量。那些在其他神经元、感觉器官或肌肉中找到合适目标的神经元将存活下来,而那些没有找到目标的神经元将自杀。The hand is fashioned by production of a pad and deletion, by apoptosis, of the material between the fingers.我们的骨骼不断被造骨细胞(构建骨骼)和破骨细胞(破坏骨骼)重塑。骨骼的形状和大小由它们所处的环境决定的约束条件决定:也就是它们必须与之相关的部分,如肌肉、韧带、肌腱和其他骨骼。
- 因为生成器不需要知道测试人员是如何进行测试的,测试人员也不需要知道生成器是如何生成的,所以这两部分可以独立开发(充分的解耦)。这使得适应和进化更加有效,因为这两个子系统中的一个或另一个的突变不需要伴随着另一个的互补突变。然而,这种隔离是昂贵的,因为要产生大量的失败测试用例。
- 事实上,生成器和测试是所有进化的隐喻。生物变异的机制是随机突变:基因指令的修改。大多数突变是中性的,因为它们不会因为系统的退化而直接影响适应性。自然选择是测试阶段。它不依赖于变异的方法,而且变异的方法不预期选择的效果。
- 还有更惊人的现象:即使在关系密切的生物中,一些在成年后几乎完全相同的成分也是由胚胎中完全不同的机制构建的(去复用化?)。对于远亲关系来说,构建共同结构的不同机制可能归因于“趋同进化”,但对于近亲来说,这更有可能是细节层次分离的证据,其中结果是以某种程度上独立于完成方式的方式来指定的。
- 小鸡的角膜和老鼠的角膜几乎是一样的,但是这两者的形态发生一点也不相似:形态发生事件的顺序甚至不一样。
Compartments and localization 隔离和定位
- 我们身体中的每个细胞都源于单一的受精卵。所有的细胞都有完全相同的遗传禀赋(约1GB的ROM!).然而有皮肤细胞、神经元、肌肉细胞等。细胞将自己组织成离散的组织、器官和器官系统。这是可能的,因为细胞分化和特化的方式取决于它的环境。几乎所有的多细胞生物都有同源盒基因,比如Hox复合体。这种基因在发育中的动物体内产生一个近似的坐标系,将发育中的动物分成不同的区域。这些区域为细胞分化提供了环境。从与临近区域细胞的接触中获得的信息产生了更多的上下文,这些上下文从遗传程序中可能存在的行为中选择特定的行为
- 这种组织有一定的明显优势。细胞间的信号传递是许可性的而不是指导性的,这一事实增强了灵活性。也就是说,细胞的行为没有被编码在信号中;它们分别在基因组中表达。信号的组合只会启用某些行为,而禁用其他行为。这种弱链接允许在各种语言环境中实现不同的行为,而无需修改定义语言环境的机制。因此,以这种方式组织的系统是可进化的,因为它们可以适应某些地区的适应性变化,而不会改变其他地区子系统的行为。
- 好的工程也有类似的味道,因为好的设计是模块化的。考虑无线电接收器的设计。已经发现了几个宏大的“人体计划”,如直接变频(direct conversion)、TRF(调谐射频/tuned radio frequency)和超外差(superheterodyne)。每个都有一系列的区域,由Hox复合体的工程等效物定义,从天线到输出传感器对系统进行模式化。例如,超外差具有以下区域:天线:RF:转换器:IF:检测器:AF:传感器
- 每个区域设置都可以用许多可能的方式进行实例化。射频部分可能只是一个滤波器,也可能是一个复杂的滤波器和放大器的组合。事实上,有些部分可能会被递归地详述(就像Hox复合体被复制了一样!)以获得多重转换接收器。
- 当然,与生物机制不同,在模拟电子中,组件通常不是通用的,因为原则上每个组件都可以充当任何其他组件。但原则上有通用的电气构造块(例如带模拟接口的可编程计算机!).对于低频应用,可以用这些模块构建模拟系统。如果每个区块都有系统中任何区块所需的所有代码,但通过与其临近区块的交互而专门化,并且如果包中有额外的非专门化“干细胞”,那么我们可以想象构建自我重新配置和自我修复的模拟系统。
- 生物系统中的隔间结构由复杂的基础设施支撑。该基础设施的一个重要组成部分是能够动态地将标签附加到被操纵的材料上。例如,在真核细胞中,蛋白质是用描述其目的地的标签构建的。例如,可能是离子转运孔的一部分的跨膜蛋白质被导向质膜,而一些其他蛋白质可能被导向高尔基体。细胞中有一些机制(它们本身是由蛋白质组装而成)来识别这些标签,并影响这些部分向目的地的运输。标签还用于清理和处理各种废物,例如没有正确折叠或不再需要的蛋白质分子。这些蛋白质被标记(泛素化)并携带到蛋白酶体中降解。
- 这种隔间结构也在更高层次的组织中得到支持。有些组织专门成为隔室的边界,还有将它们相互连接的管道。器官被这样的组织包围,并通过这样的管道相互连接,整个结构被包装成适合体腔,体腔是高等生物中衬有特殊组织的腔。
Defense, repair, and regeneration 防御,修补,和再生
- 生物系统总是受到捕食者、寄生虫和入侵者的攻击。他们已经发展出复杂的防御系统,从细菌中的限制性内切酶到哺乳动物的免疫系统。先进的系统依赖于对外部和内部环境的持续监控,以及区分自身与他人的机制。
- 在一个由单个受精卵衍生而来的复杂生物体中,原则上每个细胞都能执行其他细胞的功能。因此在数量上存在冗余。但更重要的是,这为修复和再生提供了一种机制。一个复杂的有机体是一个动态可重构的结构,由潜在的通用可互换和可复制的部分组成:如果一个部分被损坏,附近的细胞可以重新定位以填补空白,并承担损坏部分的功能。
- 限制性内切酶在不属于细菌基因组的特定位点切断DNA分子,从而对基因组中可能含有这些位点的病毒提供一些防御。人们可以想象一个类似的计算引擎,它可以停止包含操作系统代码中不发生的指令序列的任何计算。当然,一个精心构造的病毒(生物学的或计算机的)可能被设计来避开任何这种简单的限制性酶结构。
- 使用探索行为构建结构的系统可以很容易地被合作来支持修复和再生。然而,仍有必要控制探索性扩散,以达到期望的最终状态。这似乎是用稳态约束机制安排的。例如,伤口可能需要产生新的组织来替代损失的材料。新组织需要补充氧气和营养,需要清除废物。因此,它必须配备新的毛细血管,与循环系统正确连接。得不到足够氧气的细胞会产生刺激血管向其方向增殖的激素。因此,建立循环系统的机制不需要知道目标组织的几何形状。他们的关键任务是通过探索和局部约束满足来实现的。这些机制支持胚胎的形态发生和成人的愈合。
很少有工程系统具有实质性的自我修复和再生能力。高质量的操作系统有“文件系统回收器”,可以检查文件系统的完整性,并使用文件系统中的冗余来修复损坏的结构和重新生成一些丢失的部分。但这是一个特例。怎样才能让这种自我监控和自我修复成为规律而不是例外?
在防御和修复这两种情况下,一个关键的组成部分是意识——监控环境中迫在眉睫的威胁和自身受损的能力。
Composition 组合
- 大型系统由许多较小的组件组成,每个组件通过直接提供该功能的一部分或通过以系统架构师指定的某种模式互连以建立所需功能来与其他组件协作,从而对整体功能做出贡献。系统工程中的一个核心问题是建立允许组件互连的接口,以便将这些组件的功能组合起来构建复合功能。
- 对于相对简单的系统,系统架构师可以为各种接口制定正式的规范,这些规范必须由要互连的组件的实现者来满足。事实上,电子产品的惊人成功是基于这样一个事实,即制定并满足这些规格是可行的。高频模拟设备通过具有标准化阻抗特性的同轴电缆和标准化连接器系列进行互连。组件的功能及其接口行为通常只需几个参数即可指定。在数字系统中,事情甚至更加清晰。信号的含义有静态规范(数字抽象)。信号时序有动态规格。部件的外形有机械规格
- 不幸的是,随着系统复杂性的增加,这种先验规范变得越来越困难。计算机软件组件的规范通常非常复杂。它们很难构建,而且更难保证符合这样的规范。许多与软件相关的脆弱性都是由于这种复杂性。
相比之下,生物学构建的系统非常复杂,没有非常大的规格。人类基因组约为1千兆字节。这比主要计算机操作系统的规格要小得多。这怎么可能呢?我们知道,大**脑的各个组成部分与巨大的神经元束连接在一起,基因组中没有足够的信息来详细说明这种相互连接。很可能的情况是,大脑的各个部分基于它们分享重要经验的事实,学会了相互交流。因此,接口必须是自配置的,基于一些一致性规则、来自环境的信息和广泛的探索行为。**这在启动时间上相当昂贵(配置一个工作的人需要几年时间),但它提供了一种迄今为止在我们的工程实体中找不到的健壮性。
打开App,阅读手记