导航:首页 > 源码编译 > 什么是演化算法

什么是演化算法

发布时间:2025-08-21 05:05:26

A. 进化算法入门读书笔记(一)

这里我参考学习的书籍是:

《进化计算的理论和方法》,王宇平,科学出版社

《进化优化算法:基于仿生和种群的计算机智能方法》,[美]丹·西蒙,清华大学出版社。

进化算法是 求解优化问题 的一种算法,它是 模仿生物进化与遗传原理 而设计的一类随机搜索的优化算法。

不同的作者称进化算法有不同的术语,以下。注:这里仅列举出了我自己比较容易混淆的一些,并未全部列出。

进化计算: 这样能强调算法需要在 计算机上 实施,但进化计算也可能指不用于优化的算法(最初的遗传算法并不是用于优化本身,而是想用来研究自然选择的过程)。因此,进化优化算法比进化计算更具体。

基于种群的优化: 它强调进化算法一般是让问题的候选解 种群 随着时间的进化以得到问题的更好的解。然而许多进化算法每次迭代只有单个候选解。因此,进化算法比基于种群的优化更一般化。

计算机智能/计算智能: 这样做常常是为了区分进化算法与专家系统,在传统上专家系统一直被称为人工智能。专家系统模仿演绎推理,进化算法则模仿归纳推理。进化算法有时候也被看成是人工智能的一种。计算机智能是比进化算法更一般的词,它包括神经计算、模糊系统、人工生命这样的一些技术,这些技术可应用于优化之外的问题。因此,进化计算可能比计算机智能更一般化或更具体。

由自然启发的计算/仿生计算: 像差分进化和分布估计算法这些进化算法可能并非源于自然,像进化策略和反向学习这些进化算法与自然过程联系甚微。因此,进化算法比由自然启发的算法更一般化,因为进化算法包括非仿生算法。

机器学习: 机器学习研究由经验学到的计算机算法,它还包括很多不是进化计算的算法,如强化学习、神经网络、分簇、SVM等等。因此,机器学习比进化算法更广。

群智能算法: 一些人认为群智能算法应与进化算法区分开,一些人认为群智能算法是进化算法的一个子集。因为群智能算法与进化算法有相同的执行方式,即,每次迭代都改进问题的候选解的性能从而让解的种群进化。因此,我们认为群智能算法是一种进化算法。

进化算法的简单定义可能并不完美。在进化算法领域术语的不统一会让人困惑,一个算法是进化算法如果它通常被认为是进化算法,这个戏谑的、循环的定义一开始有些麻烦,但是一段时间后,这个领域工作的人就会习惯了。

优化几乎适用于生活中的所有领域。除了对如计算器做加法运算这种过于简单的问题,不必用进化算法的软件,因为有更简单有效的算法。此外对于每个复杂的问题,至少应该考虑采用进化算法。

一个优化问题可以写成最小化问题或最大化问题,这两个问题在形式上很容易互相转化:

函数 被称为目标函数,向量 被称为独立变量,或决策变量。我们称 中元素的个数为问题的维数。

优化问题常常带有约束。即在最小化某个函数 时,对 可取的值加上约束。不举例。

实际的优化问题不仅带有约束,还有多个目标。这意味着我们想要同时最小化不止一个量。

例子:

这里评估这个问题的一种方式是绘制 作为函数 的函数的图:

如图,对在实线上的 的值,找不到能同时使 和 减小的 的其他值,此实线被称为 帕累托前沿 ,而相应的 的值的集合被称为帕累托集。(此处的帕累托最优问题十分重要,可以参考这个链接来学习和理解: 多目标优化之帕累托最优 - 知乎 ,非常清晰易懂。)

该例子是一个非常简单的多目标优化问题,它只有两个目标。实际的优化问题通常涉及两个以上的模目标,因此很难得到它的帕累托前沿,由于它是高维的,我们也无法将它可视化。后面的章节将会仔细讨论多目标进化优化。

多峰优化问题是指问题不止一个局部最小值。上例中的 就有两个局部最小值,处理起来很容易,有些问题有很多局部最小值,找出其中的全局最小值就颇具挑战性。

对于前面的简单例子,我们能用图形的方法或微积分的方法求解,但是许多实际问题除了有更多独立变量、多目标,以及带约束之外更像上面的Ackley函数这样,对于这类问题,基于微积分或图形的方法就不够用了,而进化算法却能给出更好的结果。

到现在为止我们考虑的都是连续优化问题,也就是说,允许独立变量连续地变化。但有许多优化问题中的独立变量智能在一个离散集合上取值。这类问题被称为组合优化问题。如旅行商问题。

对于有 个城市的旅行商问题,有 个可能的解。对于一些过大的问题,硬算的方法不可行,像旅行商这样的组合问题没有连续的独立变量,因此不能利用导数求解。除非对每个可能的解都试一遍,不然就无法确定所得到的组合问题的解是否就是最好的解。进化算法对这类大规模、多维的问题,它至少能帮我们找出一个好的解(不一定是最好的)。

B. 进化算法的介绍

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

C. 什么是演化算法

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

阅读全文

与什么是演化算法相关的资料

热点内容
天正scli命令 浏览:281
java字符串反序 浏览:991
php无法实现 浏览:241
什么app可以英语翻译 浏览:839
计算机python输出出生日期 浏览:612
特征抽取算法 浏览:85
自己搭建游戏服务器别人怎么连 浏览:107
卡密提货网站源码 浏览:271
点命令宝珠宏 浏览:845
阿里云服务器启动异常 浏览:223
python安卓本地数据库 浏览:209
什么天气app带降水概率 浏览:738
曲线平滑算法c 浏览:579
暴涨妖股启动的指标源码贴图 浏览:424
什么是演化算法 浏览:466
电脑服务命令 浏览:983
新手机换机用什么app 浏览:438
两牛app是什么软件 浏览:291
服务器销售怎么直接做客户 浏览:450
加密货币atm香港 浏览:159