柯西变异和自适应权重优化的蝴蝶算法[通俗易懂]

柯西变异和自适应权重优化的蝴蝶算法[通俗易懂]文章目录一、理论基础1、蝴蝶优化算法2、改进的蝴蝶优化算法(1)柯西变异(2)自适应权重(3)动态切换概率策略(4)算法描述二、函数测试与结果分析三、参考文献四、Matlab仿真程序一、理论基础1、蝴蝶优化算法请参考这里。2、改进的蝴蝶优化算法为了改进蝴蝶算法容易陷入局部最优和收敛精度低的问题,本文从三个方面对蝴蝶算法进行改进。首先通过引入柯西分布函数的方法对全局搜索的蝴蝶位置信息进行变异,提高蝴蝶的全局搜索能力;其次通过引入自适应权重因子来提高蝴蝶的局部搜索能力;最后采用动态切换概率ppp平衡算

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

一、理论基础

1、蝴蝶优化算法

请参考这里

2、改进的蝴蝶优化算法

为了改进蝴蝶算法容易陷入局部最优和收敛精度低的问题,本文从三个方面对蝴蝶算法进行改进。首先通过引入柯西分布函数的方法对全局搜索的蝴蝶位置信息进行变异,提高蝴蝶的全局搜索能力;其次通过引入自适应权重因子来提高蝴蝶的局部搜索能力;最后采用动态切换概率 p p p平衡算法局部搜索和全局搜索的比重,提升了算法的寻优性能。因此本文提出一种混合策略改进的蝴蝶优化算法(CWBOA)。

(1)柯西变异

针对蝴蝶优化算法易陷入局部最优的特点,利用柯西变异来增加种群的多样性,提高算法的全局搜索能力,增加搜索空间。柯西分布函数在原点处的峰值较小但在两端的分布比较长,利用柯西变异能够在当前变异的蝴蝶个体附近生成更大的扰动从而使得柯西分布函数的范围比较广,采用柯西变异两端分布更容易跳出局部最优值。本文融入柯西算子,充分利用柯西分布函数两端变异的效果来优化算全局最优个体,使得算法能够更好地达到全局最优。
在求得当前最优解后,本文使用公式 (1)所示的更新公式对当前全局最优解进行变异处理。 x n e w b e s t = x b e s t + x b e s t × Cauchy ( 0 , 1 ) (1) x_{newbest}=x_{best}+x_{best}×\text{Cauchy}(0,1)\tag{1} xnewbest=xbest+xbest×Cauchy(0,1)(1)

(2)自适应权重

自适应权重公式如式(2)所示 w = s i n ( π t 2 ⋅ i t m a x + π ) + 1 (2) w=sin(\frac{\pi t}{2\cdot itmax}+\pi)+1\tag{2} w=sin(2itmaxπt+π)+1(2)其中, t t t为当前迭代次数, i t m a x itmax itmax为最大迭代次数。
改进后的局部搜索公式为 x i t + 1 = w ⋅ x i t + ( r 2 × x j t − x k t ) × f i (3) x_i^{t+1}=w\cdot x_i^t+(r^2×x_j^t-x_k^t)×f_i\tag{3} xit+1=wxit+(r2×xjtxkt)×fi(3)通过融合自适应权重因子 w w w,使蝴蝶个体具有更好的局部寻优能力。

(3)动态切换概率策略

引入动态切换概率来平衡局部开采和全局开采的比重,来实现更好的寻优策略。动态切换概率 p p p的公式如下 p = 0.6 − 0.1 × ( M a x I t e r − t ) / M a x I t e r (4) p=0.6-0.1×(MaxIter-t)/MaxIter\tag{4} p=0.60.1×(MaxItert)/MaxIter(4)

(4)算法描述

CWBOA的具体执行步骤如下:
在这里插入图片描述


图1 改进算法的流程图

二、函数测试与结果分析

本文选取了基于柯西变异和动态自适应权重的蝴蝶优化算法(CWBOA) 、基本蝴蝶算法 (BOA)、鲸鱼算法(WOA)以及花授粉算法(FPA)进行对比。为了实验的公平、客观性,本文将所有算法的初始种群规模统一设为30, 迭代次数设置为500,四个算法的共有参数保持一致。CWBOA和BOA 中的 c c c感官形态设置为0.01, a a a幂指数在迭代过程从0.1迭代到0.3;基本的BOA和FPA中的切换概率均为 p = 0.8 p=0.8 p=0.8
为了验证改进后的BOA在收敛性和鲁棒性两方面的性能上更优,本文基于14个测试函数进行对比实验,标准测试函数的信息见表1。


表1 测试函数的基本信息

在这里插入图片描述本文以f1、f3、f7、f9、f11、f12、f14为例。
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述最大值、最小值、平均值和标准差显示如下:

