【优化求解】基于tent混沌改进灰狼优化算法matlab源码

​ 1 基于tent混沌改进灰狼算法

针对基本灰狼算法易陷入局部最优,未考虑个体自身经验等问题,本文提出一种基于Tent映射的混合灰狼优化算法(grey wolf optimization algorithm based on particle swarm optimization,简称PSO_GWO).首先,其通过Tent混沌映射产生初始种群,增加种群个体的多样性;其次,采用非线性控制参数,前期递减速度慢,能够增加全局搜索能力,避免算法陷入局部最优,后期收敛因子递减速度快,增加算法局部搜索能力,从而提高整体收敛速度;最后,引入粒子群算法的思想,将个体自身经历过最优值与种群最优值相结合来更新灰狼个体的位置信息,从而保留灰狼个体自身最佳位置信息.为验证该算法的有效性,本文借助9个标准测试函数来与其他三种算法进行对比.实验结果表明,本文提出的算法比其他三种算法在单峰函数和多峰函数上搜索到的最优解更加理想; PSO_GWO算法比IGWO算法(the improved grey wolf optimization algorithm)在计算时间复杂度方面效果较好;同时,随着种群规模增大,PSO_GWO算法收敛值逐渐接近理想值.因此,本文提出的PSO_GWO算法能更快搜索到全局最优解,且鲁棒性更好.

2 部分代码

% PSO% GWO% IGWO% PSO_GWO%% 清空环境变量clearclc%% 基本参数N = 30;                    % 种群规模maxgen = 500;         % 最大迭代次数%% 获取函数名Function_name = 'F4';   % 从F1到F23的测试函数的名称(本文中的表1、2、3)[lb, ub, dim, fobj] = Get_Functions_details(Function_name);%% 初始化种群位置X = initialization(N, dim, ub, lb);for i = 1:N    fitness(i) = fobj(X(i, :));endcnt_max = 30;curve_pso = zeros(1, maxgen);curve_gwo = zeros(1, maxgen);curve_igwo = zeros(1, maxgen);curve_pso_gwo = zeros(1, maxgen);for cnt = 1:cnt_max    %% 传入函数变量    [bestvalue_PSO, gbest_PSO, Curve_PSO] = PSO(N, maxgen, X, fitness, lb, ub, dim, fobj);    [bestvalue_GWO, gbest_GWO, Curve_GWO] = GWO(N, maxgen, X, fitness, lb, ub, dim, fobj);    [bestvalue_IGWO, gbest_IGWO, Curve_IGWO] = IGWO(N, maxgen, X, fitness, lb, ub, dim, fobj);    [bestvalue_PSO_GWO, gbest_PSO_GWO, Curve_PSO_GWO] = PSO_GWO(N, maxgen, X, fitness, lb, ub, dim, fobj);    %%     curve_pso = curve_pso + Curve_PSO;    curve_gwo = curve_gwo + Curve_GWO;    curve_igwo = curve_igwo + Curve_IGWO;    curve_pso_gwo = curve_pso_gwo + Curve_PSO_GWO;end%% 绘图比较figure;t = 1:maxgen;semilogy(t, curve_pso/cnt_max, 'bo-', t, curve_gwo/cnt_max, 'k*-', t, curve_igwo/cnt_max, 'mx-',...    t, curve_pso_gwo/cnt_max, 'rd-', 'linewidth', 2, 'linewidth', 1.5, 'MarkerSize',7, 'MarkerIndices', 1:50:maxgen);legend('PSO', 'GWO', 'IGWO', 'PSO\_GWO');title('F3');xlabel '迭代次数';ylabel '目标函数值';

3 仿真结果

4 参考文献

[1]滕志军, 吕金玲, 郭力文,等. 一种基于Tent映射的混合灰狼优化的改进算法[J]. 哈尔滨工业大学学报, 2018, 50(11):46-55.

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab科研辅导帮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值