演化计算
此词条暂由Henry翻译。
In computer science, evolutionary computation is a family of algorithms for global optimization inspired by biological evolution, and the subfield of artificial intelligence and soft computing studying these algorithms. In technical terms, they are a family of population-based trial and error problem solvers with a metaheuristic or stochastic optimization character.
In computer science, evolutionary computation is a family of algorithms for global optimization inspired by biological evolution, and the subfield of artificial intelligence and soft computing studying these algorithms. In technical terms, they are a family of population-based trial and error problem solvers with a metaheuristic or stochastic optimization character.
在计算机科学中, 演化计算 Evolutionary computation是一个受生物进化启发的全局优化算法家族,人工智能和软计算的子领域研究这些算法。用技术术语来讲,它们是一个基于种群反复试验trial and error 并具有亚启发式或随机优化性质的问题解决算法族。
In evolutionary computation, an initial set of candidate solutions is generated and iteratively updated. Each new generation is produced by stochastically removing less desired solutions, and introducing small random changes. In biological terminology, a population of solutions is subjected to natural selection (or artificial selection) and mutation. As a result, the population will gradually evolve to increase in fitness, in this case the chosen fitness function of the algorithm.
In evolutionary computation, an initial set of candidate solutions is generated and iteratively updated. Each new generation is produced by stochastically removing less desired solutions, and introducing small random changes. In biological terminology, a population of solutions is subjected to natural selection (or artificial selection) and mutation. As a result, the population will gradually evolve to increase in fitness, in this case the chosen fitness function of the algorithm.
在演化计算中,一个初始的候选解决方案集被生成并迭代更新。每一代都是通过随机去除不太理想的解法,引入小的随机变化而产生的。在生物学术语中,一个解决方案的群体经历自然选择(或人工选择)和突变。因此,种群将逐渐演化以增加适应度,在这种情况下,选择适应度函数的算法。
Evolutionary computation techniques can produce highly optimized solutions in a wide range of problem settings, making them popular in computer science. Many variants and extensions exist, suited to more specific families of problems and data structures. Evolutionary computation is also sometimes used in evolutionary biology as an in silico experimental procedure to study common aspects of general evolutionary processes.
Evolutionary computation techniques can produce highly optimized solutions in a wide range of problem settings, making them popular in computer science. Many variants and extensions exist, suited to more specific families of problems and data structures. Evolutionary computation is also sometimes used in evolutionary biology as an in silico experimental procedure to study common aspects of general evolutionary processes.
进化计算技术可以在大范围的问题设置中产生高度优化的解决方案,这使得它们在计算机科学中受欢迎。存在许多变体和扩展,适合于更具体的问题和数据结构的家族。进化计算有时也用于进化生物学,作为一个硅胶实验过程,以研究一般进化过程的共同方面。
History
History
历史
The use of evolutionary principles for automated problem solving originated in the 1950s. It was not until the 1960s that three distinct interpretations of this idea started to be developed in three different places.
The use of evolutionary principles for automated problem solving originated in the 1950s. It was not until the 1960s that three distinct interpretations of this idea started to be developed in three different places.
自动化问题解决的演化原理的使用起源于20世纪50年代。直到20世纪60年代,才在三个不同的地方形成了对这一观点的三种不同的解释。
Evolutionary programming was introduced by Lawrence J. Fogel in the US, while John Henry Holland called his method a genetic algorithm. In Germany Ingo Rechenberg and Hans-Paul Schwefel introduced evolution strategies. These areas developed separately for about 15 years. From the early nineties on they are unified as different representatives ("dialects") of one technology, called evolutionary computing. Also in the early nineties, a fourth stream following the general ideas had emerged – genetic programming. Since the 1990s, nature-inspired algorithms are becoming an increasingly significant part of the evolutionary computation.
Evolutionary programming was introduced by Lawrence J. Fogel in the US, while John Henry Holland called his method a genetic algorithm. In Germany Ingo Rechenberg and Hans-Paul Schwefel introduced evolution strategies. These areas developed separately for about 15 years. From the early nineties on they are unified as different representatives ("dialects") of one technology, called evolutionary computing. Also in the early nineties, a fourth stream following the general ideas had emerged – genetic programming. Since the 1990s, nature-inspired algorithms are becoming an increasingly significant part of the evolutionary computation.
进化规划是由美国的 Lawrence J. Foge提出的,而 John Henry Holland称他的方法为遗传算法。在德国,Ingo Rechenberg 和 Hans-Paul Schwefel 引入了进化策略。这些地区分别发展了大约15年。从九十年代早期开始,它们被统一为一种被称为演化计算的技术的不同代表(类似“方言”)。也是在九十年代初期,出现了继一般思想之后的第四种思潮——遗传程序设计。自20世纪90年代以来,以自然为灵感的算法正在成为日益重要的演化计算。
These terminologies denote the field of evolutionary computing and consider evolutionary programming, evolution strategies, genetic algorithms, and genetic programming as sub-areas.
These terminologies denote the field of evolutionary computing and consider evolutionary programming, evolution strategies, genetic algorithms, and genetic programming as sub-areas.
这些术语表示演化计算领域,并将演化规划、演化策略、遗传算法和遗传规划作为子领域。
Simulations of evolution using evolutionary algorithms and artificial life started with the work of Nils Aall Barricelli in the 1960s, and was extended by Alex Fraser, who published a series of papers on simulation of artificial selection.[1] Artificial evolution became a widely recognised optimisation method as a result of the work of Ingo Rechenberg in the 1960s and early 1970s, who used evolution strategies to solve complex engineering problems.[2] Genetic algorithms in particular became popular through the writing of John Holland.[3] As academic interest grew, dramatic increases in the power of computers allowed practical applications, including the automatic evolution of computer programs.[4] Evolutionary algorithms are now used to solve multi-dimensional problems more efficiently than software produced by human designers, and also to optimise the design of systems.[5][6]
Simulations of evolution using evolutionary algorithms and artificial life started with the work of Nils Aall Barricelli in the 1960s, and was extended by Alex Fraser, who published a series of papers on simulation of artificial selection. Artificial evolution became a widely recognised optimisation method as a result of the work of Ingo Rechenberg in the 1960s and early 1970s, who used evolution strategies to solve complex engineering problems. Genetic algorithms in particular became popular through the writing of John Holland. As academic interest grew, dramatic increases in the power of computers allowed practical applications, including the automatic evolution of computer programs. Evolutionary algorithms are now used to solve multi-dimensional problems more efficiently than software produced by human designers, and also to optimise the design of systems.
利用演化算法和人工生命模拟进化,始于20世纪60年代 Nils Aall Barricelli的工作,后来被Alex Fraser扩展,他发表了一系列关于人工选择模拟的论文。20世纪60年代和70年代早期,Ingo Rechenberg 使用演化策略解决复杂的工程问题,人工进化因此成为广泛认可的优化方法。遗传算法尤其通过John Holland的著作而流行起来。随着学术兴趣的增长,计算机能力的戏剧性增长允许其实际应用,包括计算机程序的自动进化。演化算法现在被用来解决多维问题,比人类设计师开发的软件更有效率,它也可以用来优化系统设计。
Techniques
Techniques
Techniques
技术 Evolutionary computing techniques mostly involve metaheuristic optimization algorithms. Broadly speaking, the field includes:
Evolutionary computing techniques mostly involve metaheuristic optimization algorithms. Broadly speaking, the field includes:
进化计算技术主要涉及元启发式优化算法。一般来说,这个领域包括:
蚁群算法
人工免疫系统
- Artificial life (also see digital organism)
人工生命(参见电子生命)
文化算法
差分演化
双相演化
分布算法估计
演化算法
演化编程
演化策略
基因表达式编程算法
基因算法
基因编程
文法进化
可学习演化模型
学习分类系统
遗传算法
神经进化
粒子群优化算法
协作成纤维细胞优化
自我管理(例如自组织特征映射模型 竞争性学习)
集群智能
Evolutionary algorithms
Evolutionary algorithms
演化算法
Evolutionary algorithms form a subset of evolutionary computation in that they generally only involve techniques implementing mechanisms inspired by biological evolution such as reproduction, mutation, recombination, natural selection and survival of the fittest. Candidate solutions to the optimization problem play the role of individuals in a population, and the cost function determines the environment within which the solutions "live" (see also fitness function). Evolution of the population then takes place after the repeated application of the above operators.
Evolutionary algorithms form a subset of evolutionary computation in that they generally only involve techniques implementing mechanisms inspired by biological evolution such as reproduction, mutation, recombination, natural selection and survival of the fittest. Candidate solutions to the optimization problem play the role of individuals in a population, and the cost function determines the environment within which the solutions "live" (see also fitness function). Evolution of the population then takes place after the repeated application of the above operators.
演化算法是演化计算的一个子集,因为它们通常只涉及实现生物进化机制的技术,如繁殖、变异、重组、自然选择和适者生存。最佳化问题的候选解决方案扮演了人口中个体的角色,而成本函数决定了解决方案“生存”的环境(参见适应度函数)。在重复应用上述算子之后,种群的演化就发生了。
In this process, there are two main forces that form the basis of evolutionary systems: Recombination mutation and crossover create the necessary diversity and thereby facilitate novelty, while selection acts as a force increasing quality.
In this process, there are two main forces that form the basis of evolutionary systems: Recombination mutation and crossover create the necessary diversity and thereby facilitate novelty, while selection acts as a force increasing quality.
在这个过程中,有两种主要的力量构成了进化系统的基础: 重组变异和交叉创造了必要的多样性,从而促进了新颖性,而选择作为一种力来提高质量。
Many aspects of such an evolutionary process are stochastic. Changed pieces of information due to recombination and mutation are randomly chosen. On the other hand, selection operators can be either deterministic, or stochastic. In the latter case, individuals with a higher fitness have a higher chance to be selected than individuals with a lower fitness, but typically even the weak individuals have a chance to become a parent or to survive.
Many aspects of such an evolutionary process are stochastic. Changed pieces of information due to recombination and mutation are randomly chosen. On the other hand, selection operators can be either deterministic, or stochastic. In the latter case, individuals with a higher fitness have a higher chance to be selected than individuals with a lower fitness, but typically even the weak individuals have a chance to become a parent or to survive.
这种进化过程的许多方面都是随机的。由于重组和突变而改变的信息片段是随机选择的。另一方面,选择运算符可以是确定性的,也可以是随机的。在后一种情况下,适合度较高的个体比适合度较低的个体有更高的机会被选中,但通常即使是体质较弱的个体也有机会成为父母或生存下来。
Evolutionary algorithms and biology
Evolutionary algorithms and biology
演化算法和生物学
Genetic algorithms deliver methods to model biological systems and systems biology that are linked to the theory of dynamical systems, since they are used to predict the future states of the system. This is just a vivid (but perhaps misleading) way of drawing attention to the orderly, well-controlled and highly structured character of development in biology.
Genetic algorithms deliver methods to model biological systems and systems biology that are linked to the theory of dynamical systems, since they are used to predict the future states of the system. This is just a vivid (but perhaps misleading) way of drawing attention to the orderly, well-controlled and highly structured character of development in biology.
遗传算法提供了与动力系统理论相关的生物系统和系统生物学模型的方法,因为它们被用来预测系统的未来状态。这只是一种生动的(但也许是误导性的)方式,提醒人们注意生物学发展的有序、控制良好和高度结构化的特征。
However, the use of algorithms and informatics, in particular of computational theory, beyond the analogy to dynamical systems, is also relevant to understand evolution itself.
However, the use of algorithms and informatics, in particular of computational theory, beyond the analogy to dynamical systems, is also relevant to understand evolution itself.
然而,算法和信息学的使用,特别是计算理论的使用,超越了对动力系统的类比,也与理解演化本身有关。
This view has the merit of recognizing that there is no central control of development; organisms develop as a result of local interactions within and between cells. The most promising ideas about program-development parallels seem to us to be ones that point to an apparently close analogy between processes within cells, and the low-level operation of modern computers.[7] Thus, biological systems are like computational machines that process input information to compute next states, such that biological systems are closer to a computation than classical dynamical system.[8]
This view has the merit of recognizing that there is no central control of development; organisms develop as a result of local interactions within and between cells. The most promising ideas about program-development parallels seem to us to be ones that point to an apparently close analogy between processes within cells, and the low-level operation of modern computers. Thus, biological systems are like computational machines that process input information to compute next states, such that biological systems are closer to a computation than classical dynamical system.
这种观点的优点是认识到发育没有中央控制,生物体的发育是细胞内部和细胞之间局部相互作用的结果。在我们看来,关于程序开发平行线的最有前途的想法似乎是指向细胞内的进程与现代计算机的低级操作之间明显非常相似的类比。因此,生物系统就像计算机器,处理输入信息来计算下一个状态,这样生物系统比传统的动力系统更接近于计算。
Furthermore, following concepts from computational theory, micro processes in biological organisms are fundamentally incomplete and undecidable (completeness (logic)), implying that “there is more than a crude metaphor behind the analogy between cells and computers.[9]
Furthermore, following concepts from computational theory, micro processes in biological organisms are fundamentally incomplete and undecidable (completeness (logic)), implying that “there is more than a crude metaphor behind the analogy between cells and computers.
此外,根据计算理论的概念,生物有机体中的微进程从根本上来说是不完整的和不可判定的(完整性(逻辑)) ,这意味着“细胞和计算机之间的类比背后不只是一个粗略的比喻。
The analogy to computation extends also to the relationship between inheritance systems and biological structure, which is often thought to reveal one of the most pressing problems in explaining the origins of life.
The analogy to computation extends also to the relationship between inheritance systems and biological structure, which is often thought to reveal one of the most pressing problems in explaining the origins of life.
计算的类比也延伸到遗传系统和生物结构之间的关系,这通常被认为是揭示解释生命起源最紧迫的问题之一。
Evolutionary automata模板:R, a generalization of Evolutionary Turing machines模板:R, have been introduced in order to investigate more precisely properties of biological and evolutionary computation. In particular, they allow to obtain new results on expressiveness of evolutionary computation模板:R. This confirms the initial result about undecidability of natural evolution and evolutionary algorithms and processes. Evolutionary finite automata, the simplest subclass of Evolutionary automata working in terminal mode can accept arbitrary languages over a given alphabet, including non-recursively enumerable (e.g., diagonalization language) and recursively enumerable but not recursive languages (e.g., language of the universal Turing machine)模板:R.
Evolutionary automata, a generalization of Evolutionary Turing machines, have been introduced in order to investigate more precisely properties of biological and evolutionary computation. In particular, they allow to obtain new results on expressiveness of evolutionary computation. This confirms the initial result about undecidability of natural evolution and evolutionary algorithms and processes. Evolutionary finite automata, the simplest subclass of Evolutionary automata working in terminal mode can accept arbitrary languages over a given alphabet, including non-recursively enumerable (e.g., diagonalization language) and recursively enumerable but not recursive languages (e.g., language of the universal Turing machine).
进化自动机是进化图灵机 图灵机Turing machines的一种推广,为了更精确地研究生物和进化计算的性质,人们引入了它。特别是,他们允许在进化计算的表现力上获得新的结果。这证实了关于自然进化和进化算法及过程不可判定性的初步结果。进化有限自动机是进化自动机中最简单的子类,在终端模式下可以接受给定字母表上的任意语言,包括非递归的可枚举语言(例如,对角化语言)和递归的可枚举但不递归语言(例如,通用图灵机语言)。
Notable practitioners
Notable practitioners
著名从业人员
The list of active researchers is naturally dynamic and non-exhaustive. A network analysis of the community was published in 2007.[10]
The list of active researchers is naturally dynamic and non-exhaustive. A network analysis of the community was published in 2007.
活跃的研究人员名单自然是动态的,并非详尽无遗。社区的网络分析在2007年发表。
Conferences
Conferences
会议
The main conferences in the evolutionary computation area include
The main conferences in the evolutionary computation area include
进化计算地区的主要会议包括
- EvoStar, which comprises four conferences: EuroGP, EvoApplications, EvoCOP and EvoMUSART,
- Parallel Problem Solving from Nature (PPSN).
See also
See also
参见
适应性多维研究
人工发展
自动建设性
发展性生物学
数字化生物
分布算法估计
演化机器人
演化天线
适应值近似
适应值函数
适应度景观
遗传算子
文法演化
人类演化计算
推断编程
互动演化计算
数字化有机体模拟器表
变异测试
研究和优化没有免费的午餐
程序综合
优化测试函数
普适达尔文主义
External links
External links
外部链接
Bibliography
Bibliography
参考书目
- Th. Bäck, D.B. Fogel, and Z. 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, Z. Michalewicz (Editors), Variants of Evolutionary Algorithms for Real-World Applications, Springer, 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.
{{cite journal}}
: CS1 maint: uses authors parameter (link)
- 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. Artificial Intelligence 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 Z. Michalewicz (Editors), Design by Evolution, Natural Computing Series, 2008, Springer,
- 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, Z. Michalewicz (Editors), Parameter Setting in Evolutionary Algorithms, Springer, 2010,
- Z. Michalewicz, Genetic Algorithms + Data Structures – Evolution Programs, 1996, Springer,
- Z. Michalewicz and D.B. Fogel, How to Solve It: Modern Heuristics, Springer, 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.
{{cite journal}}
: CS1 maint: uses authors parameter (link)
- Y. Zhang and S. Li. (2017). "PSA: A novel optimization algorithm based on survival rules of porcellio scaber". arXiv:1709.09840 [cs.NE].
{{cite arxiv}}
: CS1 maint: uses authors parameter (link)
References
References
参考资料
引用错误:Closing tag missing for<references>
}}
Br /
Category:Evolution
分类: 进化
This page was moved from wikipedia:en:Evolutionary computation. Its edit history can be viewed at 演化计算/edithistory
- Z. Michalewicz and D.B. Fogel, How to Solve It: Modern Heuristics, Springer, 2004,
- Z. Michalewicz, Genetic Algorithms + Data Structures – Evolution Programs, 1996, Springer,