“集智百科精选”是一个长期专栏,持续为大家推送复杂性科学相关的基本概念和资源信息。作为集智俱乐部的开源科学项目,集智百科希望打造复杂性科学领域最全面的百科全书,欢迎对复杂性科学感兴趣、热爱知识整理和分享的朋友加入!

本文是对集智百科中“演化计算”词条的摘录,参考资料及相关词条请参阅百科词条原文。

本词条由集智俱乐部众包生产,难免存在纰漏和问题,欢迎大家留言反馈或者前往对应的百科词条页面进行修改,一经修改,可以获得对应的积分奖励噢!

目录

一、历史
二、技术
三、演化算法
四、演化算法和生物学
五、著名的参与者

六、相关会议
七、参考书目
八、集智推荐
九、集智百科词条志愿者招募

在计算机科学中, 演化计算 Evolutionary computation,又称进化计算,是一个受生物演化启发的全局优化算法家族,这些算法的研究属于人工智能和软计算的子领域。在技术术语上,它们是一类基于群体的试错型问题求解器,具有元启发式或随机优化特性。

在演化计算中,一个初始的候选解决方案集被生成并迭代更新。每一代都是通过随机去除不太理想的解法,引入小的随机变化而产生的。在生物学术语中,一个解决方案的群体会经历自然选择(或人工选择)和突变。因此,种群会逐渐演化,其适应度不断提高,在这个语境中所谓适应度就是算法选择的目标函数。

演化计算技术可以应用在在诸多问题领域中,并产生高度优化的解决方案,这使其在计算机科学中广受欢迎。演化计算存在许多变体和扩展,能适用于更具体的问题和数据结构。演化计算有时也被用在演化生物学中,作为一种电子实验程序来研究一般演化过程的共性特点。





历史


使用演化原理来进行自动化问题求解 automated problem solving起源于20世纪50年代,但一直到20世纪60年代,才在三个不同的地方形成了对这一观点的三种不同的解释。

演化程序设计 Evolutionary programming是由美国的 Lawrence J. Foge提出的,而约翰·霍兰德 John H Holland也提出一种叫做遗传算法的方法,与此同时在德国,Ingo Rechenberg 和 Hans-Paul Schwefel 引入了演化策略 evolution strategies。
这些领域分别独立地发展了大约15年,一直到90年代早期开始,它们被统一用一种被称为演化计算的技术来进行表示(类似“方言”)。也是在90年代初期,出现了继一般思想之后的第四种思潮——遗传编程 genetic programming。自20世纪90年代以来,以自然为灵感的算法正在成为演化计算日益重要的一部分。

这些术语表示演化计算领域,并将演化程序设计、演化策略、遗传算法和遗传编程作为子领域。

利用演化算法和人工生命模拟进化的工作始于20世纪60年代Nils Aall Barricelli的工作,后来被Alex Fraser扩展,他发表了一系列关于人工选择模拟的论文 。20世纪60年代和70年代早期,Ingo Rechenberg 使用演化策略解决复杂的工程问题,人工演化因此成为被广泛认可的优化方法。尤其是遗传算法,因为约翰·霍兰德的著作也变得流行起来。学术界兴趣增长的同时,计算机能力的急剧增长使得这种算法可以被实际应用起来,其中包括计算机程序的自动演化。 演化算法现在被用来解决多维度问题,且比人类设计者生产的软件更有效,同时还可以优化系统的设计。



技术


演化计算技术主要涉及元启发式优化算法。一般来说,这个领域包括:
蚁群优化算法人工免疫系统 Artificial immune systems
人工生命 (also see digital organism)
文化算法 Cultural algorithms
差分演化 Differential evolution
双相演化Dual-phase evolution
分布算法估计 Estimation of distribution algorithms
演化算法
演化编程 Evolutionary programming
演化策略 Evolution strategy
基因表达式编程算法 Gene expression programming
遗传算法Genetic algorithm
遗传程序设计 Genetic programming
文法演化 Grammatical evolution
可学习演化模型 Learnable evolution model
学习分类器系统 Learning classifier systems
模因算法 Memetic algorithms
神经演化 Neuroevolution
粒子群优化算法
协作成纤维细胞优化 Synergistic Fibroblast Optimization
自组织
集体智能 Swarm intelligence






演化算法


演化算法是演化计算的一个子集,因为它们通常只涉及实现生物演化机制的技术,如繁殖、变异、重组、自然选择和适者生存。最佳化问题的候选解决方案扮演了人口中个体的角色,而成本函数决定了解决方案“生存”的环境(参见适应度函数)。在重复应用上述算子之后,种群的演化就发生了。

