理论

编辑

约翰·冯·诺伊曼的早期研究认为[2]一个自我复制者应该包含以下部分:

该个体的代码化表示。

一个复制这段代码的机制。

一种能够影响和塑造该个体所处环境的机制。

也有例外的情况。例如,科学家已经成功地构建了一段RNA,它可以在RNA单体和转录因子的溶液“环境”下复制自身,在这个例子中,复制者是RNA,而复制机制存在于外界环境中。

自我复制的等级

编辑

近期的研究[3]开始将自我复制者分类,通常基于它们所需要的支持数量。

所有或者大部分天然自我复制者都具有非人类的起源。包括天然的生物形态。

自养生物的自复制者可以“在野外”进行自我复制。他们可以生产自己的养料。根据设想,人类可能设计出非生物的自养自我复制者,它们可以更容易地制造出人类的产品。

自复制系统是一种设想中的系统,它可以从工业原料,例如金属条或者金属线中复制自己。

自我装配系统,它可以将分散的成品零件组装成自己的复制品。这种系统的简单范例已经在宏观上实现了。

自我复制机器的设计空间非常广阔。由 罗伯特·弗雷塔斯(英语:Robert Freitas)和瑞夫·墨克进行的一项比较研究 [4]中识别了137种设计维度,并且将其划分为十余种类别,包括:(1) 复制操作, (2) 复制信息, (3) 复制基底。 (4) 复制结构, (5) 被动部分, (6) 主动部件, (7) 复制者能量, (8) 复制者动力学, (9) 复制过程, (10) 复制动作 (11) 产物结构 (12) 演化能力。

自复制计算机程序

编辑

主条目:自产生程式

计算机科学中的自我复制程序,是指一个执行之后可以输出自身代码的程序。它也被叫做自产生程式(Quine),以哲学家威拉德·冯·奥曼·蒯因命名。

下面是Python语言的一段自我复制程序:

a='a=%r;print a%%a';print a%a

一个更加无趣的方法是编写一个将任何数据串复制一遍的程序,然后将它指向自身。在这个情况下该程序既是运行的代码,又是代码处理的对象。这个方法在许多自复制系统中很常见,包括生物系统。因为它不需要包含那些描述自身的代码,所以会更简单。

在许多程序语言中,一段空白的程序也是合法的程序,执行之后不会输出任何错误,也不会输出任何结果。由于输出的结果和原程序相同,所以这个程序在理论上也是自我复制的。

自我复制纹样

编辑

在几何学中,如果有一种由多块全等的瓦片构成的纹样,可以组合成更大的与自身相似的纹样 ,它就可以被称为自我复制纹样(self-replicating tiling),这是一个称为密铺的领域中的概念。 称为“斯芬克斯”的六块多形组(英语:hexiamond) (hexiamond)是唯一已知的自我复制的五边形。[5]例如,4个图中的凹五边形可以一起组成一个和原形状相似但是2倍大小的凹五边形。[6]所罗门·格伦布 为这样的自我复制纹样创造了掱形(英语:rep-tiles)(rep-tiles)这个术语。

2012年,Lee Sallows将掱形确认为自组合纹样集(英语:self-tiling tile set)(简称Setiset)的一个特例。拥有序数n的Setiset是一组n个形状,可以以n种方式来将自身组合成较大的复制品。其中所有形状都是独一的Setiset被称作“完美的”,一个序数n的掱形是n个瓦片组成的Setiset.

4个“斯芬克斯”的六块多形组可以组成另一个斯芬克斯。 一个完美的序数4的setiset

应用

编辑

制造出“铿锵复制机器(英语:clanking replicator)”,也就是可以自我复制的宏观物理装置,是工程科学的长期目标。通常的出发点是降低批量生产产品的成本。许多权威认为,自我复制机器的生产成本极限会逼近木头或者其他生物产品的成本,因为自我复制机制避免了常规工业产品的劳动、资本和运输成本。

有理由相信,一种全新的人造自复制者已经成为近期可以达到的目标。NASA最近的一项研究中组建了一个铿锵复制机器,它的复杂度类似于英特尔的奔腾4处理器。[7]这说明,这类技术在商业可接受的时间尺度内可以由一个相对小的工程团体研发出来。

自我复制在实际操作中的一个变体和编译器的构建有关,它有点类似于自然界的自我复制体中的先有鸡还是先有蛋问题。一个编译器(表现型)可以被应用到编译器自己的源代码(基因型)上面,结果得到编译器本身。在编译器的开发中,一个产生了突变的源代码被用于产生下一代的编译器。这个过程和自然界中的自我复制不同在于它是由程序员主导的,而不是自我复制者自己。