函数:F1
BOA:最大值: 1.4499e-11,最小值:1.1241e-11,平均值:1.2801e-11,标准差:8.858e-13
WOA:最大值: 7.3975e-73,最小值:2.3916e-85,平均值:3.131e-74,标准差:1.353e-73
FPA:最大值: 23803.0104,最小值:947.6602,平均值:4173.2952,标准差:5457.3121
CWBOA:最大值: 0,最小值:0,平均值:0,标准差:0
函数:F3
BOA:最大值: 5.7184e-09,最小值:2.2932e-09,平均值:4.4704e-09,标准差:1.278e-09
WOA:最大值: 8.9851e-50,最小值:4.8473e-58,平均值:5.076e-51,标准差:1.8277e-50
FPA:最大值: 8710.4476,最小值:28.1287,平均值:513.6911,标准差:1768.5884
CWBOA:最大值: 4.7981e-249,最小值:7.7934e-279,平均值:1.6759e-250,标准差:0
函数:F7
BOA:最大值: 0.41445,最小值:1.7408e-13,平均值:0.068926,标准差:0.15676
WOA:最大值: 0,最小值:0,平均值:0,标准差:0
FPA:最大值: 2.755,最小值:2.959e-11,平均值:0.10097,标准差:0.50222
CWBOA:最大值: 0,最小值:0,平均值:0,标准差:0
函数:F9
BOA:最大值: 1.2352e-11,最小值:8.7385e-12,平均值:1.012e-11,标准差:1.0014e-12
WOA:最大值: 5.2454e-05,最小值:1.6577e-46,平均值:4.0482e-06,标准差:1.0357e-05
FPA:最大值: 3505.7816,最小值:70.2088,平均值:711.0633,标准差:1036.3243
CWBOA:最大值: 0,最小值:0,平均值:0,标准差:0
函数:F11
BOA:最大值: 6.6915e-09,最小值:5.2465e-09,平均值:6.057e-09,标准差:3.692e-10
WOA:最大值: 7.9936e-15,最小值:8.8818e-16,平均值:4.6777e-15,标准差:2.6279e-15
FPA:最大值: 19.9631,最小值:14.2613,平均值:17.6983,标准差:1.6073
CWBOA:最大值: 8.8818e-16,最小值:8.8818e-16,平均值:8.8818e-16,标准差:0
函数:F12
BOA:最大值: 7.7948e-12,最小值:8.4921e-13,平均值:4.5165e-12,标准差:2.1098e-12
WOA:最大值: 0,最小值:0,平均值:0,标准差:0
FPA:最大值: 223.7537,最小值:9.77,平均值:31.449,标准差:40.2159
CWBOA:最大值: 0,最小值:0,平均值:0,标准差:0
函数:F14
BOA:最大值: 0.043863,最小值:7.9381e-14,平均值:0.026527,标准差:0.021455
WOA:最大值: 0.043671,最小值:0,平均值:0.011645,标准差:0.019642
FPA:最大值: 0.047395,最小值:8.7206e-05,平均值:0.011072,标准差:0.015677
CWBOA:最大值: 0,最小值:0,平均值:0,标准差:0

Jetbrains全家桶1年46,售后保障稳定

由函数的收敛曲线可知,改进的CWBOA在收敛的速度和精度上要优于BOA、WOA、FPA。

三、参考文献

[1] 高文欣, 刘升, 肖子雅, 等. 柯西变异和自适应权重优化的蝴蝶算法[J]. 计算机工程与应用, 2020, 56(15): 43-50.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213532.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 快速的rapid_你不知道的100个国外搜索引擎

    快速的rapid_你不知道的100个国外搜索引擎 15原文链接http://www.portablesoft.cn/rapidshare-search-engine/Postedin 实用技巧 by黯然过客[2010/01/30]      RapidShare是世界上最大的文件托管网站,据称已有超过10PB容量的文件上传到其服务器;有了Rapidshare,可以说不怕你下载不到,就怕你想不到,善用网盘资源…..

    2025年8月30日
    5
  • Python爬取美女图片 爬虫基础

    Python爬取美女图片 爬虫基础Python爬取美女图片爬虫基础简述实现思路关键代码文件下载爬虫代码成果简述作为一个考研狗,每天除了日复一日的复习外,偶尔也想给自己寻找一些生活的小乐趣,今天突然想到了自己曾经稍微接触的爬虫,想看看可以爬取些图片放到电脑上,就花了些时间改了改之前的爬虫代码,爬取了一部分照片先量一下战绩吧。照片不多但也算是自己的一次爬虫小经验。实现思路爬虫的网页很简单,照片真实路径都在页面中直接可以拿到主要流程就是先进入照片浏览的主页,每个照片的主页都会链接几个照片页面,像下面这样,每个图片都会链接一个网页

    2022年6月26日
    28
  • php一行代码获取本周一,本周日,上周一,上周日,本月一日,本月最后一日,上月一日,上月最后一日日期[通俗易懂]

    php一行代码获取本周一,本周日,上周一,上周日,本月一日,本月最后一日,上月一日,上月最后一日日期

    2022年2月15日
    52
  • 被面试官问懵B了,十亿级数据ES搜索怎么优化?

    面试题 es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊? 面试官心理分析 这个问题是肯定要问的,说白了,就是看你有没有实际干过 es,因为啥?其实 es 性能并没有你想…

    2021年6月22日
    131
  • python从字符串中提取数字

    1、使用正则表达式,用法如下:##总结##^匹配字符串的开始。##$匹配字符串的结尾。##\b匹配一个单词的边界。##\d匹配任意数字。##\D匹配任意非数字字符。##x?匹配一个可选的x字符(换言之,它匹配1次或者0次x字符)。##x*匹配0次或者多次x字符。##x+匹配1次或者多次x字符。##x{n,m}匹配…

    2022年4月3日
    175
  • Linux 审计日志记录,linux日志服务器审计客户端history记录「建议收藏」

    Linux 审计日志记录,linux日志服务器审计客户端history记录「建议收藏」需求将每台服务器上的每一个用户执行的命令、执行时间、登陆时间、主机ip、当前切换用户等信息保存到本地并实时传输至日志服务器进行异地保存。nginxIPhostname角色10.10.99.1test1rsyslog-server10.10.99.2test2rsyslog-client工具及服务1.loggerlogger是一个shell接口,能够经过该接口使用rsyslog的日志模块。webus…

    2022年6月4日
    79

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号