字体:  增大          减小       

10-1 生命体模拟(1)

10-1-1 生命体基础知识

国外有些研究人员们正在致力于打造具有出色情绪智能的机器人。他们正在对人工智能进行改进,力图创造出能够实时读取人类情绪的下一代个性化机器人。那么,人工智能机器人的下一步是什么呢?如果它们能够模拟生物,我们能否授予它们作为生物的资格?甚至能否授予它们人格呢?

近年来一系列令人激动的技术进展,如能够利用核酸链开展快速平行计算的生物计算机、以及索菲亚等具有人工智能的类人机器人等,都需要科学家好好定义“生命”这一概念。事实上,包括沙特阿拉伯在内的一些国家已经赋予了索菲亚这样的机器人国民身份。与此同时,合成生物学领域的创新技术也对当今生命造成了新的挑战。科学家们正在打造新的生命体,将传统的四种核苷酸扩增到六种或者八种。而对于拥有这些扩展版合成DNA代码的细菌,我们又该如何看待它们的状态呢?人们已经针对生物生命的精准定义开展了长达几百年的探讨和辩论,但目前仍未有定论。

对生物生命的定义不仅仅是一项学术练习。有人可能会说,定义只能用人类自己的语言阐述词句的含义,而不能告诉我们世界的本质究竟为何物。要想给人格下定义,当然还有法律和道德方面的问题需要考虑,但这些超出了这篇文章的探讨范围。尽管如此,我们的道德责任在很大程度上仍取决于我们如何定义生命。

其实有生有死就是生命的过程,有的生命有几十万年、几百万年,有得生命只有几秒钟,所以自然界里充满了生命。就历史而言,对生命定义的分类一般以所有已知生物体的独特特征为基础。

例如,根据目前的生命观念,活生物体必须:

1、拥有一组能够对自己的功能特性进行编码和调节的生物遗传指令(如人类为DNA和RNA);

2、由若干独立单元或由细胞膜包裹的细胞构成,其中含有核酸、蛋白质、碳水化合物和脂质等,并能够进行新陈代谢;

3、能够通过适应或变异改变其表现型,并对能够改变其基因型或表现型的环境因素做出反应;

4、会进行新陈代谢平衡调节,对体内外环境做出反应,调节自身生长;

5、能够通过繁殖创造新的生物体,且寿命有限。这样看来,通过合成核苷酸创造的生物体、以及以人工智能为基础的机器人,也许无法满足上述所有标准。

要想通过自然选择创造出地球上如此丰富的生物种类,有两点因素不可或缺:一是足够的时间,二是每个生物体的死亡率要能够确保该物种得以存活下去。因此,我们对生命提出了一个简单、但又充满挑战性的定义,即将生命定义为一个生物体拥有任何能够满足繁殖、自然选择和个体死亡率要求的遗传代码的特性。

这一定义突显了保护未来生命形式未知性的需要。基因变异、能够存活下去的基因组、以及未来人类的表现型都充满了随机性,我们不知道未来的人类会是什么样,也不知道未来是否会有其它物种将我们取而代之。

NASA将生命定义为“一套能够进行达尔文进化、且能够自给自足的化学系统”。而本文中的定义比这一定义涵盖的范围更广。人工智能机器人并不符合本文中对生命的定义,因为人类可以控制计算机的各类功能。因此人工智能机器人不存在不确定性或未知性。以人工智能为基础的类人型机器人可以通过编程复制自身、甚至终结生命。但机器人并不会察觉到“变异”的发生,也不会参与任何自然选择过程,因此不符合本文中“生命”的标准。

按照本文中的定义,利用合成DNA核苷酸的生物体倒是有可能符合生命的标准。但我们必须认识到,虽然发展合成“生命形式”是一次令人激动的技术尝试,但它们可能会通过自然选择的无法预测性毁灭地球上的所有现存生命形式,因此这类项目可能超出了人类的伦理边界。

