改进的量子遗传算法及其MATLAB(小生境、灾变)

在这里插入图片描述

作者在之前的博客中已经介绍过量子遗传算法,
量子遗传算法原理及实现
并也尝试了对量子遗传算法进行改进,取得了不错的结果,这篇博客将在上一篇的改进量子遗传算法的基础上再进行改进以期提升其性能。
改进的量子遗传算法及其MATLAB实现

本文采用的改进量子遗传算法的策略有:小生境协同进化策略、量子灾变、动态旋转角、量子交叉操作。

00 文章目录

1 程序目录
2 改进策略
3 问题导入
4 MATLAB程序实现
5 源码获取
6 展望

01 程序目录

在这里插入图片描述

02 改进策略

本文在https://blog.csdn.net/sfejojno/article/details/131215398?spm=1001.2014.3001.5501的改进量子遗传算法基础上继续改进,主要增加了如下策略:

2.1 小生境协同进化策略

小生境,在生物学说上的定义是指特定环境下的一种生存环境;而它在自然界中的表现就是一些特性、形状等跟自己非常相似的在一起,应该说是跟自己的同类繁衍后代。 在传统遗传算法中,个体的交叉行为完全是随意发生的,这样的随机产生的后果就是在进化的后期,大量的个体就会在一个点同时出现,因而就会有通过遗传算法进行求解时会有很多的峰值,要想找到这些峰值的最优解需要进行局部求优,这个过程是比较繁琐的。但是如果我们利用小生境,就可以相对轻松的找到全部最优解。 小生境技术会将每一代具体进行分类,再对分好类的个体中进行择优选择,最后再将这些不同类别的最优品种来进行杂交,就会产生新的个体群。在此同时,我们还可以采用预选择机制、排挤机制、分享机制等机制来完成任务。 由于小生境协同进化策略可以有效地解决多峰优化问题,在许多优化算法中都有广泛的应用。本文的算法将基于概率划分的小生境协同进化策略引入了种群初始化进程,其主要想法就是将量子位分成 N 个概率空间,我们通过以下公式对概率空间进行划分,就会得到每个子种群在初始化的时候具有相同概率的这个结果。
在这里插入图片描述

公式表示 N 个种群中,其第 i 个种群的初始值。根据研究发现小生境协同进化策略的初始化方法更加先进,它比传统的初始化方法更容易快捷地找到最优染色体。

2.2 量子灾变调整策略

当针对具有多峰值的函数进行求解时,量子遗传算法依旧有可能陷入局部最 优解无法跳出,从而错过全局最优解。因此,我们引入量子灾变策略,使得种群可 以跳出当前的局部解空间,继续对全局进行搜索。
本文所提出的改进的量子遗传算法所选取的量子灾变的详细策略为:当累计 连续达到最大迭代次数 1 10 的迭代过程中最优个体的适应度均未发生改变时,认 为当前算法陷入了局部解空间。此时,保存当前最优解个体和种群中的部分个体, 重新初始化剩余的种群中的个体,形成新的种群,根据当前新种群继续进行迭代搜 索,寻找最优值。 例如,如果最大迭代次数是 200,那么连续 20 次迭代,每轮迭代的种群中最 优个体的适应度均相同时,算法被认定陷入局部解空间。全局的最优解必然大于或 等于当前局部最优解,因此,保留当前最优解和 13 的种群中的个体,重新初始化 其余 23 的种群中的个体,继续进行迭代。 量子灾变实际上是在算法陷入局部最优解时,在现有的种群中,人为的加入干 扰项,再次初始化其中的一部分个体,让算法跳出局部解空间,继续搜索整体最优 解。

03 问题导入

这里需要验证改进QGA算法的有效性,因此采用复杂的二元函数来进行检验。

3.1 问题描述

采用复杂的二元函数求最值问题,函数如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

扫描二维码关注公众号,回复: 15551580 查看本文章

可以看出,该函数在取值范围内有大量局部极值,通常的寻优算法很容易陷入局部极值中或在极值间振荡,因此对于检验算法的性能是比较合适的。

3.2实验设计

为全面比较改进2QGA算法和QGA算法以及改进1QGA算法的性能,避免算法的偶然性,本文对各算法分别独立运行30次,取其运行数据,取每次迭代的最大值进行计算:
在这里插入图片描述

其中trace为30maxgen的矩阵,max(trace)即可得到1maxgen的矩阵。
对于该数据,分别取其平均值,标准差,最小值,最大值,并取trace的均值作为其稳定的迭代曲线展示。

04 MATLAB程序实现

这里主要展示改进部分

源码获取:https://mbd.pub/o/bread/mbd-ZJqXlJ9v

4.1 小生境

在这里插入图片描述

4.2 灾变

在这里插入图片描述

4.3 性能测试结果

进行性能测试:其中QGA为标准量子遗传算法,mend1-QGA是改进量子遗传算法1,mend2-QGA为本文的改进量子遗传算法。
在这里插入图片描述
在这里插入图片描述

从迭代曲线可以看到改进的QGA独立运行30次取均值后,其性能更好,能够得到更佳的适应度。改进QGA与QGA性能指标都比GA好,能够提高算法的寻优能力,而改进QGA的性能又较QGA更佳。
单独运行2个改进的QGA
改进1QGA
在这里插入图片描述

本文的改进QGA
在这里插入图片描述

可以看到,本文的改进QGA在寻优能力上更强,能够根据灾变跳出局部最优,拥有更佳的全局搜索性能。

05 展望

至此,作者想要介绍的关于遗传算法原理及其改进方法已全部结束,后面将更新遗传算法的应用,包括路径规划、图像分割、预测算法优化等等,当然遗传算法的改进还包括混合改进,比如与模拟退火、免疫的结合,这些在后面讲到这些算法时会引入,如果小伙伴们有感兴趣的改进想要实现也可以私信我,我可以去试试看能不能实现。

参考文献

[1] 张秋艳, 王默玉, 申晓留,等. 基于灾变因子的量子遗传算法研究[J]. 计算机与数字
工程, 2019, 47(7):1591-1595.
[2]闫鹏,曾四鸣,李铁成,卢俊达,杨少波,胡雪凯,张波.基于改进量子遗传算法的虚拟电厂在多时间尺度下参与AGC优化调度[J].电网与清洁能源,2023,39(03):23-32.
[3]陶杨,颜仙荣,孟田珍.改进量子遗传算法在岛礁防空部署问题中的应用[J].中国电子科学研究院学报,2022,17(05):478-483.
[4]刘红文. 基于改进量子遗传算法的电力系统无功优化[D].西南交通大学,2009
[5]盖佳妮. 量子遗传算法的改进与研究[D].渤海大学,2017.
[6]陈垚彤. 基于优化问题的量子遗传算法研究[D].电子科技大学,2019.

猜你喜欢

转载自blog.csdn.net/sfejojno/article/details/131254302