一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【优化算法】Iterative映射和单纯形法的改进灰狼优化算法(SMIGWO)【含Matlab源码 1746期】

获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、SMIGWO简介

为了解决基本灰狼优化算法(GWO)依赖初始种群和求解精度不高的问题,提出一种基于Iterative映射和单纯形法的改进灰狼优化算法(SMIGWO)。该算法利用混沌Iterative映射产生初始灰狼种群,增强全局搜索过程中的种群多样性;采用逆不完全Γ函数更新收敛因子,以平衡算法的全局搜索和局部搜索能力;利用单纯形法的反射、扩张和收缩操作对当前较差个体进行改进,避免算法陷入局部最优。

1 改进的灰狼优化算法
1.1 混沌序列初始化
基本GWO算法在搜索空间中随机初始化灰狼种群, 容易造成灰狼位置分布不均匀, 导致种群多样性差。混沌映射具有较好的遍历性和不重复性, 因此可以用来代替种群随机初始化。文中采用Iterative混沌映射产生灰狼的初始位置, Iterative映射的数学表达式为:

其中, b是控制参数, b∈ (0, 1) , 文中取b=0.5。

1.2 基于逆不完全Γ函数的收敛因子
当|A|>1时, 灰狼群体将扩大搜索范围寻找猎物, 即全局搜索, 收敛速度快;当|A|<1时, 灰狼群体将收缩搜索范围对猎物进行攻击, 即局部搜索, 收敛速度慢。因此, A的大小与GWO算法的全局搜索和局部搜索能力有很大关系。由式 (3) 可以看出, A随着收敛因子a的变化而变化。为了平衡算法的全局搜索和局部搜索能力, 文中提出一种基于逆不完全Γ函数的收敛因子:

其中:amax、amin为收敛因子a的最大、最小值, t为当前迭代次数, tmax为最大迭代次数, λ (λ≥0) 是随机变量, 本文取λ=0.01。图2是a的变化趋势图。

从图2可以看出, 收敛因子a随着迭代次数从2非线性递减到0, 迭代初期接近线性下降, 而在迭代后期接近指数下降, 能较好地实现探索与开发之间的平衡。

图2 收敛因子改进前后对比

1.3 单纯形法
单纯形法的核心思想包括两重:一是梯度估计, 它是从最差顶点Xs到除最差顶点Xs以外的所有顶点的质心X的方向向量g;二是通过迭代用一个更好的新顶点来代替最差顶点。新的顶点是由4种算子之一产生的:反射、扩张、外收缩和内收缩[15]。如图3所示, Xc是最优点Xg和次优点Xb的中心, 假设Xs是较差点。

图3 单纯形法的四种运算
反射操作:Xr=Xc+α (Xc-Xs) , Xr是反射点, 反射系数α通常取1。
扩张操作:Xe=Xc+γ (Xr-Xc) , Xe是扩张点, 扩张系数γ通常取2。
外收缩操作:Xt=Xc+β (Xs-Xc) , Xt是外收缩点, 外收缩系数β取0.5。
内收缩操作:Xw=Xc-β (Xs-Xc) , Xw是内收缩点, 内收缩系数β取0.5。

1.4 改进的灰狼优化算法的执行步骤
综合以上策略描述, 给出SMIGWO的具体步骤:

  1. 设置算法参数:种群规模N, 最大迭代次数tmax, 反射系数α, 扩张系数γ, 内、外收缩系数β, 随机生成a、A、C等参数;
  2. 利用混沌Iterative映射初始化灰狼种群;
  3. 计算种群中每个灰狼个体的适应度值, 并按照适应度值进行排序, 选择前3个最好的狼, 记录位置Xα、Xβ和Xδ, 对应的适应度值f (Xα) 、f (Xβ) 和f (Xδ) , 中心位置为Xc= (Xα+Xβ) /2。
  4. 对较差灰狼位置Xs进行反射, 得到反射点Xr。
  5. 若f (Xr) <f (Xα) 说明反射方向正确, 执行扩张操作得到扩张点Xe, 若f (Xe) <f (Xα) , 则用Xe取代Xs;否则, 用Xr取代Xs。
  6. 若f (Xr) >f (Xs) , 说明反射方向不正确, 执行外收缩操作得到外收缩点Xt, 若f (Xt) <f (Xs) , 则用Xt取代Xs。
  7. 若f (Xα) <f (Xr) <f (Xs) , 执行内收缩操作得到内收缩点Xw, 若f (Xw) <f (Xs) , 则用Xw取代Xs;否则, 用Xt取代Xs。
  8. 利用式 (5) 和 (6) 更新种群中其他X灰狼个体的位置;
  9. 利用式 (8) 计算a, 然后利用式 (3) 和 (4) 更新A, C的值;
  10. 判断算法是否满足结束条件, 若满足, 则算法结束, 输出最优灰狼位置Xα;否则, 执行步骤3) 。