作为生物,尤其是清楚自己生命有限、且清楚我们有能力、有义务辨明对错的生物,我们必须承认生物和非生物之间存在这样一条界限。我们相信,本文中提出的定义为所有生物体划出了一条清晰的界限,让我们能够对合成生物体和人工智能机器人的生物性进行正确评估。

总结:

生命体(biomass)是指以繁殖为目的,能自发进行熵变的自我进化体系。

 

在生命体定义基础上,具备下述要素的哲学对象,称之为人工智能生命(体)。

 

1 第一个合格个体由人类智能创造或由人类智能创造的环境场中因随机事件产生。

 

2 具有自我意识,独立思想。

 

3 进化趋势不完全依赖于人类社会。

 

10-1-2比较常见的基础方案:

10-1-2-1 遗传算法

(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的,而一个种群则由经过基因(gene)编码的一定数目的个体(individual)组成。每个个体实际上是染色体(chromosome)带有特征的实体。染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现,如黑头发的特征是由染色体中控制这一特征的某种基因组合决定的。因此,在一开始需要实现从表现型到基因型的映射编码工作。由于仿照基因编码的工作很复杂,我们往往进行简化,如二进制编码,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代(generation)演化产生出越来越好的近似解,在每一代,根据问题域中个体的适应度(fitness)大小选择(selection)个体,并借助于自然遗传学的遗传算子(genetic operators)进行组合交叉(crossover)和变异(mutation),产生出代表新的解集的种群。这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码(decoding),可以作为问题近似最优解。

中文名

遗传算法

外文名

Genetic Algorithm

基本概念

是一类借鉴生物界的进化规律

基本运算

初始化

特    点

对于各种通用问题都可以使用

简介

遗传算法是在20世纪六七十年代由美国密歇根大学的 Holland教授创立。60年代初,Holland在设计人工自适应系统时提出应借鉴遗传学基本原理模拟生物自然进化的方法。1975年, Holland出版了第一本系统阐述遗传算法基本理论和方法的专著,其中提出了遗传算法理论研究和发展中最重要的模式理论( schemata theory)。因此,一般认为1975年是遗传算法的诞生年。同年, de jong完成了大量基于遗传算法思想的纯数值函数优化计算实验的博士论文,为遗传算法及其应用打下了坚实的基础。1989年, Goldberg的著作对遗传算法做了全面系统的总结和论述,奠定了现代遗传算法的基础。

遗传算法是一种基于“适者生存”的高度并行、随机和自适应的优化算法,通过复制、交叉、变异将问题解编码表示的“染色体”群一代代不断进化,最终收敛到最适应的群体,从而求得问题的最优解或满意解。其优点是原理和操作简单、通用性强、不受限制条件的约束,且具有隐含并行性和全局解搜索能力,在组合优化问题中得到广泛应用。最早将遗传算法应用于jb-shop调度问题的是 Davis遗传算法求解job-shop调度问题时较少应用邻域知识,更适合应用于实际。如何利用遗传算法高效求解job-shop调度问题,一直被认为是个具有挑战意义的难题,并成为研究的热点。

遗传算法中交叉算子是最重要的算子,决定着遗传算法的全局收敛性。交叉算子设计最重要的标准是子代继承父代优良特征和子代的可行性。邵新宇等人在深入分析job-shop调度问题的基础上,提出了一种基于工序编码的POX方法,将其与其他基于工序编码的交叉进行比较,证明了该交叉方法解决job-shop调度问题的有效性。同时,为解决传统遗传算法在求解jb-shop调度问题的早熟收敛,邵新宇等人还设计了一种改进的子代交替模式遗传算法,明显加快了遗传算法收敛的速度,此原理同样适用于其他组合优化问题。邵新宇等人所提出的遗传算法的变异不同于传统遗传算法中的变异操作(为保持群体的多样性),是通过局部范围内搜索改善子代的性能 [1] 

运算过程

遗传算法(Genetic Algorithm)是一类借鉴生物界的进化规律(适者生存优胜劣汰遗传机制)演化而来的随机化搜索方法。它是由美国的J.Holland教授1975年首先提出,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。遗传算法的这些性质,已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。它是现代有关智能计算中的关键技术

对于一个求函数最大值的优化问题(求函数最小值也类同),一般可以描述为下列数学规划模型

(公式10-1-1)

式中

(公式10-1-2)

 约束条件,U是基本空间,R是U的子集。满足约束条件的解

称为可行解集合R表示所有满足约束条件的解所组成的集合,X称为可行解集合。

遗传算法也是计算机科学人工智能领域中用于解决最优化的一种搜索启发式算法,是进化算法的一种。这种启发式通常用来生成有用的解决方案来优化和搜索问题。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等。遗传算法在适应度函数选择不当的情况下有可能收敛于局部最优,而不能达到全局最优。遗传算法的基本运算过程如下:

a)初始化:设置进化代数计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体P(0)。