在计算智能 computational intelligence 领域,演化算法(EA)(或称进化算法)是演化计算的子集 ,是一种基于群体的元启发式最优化算法。演化算法使用到了各种模拟生物演化机制的操作,比如繁衍、变异、重组、选择等。在群体中每一个个体都是问题的备选解,而损失函数 cost function(决定了这些个体的生存环境(亦即用于计算个体对于环境的适应度)。演化就是在不断在群体中进行繁衍、变异、重组、选择这些操作进而找出最优解的过程。

在这个过程中,有两种主要的力量构成了演化系统的基础: 重组(Recombination)、突变(mutation)和交换(crossover)创造了必要的多样性,从而促进了新颖性,而选择带来的优胜劣汰则是一种提高质量的力量。

这种演化过程的许多方面都是随机的。由于重组和突变而改变的信息片段是随机选择的。另一方面,选择操作可以是确定性的,也可以是随机的。在后一种情况下,适合度较高的个体比适合度较低的个体有更高的机会被选中,但通常即使是适应度较差的个体也有机会成为父本或生存下来。






演化算法和生物学


遗传算法提供了与动力系统理论相关的生物系统和系统生物学模型的方法,因为它们可以被用来预测系统的未来状态。这是一种生动的(但也许是误导性的)方式,提醒人们注意生物学发展的有序、控制良好和高度结构化的特征。

然而,算法和信息学的使用,特别是计算理论的使用,超越了对动力系统的类比,这也与理解演化本身有关。

这一观点的优点是认识到发育没有中央控制;生物体的发育是细胞内部和细胞之间局部相互作用的结果。在我们看来,关于程序开发并行的最有前途的想法似乎是那些指出细胞内的进程与现代计算机的低级操作之间明显相似的思想。因此,生物系统就像计算机器,处理输入信息来计算下一个状态。这样看来,生物系统比经典的动力系统更接近于计算。

此外,根据计算理论的概念,生物有机体中的微进程从根本上来说是不完整的和不可判定的 ,这意味着细胞和计算机之间的类比不只仅仅只是一个粗略的比喻。
计算的类比也延伸到遗传系统和生物结构之间的关系,这通常被认为是解释生命起源最紧迫的问题之一。

演化自动机是演化 图灵机 Turing machines的一种推广。人们引入了这一概念来更精确地研究生物和演化计算的性质。特别是,他们在演化计算的表现力上获得新的成果。这证实了关于自然演化和演化算法及过程不可判定性的初步结果。演化有限自动机是演化自动机中最简单的子类,在终端模式下可以接受给定字母表上的任意语言,包括非递归的可枚举语言(例如,对角化语言)和递归的可枚举但不递归语言(例如,通用图灵机语言)。






著名的参与者


活跃的研究人员名单自然是动态的,并非详尽无遗,关于这个社区的学术社交网络分析于2007年发表。

Kalyanmoy DebKenneth A De JongPeter J. FlemingDavid B. FogelStephanie ForrestDavid E. GoldbergJohn H HollandTheo JansenJohn KozaZbigniew MichalewiczMelanie MitchellPeter NordinRiccardo PoliIngo RechenbergHans-Paul Schwefel





相关会议


演化计算领域的主要会议包括

Association for Computing Machinery|ACM]] Genetic and Evolutionary Computation Conference (GECCO) 计算机协会 遗传与进化计算会议
IEEE Congress on Evolutionary Computation]] (CEC) IEEE演化计算大会
EvoStar, which comprises four conferences: EuroGP, EvoApplications, EvoCOP and EvoMUSART EvoStar,包括四个会议:EuroGP、EvoApplications、EvoCOP和EvoMUSART,
Parallel Problem Solving from Nature (PPSN) 自然并行问题解决



参考书目




