启发式优化算法

部分受自然启发的算法介绍

1.1各种算法介绍

先强调缺点

(1)启发式优化算法寻优过程中依然会陷入局部最优解,导致搜索精度降低;

( 2 )启发式优化算法无法有效地处理约束条件,可能会导致最终解为不可行解;

(3)启发式优化算法在高维场景下其性能受到严重影响,导致算法搜索能力下降。

这些算法可以用来解决:流程化车间调度(flow up scheduling) 图像加密(image encryption ) 特征选择(feature selection) 脸部特征识别(facial feature detection) 路径规划(path planning)等很多的问题。下文列举一些群算法比如:

  • 标准遗传算法GA是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法,利用了适者生存的概念。

  • 粒子群算法PSO是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的随机搜索算法。

  • 差分进化算法DE差分进化算法是基于群体智能理论的优化算法,通过群体内个体间的合作与竞争而产生的智能优化搜索算法。

  • 帝王蝶优化算法MBO主要模拟了帝王蝶的迁徙和适应环境行为。

  • 人工蜂群算法ABCs来源于蜂群的采蜜行为,蜜蜂根据各自的分工进行不同的活动,并实现蜂群信息的共享和交流,从而找到问题的最优解。

  • 蚯蚓优化算法EWAs通过模拟自然界中蚯蚓的两种繁殖方式,第一种是自己产生自己的一个后代,第二种是在一次生殖过程中产生多个后代。

  • 蚁群算法ACO蚁群算法是一种仿生学算法,是由自然界中蚂蚁觅食的行为而启发的。在自然界中,蚂蚁觅食过程中,蚁群总能够按照寻找到一条从蚁巢和食物源的最优路径。

  • 象群算法EHO基于象群体的行为,Wang等在2015年提出,包括两个特殊的算子,一个宗族更新算子和一个分离算子。大象根据它们的当前位置和族长的位置被更新。

  • 布谷鸟搜索算法CS是通过模拟某些种属布谷鸟的寄生育雏(BroodParasitism),来有效地求解最优化问题的算法。

  • 磷虾群算法KHKH算法是基于对磷虾个体的群居行为的模拟。每个磷虾个体离食物的最小距离,以及与虾群最高密度的距离,作为虾群运动的目标函数。磷虾个体随时间变化的位置由以下三个因素构成:(i) 由其他个体的存在引起的运动 (ii) 觅食活动 (iii) 随机扩散。

  • 萤火虫算法FAs一种模仿萤火虫之间信息交流,相互吸引集合,警戒危险。基于发出的光的强度和两个萤火虫之间产生的吸引力的程度设计算法

  • 模拟退火算法SA将退火思想引入到组合优化领域。它是基于Monte-Carlo迭代求解策略的一种随机寻优算法,其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。

  • 智能水滴算法IWD智能水滴算法是模拟自然界中河水与周围环境相互作用的过程而提出的一种智能计算方法

  • 水循环算法WCAs由Hadi Eskandar 等人受大自然水循环过程中溪流、江河、湖泊流向海洋的过程启发而提出的一种全局优化算法.

  • 蛾群算法 MSA2016年提出的新兴元启发式智能优化算法,它模拟自然界蛾群在夜间朝月光飞行的行为。

  • 猴群算法MAsZhao和Tang提出的一种新的用于求解大规模、多峰优化问题的智能优化算法。

  • 进化策略ES由德国的I. Rechenberg和HP. Schwefel于1963年提出的。ES作为一种求解参数优化问题的方法,模仿生物进化原理,假设不论基因发生何种变化,产生的结果(性状)总遵循零均值、某一方差的高斯分布。

  • **种群增量学习进化算法(PBIL)*PBIL算法最初由卡内基梅隆大学的Baluja.S在1994年提出。该算法集成了基于函数优化的遗传搜索和竞争学习两种策略,将进化过程视为学习过程,通过竞争学习所获取的知识——学习概率(Learning Probability)来指导后代的产生。这种概率是整个进化过程的信息积累,同普通遗传算法的基因重组和变异相比,用它指导产生的后代将会更优生,因此能获得较快的收敛速度和理想的计算结果。

  • 生物地理学优化算法BBO是由Dan Simon于2008年提出的一种基于生物地理学理论发展起来的算法。

  • 蝙蝠算法BAs模拟自然界中蝙蝠利用一种声呐来探测猎物、避免障碍物的随机搜索算法即模拟蝙蝠利用超声波对障碍物或猎物进行最基本的探测、定位能力并将其和优化目标功能相联系。

  • 和谐搜索算法HS是一种新兴的智能优化算法,通过反复调整记忆库中的解变量,使函数值随着迭代次数的增加不断收敛,从而来完成优化。

  • 烟花算法FWA受到夜空中烟花爆炸的启发而提出的一种群体智能算法。

  • 鸡群优化算法CSO由Meng等于2014年10月在第五次国际群体智能会议(ICSI)上提出的一种新的仿生算法,CSO算法模拟了鸡群的层次结构和鸡群觅食行为,包括公鸡、母鸡和小鸡,可以有效地提取鸡群的智能来优化问题。

  • 蜻蜓算法DA蜻蜓算法(Dragonfly Algorithm)是由Seyedali Mirjalili在2015年提出的一种新兴群智能算法 [1] 。在自然界中,蜻蜓有种独特而罕见的群集行为,蜻蜓聚集只有两个目的:捕猎和迁徙。

  • 灰狼优化算法GWO由澳大利亚格里菲斯大学学者 Mirjalili 等人于2014年提出来的一种群智能优化算法。该算法受到了灰狼捕食猎物活动的启发而开发的一种优化搜索方法,它具有较强的收敛性能、参数少、易实现等特点。

  • 引力搜索算法GAS该算法由伊朗的Esmat Rashedi教授等人于2009提出,主要基于牛顿万有引力定律和运动学定律。

  • 萤火虫算法FA灵感来自于萤火虫闪烁的行为。萤火虫的闪光,其主要目的是作为一个信号系统,以吸引其他的萤火虫。剑桥大学的Xin-She Yang(音译:杨新社)教授提出了萤火虫算法,其假设为:萤火虫不分性别,这样一个萤火虫将会吸引到所有其他的萤火虫;吸引力与它们的亮度成正比,对于任何两个萤火虫,不那么明亮的萤火虫被吸引,因此移动到更亮的一个,然而,亮度又随着其距离的增加而减少;如果没有比一个给定的萤火虫更亮的萤火虫,它会随机移动。

  • 蛙跳算法SFLA蛙跳算法的思想是:在一片湿地中生活着一群青蛙。湿地内离散的分布着许多石头,青蛙通过寻找不同的石头进行跳跃去找到食物较多的地方。每只青蛙个体之间通过文化的交流实现信息的交换。每只青蛙都具有自己的文化。每只青蛙的文化被定义为问题的一个解。

    湿地的整个青蛙群体被分为不同的子群体,每个子群体有着自己的文化,执行局部搜索策略。在子群体中的每个个体有着自己的文化,并且影响着其他个体,也受其他个体的影响,并随着子群体的进化而进化。

    当子群体进化到一定阶段以后,各个子群体之间再进行思想的交流(全局信息交换)实现子群体间的混合运算,一直到所设置的条件满足为止。

  • 水波优化算法WWO主要基于水波浪的一些特征设计的算法。

    部分摘自论文 知乎 百度百科 CSDN等,由于引用较多,不多加叙述和引用,plus:吐槽一下,鸡群鸭群狼群象群,各种动物群算法,我下一个都想好了,就叫,狗群算法,算了,狗没有群