1.5 算法收敛性分析
算法优化的初始步骤中, 灰狼种群移动应该有较大的变化, 这有助于广泛地探索搜索空间, 然后, 应该减少这些变化, 以保证在算法结束时能够在最优解附近收敛。SMIGWO使用混沌映射策略和单纯形法, 使狼群初期探索更具随机性, 采用基本的GWO算法更新策略更新其他X灰狼的位置,SMIGWO最终可以收敛到搜索空间中的某一点。

三、部分源代码

 %% [1]王梦娜,王秋萍,王晓峰.基于Iterative映射和单纯形法的改进灰狼优化算法[J].计算机应用,2018,38(S2):16-20+54.
%该方法改进效果不咋样
clear all
clc
SearchAgents_no=30; %种群数量
Function_name='F1'; % CEC2005 测试函数F1-F21Max_iteration=1000; % 最大迭代次数% 获取对应测试函数的边界信息,维度等。
[lb,ub,dim,fobj]=Get_Functions_details(Function_name);
%基础灰狼算法
[Best_score,Best_pos,GWO_cg_curve]=GWO(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);
%改进灰狼算法
[Best_score1,Best_pos1,GWO_cg_curve1]=SMIGWO(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);figure('Position',[500 500 660 290])
%Draw search space
subplot(1,2,1);
func_plot(Function_name);
title('Parameter space')
xlabel('x_1');
ylabel('x_2');
zlabel([Function_name,'( x_1 , x_2 )'])%Draw objective space
subplot(1,2,2);
semilogy(GWO_cg_curve,'Color','b','linewidth',1.5)
hold on
semilogy(GWO_cg_curve1,'Color','r','linewidth',1.5);
title('Objective space')
xlabel('Iteration');
ylabel('Best score obtained so far');
axis tight
grid on
box on
legend('GWO','SMIGWO');display(['The best solution obtained by GWO is : ', num2str(Best_pos)]);
display(['The best optimal value of the objective funciton found by GWO is : ', num2str(Best_score)]);display(['The best solution obtained by SMIGWO is : ', num2str(Best_pos1)]);
display(['The best optimal value of the objective funciton found by SMIGWO is : ', num2str(Best_score1)]);

三、运行结果

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]王梦娜,王秋萍,王晓峰.基于Iterative映射和单纯形法的改进灰狼优化算法[J].计算机应用. 2018,38(S2)

