双语!性能优越|融合黏菌和差分变异的量子哈里斯鹰算法SDMQHHO

在这里插入图片描述

前面的文章里卡卡介绍了哈里斯鹰优化算法(Harris Hawks Optimization, HHO).HHO是 Heidari等[1]于2019年提出的一种新型元启发式算法,设计灵感来源于哈里斯鹰在捕食猎物过程中的合作行为以及突然袭击的狩猎风格,具有需调参数少、原理简单易实现、局部搜索能力强等优点,在许多工程领域得到广泛的应用。

然而,HHO算法虽然在CEC2005中有较好的性能,但HHO在CEC2017等更复杂的基准函数问题中的能力还缺乏科学证据,这类基准函数不仅包含单模和多模,而且还包括混合和复合函数,对算法在摆脱局部最优的能力以及全局寻优能力都是极大的考验。而由作者前面文章中的分析可知,虽然HHO的开发能力强,但HHO存在全局/局部搜索不平衡,在迭代后期HHO将只进行开发,若面对复杂问题其在迭代后期易陷入局部最优,因此本文作者将对HHO进行改进,并在CEC2017、CEC2020和CEC2022中进行测试(Matlab/Python),以验证其在复杂问题中优越性能。(PS:最近由于学业繁忙以及开发Python代码,更新比平时慢了点,以后对Python熟悉了后更新速度会快上来)

00 文章目录

1 哈里斯鹰优化算法原理

2 融合黏菌算法和差分进化的量子哈里斯鹰优化算法

3 代码目录

4 实验结果

5 源码获取

01 哈里斯鹰优化算法原理

关于哈里斯鹰算法原理及其优缺点分析作者在前面的文章中已经作了介绍

02 融合黏菌算法和差分进化的量子哈里斯鹰优化算法

本文基于哈里斯鹰优化算法的特点及其缺陷进行如下改进。

2.1 基于量子计算和佳点集的种群初始化

阶段1:佳点集

HHO通过随机生成初始种群的方法,容易出现种群分布不均匀,会导致种群多样性减少,种群质量不高,影响算法的收敛速度。

佳点集是一种有效的均匀选点方法。该理论由华罗庚先生提出[2],在许多群智能优化算法中都得到了应用,由佳点集的定义,设GD是D维欧式空间中的单位立方体,若r∈GD,形为:
在这里插入图片描述

其偏差满足:

在这里插入图片描述

则称Pn(k)为佳点集,r为佳点,其中C(r, ε)是是只与r、ε(ε>0)有关的常数。取rk={2cos(2pir/p)},1≤k≤n,p是满足(p-D/2)≥D的最小素数,理论[3]上已证明,用n个佳点构成的加权和比采用任何其他n个点所得到的误差都要小,并尤其适用于高维空间的近似计算。以二维单位搜索空间为例,随机取点与佳点集方法取点的对比如下:
在这里插入图片描述

显然,随机取点并不均匀,并且许多取点位置重合,会造成解的可利用率不高,而佳点集方法能够使得取点更为均匀地分布在搜索空间中,其在全局中的搜索效率将更高。

阶段2:量子计算

量子计算(Quantum Computation,QC)是1982年首先由 Richard Feynman 提出[4],是目前国内外学者比较关注的前沿学科之一,量子计算理论源于量子力学理论,而量子力学理论、混沌理论与相对论同被列为二十世纪最伟大的发现和科学佳作,可见量子计算的前沿性也是非常突出的。

经典计算与量子计算中的两种基本状态区别在于量子比特还可以表示成叠加态,即两个极化状态的线性组合。根据量子计算的这一特点,可以在初始化阶段引入量子计算的概念,基于一组量子比特,获得更多的初始种群。

…(理论略)

则根据两个阶段的初始化策略,在佳点集初始化得到的初始种群基础上,再进行量子计算的变换,以提高和改善初始种群在搜索空间上的分布质量,加强其全局搜索能力。

2.2 非线性猎物逃逸能量

由前面文章中作者的分析可以知道,控制哈里斯鹰算法探索与开发阶段的重要参数——猎物逃逸能量E在迭代后期(t>Tmax/2)恒小于1,这会导致算法后期仅进行开发,若前期没有探索到全局最优附近的点,则算法可能会陷入局部最优无法跳出,因此本文对开发与探索的转换策略进行改进。公式略