b)个体评价:计算群体P(t)中各个个体的适应度

c)选择运算:将选择算子作用于群体。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的。

d)交叉运算:将交叉算子作用于群体。遗传算法中起核心作用的就是交叉算子。

e)变异运算:将变异算子作用于群体。即是对群体中的个体串的某些基因座上的基因值作变动。群体P(t)经过选择、交叉、变异运算之后得到下一代群体P(t+1)。

f)终止条件判断:若t=T,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。

特点

遗传算法是解决搜索问题的一种通用算法,对于各种通用问题都可以使用。搜索算法的共同特征为:

 首先组成一组候选解

 依据某些适应性条件测算这些候选解的适应度

 根据适应度保留某些候选解,放弃其他候选解

 对保留的候选解进行某些操作,生成新的候选解。

在遗传算法中,上述几个特征以一种特殊的方式组合在一起:基于染色体群的并行搜索,带有猜测性质的选择操作、交换操作和突变操作。这种特殊的组合方式将遗传算法与其它搜索算法区别开来。

图10-1-1 遗传算法流程示意图

 

遗传算法还具有以下几方面的特点:

(1)遗传算法从问题解的串集开始搜索,而不是从单个解开始。这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开始搜索,覆盖面大,利于全局择优。

(2)遗传算法同时处理群体中的多个个体,即对搜索空间中的多个解进行评估,减少了陷入局部最优解的风险,同时算法本身易于实现并行化。

(3)遗传算法基本上不用搜索空间的知识或其它辅助信息,而仅用适应度函数值来评估个体,在此基础上进行遗传操作适应度函数不仅不受连续可微的约束,而且其定义域可以任意设定。这一特点使得遗传算法的应用范围大大扩展。

(4)遗传算法不是采用确定性规则,而是采用概率的变迁规则来指导他的搜索方向。

(5)具有自组织、自适应和自学习性。遗传算法利用进化过程获得的信息自行组织搜索时,适应度大的个体具有较高的生存概率,并获得更适应环境基因结构

(6)此外,算法本身也可以采用动态自适应技术,在进化过程中自动调整算法控制参数和编码精度,比如使用模糊自适应法。

现状

进入90年代,遗传算法迎来了兴盛发展时期,无论是理论研究还是应用研究都成了十分热门的课题。尤其是遗传算法的应用研究显得格外活跃,不但它的应用领域扩大,而且利用遗传算法进行优化和规则学习的能力也显著提高,同时产业应用方面的研究也在摸索之中。此外一些新的理论和方法在应用研究中亦得到了迅速的发展,这些无疑均给遗传算法增添了新的活力。遗传算法的应用研究已从初期的组合优化求解扩展到了许多更新、更工程化的应用方面。