【优化算法】Iterative映射和单纯形法的改进灰狼优化算法(SMIGWO)【含Matlab源码 1746期】相关推荐

  1. 基于 Iterative 映射和单纯形法的改进灰狼优化算法-附代码

    基于 Iterative 映射和单纯形法的改进灰狼优化算法 文章目录 基于 Iterative 映射和单纯形法的改进灰狼优化算法 1.灰狼优化算法 2. 改进灰狼优化算法(SMIGWO) 2.1 混沌 ...

  2. 【风电功率预测】基于matlab麻雀算法优化LSSVM风电功率预测(多输入单输出)【含Matlab源码 1718期】

    ⛄一.麻雀算法优化LSSVM简介 1 标准麻雀算法 算法运算过程由探索者.追随者与预警者3部分构成,其中探索者与追随者的总数量与比例不变,根据适应度数值的改变,两者可以相互转化.通过觅食和反捕食行为来 ...

  3. 【TWVRP】基于matlab模拟退火算法结合狼群算法求解带时间窗的车辆路径规划问题【含Matlab源码 1075期】

    ⛄一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简 ...

  4. 【TWVRP】基于matlab模拟退火算法求解带时间窗的车辆路径规划问题【含Matlab源码 160期】

    ⛄一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简 ...

  5. 【风电功率预测】麻雀算法优化LSSVM风电功率预测(多输入单输出)【含Matlab源码 1718期】

    ⛄一.麻雀算法优化LSSVM简介 1 标准麻雀算法 算法运算过程由探索者.追随者与预警者3部分构成,其中探索者与追随者的总数量与比例不变,根据适应度数值的改变,两者可以相互转化.通过觅食和反捕食行为来 ...

  6. 【CS三维路径规划】基于matlab布谷鸟灰狼算法、灰狼算法求解复杂地形下三维无人机路径规划问题【含Matlab源码 2216期】

    ⛄一.无人机三维路径规划简介 1 无人机航迹规划问题的数学模型 建立三维航迹规划问题的数学模型时, 不但考虑无人机基本约束, 还考虑复杂的飞行环境, 包括山体地形和雷暴威胁区. 1.1 无人机基本约束 ...

  7. 【TWVRP】粒子群算法求解带时间窗的车辆路径规划问题【含Matlab源码 334期】

    ⛄一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简 ...

  8. 【TWVRP】模拟退火算法求解带时间窗的车辆路径规划问题【含Matlab源码 160期】

    ⛄一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简 ...

  9. 【TWVRP】蚁群算法求解带时间窗的车辆路径规划问题【含Matlab源码 1406期】

    ⛄一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简 ...

  10. 【CS三维路径规划】布谷鸟灰狼算法、灰狼算法求解复杂地形下三维无人机路径规划问题【含Matlab源码 2216期】

    ⛄一.无人机三维路径规划简介 1 无人机航迹规划问题的数学模型 建立三维航迹规划问题的数学模型时, 不但考虑无人机基本约束, 还考虑复杂的飞行环境, 包括山体地形和雷暴威胁区. 1.1 无人机基本约束 ...

最新文章

  1. node mysql limit_node中mysql连接池的connectionLimit指什么,它和mysql的最小连接数和最大连接数的关系是什么?...
  2. ASP.NET MVC ActionMethodSelectorAttribute 以及HttpGet等Action特性
  3. SQL Server 文件规划 -位置规划
  4. 安装qtceator后无法启动help插件 Qt编译错误:cannot find -lGL 解决办法
  5. Spring Boot(5)---第一个Spring Boot应用程序
  6. 二手轻型载货车报价图片_业主坐地提价, 新房抢客, 10月广州二手房成交跌了24%...
  7. WinAVI FLV Converter v1.0 注册码
  8. 数据挖掘-----Apriori算法
  9. 普中28335开发攻略_DSP28335汇编教程
  10. Axure的使用---原型图
  11. 美国飞机安全事件频发:背后黑手竟然是5G?
  12. 重要发布全总结丨一文看懂阿里云弹性计算年度峰会
  13. 【预防流感】冬春之交推荐吃香菜
  14. ubuntu16.04 独立显卡驱动安装
  15. golang Leaf 游戏服务器框架简介
  16. 智安网络丨网络架构,是数据中心的“神经脉络”
  17. HCNA基础篇问答式笔记整理
  18. 【读书笔记】AMBA 2 AHB、AMBA 3 AHB(AHB_Lite)和AMBA 5 AHB协议比较
  19. 广州O2O分销系统定制开发
  20. Dataset之GermanCreditData:GermanCreditData数据集的简介、下载、使用方法之详细攻略

热门文章

  1. [新整理] CAD高级模拟考题
  2. 简单的物流项目实战,WPF的MVVM设计模式(二)
  3. 接口与抽象类的区别和相同点
  4. MyBatis框架、log4j、数据库的配置文件
  5. Mysql 计划任务
  6. 深入浅出-iOS函数式编程的实现 响应式编程概念
  7. 2016/2/24 1,dotctype有几种? 2,了解html的发展历史
  8. 20191011每日一句
  9. Atitit enhance dev effect提升开发效率的十大原理与方法v3 u66.docx Atitit enhance dev effect提升开发效率的十大原理与方法v2 u66.do
  10. Atitit 效率提升分析与解决方案 1. 三大模式 优化资源配置 通过降低难度 提升培训 1 1.1. 优化资源配置 1 1.2. 通过降低难度 1 1.3. 提升培训 1 2. 有效与立即可