2.1算法比较

算法 优点 缺点 论文
标准遗传算法 具有很强的鲁棒性和优化能力 标准遗传算法并不保证全局最优收敛。通常出现的情况是:一是未成熟收敛; 二是在进化 后期搜索效率较低 A review on genetic algorithm: past,present, and future;Evolutionary algorithms and their applications to engineering problems
粒子群算法 PSO同遗传算法类似,是一种基于迭代的优化算法。系统初始化为一组随机解,通过迭代搜寻最优值。同遗传算法比较,PSO的优势在于简单容易实现,并且没有许多参数需要调整。 在某些问题上性能并不是特别好。网络权重的编码而且遗传算子的选择有时比较麻烦 A Comprehensive Survey on Particle Swarm Optimization Algorithm and Its Applications(文献较多,随便放一篇)
差分进化算法 结构简单,容易使用,具有自适应性,并且具有内在并行性,可协同搜索 1. 容易造成进化种群过早地失去多样性,使种群个体集中到某一局部最优点,导致种群整体早熟收敛,无法实现向全局最优进化 2. 搜索停滞现象 差分进化算法综述 (rhhz.net) Evolutionary algorithms and their applications to engineering problems
帝王蝶优化算法 对于全局数值优化和工程问题有较好的效果 1.参数调整难 2.信息未实现良好分配 3.性能和收敛性相对于其他交叉算法有所下降 Monarch butterfly optimization: A comprehensive review
人工蜂群算法 适用于连续和离散的优化问题;原理简单、参数少和容易实现 易早熟收敛,进化后期寻优速度慢 A global best artificial bee colony algorithm for global optimization;混合人工蜂群算法的改进研究
蚁群算法 具有强大的鲁棒性和寻找较优解的能力,在寻找路径过程使用了蚁群并行搜寻和运算,使得算法搜索能力和运行能力得到了提高 传统蚁群算法也不难避免有收敛速度慢、易陷入局部最优等缺点 Survey on Application of Ant Colony Algorithm in Path Planning of Mobile Robot
象群算法 结构简单、控制参数少以及易于和其它方法相结合 收敛速度慢、易陷入局部最优值 Elephant Herding Optimization
布谷鸟搜索算法 可以在全局范围内进行更有效的探索,从而提高寻优效率 面对多峰复杂函数时对空间的探索仍具有一定的盲目性 Cuckoo Search Optimization-A Review
磷虾群算法 收敛速度超级快,适用于低维度问题 容易陷入局部最优值;对约束处理能力较弱;高维场景下存在的寻优效率和精度存在问题 A comprehensive review of krill herd algorithm: variants,hybrids and applications
模拟退火算法 能适应于许多组合和连续优化问题;渐进收敛性。 收敛缓慢;调参麻烦 Multiobjective Simulated Annealing: Principles and Algorithm Variants
水循环算法 收敛迅速 收敛较早 Improved intelligent water drops algorithm using adaptive schema
蛾群算法 具有结构简单,参数较少,求解精度高以及鲁棒性强等优点,处理复杂的优化问题 容易陷入局部最优 Opposition-based moth swarm algorithm
生物地理学优化算法 较为快速和有效 比如收敛精度不足,收敛效率不理想,优化那些函数值发生剧烈变化或者几乎没有什么变化的函数效果不好等 生物地理学优化算法及其在无人机路径规划中的应用(英文高被引,此方面论述较少,因此贴硕博论文)
水波优化算法 x x Water wave optimization: A new nature-inspired metaheuristic**(参考原著,不多加叙述)**
蝙蝠算法 x x A Systematic Review on Bat Algorithm: Theoretical Foundation, Variants, and Applications(论文较多,我还没看完,不多加叙述,需要论文的话,再说?)
蜻蜓算法 寻优能力强 局部最优
灰狼优化算法 x x An Improved Grey Wolf Optimization Algorithm with Variable Weights
萤火虫算法 在特征提取、聚类等问题上的性能胜过大多传统算法 发现率低、求解精读不高、求解速度慢。 Path planning in uncertain environment by using firefly algorithm
跳蛙算法 收敛速度快,易于实现,参数少,成功率高,在有条件的情况下搜索能力强。 易收敛到局部最优 ,在求解部分函数优化问题时效果不够理想 Shuffled frog-leaping algorithm: a memetic meta-heuristic for discrete optimization

