在20世纪,当来自英国、德国、匈牙利和意大利的工程师们埋头研制世界上第一台喷气式发动机时,上述三个部分都已经不是什么新鲜玩意儿了。最早的空气压缩机是装在熔炉上的风扇,人类利用工业风扇的历史已经超过了2 000年;蒸汽机车和内燃机车则是燃烧室不可或缺的操作设备;阿基米德在公元前3世纪就已经发明了螺旋涡轮,第一个燃气涡轮发动机的专利出现在18世纪晚期的英国。
喷气式发动机的发明并不是优化式创新的特例。几十年前,以经济学家约瑟夫·熊彼特(Joseph Schumpeter)和社会学家科拉姆·吉尔菲兰(S.Colum Gilfillan)为代表的社会科学家都认为对已有事物的组合优化是发明创造的关键。经济学家布莱恩·阿瑟(W. Brian Arthur)在他的《技术的本质》[26]中甚至直言,“无论什么新技术都必须建立在已有的技术基础之上”。从前面的章节我们大概能够体会,同样的道理在生物学中也适用:任何生物进化中的新性状,无论它在无尽的宇宙图书馆中的哪个角落,都是组合优化的结果,就像每一本新书都不过是对已有文字的重新组合而已。
试错、人海战术、多起源及组合优化都是科学技术和自然界之间相似的地方,难怪技术学家一直想要模仿自然的创造能力。这里我指的不仅仅是生物技术专家,尽管人类在生物技术领域已然硕果累累:从可以把沾满泥渍的裤子洗得干干净净的含酶洗衣粉到糖尿病患者使用的人工合成胰岛素、通过基因工程培育的抗虫作物。生物技术的材料取自生物本身,因此它从一开始就已经利用了自然图书馆带来的便利。我在这里想搞明白的是,与人造材料打交道的技术学家是否也能享受同样的便利,比如利用玻璃、塑料、硅质材料或YaMoR的专家。
技术创造与生物进化并没有我们想的那么神秘,反而特别因循守旧。技术学家们早就发现,创造的过程犹如一个按部就班的算法,连机器都能重复。变异通过改变DNA创造具有新表现型的生物,其中一些经过自然选择幸存下来并繁衍生息,这个过程就是在变异、选择中不断循环往复。意识到这一点的技术学家,确切地说是计算机科学家们,据此创立了一个全新的领域,以研究生物进化的算法,他们想要完全依靠计算机解决现实世界中的复杂问题。
一个著名的例子是广为人知的旅行推销员问题(traveling salesman problem),这个数学谜题由爱尔兰数学家威廉·罗恩·哈密尔顿(William Rowan Hamilton)在19世纪中期提出。旅行推销员问题的预设条件并不复杂:一个推销员要出门拜访几个身处遥远城市的潜在客户,每个客户都住在不同的城市。推销员需要乘车或乘坐飞机前往,这意味着旅程中会耗费大量时间。而推销员是个恋家的人,他希望在保证造访客户数量的基础上,每趟出差的时间越短越好。旅行推销员问题讨论的是,找出一条经过所有城市的路线,让推销员能够以最快、最高效的方式完成出差。
这个数学问题的难度远远超出它的表象。如果城市的数量不多,几乎任何人都能轻松设计出最短的旅行线路。但是当需要考虑的城市数量超过十几个时,最优路线的制订就变得异常困难。旅行推销员问题属于计算机科学家口中典型的“非确定、多项式”的计算问题。这类命题是目前最困难的计算问题之一,困难的原因在于问题的解决方案将随着城市数量的增加呈指数级上升。
围绕旅行推销员问题已经有上千篇相关论文发表。关注这些论文的读者并不是推销员,而是计算机芯片的设计师。计算机芯片内包含了数以亿计的元件,电子元件之间通过连接进行数据交换。由于缩短元件之间的连接距离能够在节省电能的同时提升计算速度,所以制订电路元件(“城市”)之间的最短路线自然也就成了芯片设计师们的诉求。为百货公司运送货物的卡车司机、联邦快递以及到社区接送学生的校车对这个问题都不会感到陌生。甚至大黄蜂也需要解决这个问题:一只工蜂每次回巢前可能要“拜访”数百朵花,对它们而言,走太多的冤枉路就意味着负担不起的浪费。
如果考量的“城市”数量在数千座上下,那么以复杂的数学手段为推销员设计最佳路线依然是可行的。虽然这些数学理论复杂高深,但是从名字上却一点看不出来,比如“切割平面法”和“分支定界法”。当城市数量上升到百万级别时,这些方法依旧能够制订出接近完美的路线。不过严谨的数学算法并不是必需的,生物学家们愚钝而盲目的算法同样能够解决问题:首先让计算机随机生成一个路线方案——任何路线都可以,无论它多么低效。然后,由计算机程序对生成的路线进行修改,每次只改变其中几座城市(在不同的情景中也可以是停留的商铺、学校或花)之间的线路,继而查看新的路线是否比原来的更短。如果路线的确变短了,就选择继续改变后面的新路线。下一步再重复上述过程,再比较。而如果线路没有缩短就放弃新路线,回到原有的方案上。经过足够多的尝试,这种简单的算法同样能够让路线变得越来越短,最终找到的路线就算不是最优解,也是相对最理想的路线之一。
这种进化的算法还被应用在了一些你想不到的地方。比如军事作战计划制订员用这种方式设计无人机在敌方领空的最佳巡航路线,密码编译人员用这种方式为敏感信息加密,基金经理用这种算法预测金融市场的动向。汽车工程师也可以通过优化发动机内燃料注入的时间和压力,调整它的运作,而这种算法不负众望,的确能够提升发动机的燃料效率。需要注意的是,仅仅提高燃料效率并不足以推动发动机设计上的改革。
模拟生物进化的进化算法确实是一种强大的工具,但是似乎还缺点儿什么。它们欠缺生物进化的核心部分:组合优化。大自然是组合优化的一把好手,而原因非常简单:标准化。
我们在第2章中已经探讨过,类似通用能量载体三磷酸腺苷以及通用遗传密码等标准化物质的存在,是生命有着共同起源的最佳证据。而人类技术工程中缺少如此高度的标准化,往往只能通过不断创造新的标准推动技术进步,这又构成了组合优化难以实现的主要瓶颈。为了让空气压缩机、燃烧室和涡轮引擎组合到一起推动数吨钢铁飞上天,技术人员着实为不同的工业标准耗费了一番心力。现今汽车内燃机的发明也是一样,发动机的零件接口必须做到标准化,比如活塞、阀门与汽缸的尺寸必须相符。工业革命中许多标志性的发明也经历了类似的过程。第一台投入使用的蒸汽机实际上是2世纪亚历山大港的蒸汽动力玩具和17世纪德国真空泵的组合。钳工用台虎钳只不过是把两种古老的机械结合到了一起:杠杆手柄和螺纹装置。最早的自行车由三部分构成:轮胎、杠杆以及滑轮。除了创意,这些发明全都建立在统一的工业标准上。
如果说技术工业领域没有标准,那就有点言过其实了。技术发明依赖的通用标准不仅包括科学研究的自然规律,更重要的是测量方式的标准化,比如温度、质量以及电荷。不过大多数技术领域不像大自然,技术领域缺乏特定的标准化规范。自然界需要严格的标准化,因为它不像人类发明家,可以用额外的心力弥补工业标准上的不足。
功能不同的蛋白质,有的能催化反应,有的能推动分子转运,还有的能维持细胞存活。这些功能的结构基础都相同,都是由氨基酸以同样的连接方式组合而成的。氨基酸之间的标准化连接方式是“肽键”,由一个氨基酸分子的氮原子和相邻氨基酸的碳原子构成。尽管每种氨基酸自身的结构不同,但由于“接口”的标准化,它们依旧能以相同的方式连接到一起。正是不同生物体内的氨基酸连接的标准化造就了我们熟悉的自然界。没有标准化,就没有超宇宙级数量的基因型。自然图书馆如果不能畅通无阻,生物进化也就寸步难行。
让组合优化成为现实的标准化不仅仅是蛋白质的专利,RNA也以标准的化学键连接单位分子。生命储存遗传信息的标准规范DNA使得细菌间的基因转移和性状组合成为可能。调控环路也以标准化方式调节着基因的表达,调节因子蛋白都能够识别和结合特定的DNA片段,通过改变不同基因前的调节片段,同样的调节因子能发挥不同的作用。我们手头只有一些为数不多的小部件,只要我们能够制订一种标准化的连接方式,然后以所有可能的方式对它们进行组合,无论这种组合多么盲目,我们创造新事物的潜力都已经和大自然不相上下了。
这种标准化的过程对于人类的工程技术领域来说显然是力所能及的:流行的乐高积木就是很好的例子,此外,另一项古老得多的技术也是很好的例证。