本文采取了一种基于随机数的转换策略,且猎物逃逸能量E在前期下降慢,使得算法能够进行广泛的区域探索,同时,迭代后期猎物逃逸能量E虽然较小,但算法仍有进行全局探索的可能,提高了算法跳出局部最优的能力。改进前后算法进行探索与开发策略的对比示意图如下:
在这里插入图片描述

由图可以看到,改进前HHO在迭代前期探索和开发都有一定概率进行,而到了后期则只有开发操作,若面对复杂问题,前期可能并不能探索到全局最优点附近,因此会陷入局部最优。改进后在后期也有一定概率进行全局探索,因此增强了算法跳出局部最优的能力。

2.3 融合准反向学习与黏菌算法的探索阶段

黏菌算法(slime mould algorithm, SMA)[5]是一种具有优秀全局寻优性能的优化算法,SMA会根据适应度值调整不同的搜索模式,同时会分离出一部分有机物向其他领域探索,并且vb的振荡作用也增加了全局探索的可能性。因此,SMA的多重探索机制使该算法具有强大的全局寻优能力。

针对HHO优化算法面对复杂问题易陷入局部最优的问题,本文将黏菌算法的多重搜索机制引入其搜索阶段以增强HHO算法的全局搜索能力。同时考虑到传统SMA中,当rand<z时,黏菌种群由解空间随机生成黏菌个体,模拟黏菌分离部分个体探索其他可能存在的食物源的行为,此方法虽可以避免算法早熟,但并没有充分利用当前解的信息。准反向学习(Quasi-oppositional learning,QOL)[6]是在传统反向学习改进的基础上,用于提升个体当前质量的一种方法。由于原反向学习变换跨度过大,搜索精度不高,且生成的解容易停滞在邻域最优解。为了获得质量有明显提高的解,准反向学习被提出,并在后来被证明其更接近最优解[7]。公式略。

准反向解的图示如下:

在这里插入图片描述

由图可以看出,准反向解能够实现更广泛和更合理的探索范围,具有更大几率接近搜索空间中的最优点或次优点,因此本文将准反向学习替换黏菌算法中r<z时的随机个体策略,该策略不仅有助于避免早熟,更有机会接近食物源。

结合哈里斯鹰算法中探索阶段的更新策略,本文改进的哈里斯鹰算法探索阶段的搜索策略为,公式略

将探索阶段进行以上改进,将提升算法在全局寻优上的搜索性能,提高搜索精度。

2.4 平均差分变异策略

由于种群中的哈里斯鹰在迭代过程中向最优个体聚集,若存在一个局部最优,随着迭代次数的增加,哈里斯鹰聚集在局部最优周围,易导致种群多样性下降。为避免算法陷入局部最优,防止早熟现象,本文引入平均差分变异[8]对种群个体和全局最优进行修正,其根据迭代的不同阶段采取了两种不同策略,具体如下:公式略

该变异策略在前期在个体附近进行搜索,而在后期倾向于在全局最优附近勘探,有助于算法跳出局部最优。

2.5 算法总流程
在这里插入图片描述

其中,红色部分为本文改进部分。

03 代码目录

在这里插入图片描述

代码包含了Matlab和Python,由于作者是首次将原创改进用Python写,所以这次开发周期长了些,并且只找到了CEC2017函数的调用,因此Python代码会比Matlab便宜些~,也期待大家使用的反馈。

MATLAB和Python的代码目录如下,作者在使用了Python后的最大感受就是Python的函数管理可以做的很方便,从两方的代码文件数的对比就可以看出。

MATLAB:Main_SDMQHHO_perf.m和Main_Only_SDMQHHO.m为主程序,关于这两个主程序的使用在Readme.txt中作者做了解释:

在这里插入图片描述

代码注释详细,一键运行Main_ SDMQHHO _perf.m即可得到所有运行结果,运行结果包括佳点集比较图、收敛因子比较图、算法在CEC2017/2020/2022测试函数上的迭代图,最后将生成excel表,包含算法在各函数迭代n次的平均值,均值、运行时间、最优解。