注:部分较早的算法和一些wos上参考文献较少的算法不被列入,同时一些使用普遍的算法也未列入,新算法,有机会再写一篇,在搜索这些算法的时候也看到了譬如狼群算法等算法,精力有限,所以很多文献未仔细看,后面有机会加以叙述,由于部分代码和详细信息可以搜索到,下面很多也只贴了链接,详情可以直接参考

2.2各种算法详细信息

2.2.1遗传算法(GA)

可参照资料:遗传算法入门详解 - 知乎 (zhihu.com)

【算法】超详细的遗传算法(Genetic Algorithm)解析 - 简书 (jianshu.com)

由于研究方向和精力限制,可参考这两篇网页

以及wos上该篇高被引论文,doi等已经列出

A New Initialization Approach in Particle Swarm Optimization for Global Optimization Problems

doi:10.1155/2021/6628889

启发式优化算法_第1张图片

经典算法的伪代码

由于具有相似性遗传算法(GA),进化规划(EP), 进化策略(ES)和遗传编程(GP),可参考第二篇论文的内容

2.2.2萤火虫算法(FA)

其假设为:萤火虫不分性别,这样一个萤火虫将会吸引到所有其他的萤火虫;吸引力与它们的亮度成正比,对于任何两个萤火虫,不那么明亮的萤火虫被吸引,因此移动到更亮的一个,然而,亮度又随着其距离的增加而减少;如果没有比一个给定的萤火虫更亮的萤火虫,它会随机移动。

可参考

萤火虫算法详解_wp_csdn的博客-CSDN博客_萤火虫算法

萤火虫算法(Firefly Algorithm)_柒月!的博客-CSDN博客_萤火虫算法

