① 各种进化算法有什么异同
(差异进化算法DE)是一种用于优化问题的启发式算法。本质上说,它是一种基于实数编码的具有保优思想的贪婪遗传算法[1] 。同遗传算法一样,差异进化算法包含变异和交叉操作,但同时相较于遗传算法的选择操作,差异进化算法采用一对一的淘汰机制来更新种群。由于差异进化算法在连续域优化问题的优势已获得广泛应用,并引发进化算法研究领域的热潮。 差异进化算法由Storn 以及Price [2]提出,算法的原理采用对个体进行方向扰动,以达到对个体的函数值进行下降的目的,同其他进化算法一样,差异进化算法不利用函数的梯度信息,因此对函数的可导性甚至连续性没有要求,适用性很强。
② 智能计算/计算智能、仿生算法、启发式算法的区别与关系
我一个个讲好了,
1)启发式算法:一个基于直观或经验构造的算法,在可接受的花费(指计算时间和空间)下给出待解决组合优化问题每一个实例的一个可行解,该可行解与最优解的偏离程度不一定事先可以预计。意思就是说,启发式算法是根据经验或者某些规则来解决问题,它求得的问题的解不一定是最优解,很有可能是近似解。这个解与最优解近似到什么程度,不能确定。相对于启发式算法,最优化算法或者精确算法(比如说分支定界法、动态规划法等则能求得最优解)。元启发式算法是启发式算法中比较通用的一种高级一点的算法,主要有遗传算法、禁忌搜索算法、模拟退火算法、蚁群算法、粒子群算法、变邻域搜索算法、人工神经网络、人工免疫算法、差分进化算法等。这些算法可以在合理的计算资源条件下给出较高质量的解。
2)仿生算法:是一类模拟自然生物进化或者群体社会行为的随机搜索方法的统称。由于这些算法求解时不依赖于梯度信息,故其应用范围较广,特别适用于传统方法难以解决的大规模复杂优化问题。主要有:遗传算法、人工神经网络、蚁群算法、蛙跳算法、粒子群优化算法等。这些算法均是模仿生物进化、神经网络系统、蚂蚁寻路、鸟群觅食等生物行为。故叫仿生算法。
3)智能计算:也成为计算智能,包括遗传算法、模拟退火算法、禁忌搜索算法、进化算法、蚁群算法、人工鱼群算法,粒子群算法、混合智能算法、免疫算法、神经网络、机器学习、生物计算、DNA计算、量子计算、模糊逻辑、模式识别、知识发现、数据挖掘等。智能计算是以数据为基础,通过训练建立联系,然后进行问题求解。
所以说,你接触的很多算法,既是仿生算法,又是启发式算法,又是智能算法,这都对。分类方法不同而已。
这次楼主不要再老花了哈!
③ 对 启发式算法的理解
启发式算法是一种能在可接受的费用内寻找最好的解的技术,但不一定能保证所得解的可行性和最优性,甚至在多数情况下,无法阐述所得解同最优解的近似程度
④ 进化算法的特点
进化计算是一种具有鲁棒性的方法,能适应不同的环境不同的问题,而且在大多数情况下都能得到比较满意的有效解。他对问题的整个参数空间给出一种编码方案,而不是直接对问题的具体参数进行处理,不是从某个单一的初始点开始搜索,而是从一组初始点搜索。搜索中用到的是目标函数值的信息,可以不必用到目标函数的导数信息或与具体问题有关的特殊知识。因而进化算法具有广泛的应用性,高度的非线性,易修改性和可并行性。
此外,算法本身也可以采用动态自适应技术,在进化过程中自动调整算法控制参数和编码精度,比如使用模糊自适应法 。 进化策略(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是选择算法的参数。
⑤ 人工智能之进化算法
进化计算的三大分支包括:遗传算法(Genetic Algorithm ,简称GA)、进化规划(Evolu-tionary Programming,简称EP)和进化策略(Evolution Strategies ,简称ES)。这三个分支在算法实现方面具有一些细微的差别,但它们具有一个共同的特点,即都是借助生物进化的思想和原理来解决实际问题。
遗传算法是一类通过模拟生物界自然选择和自然遗传机制的随机化搜索算法,由美国Holand J教授于1975年首次提出。它是利用某种编码技术作用于称为染色体的二进制数串,其基本思想是模拟由这些串组成的种群的进化过程,通过有组织的、然而是随机的信息交换来重新组合那些适应性好的串。遗传算法对求解问题的本身一无所知,它所需要的仅是对算法所产生的每个染色体进行评价,并根据适应性来选择染色体,使适应性好的染色体比适应性差的染色体有更多的繁殖机会。遗传算法尤其适用于处理传统搜索方法难于解决的复杂的非线性问题,可广泛用于组合优化、机器学习、自适应控制、规划设计和人工生命等领域,是21世纪有关智能计算中的关键技术之一。
1964年,由德国柏林工业大学的RechenbergI等人提出。在求解流体动力学柔性弯曲管的形状优化问题时,用传统的方法很难在优化设计中描述物体形状的参数,然而利用生物变异的思想来随机地改变参数值并获得了较好效果。随后,他们便对这种方法进行了深入的研究和发展,形成了进化计算的另一个分支——进化策略。
进化策略与遗传算法的不同之处在于:进化策略直接在解空间上进行操作,强调进化过程中从父体到后代行为的自适应性和多样性,强调进化过程中搜索步长的自适应性调节;而遗传算法是将原问题的解空间映射到位串空间之中,然后再施行遗传操作,它强调个体基因结构的变化对其适应度的影响。
进化策略主要用于求解数值优化问题。
进化规划的方法最初是由美国人Fogel LJ等人在20世纪60年代提出的。他们在人工智能的研究中发现,智能行为要具有能预测其所处环境的状态,并按照给定的目标做出适当的响应的能力。在研究中,他们将模拟环境描述成是由有限字符集中符号组成的序列。
进化算法与传统的算法具有很多不同之处,但其最主要的特点体现在下述两个方面:
进化计算的智能性包括自组织、自适应和自学习性等。应用进化计算求解问题时,在确定了编码方案、适应值函数及遗传算子以后,算法将根据“适者生存、不适应者淘汰"的策略,利用进化过程中获得的信息自行组织搜索,从而不断地向最佳解方向逼近。自然选择消除了传统算法设计过程中的-一个最大障碍:即需要事先描述问题的全部特点,并说明针对问题的不同特点算法应采取的措施。于是,利用进化计算的方法可以解决那些结构尚无人能理解的复杂问题。
进化计算的本质并行性表现在两个方面:
一是进化计算是内在并行的,即进化计算本身非常适合大规模并行。
二是进化计算的内含并行性,由于进化计算采用种群的方式组织搜索,从而它可以同时搜索解空间内的多个区域,并相互交流信息,这种搜索方式使得进化计算能以较少的计算获得较大的收益。
⑥ 各种进化算法有什么异同
同遗传算法一样,差异进化算法包含变异和交叉操作,但同时相较于遗传算法的选择操作,差异进化算法采用一对一的淘汰机制来更新种群。由于差异进化算法在连续域优化问题的优势已获得广泛应用,并引发进化算法研究领域的热潮。
进化算法
或称“演化算法” (evolutionary algorithms) 是一个“算法簇”,尽管它有很多的变化,有不同的遗传基因表达方式,不同的交叉和变异算子,特殊算子的引用,以及不同的再生和选择方法,但它们产生的灵感都来自于大自然的生物进化。
与传统的基于微积分的方法和穷举法等优化算法相比,进化计算是一种成熟的具有高鲁棒性和广泛适用性的全局优化方法,具有自组织、自适应、自学习的特性,能够不受问题性质的限制,有效地处理传统优化算法难以解决的复杂问题。
⑦ 有关启发式算法(Heuristic Algorithm)的一些总结
节选自维基网络:
启发法 ( heuristics ,源自古希腊语的εὑρίσκω,又译作:策略法、助发现法、启发力、捷思法)是指 依据有限的知识 (或“不完整的信息”)在短时间内找到问题解决方案的一种技术。
它是一种依据 关于系统的有限认知 和 假说 从而得到关于此系统的结论的分析行为。由此得到的解决方案有可能会偏离最佳方案。通过与最佳方案的对比,可以确保启发法的质量。
计算机科学的两大基础目标,就是 发现可证明其运行效率良好 且可 得最佳解或次佳解 的算法。
而启发式算法则 试图一次提供一个或全部目标 。例如它常能发现很不错的解, 但也没办法证明它不会得到较坏的解 ; 它通常可在合理时间解出答案,但也没办法知道它是否每次都可以这样的速度求解。
有时候人们会发现在某些特殊情况下,启发式算法会得到很坏的答案或效率极差, 然而造成那些特殊情况的数据结构,也许永远不会在现实世界出现 。
因此现实世界中启发式算法很常用来解决问题。启发式算法处理许多实际问题时通常可以在合理时间内得到不错的答案。
有一类的 通用启发式策略称为元启发式算法(metaheuristic) ,通常使用随机数搜索技巧。他们可以应用在非常广泛的问题上,但不能保证效率。
节选自网络:
启发式算法可以这样定义:一个 基于直观或经验构造 的算法, 在 可接受的花费(指计算时间和空间)下给出待解决组合优化问题每一个实例的一个可行解 , 该可行解与最优解的偏离程度一般不能被预计。 现阶段,启发式算法以仿自然体算法为主,主要有蚁群算法、模拟退火法、神经网络等。
目前比较通用的启发式算法一般有模拟退火算法(SA)、遗传算法(GA)、蚁群算法(ACO)。
模拟退火算法(Simulated Annealing, SA)的思想借鉴于固体的退火原理,当固体的温度很高的时候,内能比较大,固体的内部粒子处于快速无序运动,当温度慢慢降低的过程中,固体的内能减小,粒子的慢慢趋于有序,最终,当固体处于常温时,内能达到最小,此时,粒子最为稳定。模拟退火算法便是基于这样的原理设计而成。
求解给定函数的最小值:其中,0<=x<=100,给定任意y的值,求解x为多少的时候,F(x)最小?
遗传算法(Genetic Algorithm, GA)起源于对生物系统所进行的计算机模拟研究。它是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,借鉴了达尔文的进化论和孟德尔的遗传学说。其本质是一种 高效、并行、全局搜索 的方法,能在搜索过程中自动获取和积累有关搜索空间的知识,并 自适应 地控制搜索过程以求得最佳解。
给定一组五个基因,每一个基因可以保存一个二进制值 0 或 1。这里的适应度是基因组中 1 的数量。如果基因组内共有五个 1,则该个体适应度达到最大值。如果基因组内没有 1,那么个体的适应度达到最小值。该遗传算法希望 最大化适应度 ,并提供适应度达到最大的个体所组成的群体。
想象有一只蚂蚁找到了食物,那么它就需要将这个食物待会蚂蚁穴。对于这只蚂蚁来说,它并不知道应该怎么回到蚂蚁穴。
这只蚂蚁有可能会随机选择一条路线,这条路可能路程比较远,但是这只蚂蚁在这条路上留下了记号(一种化学物质,信息素)。如果这只蚂蚁继续不停地搬运食物的时候,有其它许多蚂蚁一起搬运的话,它们总会有运气好的时候走到更快返回蚂蚁穴的路线。当蚂蚁选择的路线越优,相同时间内蚂蚁往返的次数就会越多,这样就在这条路上留下了更多的信息素。
这时候,蚂蚁们就会选择一些路径上信息素越浓的,这些路径就是较优的路径。当蚂蚁们不断重复这个过程,蚂蚁们就会更多地向更浓的信息素的路径上偏移,这样最终会确定一条路径,这条路径就是最优路径。