遗传算法和进化算法之间的真正区别是什么?

发布于 2025-01-03 10:10:08 字数 204 浏览 1 评论 0原文

我正在阅读一些有关遗传算法的论文,他们经常以非常相似的方式提到进化算法。根据维基百科,GA 是 EA 的子集。然而,如果我们仔细观察,我们可以注意到两者都是基于自然选择(交叉、选择、变异)的元启发式优化算法,并且都没有固定的表示(这取决于要解决的问题,即使我们传统上使用二进制) GA 的表示)。他们非常相似。所以,我的问题是我们可以将每个进化算法视为遗传算法吗?它们之间真正的区别是什么?谢谢

I am reading some papers about Genetic Algorithms and often they mention Evolutionary Algorithms in a very similar way. According to Wikipedia, GAs are subset of EAs. However, if we look closer, we can notice that both are metaheuristic optimization algorithms based on natural selection (crossover, selection, mutation) and both don't have a fixed representation (it depends on the problem to solve, even we traditionaly use binary representations for GAs). They are very similar. So, my question is can we consider every evolutionary algorithm a genetic algorithm ? and what are the real differences between them ? Thank you

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

女中豪杰 2025-01-10 10:10:08

这在某种程度上取决于你问的是谁。在此类事物存在的最初几十年里,每个人都认为存在不同的类别(通常被列为“遗传算法”、“遗传编程”、“进化策略”和“进化编程”。可以肯定的是,有重要的子领域之间存在差异,因此这种区别在某种程度上确实有意义

(大约在 90 年代末左右),人们开始将它们视为更通用的算法类别的实例,从而推动了统一。 。 这主要 GA 会议 (ICGA) 演变成 GECCO,统一术语变成了“进化计算”,涵盖上述所有内容,偶尔还包括其他一些内容(如果您是 因此,目前,我们通常将“进化计算”

(或“进化算法”)作为包罗万象的总括术语,遗传编程保持其自身的身份,即直接进化代码字符串和进化。策略在处理实值时还保持单独的身份,并且通常包括某种自我修改(例如,在运行时协方差矩阵自适应学习搜索方向)。进化编程仍然存在,但只是一个小得多的利基市场。 “遗传算法”一词的范围已经很广了。最初,人们认为它们是对二进制字符串进行操作,进行代选择等操作。随着时间的推移,严格性逐渐消失。此时,您几乎可以将“遗传算法”用作“进化计算”的同义词。你不应该这样做,因为你会失去术语中的微妙之处,但一般来说,如果你不直接进行代码生成,并且你没有以非常特别定义的方式演化实数,那么与人们所认为的进化策略相对应,那么你可以相当安全地将其称为“遗传算法”。

It sort of depends on who you ask. For the first few decades that such things existed, everyone considered there to be distinct categories (usually listed as "genetic algorithms", "genetic programming", "evolution strategies", and "evolutionary programming". There were, to be sure, significant differences between the subfields, so the distinction did make some degree of sense.

At some point (around the late 90s or thereabouts), there was a bigger push for unification, as people began to see them as instances of a more general class of algorithms. The major GA conference (ICGA) morphed into GECCO, and the unifying term became "evolutionary computation", encompassing all of the above, and occasionally a few others (you can view things like particle swarm optimization as evolutionary algorithms as well if you're a bit liberal with the definitions).

So currently, we would generally say "evolutionary computation" (or "evolutionary algorithms") as the catch-all umbrella term. Genetic programming maintains its own identity as evolving code strings directly, and evolution strategies also keep a separate identity as dealing with real-values and often including some sort of self-modification (e.g., covariance matrix adaptation learning search directions at runtime). Evolutionary programming still exists, but only as a much smaller niche. The term "genetic algorithms" has broaded quite a bit. Originally, people thought of them as operating on binary strings operating with generational selection, etc. Over time, one by one, the strictness has fallen away. At this point, you can almost use "genetic algorithm" as a synonym for "evolutionary computation". You shouldn't, because there is an understood subtlety in the terminology that you'd be losing, but in general, if you aren't doing code generation directly, and you aren't evolving real numbers in a very particularly defined way that corresponds with what people think of as evolution strategies, then you're reasonably safe in calling it a "genetic algorithm".

同展鸳鸯锦 2025-01-10 10:10:08

为了完成 deong 的精彩答案,这里引用了这本优秀书籍进化计算简介 由 AE Eiben 和 JE Smith 撰写。

令人惊讶的是,这种将达尔文原理应用于
自动化问题解决可以追溯到四十年代,早在
计算机的突破[146]。早在1948年,图灵就提出
“遗传或进化搜索”,到 1962 年 Breinermami 已经
实际上执行了“优化”的计算机实验
进化与重组”。在 20 世纪 60 年代,三种不同的
基本思想的实现是在不同的地方开发的。
在美国,福格尔、欧文斯和沃尔什提出了进化论
编程 [155, 156],而 Holland 称他的方法为遗传
算法[98,202,204]。与此同时,在德国,雷兴伯格和施韦费尔发明了进化策略[317, 342]。大约15年来,这些
单独开发的区域;但自 20 世纪 90 年代初以来,他们一直
被视为一种技术的不同代表(“方言”)
这被称为进化计算 [22, 27, 28, 120,
271]。 20 世纪 90 年代初,第四股潮流遵循总体思路
出现了由 Koza 倡导的遗传编程[38,229,230]。这
当代术语通过进化来表示整个领域
计算,所涉及的算法被称为进化算法,
它考虑了进化规划、进化策略、
遗传算法和遗传编程作为属于以下子领域
相应的算法变体。

科学发展
致力于 EC 的论坛表明了该领域的过去和
展示。首届专门研究该问题的国际会议
主题是国际遗传算法会议(ICGA),
首次于 1985 年举行[180],每两年重复一次,直至 1997 年
[182, 333, 43, 158, 137, 241 1999 年与年度报告合并
遗传编程会议 [235, 234, 232] 成为年度会议
遗传与进化计算会议(GECCO)[37。 416.381.2421.同时
进化规划年会。自1992年起举办。
[150. 151.
344. 268. 154. 12. 3071 与 1994 年以来举行的 IEEE 进化计算会议合并,[210. 211.212.213.2141
组建进化计算大会(CEC)
此后每年举行一次[71。 72.73.741.

首届欧洲活动
(明确设置为包含所有流)是并行问题
自然求解 (PPSN),1990 年 [3431。这已成为一年两次的
会议[259。 90. 410. 116. 337. 1871. 位于面板中
讨论(吸引第一个 PPSN 名称为“进化”
计算是作为所有现有“方言”的总称而提供的。
进化计算(麻省理工学院出版社)。第一份科学期刊
致力于这个领域。于 1993 年推出。1997 年欧洲
委员会决定资助位于欧共体的一个欧洲研究网络,称为
EvoNet,其资金保证至 2003 年。在撰写本文时
(2003),存在三个主要的 EC 会议(CEO、GECCO. 和 PPSN)
以及许多较小的,包括专门致力于理论分析和开发的,遗传算法基础
(FOGA) 自 1990 年起每两年举行一次 [316, 420. 425. 44. 39. 261. 3081.
目前已有三份核心科学 EC 期刊(Evolutionary
计算
IEEE 进化计算汇刊,以及
遗传编程和可进化机器)以及许多与
相关简介。例如,关于自然计算。软计算,或
计算智能。我们估计 EC 出版物的数量
2003 年,有超过 1500 篇文章,其中许多发表在期刊和
特定应用领域的论文集。


To complete deong's great answer, here is a quote from the excellent book Introduction to Evolutionary Computing written by A. E. Eiben and J. E. Smith.

Surprisingly enough, this idea of applying Darwinian principles to
automated problem solving dates back to the forties, long before the
breakthrough of computers [146]. As early as 1948, Turing proposed
"genetical or evolutionary search", and by 1962 Breinermami had
actually executed computer experiments on 'optimization through
evolution and recombination". During the 1960s three different
implementations of the basic idea were developed in different places.
In the USA, Fogel, Owens, and Walsh introduced evolutionary
programming
[155, 156], while Holland called his method a genetic
algorithm
[98, 202, 204]. Meanwhile, in Germany, Rechenberg and Schwefel invented evolution strategies [317, 342]. For about 15 years these
areas developed separately; but since the early 1990s they have been
viewed as different representatives ("dialects") of one technology
that has come to be known as evolutionary computing [22, 27, 28, 120,
271]. In the early 1990s a fourth stream following the general ideas
emerged, genetic programming, championed by Koza [38, 229, 230]. The
contemporary terminology denotes the whole field by evolutionary
computing, the algorithms involved are termed evolutionary algorithms,
and it considers evolutionary programming, evolution strategies,
genetic algorithms, and genetic programming as subareas belonging to
the corresponding algorithm variants.

The development of scientific
forums devoted to EC gives an indication of the field's past and
present. The first international conference specialising in the
subject was the International Conference on Genetic Algorithms (ICGA),
first held in 1985 [180] and repeated every second year until 1997
[182, 333, 43, 158, 137, 241 In 1999 it merged with the Annual
Conference on Genetic Programming
[235, 234, 232] to become the annual
Genetic and Evolutionary Computation Conference
(GECCO) [37. 416. 381. 2421. At the same time
the Annual Conference on Evolutionary Programming. held since 1992.
[150. 151.
344. 268. 154. 12. 3071 merged with the IEEE Conference on Evolutionary Computation, held since 1994, [210. 211. 212. 213. 2141
to form the Congress on Evolutionary Computation (CEC) which has been
held annually ever since [71. 72. 73. 741.

The first European event
(explicitly set up to embrace all streams) was the Parallel Problem
Solving from Nature
(PPSN) in 1990 [3431. which has became a biannual
conference [259. 90. 410. 116. 337. 1871. It was in a panel
discussion (luring the first PPSN t hat the name evolutionary
computing was offered as an umbrella term for all existing "dialects".
Evolutionary Computation (MIT Press). The first scientific journal
devoted to this field. was launched in 1993. In 1997 the European
Commission decided to fund a European research network in EC called
EvoNet, whose funds are guaranteed until 2003. At the time of writing
(2003), there are three major EC conferences (CEO, GECCO. and PPSN)
and many smaller ones, including one dedicated exclusively to theoretical analysis and development, Foundations of Genetic Algorithms
(FOGA) held biannually since 1990 [316, 420. 425. 44. 39. 261. 3081.
By now there are three core scientific EC journals (Evolutionary
Computation
, IEEE Transactions on Evolutionary Computation, and
Genetic Programming and Evolvable Machines) and many with a closely
related profile. e.g., on natural computing. soft computing, or
computational intelligence. We estimate the number of EC publications
in 2003 at somewhere over 1500 many of them in journals and
proceedings of specific application areas.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文