第二十二弹——萤火虫优化算法 - 知乎 (zhihu.com)

启发式优化算法_第2张图片

2.2.3 跳蛙算法(SFLA)

智能优化算法:混合蛙跳算法-附代码_智能算法研学社(Jack旭)的博客-CSDN博客_跳蛙算法

混合蛙跳算法-Python实现_lewin.li的博客-CSDN博客_混合蛙跳算法

Shuffled frog-leaping algorithm: A memetic meta-heuristic for discrete optimization — University of Arizona

Full article: Shuffled frog-leaping algorithm: a memetic meta-heuristic for discrete optimization (tandfonline.com)

参考资料已经列出

2.2.4 粒子群算法(PSO)

是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的随机搜索算法。

粒子群优化算法(Particle Swarm Optimization, PSO)的详细解读 - 知乎 (zhihu.com)

2.2.5差分进化算法

算法 - 差分进化(DE)算法_罗伯特祥的博客-CSDN博客_de算法

差分进化算法入门及实例应用 - 知乎 (zhihu.com)

2.2.6 帝王蝶优化算法

MBO(Wang, Deb, et al., 2019)有两个大小相等的子种群,被命名为子种群1和子种群2。请注意,最健壮的一半个体构成子群1,其余的构成子群2。因此,在MBO中有两种策略:迁移操作和蝴蝶调整操作。经过一次迭代,全局最优信息被保留,两个子种群再次被重组为一个种群。之后,整个种群根据新的适配值被分离成两个子种群。这一过程不断重复,直到满足终止条件。

算法流程图

启发式优化算法_第3张图片

其他类似种类的算法:

(1)通过模仿蝴蝶的食物搜索和交配行为,Arora等人在2016年提出了蝴蝶优化算法(BOA)(Arora & Singh, 2019),该算法被运用于解决全局优化问题和工程问题。

(2)Qi等人在2017年(Qi, Zhu, & Zhang, 2017)提出了人工蝴蝶优化算(ABO),该算法受一些蝴蝶物种的寻偶机制启发,为解决优化问题提供了一个新的有效计算框架。

(3)同样,受自然界中蝴蝶物种交配现象的启发,Jada等人(2016)在2016年提出了蝴蝶交配优化算法(BMO),该算法分为四个阶段来实现搜索过程。

四种算法占比

启发式优化算法_第4张图片

​ MBO伪代码
启发式优化算法_第5张图片

第五十五弹——帝王蝶优化算法 - 知乎 (zhihu.com)

2.2.7 蜂群算法

启发式优化算法_第6张图片

2.2.8 蚁群优化算法

该算法使用较多且教程较为详细,不多说

蚁群算法(Ant Colony Optimization) - 知乎 (zhihu.com)

蚁群算法简介_哔哩哔哩_bilibili

2.2.9 象群算法

提出者论文链接

2.2.10 布谷鸟搜索算法

第二十七弹——布谷鸟搜索算法 - 知乎 (zhihu.com)

2.2.11 磷虾群算法

磷虾群算法 - 知乎 (zhihu.com)

2.2.12 模拟退火算法

模拟退火算法详解 - 知乎 (zhihu.com)

模拟退火算法从原理到实战【基础篇】 - 知乎 (zhihu.com)

2.2.13 水循环算法

具体直接参照论文

启发式优化算法_第7张图片

2.2.14 蛾群优化算法

智能优化算法:蛾群优化算法-附代码_智能算法研学社(Jack旭)的博客-CSDN博客_蛾群算法

2.2.15 种群增量学习进化算法

种群增量学习进化算法 Population-Based Incremental Learning (PBIL)_Ichimaru_Gin_的博客-CSDN博客_pbil算法

2.2.16 生物地理学优化算法

生物地理学优化(BBO)算法_Wang-2333的博客-CSDN博客_bbo算法

BBO:基于生物地理学的优化_贪心的葡萄的博客-CSDN博客_基于生物地理学的优化

2.2.17 蜻蜓算法

智能优化算法:蜻蜓优化算法-附代码_智能算法研学社(Jack旭)的博客-CSDN博客_蜻蜓算法是什么

aultCTRLISTRate-3-116204387-blog-106650117.pc_relevant_3mothn_strategy_and_data_recovery&utm_relevant_index=6)

2.2.17 蜻蜓算法

智能优化算法:蜻蜓优化算法-附代码_智能算法研学社(Jack旭)的博客-CSDN博客_蜻蜓算法是什么

启发式优化算法_第8张图片
个人微信公众号,主要放文件等

你可能感兴趣的:(算法,启发式算法,机器学习)