随着应用领域的扩展,遗传算法的研究出现了几个引人注目的新动向:一是基于遗传算法的机器学习,这一新的研究课题把遗传算法从历来离散的搜索空间的优化搜索算法扩展到具有独特的规则生成功能的崭新的机器学习算法。这一新的学习机制对于解决人工智能中知识获取和知识优化精炼的瓶颈难题带来了希望。二是遗传算法正日益和神经网络模糊推理以及混沌理论等其它智能计算方法相互渗透和结合,这对开拓21世纪中新的智能计算技术将具有重要的意义。三是并行处理的遗传算法的研究十分活跃。这一研究不仅对遗传算法本身的发展,而且对于新一代智能计算机体系结构的研究都是十分重要的。四是遗传算法和另一个称为人工生命的崭新研究领域正不断渗透。所谓人工生命即是用计算机模拟自然界丰富多彩的生命现象,其中生物的自适应、进化和免疫等现象是人工生命的重要研究对象,而遗传算法在这方面将会发挥一定的作用,五是遗传算法和进化规划(Evolution Programming,EP)以及进化策略(Evolution Strategy,ES)等进化计算理论日益结合。EP和ES几乎是和遗传算法同时独立发展起来的,同遗传算法一样,它们也是模拟自然界生物进化机制的智能计算方法,即同遗传算法具有相同之处,也有各自的特点。目前,这三者之间的比较研究和彼此结合的探讨正形成热点。

1991年D.Whitey在他的论文中提出了基于邻域交叉的交叉算子(Adjacency based crossover),这个算子是特别针对用序号表示基因的个体的交叉,并将其应用到了TSP问题中,通过实验对其进行了验证。D.H.Ackley等提出了随机迭代遗传爬山法(Stochastic Iterated Genetic Hill-climbing,SIGH)采用了一种复杂的概率选举机制,此机制中由m个“投票者”来共同决定新个体的值(m表示群体的大小)。实验结果表明,SIGH与单点交叉、均匀交叉的神经遗传算法相比,所测试的六个函数中有四个表现出更好的性能,而且总体来讲,SIGH比现存的许多算法在求解速度方面更有竞争力。H.Bersini和G.Seront将遗传算法与单一方法(simplex method)结合起来,形成了一种叫单一操作的多亲交叉算子(simplex crossover),该算子在根据两个母体以及一个额外的个体产生新个体,事实上他的交叉结果与对三个个体用选举交叉产生的结果一致。同时,文献还将三者交叉算子与点交叉、均匀交叉做了比较,结果表明,三者交叉算子比其余两个有更好的性能。

1992年,英国格拉斯哥大学的李耘(Yun Li)指导博士生将基于二进制基因的遗传算法扩展到七进制、十进制、整数、浮点等的基因,以便将遗传算法更有效地应用于模糊参量,系统结构等的直接优化,于1997年开发了可能是世界上最受欢迎的、也是最早之一的遗传/进化算法的网上程序 EA_demo,以帮助新手在线交互式了解进化计算的编码和工作原理,并在格拉斯哥召开第二届IEE/IEEE遗传算法应用国际会议,于2000年组织了由遗传编程(Genetic Programming)发明人斯坦福的 John Koza 等参加的 EvoNet 研讨会,探索融合GA与GP结构寻优,超越固定结构和数值优化的局限性。

国内也有不少的专家和学者对遗传算法的交叉算子进行改进。2002年,戴晓明等应用多种群遗传并行进化的思想,对不同种群基于不同的遗传策略,如变异概率,不同的变异算子等来搜索变量空间,并利用种群间迁移算子来进行遗传信息交流,以解决经典遗传算法的收敛到局部最优值问题

2004年,赵宏立等针对简单遗传算法在较大规模组合优化问题上搜索效率不高的现象,提出了一种用基因块编码的并行遗传算法(Building-block Coded Parallel GA,BCPGA)。该方法以粗粒度并行遗传算法为基本框架,在染色体群体中识别出可能的基因块,然后用基因块作为新的基因单位对染色体重新编码,产生长度较短的染色体,在用重新编码的染色体群体作为下一轮以相同方式演化的初始群体。

2005年,江雷等针对并行遗传算法求解TSP问题,探讨了使用弹性策略来维持群体的多样性,使得算法跨过局部收敛的障碍,向全局最优解方向进化。

          下一章

相关内容     首 页