同时,文件也有乱码解决,给出了主要代码的txt文件。部分程序如下(perf_SDM_QHHO.m)

在这里插入图片描述

Python:Main_SDMQHHO_perf.py和Main_Only_SDMQHHO.py为主程序,关于这两个主程序的使用在Readme.txt中作者做了解释:
在这里插入图片描述

代码注释详细,一键运行Main_ SDMQHHO _perf.py即可得到所有运行结果,运行结果包括佳点集比较图、收敛因子比较图、算法在CEC2017测试函数上的迭代图,最后将生成excel表,包含算法在各函数迭代n次的平均值,均值、运行时间、最优解。部分程序如下(perf_SDM_QHHO.py)
在这里插入图片描述

04 实验结果

在本节中,MATLAB使用 CEC2017/2020/2022测试SDMQHHO性能,而Python使用CEC2017测试性能(因为作者只找到了CEC2017的测试函数)。结果如下:

MATLAB(由于结果太多了,作者这里对各测试函数都贴出一部分)

CEC2017
在这里插入图片描述
在这里插入图片描述

CEC2020
在这里插入图片描述

在这里插入图片描述

CEC2022
在这里插入图片描述
在这里插入图片描述

从结果看出,改进后的算法精度与收敛速度都得到了很大提升,同时可以发现HHO在一些函数表现欠佳,也反映出其面对复杂问题存在一定的早熟的问题。

Python(因为Python不能像matlab可以gui调整legend,也可能是我不会…因此3x3的子图中图例会把图盖住,作者这里用的1x2,也展示部分图)

Python部分(仅有 CEC2017)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

​​
在这里插入图片描述

在这里插入图片描述

python代码的运行速度比matlab慢很多,可能是我在python里用了很多矩阵运算​

05 源码获取

GZH(KAU的云实验台)后台回复 SDMQHHO (Matlab与Python版本)

含完整改进算法的理论与公式信息的pdf

参考文献

[1] Heidari A A, Mirjalili S, Faris H, et al. Harris Hawks Optimization Algorithm and Applications[J]. Future Generation Computer Systems,2019,97(8):849-872.

