最新的群智能优化算法(2020年新出的群智能优化算法)
大家好!今天让创意岭的小编来大家介绍下关于最新的群智能优化算法的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等
只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端
创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008
本文目录:
一、优化算法笔记(二)优化算法的分类
(以下描述,均不是学术用语,仅供大家快乐的阅读)
在分类之前,我们先列举一下常见的优化算法(不然我们拿什么分类呢?)。
1遗传算法Genetic algorithm
2粒子群优化算法Particle Swarm Optimization
3差分进化算法Differential Evolution
4人工蜂群算法Artificial Bee Colony
5蚁群算法Ant Colony Optimization
6人工鱼群算法Artificial Fish Swarm Algorithm
7杜鹃搜索算法Cuckoo Search
8萤火虫算法Firefly Algorithm
9灰狼算法Grey Wolf Optimizer
10鲸鱼算法Whale Optimization Algorithm
11群搜索算法Group search optimizer
12混合蛙跳算法Shuffled Frog Leaping Algorithm
13烟花算法fireworks algorithm
14菌群优化算法Bacterial Foraging Optimization
以上优化算法是我所接触过的算法,没接触过的算法不能随便下结论,知之为知之,不知为不知。其实到目前为止优化算法可能已经有几百种了,我们不可能也不需要全面的了解所有的算法,而且优化算法之间也有较大的共性,深入研究几个之后再看其他优化算法上手速度会灰常的快。
优化算法从提出到现在不过50-60年(遗传算法1975年提出),虽种类繁多但大多较为相似,不过这也很正常,比较香蕉和人的基因相似度也有50%-60%。当然算法之间的相似度要比香蕉和人的相似度更大,毕竟人家都是优化算法,有着相同的目标,只是实现方式不同。就像条条大路通罗马,我们可以走去,可以坐汽车去,可以坐火车去,也可以坐飞机去,不管使用何种方式,我们都在去往罗马的路上,也不会说坐飞机去要比走去更好,交通工具只是一个工具,最终的方案还是要看我们的选择。
上面列举了一些常见的算法,即使你一个都没见过也没关系,后面会对它们进行详细的介绍,但是对后面的分类可能会有些许影响,不过问题不大,就先当总结看了。
再对优化算法分类之前,先介绍一下算法的模型,在笔记(一)中绘制了优化算法的流程,不过那是个较为简单的模型,此处的模型会更加复杂。上面说了优化算法有较大的相似性,这些相似性主要体现在算法的运行流程中。
优化算法的求解过程可以看做是一个群体的生存过程。
有一群原始人,他们要在野外中寻找食物,一个原始人是这个群体中的最小单元,他们的最终目标是寻找这个环境中最容易获取食物的位置,即最易存活下来的位置。每个原始人都去独自寻找食物,他们每个人每天获取食物的策略只有采集果实、制作陷阱或者守株待兔,即在一天之中他们不会改变他们的位置。在下一天他们会根据自己的策略变更自己的位置。到了某一天他们又聚在了一起,选择了他们到过的最容易获取食物的位置定居。
一群原始人=优化算法中的种群、群体;
一个原始人=优化算法中的个体;
一个原始人的位置=优化算法中个体的位置、基因等属性;
原始人变更位置=优化算法中总群的更新操作;
该位置获取食物的难易程度=优化算法中的适应度函数;
一天=优化算法中的一个迭代;
这群原始人最终的定居位置=优化算法所得的解。
优化算法的流程图如下:
对优化算法分类得有个标准,按照不同的标准分类也会得到不一样的结果。首先说一下我所使用的分类标准(动态更新,有了新的感悟再加):
按由来分类比较好理解,就是该算法受何种现象启发而发明,本质是对现象分类。
可以看出算法根据由来可以大致分为有人类的理论创造而来,向生物学习而来,受物理现象启发。其中向生物学习而来的算法最多,其他类别由于举例有偏差,不是很准确,而且物理现象也经过人类总结,有些与人类现象相交叉,但仍将其独立出来。
类别分好了,那么为什么要这么分类呢?
当然是因为要凑字数啦,啊呸,当然是为了更好的理解学习这些算法的原理及特点。
向动物生存学习而来的算法一定是一种行之有效的方法,能够保证算法的效率和准确性,因为,如果使用该策略的动物无法存活到我们可以对其进行研究,我们也无法得知其生存策略。(而这也是一种幸存者偏差,我们只能看到行之有效的策略,但并不是我们没看到的策略都是垃圾,毕竟也发生过小行星撞地球这种小概率毁灭性事件。讲个冷笑话开cou心zhi一shu下:一只小恐龙对他的小伙伴说,好开心,我最喜欢的那颗星星越来越亮了(完)。)但是由于生物的局限性,人们所创造出的算法也会有局限性:我们所熟知的生物都生存在三维空间,在这些环境中,影响生物生存的条件比较有限,反应到算法中就是这些算法在解决较低维度的问题时效果很好,当遇到超高维(维度>500)问题时,结果可能不容乐观,没做过实验,我也不敢乱说。
按更新过程分类相对复杂一点,主要是根据优化算法流程中更新位置操作的方式来进行分类。更新位置的操作按我的理解可大致分为两类:1.跟随最优解;2.不跟随最优解。
还是上面原始人的例子,每天他有一次去往其他位置狩猎的机会,他们采用何种方式来决定今天自己应该去哪里呢?
如果他们的策略是“跟随最优解”,那么他们选取位置的方式就是按一定的策略向群体已知的最佳狩猎位置(历史最佳)或者是当前群体中的最佳狩猎位置(今天最佳)靠近,至于是直线跑过去还是蛇皮走位绕过去,这个要看他们群体的策略。当然,他们的目的不是在最佳狩猎位置集合,他们的目的是在过去的途中看是否能发现更加好的狩猎位置,去往已经到过的狩猎地点再次狩猎是没有意义的,因为每个位置获取食物的难易程度是固定的。有了目标,大家都会朝着目标前进,总有一日,大家会在谋个位置附近相聚,相聚虽好但不利于后续的觅食容易陷入局部最优。
什么是局部最优呢?假设在当前环境中有一“桃花源”,拥有上帝视角的我们知道这个地方就是最适合原始人们生存的,但是此地入口隐蔽“山有小口,仿佛若有光”、“初极狭,才通人。”,是一个难以发现的地方。如果没有任何一个原始人到达了这里,大家向着已知的最优位置靠近时,也难以发现这个“桃源之地”,而当大家越聚越拢之后,“桃源”被发现的可能性越来越低。虽然原始人们得到了他们的解,但这并不是我们所求的“桃源”,他们聚集之后失去了寻求“桃源”的可能,这群原始人便陷入了局部最优。
如果他们的策略是“不跟随最优解”,那么他们的策略是什么呢?我也不知道,这个应该他们自己决定。毕竟“是什么”比“不是什么”的范围要小的多。总之不跟随最优解时,算法会有自己特定的步骤来更新个体的位置,有可能是随机在自己附近找,也有可能是随机向别人学习。不跟随最优解时,原始人们应该不会快速聚集到某一处,这样一来他们的选择更具多样性。
按照更新过程对上面的算法分类结果如下
可以看出上面不跟随最优解的算法只有遗传算法和差分进化算法,他们的更新策略是与进化和基因的重组有关。因此这些不跟随最优解的算法,他们大多依据进化理论更新位置(基因)我把他们叫做进化算法,而那些跟随群体最优解的算法,他们则大多依赖群体的配合协作,我把这些算法叫做群智能算法。
目前我只总结了这两种,分类方法,如果你有更加优秀的分类方法,我们可以交流一下:
目录
上一篇 优化算法笔记(一)优化算法的介绍
下一篇 优化算法笔记(三)粒子群算法(1)
二、建模和智能优化算法哪个好
智能优化算法好。
1、建模技术使得研究微观层面的个体行为与由于这些个体之间的相互作用而涌现出来的宏观现象之间的联系成为一种可能。多主体模型能够用于描述人类行为及社会制度这些复杂系统,这为制度设计研究提供了良好的技术平台。采用命令行方式或通过可视化控件修改模型中的全局变量,实现仿真参数的修改,并引进了随机因素的作用,使仿真具有更强的描述和表达能力。
2、常用的智能优化算法主要包括模拟退火算法、遗传算法、神经网络优化算法、蚁群算法、粒子群优化算法等,这些优化算法都是通过模拟揭示自然现象和过程来实现的。参数少,结构简单易实现,搜索能力强,解决高位问题效果好。算法种类多,可针对不同问题针对性解决。
三、多目标优化算法
姓名:袁卓成;学号:20021210612; 学院:电子工程学院
转自 https://blog.csdn.net/weixin_43202635/article/details/82700342
【嵌牛导读】 本文介绍了各类多目标优化算法
【嵌牛鼻子】 多目标优化, pareto
【嵌牛提问】 多目标优化算法有哪些?
【嵌牛正文】
1)无约束和有约束条件;
2)确定性和随机性最优问题(变量是否确定);
3)线性优化与非线性优化(目标函数和约束条件是否线性);
4)静态规划和动态规划(解是否随时间变化)。
使多个目标在给定区域同时尽可能最佳,多目标优化的解通常是一组均衡解(即一组由众多 Pareto最优解组成的最优解集合 ,集合中的各个元素称为 Pareto最优解或非劣最优解)。
①非劣解——多目标优化问题并不存在一个最优解,所有可能的解都称为非劣解,也称为Pareto解。
②Pareto最优解——无法在改进任何目标函数的同时不削弱至少一个其他目标函数。这种解称作非支配解或Pareto最优解。
多目标优化问题不存在唯一的全局最优解 ,过多的非劣解是无法直接应用的 ,所以在求解时就是要寻找一个最终解。
(1)求最终解主要有三类方法:
一是求非劣解的生成法,即先求出大量的非劣解,构成非劣解的一个子集,然后按照决策者的意图找出最终解;(生成法主要有加权法﹑约束法﹑加权法和约束法结合的混合法以及多目标遗传算法)
二为交互法,不先求出很多的非劣解,而是通过分析者与决策者对话的方式,逐步求出最终解;
三是事先要求决策者提供目标之间的相对重要程度,算法以此为依据,将多目标问题转化为单目标问题进行求解。
(2)多目标优化算法归结起来有传统优化算法和智能优化算法两大类。
传统优化算法包括加权法、约束法和线性规划法等,实质上就是将多目标函数转化为单目标函数,通过采用单目标优化的方法达到对多目标函数的求解。
智能优化算法包括进化算法(Evolutionary Algorithm, 简称EA)、粒子群算法(Particle Swarm Optimization, PSO)等。
两者的区别——传统优化技术一般每次能得到Pareo解集中的一个,而用智能算法来求解,可以得到更多的Pareto解,这些解构成了一个最优解集,称为Pareto最优解(任一个目标函数值的提高都必须以牺牲其他目标函数值为代价的解集)。
①MOEA通过对种群 X ( t)执行选择、交叉和变异等操作产生下一代种群 X ( t + 1) ;
②在每一代进化过程中 ,首先将种群 X ( t)中的所有非劣解个体都复制到外部集 A ( t)中;
③然后运用小生境截断算子剔除A ( t)中的劣解和一些距离较近的非劣解个体 ,以得到个体分布更为均匀的下一代外部集 A ( t + 1) ;
④并且按照概率 pe从 A ( t + 1)中选择一定数量的优秀个体进入下代种群;
⑤在进化结束时 ,将外部集中的非劣解个体作为最优解输出。
NSGA一II算法的基本思想:
(1)首先,随机产生规模为N的初始种群,非支配排序后通过遗传算法的选择、交叉、变异三个基本操作得到第一代子代种群;
(2)其次,从第二代开始,将父代种群与子代种群合并,进行快速非支配排序,同时对每个非支配层中的个体进行拥挤度计算,根据非支配关系以及个体的拥挤度选取合适的个体组成新的父代种群;
(3)最后,通过遗传算法的基本操作产生新的子代种群:依此类推,直到满足程序结束的条件。
非支配排序算法:
考虑一个目标函数个数为K(K>1)、规模大小为N的种群,通过非支配排序算法可以对该种群进行分层,具体的步骤如下:
通过上述步骤得到的非支配个体集是种群的第一级非支配层;
然后,忽略这些标记的非支配个体,再遵循步骤(1)一(4),就会得到第二级非支配层;
依此类推,直到整个种群被分类。
拥挤度 ——指种群中给定个体的周围个体的密度,直观上可表示为个体。
拥挤度比较算子:
设想这么一个场景:一群鸟进行觅食,而远处有一片玉米地,所有的鸟都不知道玉米地到底在哪里,但是它们知道自己当前的位置距离玉米地有多远。那么找到玉米地的最佳策略,也是最简单有效的策略就是是搜寻目前距离玉米地最近的鸟群的周围区域。
基本粒子群算法:
粒子群由 n个粒子组成 ,每个粒子的位置 xi 代表优化问题在 D维搜索空间中潜在的解;
粒子在搜索空间中以一定的速度飞行 , 这个速度根据它本身的飞行经验和同伴的飞行经验来动态调整下一步飞行方向和距离;
所有的粒子都有一个被目标函数决定的适应值(可以将其理解为距离“玉米地”的距离) , 并且知道自己到目前为止发现的最好位置 (个体极值 pi )和当前的位置 ( xi ) 。
粒子群算法的数学描述 :
每个粒子 i包含为一个 D维的位置向量 xi = ( xi1, xi2, …, xiD )和速度向量 vi = ( vi1, vi2,…, viD ) ,粒子 i搜索解空间时 ,保存其搜索到的最优经历位置pi = ( pi1, pi2, …, piD ) 。在每次迭代开始时 ,粒子根据自身惯性和经验及群体最优经历位置 pg = ( pg1, pg2, …, pgD )来调整自己的速度向量以调整自身位置。
粒子群算法基本思想:
(1)初始化种群后 ,种群的大小记为 N。基于适应度支配的思想 ,将种群划分成两个子群 ,一个称为非支配子集 A,另一个称为支配子集 B ,两个子集的基数分别为 n1、n2 。
(2)外部精英集用来存放每代产生的非劣解子集 A,每次迭代过程只对 B 中的粒子进行速度和位置的更新 ;
(3)并对更新后的 B 中的粒子基于适应度支配思想与 A中的粒子进行比较 ,若 xi ∈B , ϖ xj ∈A,使得 xi 支配 xj,则删除 xj,使 xi 加入 A 更新外部精英集 ;且精英集的规模要利用一些技术维持在一个上限范围内 ,如密度评估技术、分散度技术等。
(4)最后 ,算法终止的准则可以是最大迭代次数 Tmax、计算精度ε或最优解的最大凝滞步数 Δt等。
四、智能优化算法:水循环算法
@[toc]
摘要:水 循 环 算 法 (water cycle alogrithm,WCA)是由Hadi Eskandar 等人受大自然水循环过程中溪流、江河、湖泊流向海洋的过程启发而提出的一种全局优化算法.目前WCA已在工程优化等领域得到应用.
WCA 是一种生物启发的优化算法,它模拟自然界中的水循环过程,在种群中设定 3 类个体:海洋 Sea、河流River 及溪流 Stream. 海洋为当前种群的最优个体,河流为一定数量的仅次于海洋的个体,剩余较差的个体即为溪流.
算法开始之前需要生成大小为 的初始总群体,其中 是种群的总数量, 是设计变量的个数,因此这个随机矩阵为 :
其中, 是海洋 (数量为 1) 及河流 的数量之
和,这是在初始化的时候自行定义的,其余流入海洋和河流的溪流 的数量为 ,其表达式为:
紧接着,根据式(3)计算当前种群中流向海洋的溪流数量及流向对应河流的溪流数量:
完成上述过程后,即可进行汇流过程,汇流过程如图 1所示. 汇流过程中,溪流、河流和海洋的位置根据式(4)随机更新:
其中, 是迭代数; , 的最优值可以选为 2; 是 0 和 1 之间均匀分布的随机数; 及 分别表示第 次及第 次迭代时溪流的位置; 及 分别表示第 次及第 次迭代时河流的位置; 及 分别表示第 次及第 次迭代时海洋的位置. 式(4)中分别为流向河流的溪流、流向海洋的溪流及流向海洋的河流的位置更新公式. 溪流在每次更新过后,计算出相应的适应度值,若该值优于与其相连的河流的适应度值,则将该溪流的位置与该河流的位置进行交换. 河流与海洋、溪流与海洋之间也有类似的交换. 在没有满足设定要求之前,海洋、河流和溪流的位置将根据相应的公式不断地更新.
所有的寻优算法都要考虑收敛过快而陷入局部最优的问题,水循环算法引入蒸发过程来避免该问题的发生. 在水循环过程中,那些流速过慢还有无法达到大海的溪流和河流最终都会蒸发,蒸发过程的出现会引来新的降水. 因此,必须检查河流及溪流是否足够靠近海洋,若距离较远则进行蒸发过程,蒸发过程的判断条件为
其中, 是接近零的小数. 蒸发过程结束后,应用降雨过程并在不同的位置形成新的溪流或河流(类似遗传算法的突变过程). 较大的可 以防止额外搜索,但是会降低在海洋附近区域的搜索强度. 因此, 的值应该自适应地降低:
其中, 为最大迭代数.
循环过程中的蒸发作用对河流和海洋的影响很小,所以在进行降雨过程之后影响的是溪流的位置. 降雨过程后溪流的新位置为 :
其中,L B (lower bound)和 U B (upper bound)分别表示设计变量的下界和上界.
算法步骤:
(1) 初始化算法参数.
(2) 随机生成初始种群,形成初始溪流(雨滴)、河流和海洋.
(3)计算每个雨滴的适应度函数值.
(4) 利用式(3)确定雨滴流向河流和海洋的强度;利用式(4)更新溪流位置;更新河流位置.
(5) 若溪流给出的适应度值比其相连的河流好,则河流和溪流的位置对换;若河流给出的适应度值比其相连的海洋好,则海洋和河流的位置对换。
(6) 判断 是 否满 足 蒸 发 条件.若 满 足 蒸 发 条件,利用式(7)进入降水过程,形成新的降水。
(7) 利用式(6)减小 值;判断算法是否满足终止条件,若满足,则转到 (8);否则,重复执行(3) - (6)
(8) 输出最优解。
[1] Eskandar H, Sadollah A, Bahreininejad A, et al. Water cycle algorithm - A novel metaheuristic optimization method for solving constrained engineering optimization problems[J]. Computers & Structures, 2012, 110: 151-166.
[2] 金爱娟,苏俊豪,李少龙.基于水循环算法的开关磁阻电机性能优化[J/OL].信息与控制:1-12[2020-09-12]. https://doi.org/10.13976/j.cnki.xk.2020.2048 .
https://mianbaoduo.com/o/bread/aJmTkps=
以上就是关于最新的群智能优化算法相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。
推荐阅读: