柯西变异和自适应权重优化的蝴蝶算法-附代码
融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法
文章目录
- 融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法
- 1.蝴蝶优化算法
- 2. 改进蝴蝶优化算法
- 2.1 柯西变异
- 2.2 自适应权重
- 2.3动态切换概率策略
- 3.实验结果
- 4.参考文献
- 5.Matlab代码
- 6.Python代码
摘要:针对基本蝴蝶优化算法(Butterfly Optimization Algorithm,BOA)存在的收敛精度较低、容易陷入局部最优解的问题,提出柯西变异和自适应权重优化的蝴蝶算法(Cauchy variation and adaptive Weight Butterfly Optimization Algorithm,CWBOA)。通过在全局位置更新处引入柯西分布函数进行变异,在局部位置更新处引入自适应权重因子,改进了蝴蝶算法的局部搜索能力;并且引入动态切换概率p来权衡全局探索与局部开发过程的比重。
1.蝴蝶优化算法
基础蝴蝶优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107855860
2. 改进蝴蝶优化算法
2.1 柯西变异
蝴蝶个体受局部的极值点约束力在进行柯西变异后下降, 并且 柯西分布函数的峰值相对较小, 蝴蝶个体在变异后会使 用相对较少的时间来搜索相邻区间, 把更多的时间放在 搜寻全局最优值上, 使得改进的蝴蝶优化算法在寻找全 局的最优值方面具备很好的调节能力。用柯西变异进 行随机扰动有利于增加种群的多样性从而避免算法陷 入局部最优, 提高全局搜索最优值的能力。柯西分布的 特征使其能够产生与原点相距较远的随机数, 这意味着 经过柯西变异后的蝴蝶个体具备了能够迅速逃离局部 极值的能力。另外, 柯西分布函数的峰值较低, 该特点 能够缩短变异后的蝴蝶个体在邻域周围搜索的时间。 因此在求得当前最优解后, 本文使用公式 (5)所示的更 新公式对当前全局最优解进行变异处理。
x newbest = x best + x best × Cauchy ( 0 , 1 ) (5) x_{\text {newbest }}=x_{\text {best }}+x_{\text {best }} \times \operatorname{Cauchy}(0,1) \tag{5} xnewbest =xbest +xbest ×Cauchy(0,1)(5)
2.2 自适应权重
惯性权重因子是很重要的一个参数, 当惯性权重比 较大时, 算法全局搜索能力较强, 能够增加种群多样性, 可以搜索较大的区域; 当惯性权重比较小时, 算法局部 搜索能力较强, 可以在最优解周围精细搜索, 加快收玫 速度。蝴蝶进行局部寻优时, 是以公式 (3) 进行局部搜 索的, 其中当蝴蝶以公式 (3) 向局部最优解靠近时, 这时 只能靠近局部最优解, 而不能进行更好的局部寻优 [ 12 ] { }^{[12]} [12], 针对这个问题受文献[13]、文献[14]的启发, 提出了新的 自适应权重方法, 蝴蝶接近食物的时候, 采用较小的自 适应权重改变此时最优的蝴蝶的位置, 使得蝴蝶局部寻 优能力得到提高。自适应权重公式如式(6)所示:
w = sin ( π ⋅ t ( 2 ⋅ i tmax ) + π ) + 1 (6) w=\sin \left(\frac{\pi \cdot t}{(2 \cdot i \operatorname{tmax})}+\pi\right)+1 \tag{6} w=sin((2⋅itmax)π⋅t+π)+1(6)
式 (6) 中, t t t 为当前迭代次数, itmax 是最大迭代次数。 改进式 (3)的公式如(7)所示:
x i t + 1 = w ⋅ x i t + ( r 2 × x j t − x k t ) × f i (7) x_{i}^{t+1}=w \cdot x_{i}^{t}+\left(r^{2} \times x_{j}^{t}-x_{k}^{t}\right) \times f_{i} \tag{7} xit+1=w⋅xit+(r2×xjt−xkt)×fi(7)
通过融合自适应权重因子 w w w, 使蝴蝶个体具有更 好的局部寻优能力。
2.3动态切换概率策略
在基本蝴蝶优化算法中, 局部搜索和全局寻优过程 用常量切换概率 p ∈ [ 0 , 1 ] p \in[0,1] p∈[0,1] 来控制, 一个合理的搜索过程 在算法的前期应该进行较强烈的全局搜索, 迅速定位搜 索空间中全局最优解所在范围, 在探索后期局部开采能 力应增强, 以提升算法的寻优精度。本文引入动态切换 概率来平衡局部开采和全局开采的比重, 来实现更好的 寻优策略。动态切换概率 p p p 的公式如下:
p = 0.6 − 0.1 × ( MaxIter − t ) / MaxIter (8) p=0.6-0.1 \times(\text { MaxIter }-t) / \text { MaxIter }\tag{8} p=0.6−0.1×( MaxIter −t)/ MaxIter (8)
3.实验结果
4.参考文献
[1]高文欣,刘升,肖子雅,于建芳.柯西变异和自适应权重优化的蝴蝶算法[J].计算机工程与应用,2020,56(15):43-50.
5.Matlab代码
6.Python代码
柯西变异和自适应权重优化的蝴蝶算法-附代码相关推荐
- 柯西变异和自适应权重优化的蝴蝶算法
文章目录 一.理论基础 1.蝴蝶优化算法 2.改进的蝴蝶优化算法 (1)柯西变异 (2)自适应权重 (3)动态切换概率策略 (4)算法描述 二.函数测试与结果分析 三.参考文献 一.理论基础 1.蝴蝶 ...
- 【优化求解】基于柯西变异和自适应权重优化的蝴蝶算法求解单目标优化问题matlab代码
1 简介 针对基本蝴蝶优化算法(Butterfly Optimization Algorithm,BOA)存在的收敛精度较低.容易陷入局部最优解的问题,提出柯西变异和自适应权重优化的蝴蝶算法(Cauc ...
- 融合柯西变异和反向学习的改进麻雀算法-附代码
融合柯西变异和反向学习的改进麻雀算法 文章目录 融合柯西变异和反向学习的改进麻雀算法 1.麻雀搜索算法 2.融合柯西变异和反向学习的改进麻雀算法(ISA) 2.1 Sine 初始化种群 2.2 动态自 ...
- 一种改进的进化模型和混沌优化的萤火虫算法-附代码
一种改进的进化模型和混沌优化的萤火虫算法 文章目录 一种改进的进化模型和混沌优化的萤火虫算法 1.萤火虫算法 2. 改进萤火虫算法 2.1 基于混沌优化策略的种群初始化 2. 2 基于惯性权重的进化计 ...
- 改进交叉算子的自适应人工蜂群黏菌算法-附代码
改进交叉算子的自适应人工蜂群黏菌算法 文章目录 改进交叉算子的自适应人工蜂群黏菌算法 1.黏菌算法 2.改进黏菌算法 2.1 自适应可调节反馈因子 2.2 算数交叉算子 2.3 改进的人工蜂群搜索策略 ...
- 基于柯西变异的蚁狮优化算法 - 附代码
基于柯西变异的蚁狮优化算法 文章目录 基于柯西变异的蚁狮优化算法 1.蚁狮优化算法 2. 改进蚁狮优化算法 2.1 基于柯西变异算子改进 3.实验结果 4.参考文献 5.Matlab代码 6.Pyth ...
- 混合策略改进的蝴蝶优化算法-附代码
混合策略改进的蝴蝶优化算法 文章目录 混合策略改进的蝴蝶优化算法 1.蝴蝶优化算法 2. 改进蝴蝶优化算法 2.1 混沌映射初始化 2.2 融合改进正弦余弦算法的局部搜索 2.3 自适应权重系数 2. ...
- 融合柯西变异和反向学习的改进麻雀算法
文章目录 一.理论基础 1.基本麻雀搜索算法 2.融合柯西变异和反向学习的麻雀搜索算法 (1)Sin混沌初始化种群 (2)动态自适应权重 (3)改进的侦查预警麻雀更新公式 (4)融合柯西变异和反向学习 ...
- 一种改进的鲸鱼优化算法-附代码
一种改进的鲸鱼优化算法 文章目录 一种改进的鲸鱼优化算法 1.鲸鱼优化算法 2. 改进鲸鱼优化算法 2.1 准反向学习初始化种群 2.2 非线性收敛因子 2.3 自适应权重策略与随机差分法变异策略 3 ...
最新文章
- sass文件编译的三种方式【舒】
- linux 脚本编程
- 中科院脑科学与智能技术卓越创新中心:在“脑海”中突破进取
- Xamarin IOS – hello word
- ArcGIS Engine开发模板及C#代码
- 12_04_Linux软件管理之四yum
- 海马扫描Linux,海马扫描-海马扫描下载 v1.2.0官方版-完美下载
- mysql n叉树_MySQL索引底层:B+树详解
- 一盒两用!——破解电信IPTV机顶盒为普通安卓机顶盒
- 渐变的alert_好看的alert样式或者弹窗样式
- 海量数据搜索---搜索引擎的实现
- Linux基础之计算机网络
- 推荐一个有效清理电脑桌面广告、流氓软件的方法
- 深度学习工程实践 5. libtorch+opencv使用复杂的训练分割模型(脸部,头发实现分割)
- zabbix查询历史数据
- 打乱魔方软件_怎样打乱魔方
- 二维码扫描枪对接手册
- K8S查看服务器日志
- git cherry-pick 多分支的代码库,将代码从一个分支转移到另一个分支
- 小木虫网站无法登陆(账号突然被封禁)的解决办法