导航:首页 > 源码编译 > 进化算法

进化算法

发布时间:2022-02-05 05:21:20

A. 进化算法的简介

进化算法包括遗传算法、遗传规划、进化规划和进化策略等等。进化算法的基本框架还是简单遗传算法所描述的框架,但在进化的方式上有较大的差异,选择、交叉、变异、种群控制等有很多变化,进化算法的大致框图可描述如右图所示:
同遗传算法一样,进化算法的收敛性也有一些结果,文献证明了在保存最优个体时通用的进化计算是收敛的,但进化算法的很多结果是从遗传算法推过去的。
遗传算法对交叉操作要看重一些,认为变异操作是算法的辅助操作;而进化规划和进化策略认为在一般意义上说交叉并不优于变异,甚至可以不要交叉操作。

B. 各种进化算法有什么异同

(差异进化算法DE)是一种用于优化问题的启发式算法。本质上说,它是一种基于实数编码的具有保优思想的贪婪遗传算法[1] 。同遗传算法一样,差异进化算法包含变异和交叉操作,但同时相较于遗传算法的选择操作,差异进化算法采用一对一的淘汰机制来更新种群。由于差异进化算法在连续域优化问题的优势已获得广泛应用,并引发进化算法研究领域的热潮。 差异进化算法由Storn 以及Price [2]提出,算法的原理采用对个体进行方向扰动,以达到对个体的函数值进行下降的目的,同其他进化算法一样,差异进化算法不利用函数的梯度信息,因此对函数的可导性甚至连续性没有要求,适用性很强。

C. 什么是进化计算它包括哪些内容它们的出发点是什么

1、准确的说应该叫进化算法或演化算法。是一个“算法簇”,尽管它有很多的变化,有不同的遗传基因表达方式,不同的交叉和变异算子,特殊算子的引用,以及不同的再生和选择方法。与传统的基于微积分的方法和穷举法等优化算法相比,进化计算是一种成熟的具有高鲁棒性和广泛适用性的全局优化方法,具有自组织、自适应、自学习的特性,能够不受问题性质的限制,有效地处理传统优化算法难以解决的复杂问题。

2、进化算法内容包括遗传算法(Genetic Algorithms)、遗传规划(Genetic Programming)、进化策略(Evolution Strategies)和进化规划(Evolution Programming)等等。进化算法的基本框架还是简单遗传算法所描述的框架,但在进化的方式上有较大的差异,选择、交叉、变异、种群控制等有很多变化。

3、它们产生的出发点(或者说灵感)都来自于大自然的生物进化。

D. 进化算法的特点