[2] 华罗庚,王元.数论在近似分析中的应用[M].北京:科学出版社. 1978: 83-86.Hua LG,Wang Y.Application of number theory in approximate analysis[M. Beijing: Science Press,1978:83-86.

[3] Kiefer J. On large deviations of the empiric D. F. of vector chance variables and a law of the iterated logarithm[J].Pacific Journal of Mathematics,1961,11(2):649-660.

[4] Feynman,R. P.(1982).Simulating physics with computers. International Journal of Theoretical Physic,21(6),22.https: //doi.org/10.1007/bf02650179

[5] LI Shimin, CHEN Huiling, WANG Mingjing, et al. Slime mould algorithm: a new method for stochastic optimization[J]. Future generation computer systems, 2020, 111:300–323.

[6] BASE M.Quasi-oppositional differential evolution for optimal reactive power dispatch[J].International Journal of Electrical Power and Energy Systems,2015,78: 29-40.

[7] T. Si, P.B.C. Miranda, D. Bhattacharya, Novel enhanced Salp Swarm Algorithms using opposition-based learning schemes for global optimization problems, Expert Syst. Appl. 207 (2022), 117961.

[8] Abdesslem Layeb. Differential Evolution Algorithms with Novel Mutations, Adaptive Parameters and Weibull Flight Operator, 08 September 2022, PREPRINT (Version 1) available at Research Square [https://doi.org/10.21203/rs.3.rs-1898342/v1]

另:如果有伙伴有待解决的优化问题(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。

如果这篇文章对你有帮助或启发,可以点击右下角的赞/在看 (ง•̀_•́)ง(不点也行)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/307414.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CRM诞生到现在历经了哪些发展阶段?CRM系统的五个关键节点

CRM管理系统从被发明到现在&#xff0c;历经多次迭代已经成为一个相对成熟的系统。企业可以靠它管理客户信息&#xff0c;提升盈利能力。今天就来介绍一下CRM的发展历程。 一、CRM系统的雏形 广义上的CRM系统其实可以追溯到古希腊时期。当时的商人靠书写记录自己与客户和合作…

Dockerfile - 基于 SpringBoot 项目自定义镜像(项目上线全过程)

目录 一、Dockerfile 自定义项目镜像 1.1、创建 SpringBoot 项目并编写 1.2、打包项目&#xff08;jar&#xff09; 1.3、编写 Dockerfile 文件&#xff0c;构建镜像 1.4、运行镜像并测试 一、Dockerfile 自定义项目镜像 1.1、创建 SpringBoot 项目并编写 a&#xff09;简…

基于Java车间工时管理系统(源码+部署文档)

博主介绍&#xff1a; ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅 &#x1f447;&#x1f3fb; 不然下次找不到 Java项目精品实…

论文润色改善附录内容质量

大家好&#xff0c;今天来聊聊论文润色改善附录内容质量&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff0c;可以借助此类工具&#xff1a; 标题&#xff1a;论文润色改善附录内容质量――提升论文的完整性与…

OpenCV-Python(30):Harris角点检测

目标 理解Harris角点检测的概念掌握函数cv2.cornerHarris()、cv2.cornerSubPix()的用法 Harris算法原理 通过前面的图像特征介绍&#xff0c;我们知知道了角点的一个特性&#xff1a;向任何方向移动变化都很大。Chris_Harris 和Mike_Stephens 在1988 年的文章《A Combined Co…

直流电机驱动开发笔记

直流电机总体来说应用非常广泛&#xff0c;最近项目需要直流电机&#xff0c;本想着应该是很简单的事情&#xff0c;结果也搞了好久&#xff0c;今天算是可以阶段性总结下。也不知道怎么总结好。就拿碰到问题记录下。前提&#xff1a;本人一直是软件开发&#xff0c;对这个之前…

【盘点】再见2023年,年度总结

文章目录 &#x1f50a;博主介绍&#x1f964;本文内容事业AI大模型交互式问答图文视频生成功能型应用生成 行情危机感 爱情情绪价值会撩沟通 生理价值颜值相貌、身材体态、审美穿搭关于男性与女性间的那份本能需求生育 物质价值 &#x1f4e2;文章总结&#x1f4e5;博主目标 &…

使用ffmpeg调整视频分辨率/帧率并保持高清晰度

1 原始视频信息 通过ffmpeg -i命令查看视频基本信息 ffmpeg -i input.mp4 ffmpeg version 6.1-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developersbuilt with gcc 12.2.0 (Rev10, Built by MSYS2 project)configuration: --enable-gpl --enable-ve…

众和策略:人工智能风起云涌 算力基建支撑加速前进

2023年&#xff0c;人工智能技术完结质的飞跃。通过生成式AI&#xff08;AIGC&#xff09;技术&#xff0c;人们可用自然语言与机器进行便捷交互&#xff0c;并将海量的数据通过训练、推理&#xff0c;快速转化为出产力&#xff0c;发生实践商业价值。 AI技术加快向各行各业渗…

【iptables】修改规则和保存规则

1 修改规则 &#xff08;1&#xff09;修改指定表中指定链的规则 iptables -t 表名 -R 链名 规则序号 -s 源地址 -j 处理动作 接着上面的例子&#xff0c;假如我们想把下面的规则中的动作从DROP改为ACCEPT 可以使用-R选项来修改指定的链中的规则&#xff0c;在修改规则时指定规…

GA/T1400公安视图库在视频监控系统中对接及方案

公安视频图像信息应用系统系列标准&#xff0c;标号为GA/T 1400&#xff0c;现行版本为2017年版&#xff0c;由公安部发布。现较广泛地使用于平安城市安防监控系统、智慧城市安防监控系统、雪亮工程安防监控系统之中。 公安视频图像信息应用系统系列标准&#xff0c;共分为4个部…

web三层架构

目录 1.什么是三层架构 2.运用三层架构的目的 2.1规范代码 2.2解耦 2.3代码的复用和劳动成本的减少 3.各个层次的任务 3.1web层&#xff08;表现层) 3.2service 层(业务逻辑层) 3.3dao 持久层(数据访问层) 4.结合mybatis简单实例演示 1.什么是三层架构 三层架构就是把…