Th. Bäck, D.B. Fogel, and Zbigniew Michalewicz (Editors), Handbook of Evolutionary Computation, 1997
Th. Bäck and H.-P. Schwefel. An overview of evolutionary algorithms for parameter optimization. Evolutionary Computation, 1(1):1–23, 1993.
W. Banzhaf, P. Nordin, R.E. Keller, and F.D. Francone. Genetic Programming — An Introduction. Morgan Kaufmann, 1998.
S. Cagnoni, et al., Real-World Applications of Evolutionary Computing, Springer-Verlag Lecture Notes in Computer Science, Berlin, 2000.
R. Chiong, Th. Weise, Zbigniew Michalewicz (Editors), Variants of Evolutionary Algorithms for Real-World Applications, 2012
K. A. De Jong, Evolutionary computation: a unified approach. MIT Press, Cambridge MA, 2006
A. E. Eiben and M. Schoenauer (2002). “Evolutionary computing”. Information Processing Letters. 82: 1–6. doi:10.1016/S0020-0190(02)00204-1.
A. E. Eiben and J.E. Smith, Introduction to Evolutionary Computing, Springer, First edition, 2003,
D. B. Fogel. Evolutionary Computation. Toward a New Philosophy of Machine Intelligence. IEEE Press, Piscataway, NJ, 1995.
L. J. Fogel, A. J. Owens, and M. J. Walsh. 人工智能 through Simulated Evolution. New York: John Wiley, 1966.
D. E. Goldberg. Genetic algorithms in search, optimization and machine learning. Addison Wesley, 1989.
J. H. Holland. Adaptation in natural and artificial systems. University of Michigan Press, Ann Arbor, 1975.
P. Hingston, L. Barone, and Zbigniew Michalewicz (Editors), Design by Evolution, Natural Computing Series, 2008
J. R. Koza. Genetic Programming: On the Programming of Computers by means of Natural Evolution. MIT Press, Massachusetts, 1992.
F.J. Lobo, C.F. Lima, Zbigniew Michalewicz (Editors), Parameter Setting in Evolutionary Algorithms, 2010
Zbigniew Michalewicz, Genetic Algorithms + Data Structures – Evolution Programs, 1996
Zbigniew Michalewicz and D.B. Fogel, How to Solve It: Modern Heuristics,2004
I. Rechenberg. Evolutionstrategie: Optimierung Technischer Systeme nach Prinzipien des Biologischen Evolution. Fromman-Hozlboog Verlag, Stuttgart, 1973. 模板:In lang
H.-P. Schwefel. Numerical Optimization of Computer Models. John Wiley & Sons, New-York, 1981. 1995 – 2nd edition.
D. Simon. Evolutionary Optimization Algorithms. Wiley, 2013.
M. Sipper, W. Fu, K. Ahuja, and J. H. Moore (2018). “Investigating the parameter space of evolutionary algorithms”. BioData Mining. 11: 2. doi:10.1186/s13040-018-0164-x. PMC 5816380. PMID 29467825.
Y. Zhang and S. Li. (2017). “PSA: A novel optimization algorithm based on survival rules of porcellio scaber”. arXiv:1709.09840 [cs.NE].






集智推荐

文章推荐

人工生命全景图:如何创造出超越人工智能的生命系统
该文章是对Lana Sinapayen的《Introduction to Artificial Life for People who Like AI》一文进行的总结,主要从研究目标、发展历史、与人工智能的关系等方面对人工生命进行了介绍。

基于垫脚石原理的神经演化算法:为人工智能注入创造力该文章主要介绍了计算机科学家 Kenneth Stanley提出的基于垫脚石原理的神经演化算法。

课程推荐Genetic Algorithms课程简介:本课程中,讲解生成式算法、生成式编程与进化的虚拟生物。

课程推荐:Genetic Algorithms
https://campus.swarma.org/course/1343





百科项目志愿者招募




作为集智百科项目团队的成员,本文内容由Henry、Ricky、思无涯咿呀咿呀参与贡献。我们也为每位作者和志愿者准备了专属简介和个人集智百科主页,更多信息可以访问其集智百科个人主页。

以上内容都是我们做这项目的起点,作为来自不同学科和领域的志愿者,我们建立起一个有效的百科团队,分配有审校、翻译、编辑、宣传等工作。我们秉持:知识从我而来,问题到我为止的信念,认真负责编撰每一个词条。

在这里从复杂性知识出发与伙伴同行,同时我们希望有更多志愿者加入这个团队,使百科词条内容得到扩充,并为每位志愿者提供相应奖励与资源,建立个人主页与贡献记录,使其能够继续探索复杂世界。

如果你有意参与更加系统精细的分工,扫描二维码填写报名表,我们期待你的加入!

集智百科报名表

来源:集智百科编辑:王建萍


推荐阅读
什么是演化算法 | 集智百科
什么是演化网络 | 集智百科
什么是度,什么是握手定理 | 集智百科

什么是邻接表 | 集智百科
加入集智,一起复杂!

点击“阅读原文”,阅读演化算法相关内容与文献