当前位置:首页 » 操作系统 » 演化算法

演化算法

发布时间: 2022-01-31 16:42:10

1. 进化算法的基本步骤

进化计算是基于自然选择和自然遗传等生物进化机制的一种搜索算法。与普通的搜索方法一样,进化计算也是一种迭代算法,不同的是进化计算在最优解的搜索过程中,一般是从原问题的一组解出发改进到另一组较好的解,再从这组改进的解出发进一步改进。而且在进化问题中,要求当原问题的优化模型建立后,还必须对原问题的解进行编码。进化计算在搜索过程中利用结构化和随机性的信息,使最满足目标的决策获得最大的生存可能,是一种概率型的算法。
一般来说,进化计算的求解包括以下几个步骤:给定一组初始解;评价当前这组解的性能;从当前这组解中选择一定数量的解作为迭代后的解的基础;再对其进行操作,得到迭代后的解;若这些解满足要求则停止,否则将这些迭代得到的解作为当前解重新操作。
以遗传算法为例,其工作步骤可概括为:
(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

2. 演化计算的分支

自计算机出现以来,生物模拟便成为计算机科学领域的一个组成部分。其目的之一是试图建立一种人工的模拟环境,在这个环境中使用计算机进行仿真,以便能够更好地了解人类自己以及人类的生存空间;另一个目的则是从研究生物系统出发,探索产生基本认知行为的微观机理,然后设计具有生物智能的机器或模拟系统,来解决复杂问题。如,神经网络、细胞自动机和演化计算都是从不同角度对生物系统进行模拟而发展起来的研究方向。演化计算最初具有三大分支:遗传算法(GeneticAlgorithm,GA)、演化规划(EvolutionaryProgramming、EP)和演化策略(EvolutionStrategy,ES)。上世纪90年代初,在遗传算法的基础上又形成了一个新的分支:遗传程序设计(GeneticProgramming,GP)。虽然这几个分支在算法实现上有一些细微差别,但是它们都有一个共同的特点,即都是借助生物演化的思想及原理来解决实际问题的。
(1)遗传算法
上世纪50年代末人们尝试把计算机科学与进化论结合起来,但由于缺乏一种通用的编码方案,人们只能依赖变异而非交配来产生新的基因结构,加上当时只有少数计算机可以满足运算速度的要求,故而收效甚微。到60年代中期,美国Michigan大学的JohnHolland在A.S.Fraser和H.J.Bremermann等人工作的基础上提出了位串编码技术。这种编码技术不但适于变异操作。而已同样适于交配(即杂交)操作。并且强调将交配作为主要的遗传操作。遗传算法的通用编码技术和简单有效的遗传操作意义重大,并为其广泛、成功的应用奠定了坚实的基础。Holland遗传算法被称为简单遗传算法(SGA)。其操作对象是一群二进制串(称为染色体、个体)。在解决实际问题中,每个染色体都对应问题的一个可行解。从初始种群出发,使用杂交和变异来产生下一代种群。如此一代代进行演化。直到达到设定好的终止条件。需要指出的是:目前的遗传算法已不再仅仅局限于二进制编码。
(2) 演化策略
上世纪60年代初,柏林工业大学的学生I.Rechenberg和H.P.Schwefel在进行风洞实验时,由于用传统的方法难以对设计中描述物体形状的参数进行优化。因而利用生物遗传和变异的思想来改变参数值,并获得了较好的效果。随后,他们对这种方法进行了深入的研究和探索。形成了演化计算的另一个重要分支——演化策略。
(3)演化规划
演化规划的方法最初是由L.J.Fogel等提出在上世纪60年代。他们在研究人工智能的时候发现,智能行为就是具有感应其所处环境的状态、并按给定目标自动做出适当响应的能力。在研究中,他们将模拟环境描述成由有限字符集中的符号组成的序列。于是问题就被转化为,如何根据当前观察到的符号序列做出响应,以获得最大收益。这里,收益主要由环境中将要出现的下一个符号及预先定义好的效益目标来确定。他们将此方法应用到数据诊断、模式识别和分类及控制系统的设计等问题中,取得了较好的结果。
(4)遗传程序设计
自计算机出现以来,计算机科学的一个方向性目标就是让计算机自主进行程序设计,即只要告诉计算机要解决的问题,而不需要告诉它具体如何去做。遗传程序设计便是在该领域的一种尝试。它采用演化算法中遗传算法的基本思想,但使用一种更为灵活的表示方式——使用分层结构来表示解空间。这些分层结构有叶节点和中间节点,叶结点是所需解决问题的原始变量,中间结点则是组合这些原始变量的函数。这样,每个分层结构对应问题的一个可行解。遗传程序设计就是使用一些遗传操作动态地改变这些结构,以获得解决该问题的可行的计算机程序。遗传程序设计的思想是Stanford大学的J.R.Koza在上世纪90年代初提出的。

3. 进化算法的差分算法

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

4. 什么是演化算法

演化算法是解决组合优化问题的高效搜索算法.该文在现有求解TSP问题的演化算法的基础上,通过引入映射算子、优化算子以及增加一些控制策略,提出了一种高效的演化搜索算法.实验表明,该算法是有效的,通过对CHN144以及国际通用的TSPLIB中不同城市规模的数据进行测试表明,其中实例CHN144得到的最短路径为30353.860997,优于吴斌等运用分段算法得到的最短路径30354.3,亦优于朱文兴等人的结果,实例st70和kroB150得到的最短路径分别与运用分段算法得到的最短路径值相同,实例pr136得到的最短路径值为96770.924122,优于TSPLIB中提供的最短路径96772,对于其它实例也均能快速地得到和TSPLIB中提供的最优路径相同或更优的路径,该算法不仅很容易收敛到问题的最优解,而且求解速度极快.

5. 演化算法能解决什么问题大家多说几种题目,有20分奖励!!

. 研究如何利用计算技术研究生物现象
2. 研究如何利用生物技术研究计算问题

6. 如何证明演化算法得到的解是近似最优解

1,用你的演化算法作一个benchmark,如果达到近似最优解,说明你的演化算法比较好。
2,算法没有缺点时,进行足够的时间计算,可以作为近似最优解。
3,松弛约束后,根据差可以基本判断是否最优解

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

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

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

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

8. 高分寻达人分别介绍下遗传算法和演化算法,以及之间的联系和区别

根据阅读的资料,大概有以下判断:
遗传算法是演化算法中的一种。

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

遗传算法是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型。它的思想源于生物遗传学和适者生存的自然规律,是具有“生存+检测”的迭代过程的搜索算法。遗传算法以一种群体中的所有个体为对象,并利用随机化技术指导对一个被编码的参数空间进行高效搜索。其中,选择、交叉和变异构成了遗传算法的遗传操作;参数编码、初始群体的设定、适应度函数的设计、遗传操作设计、控制参数设定五个要素组成了遗传算法的核心内容。 作为一种新的全局优化搜索算法,遗传算法以其简单通用、鲁棒性强、适于并行处理以及高效、实用等显着特点,在各个领域得到了广泛应用,取得了良好效果,并逐渐成为重要的智能算法之一。

遗传算法是基于生物学的,理解或编程都不太难。下面是遗传算法的一般算法:
创建一个随机的初始状态

初始种群是从解中随机选择出来的,将这些解比喻为染色体或基因,该种群被称为第一代,这和符号人工智能系统的情况不一样,在那里问题的初始状态已经给定了。

评估适应度

对每一个解(染色体)指定一个适应度的值,根据问题求解的实际接近程度来指定(以便逼近求解问题的答案)。不要把这些“解”与问题的“答案”混为一谈,可以把它理解成为要得到答案,系统可能需要利用的那些特性。

繁殖(包括子代突变)

带有较高适应度值的那些染色体更可能产生后代(后代产生后也将发生突变)。后代是父母的产物,他们由来自父母的基因结合而成,这个过程被称为“杂交”。

下一代

如果新的一代包含一个解,能产生一个充分接近或等于期望答案的输出,那么问题就已经解决了。如果情况并非如此,新的一代将重复他们父母所进行的繁衍过程,一代一代演化下去,直到达到期望的解为止。

并行计算

非常容易将遗传算法用到并行计算和群集环境中。一种方法是直接把每个节点当成一个并行的种群看待。然后有机体根据不同的繁殖方法从一个节点迁移到另一个节点。另一种方法是“农场主/劳工”体系结构,指定一个节点为“农场主”节点,负责选择有机体和分派适应度的值,另外的节点作为“劳工”节点,负责重新组合、变异和适应度函数的评估。
http://ke..com/view/45853.html

演化算法:
这部分的研究主要是提供具有演化特征的算法,已知的遗传算法是其中之一。许多新的算法正在研究中。由于遗传算法的整体搜索策略和优化计算时不依赖于梯度信息,所以它的应用非常广泛,尤其适合于处理传统搜索方法难以解决的高度复杂的非线性问题。人工生命研究的重要内容就是进化现象,遗传算法是研究进化现象的重要方法之一
我国学者接触这个领域较晚,目前尚未形成声势和有规模的研究队伍。1997年夏天,在中科院基础局、国家科委基础司及中国国际经济及技术交流中心的支持下,由中科院系统科学所和自动化研究所举办了第一次人工生命及进化机器人研讨会[20]。与会者约60人。除去邀请了五位国际知名学者的学术报告之外,国内也有数名学者介绍了相关的研究成果。主要在数字生命、复杂巨系统方面进行了一些研究。据目前了解到的情况,国内尚有一些人在研究演化算法,在人工智能的一本书上有一段介绍人工生命。但对人工社会、人工生态环境及进化机器人等尚无人问津。
http://blog.ustc.e.cn/chujx/archives/000925.html

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

同遗传算法一样,差异进化算法包含变异和交叉操作,但同时相较于遗传算法的选择操作,差异进化算法采用一对一的淘汰机制来更新种群。由于差异进化算法在连续域优化问题的优势已获得广泛应用,并引发进化算法研究领域的热潮。

进化算法

或称“演化算法” (evolutionary algorithms) 是一个“算法簇”,尽管它有很多的变化,有不同的遗传基因表达方式,不同的交叉和变异算子,特殊算子的引用,以及不同的再生和选择方法,但它们产生的灵感都来自于大自然的生物进化。

与传统的基于微积分的方法和穷举法等优化算法相比,进化计算是一种成熟的具有高鲁棒性和广泛适用性的全局优化方法,具有自组织、自适应、自学习的特性,能够不受问题性质的限制,有效地处理传统优化算法难以解决的复杂问题。

热点内容
诺基亚密码忘了打什么电话 发布:2024-09-17 03:27:09 浏览:555
树深度优先算法 发布:2024-09-17 03:26:58 浏览:472
跳转页源码 发布:2024-09-17 03:13:05 浏览:543
html文件上传表单 发布:2024-09-17 03:08:02 浏览:784
聊天软件编程 发布:2024-09-17 03:00:07 浏览:726
linuxoracle安装路径 发布:2024-09-17 01:57:29 浏览:688
两个安卓手机照片怎么同步 发布:2024-09-17 01:51:53 浏览:207
cf编译后没有黑框跳出来 发布:2024-09-17 01:46:54 浏览:249
安卓怎么禁用应用读取列表 发布:2024-09-17 01:46:45 浏览:524
win10设密码在哪里 发布:2024-09-17 01:33:32 浏览:662