进化计算是一种具有鲁棒性的方法,能适应不同的环境不同的问题,而且在大多数情况下都能得到比较满意的有效解。他对问题的整个参数空间给出一种编码方案,而不是直接对问题的具体参数进行处理,不是从某个单一的初始点开始搜索,而是从一组初始点搜索。搜索中用到的是目标函数值的信息,可以不必用到目标函数的导数信息或与具体问题有关的特殊知识。因而进化算法具有广泛的应用性,高度的非线性,易修改性和可并行性。
此外,算法本身也可以采用动态自适应技术,在进化过程中自动调整算法控制参数和编码精度,比如使用模糊自适应法 。 进化策略(ES)是在1965年由Rechenberg和Schwefel独立提出的。
进化策略的一般算法
(1) 问题为寻找实值n维矢量x,使得函数F(x): R→R取极值。不失一般性,设此程序为极小化过程。
(2) 从各维的可行范围内随机选取亲本xi,i = 1, … , p的始值。初始试验的分布一般是均匀分布。
(3) 通过对于x的每个分量增加零均值和预先选定的标准差的高斯随机变量,从每个亲本xi产生子代xi’。
(4) 通过将适应度F(xi)和F(xi’),i=1,…,P进行排序,选择并决定那些矢量保留。具有最小适应度的P个矢量变成下一代的新亲本。
进行新试验,选择具有最小方差的新子代,一直到获得充分解,或者直到满足某个终止条件。
在这个模型中,把试验解的分量看做个体的行为特性,而不是沿染色体排列的基因。假设不管发生什么遗传变换,所造成各个个体行为的变化均遵循零均值和某个标准差的高斯分布。
由于基因多效性和多基因性,特定基因的改变可以影响许多表现型特征。所以在创造新子系时,较为合适的是同时改变亲本所有分量。
(1+1)—ES:
早期的进化策略的种群中只包含一个个体,并且只使用变异操作。在每一代中,变异后的个体与其父代进行比较,并选择较好的一个,这种选择策略被称为(1+1)策略。
(1+1)—ES的缺点:
(1) 各维取定常的标推差使得程序收敛到最优解的速度很慢;
(2) 点到点搜索的脆弱本质使得程序在局部极值附近容易受停滞的影响(虽然此算法表明可以渐近地收敛到全局最优点)。
(μ+λ)—ES:μ个亲本制造λ个子代,所有解均参加生存竞争,选出最好的μ个作为下一代的亲本。
(μ,λ)—ES:只有λ个子代参加生存竞争,在每代中μ个亲本被完全取代。
1.个体的表示法:
每个解矢量不仅包括了n维试验矢量x,而且还包括了扰动矢量σ,后者给出如何变异x以及它本身如何变异的指令。
2.变异:
设x为当前矢量。σ为对应于x每个维的方差矢量,于是新的解矢量x’,σ’可以这样产生:
3.交叉:
4.选择
在进化策略中,选择是按完全确定的方式进行。(μ,λ)—ES是从λ个子代个体集中选择μ(1<μ<λA=个最好的个体;(μ+λ)—ES是从父代和子代个体的并集中选择μ个最好的个体。虽然(μ+λ)—ES保留最优的个体能保证性能单调提高,但这种策略不能处理变化的环境,因此,目前选用最多的还是(μ,λ)—ES。 进化规划(EP)由Fogel在20世纪60年代提出。
1.表示法和适应值度量
进化规划假设—个有界子空间 ,其中ui<vi。搜索区域被扩展到I=R,即个体为目标变量向量,a=x∈I,进化规划把目标函数值通过比例变换到正值,同时加入某个随机改变θ来得到适应值 ,其中δ是比例函数。
2.变异
可简化为:
3.选择
在P个父代个体每个经过一次变异产生P个子代后,进化规划利用一种随机q竞争选择方法从父代和子代的集合中选择P个个体,其中q>1是选择算法的参数。

E. 进化算法的起源发展

进化计算包括遗传算法(Genetic Algorithms)、遗传规划(Genetic Programming)、进化策略(Evolution Strategies)和进化规划(Evolution Programming)4种典型方法。第一类方法比较成熟,现已广泛应用,进化策略和进化规划在科研和实际问题中的应用也越来越广泛。
遗传算法的主要基因操作是选种、交配和突变,而在进化规则、进化策略中,进化机制源于选种和突变。就适应度的角度来说遗传算法用于选择优秀的父代(优秀的父代产生优秀的子代),而进化规则和进化策略则用于选择子代(优秀的子代才能存在)。
遗传算法与遗传规划强调的是父代对子代的遗传链,而进化规则和进化策略则着重于子代本身的行为特性,即行为链。
进化规则和进化策略一般都不采用编码,省去了运作过程中的编码—解码手续更适用于连续优化问题,但因此也不能进行非数值优化。进化策略可以确定机制产生出用于繁殖的父代,而遗传算法和进化规则强调对个体适应度和概率的依赖。
此外,进化规则把编码结构抽象为种群之间的相似,而进化策略抽象为个体之间的相似。进化策略和进化规则已应用于连续函数优化、模式识别、机器学习、神经网络训练、系统辨识和智能控制的众多领域

F. 进化算法的差分算法

差分进化算法(Differential Evolution, DE)是一种新兴的进化计算技术,或称为差分演化算法、微分进化算法、微分演化算法、差异演化算法。它是由Storn等人于1995年提出的,最初的设想是用于解决切比雪夫多项式问题,后来发现DE也是解决复杂优化问题的有效技术。DE与人工生命,特别是进化算法有着极为特殊的联系。
差分进化算法是基于群体智能理论的优化算法,通过群体内个体间的合作与竞争产生的群体智能指导优化搜索。但相比于进化算法,DE保留了基于种群的全局搜索策略,采用实数编码基于差分的简单变异操作和一对一的竞争生存策略,降低了遗传操作的复杂性。同时,DE特有的记忆能力使其可以动态跟踪当前的搜索情况,以调整其搜索策略,具有较强的全局收敛能力和鲁棒性,且不需要借助问题的特征信息,适于求解一些利用常规的数学规划方法所无法求解的复杂环境中的优化问题。
差分进化算法是一种基于群体进化的算法,具有记忆个体最优解和种群内信息共享的特点,即通过种群内个体间的合作与竞争来实现对优化问题的求解,其本质是一种基于实数编码的具有保优思想的贪婪遗传算法。
DE是一种用于优化问题的启发式算法。本质上说,它是一种基于实数编码的具有保优思想的贪婪遗传算法 。同遗传算法一样,DE包含变异和交叉操作,但同时相较于遗传算法的选择操作,DE采用一对一的淘汰机制来更新种群。由于DE在连续域优化问题的优势已获得广泛应用,并引发进化算法研究领域的热潮。
DE由Storn 以及Price提出,算法的原理采用对个体进行方向扰动,以达到对个体的函数值进行下降的目的,同其他进化算法一样,DE不利用目标函数的梯度信息,因此对目标的可导性甚至连续性没有要求,适用性很强。同时,算法与粒子群优化有相通之处 ,但因为DE在一定程度上考虑了多变量间的相关性,因此相较于粒子群优化在变量耦合问题上有很大的优势。算法的实现参考实现代码部分。

G. 进化算法的框架

进化算法是以达尔文的进化论思想为基础,通过模拟生物进化过程与机制的求解问题的自组织、自适应的人工智能技术。生物进化是通过繁殖、变异、竞争和选择实现的;而进化算法则主要通过选择、重组和变异这三种操作实现优化问题的求解。如图1: 1、t=0
2、初始化群体p(0)
3、评估初始化群体p(0)
4、while终止条件不满足do
5、 重组操作:p(t)=r(p(t))
6、 变异操作:p(t)=m(p(t))
7、 评估操作:p(t)
8、 选择操作:p(t+1)=s(p(t)UQ)
9、 t=t+1
10、end 图1:进化算法基本框架
其中r、m、s分别表示重组算子、变异算子、选择算子。

H. 多目标差分进化算法

差分进化算法(Differential Evolution, DE)是一种基于群体差异的启发式随机搜索算法,该算法是由R.Storn和K.Price为求解Chebyshev多项式而提出的。是一种用于最佳化问题的后设启发式算法。本质上说,它是一种基于实数编码的具有保优思想的贪婪遗传算法。

将问题的求解表示成"染色体"的适者生存过程,通过"染色体"群的一代代不断进化,包括复制、交叉和变异等操作,最终收敛到"最适应环境"的个体,从而求得问题的最优解或满意解。

差分进化算法类似遗传算法,包含变异,交叉操作,淘汰机制,而差分进化算法与遗传算法不同之处,在于变异的部分是随选两个解成员变数的差异,经过伸缩后加入当前解成员的变数上,因此差分进化算法无须使用概率分布产生下一代解成员。最优化方法分为传统优化方法和启发式优化方法两大类。传统的优化方法大多数都是利用目标函数的导数求解;而启发式优化方法以仿生算法为主,通过启发式搜索策略实现求解优化。启发式搜索算法不要求目标函数连续、可微等信息,具有较好的全局寻优能力,成为最优化领域的研究热点。

在人工智能领域中,演化算法是演化计算的一个分支。它是一种基于群体的元启发式优化算法,具有自适应、自搜索、自组织和隐并行性等特点。近年来,很多学者将演化算法应用到优化领域中,取得了很大的成功,并已引起了人们的广泛关注。越来越多的研究者加入到演化优化的研究之中,并对演化算法作了许多改进,使其更适合各种优化问题。目前,演化算法已广泛应用于求解无约束函数优化、约束函数优化、组合优化、多目标优化等多种优化问题中。

I. 请问遗传算法和进化算法是什么关系

对主角的形态进行拆分,用数值表示问题解的最小构成单位即表示基因本身,基因串即表示一个个体。以字符串的形态存储耳朵颜色,形状,眼睛颜色形状,皮肤颜色,花纹以及尾巴颜色,形状的相关数据,通过多点交叉,然后产生新的子代个体,接下来进行图像组合,调整每一个部件的相对位置,组合成完整的个体。适应度由玩家交互的次数决定,玩家对自己最喜爱的宠物的关心最多,然后依次递减,适应度最高的个体有大几率繁衍下一代且携带优秀基因(玩家喜爱度更高),实现进化。

J. 进化算法的基本步骤

进化计算是基于自然选择和自然遗传等生物进化机制的一种搜索算法。与普通的搜索方法一样,进化计算也是一种迭代算法,不同的是进化计算在最优解的搜索过程中,一般是从原问题的一组解出发改进到另一组较好的解,再从这组改进的解出发进一步改进。而且在进化问题中,要求当原问题的优化模型建立后,还必须对原问题的解进行编码。进化计算在搜索过程中利用结构化和随机性的信息,使最满足目标的决策获得最大的生存可能,是一种概率型的算法。
一般来说,进化计算的求解包括以下几个步骤:给定一组初始解;评价当前这组解的性能;从当前这组解中选择一定数量的解作为迭代后的解的基础;再对其进行操作,得到迭代后的解;若这些解满足要求则停止,否则将这些迭代得到的解作为当前解重新操作。
以遗传算法为例,其工作步骤可概括为:
(1) 对工作对象——字符串用二进制的0/1或其它进制字符编码 。
(2) 根据字符串的长度L,随即产生L个字符组成初始个体。
(3) 计算适应度。适应度是衡量个体优劣的标志,通常是所研究问题的目标函数。
(4) 通过复制,将优良个体插入下一代新群体中,体现“优胜劣汰”的原则。
(5) 交换字符,产生新个体。交换点的位置是随机决定的
(6) 对某个字符进行补运算,将字符1变为0,或将0变为1,这是产生新个体的另一种方法,突变字符的位置也是随机决定的。
(7) 遗传算法是一个反复迭代的过程,每次迭代期间,要执行适应度计算、复制、交换、突变等操作,直至满足终止条件。
将其用形式化语言表达,则为:假设α∈I记为个体,I记为个体空间。适应度函数记为Φ:I→R。在第t代,群体P(t)={a1(t),a2(t),…,an(t)}经过复制r(reproction)、交换c(crossover)及突变m(mutation)转换成下一代群体。这里r、c、m均指宏算子,把旧群体变换为新群体。L:I→{True, Flase}记为终止准则。利用上述符号,遗传算法可描述为:
t=0
initialize P(0):={ a1(0),a2(0),…,an(0)};
while(l(P(t))≠True) do
evaluate P(t):{ Φ(a1(t)), Φ(a2(t)),…,Φ(an(t))};
reproction: P′(t):=r(P(t));
crossover: P″(t):=c(P′(t));
mutation: P(t+1):= m(P″(t));
t=t+1;
end

阅读全文

与进化算法相关的资料

热点内容
cmd杀死进程命令 浏览:233
ipad激活服务器地址 浏览:449
单片机开始直流电机压降问题 浏览:15
服务器地址失败怎么办 浏览:144
安卓手机怎么下载苏联游戏 浏览:128
主教的命令 浏览:803
php判断变量为空 浏览:743
你演我猜安卓版本怎么用 浏览:907
已够app哪里看 浏览:1005
程序员怎么学会开车的技巧 浏览:783
网易邮箱如何删除服务器邮件 浏览:152
java多个泛型 浏览:274
安卓折扣号怎么充值 浏览:603
行政决定行政命令 浏览:895
linux下的软连接 浏览:606
fib在python是什么意思 浏览:534
c调用命令行 浏览:942
阿里云服务器中没有apt 浏览:611
发送信息需要用户加密吗 浏览:638
六年级分数乘分数有几种算法 浏览:300