离散型和连续型的GWO算法(Matlab代码实现)

    目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码

💥1 概述

GWO算法是一种优化算法,用于解决最优化问题。它模拟了灰狼群体中的寻食行为,通过模拟灰狼的社会行为,寻找最优解。GWO算法可以根据变量的特性分为离散型和连续型两种变种。

离散型GWO算法: 离散型GWO算法适用于问题中变量是离散型的情况。在该变体中,优化问题的变量被限制为只能取有限个离散值。算法的基本流程与传统GWO相似,但在更新搜索代理(即灰狼位置)时,它会将连续值位置映射到离散值位置。这样,算法可以在离散解空间中搜索最优解。

连续型GWO算法: 连续型GWO算法适用于问题中变量是连续型的情况。在这种变体中,问题的变量可以取任意实数值,而不是被限制为离散值。算法的基本思想与传统GWO相同,但更新搜索代理的过程是基于连续值的运算。

无论是离散型还是连续型GWO算法,其基本的工作原理都是通过模拟灰狼的协作和竞争行为,将潜在解空间中的解逐步优化,寻找全局最优解或者近似最优解。

需要指出的是,对于离散型问题,可以将连续型问题的解进行四舍五入或者取整操作来获得离散解,这是一种简单的方法。而对于一些特定的离散优化问题,还可以使用一些特定的离散优化算法,如遗传算法、粒子群算法等。

总之,GWO算法是一种强大的优化算法,可以根据问题的特性和需求选择相应的离散型或连续型GWO算法变种。

📚2 运行结果

主函数部分代码:

clc
clear
close all
​
%%
prompt = {'Enter Number of City:'};
dlgtitle = 'Input';
dims =[1 50];
definput = {'10'};
answer = inputdlg(prompt,dlgtitle,dims,definput);
n=str2num(answer{1});
%% setting and run GWO
SearchAgents_no=100; % Number of search agents
Max_iteration=1000; % Maximum numbef of iterations
lb=-10;
ub=10;
TSP_model=CreateModel(n);
dim=TSP_model.count_city; 
fobj=@(x) TSP_fitness(x,TSP_model);
​
​
[Best_score,Best_pos,GWO_cg_curve]=GWO_modified(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,TSP_model);
​
​
%% plot reult
figure
semilogy(GWO_cg_curve,'Color','r')
title('Objective space')
xlabel('Iteration');
ylabel('Best score obtained so far');
​
axis tight
grid on
box on
legend('GWO')
​
%% print reult
[~,Tour_find]=fobj(Best_pos);
display(['The best solution obtained by GWO is : ', num2str(Tour_find)]);
display(['The best optimal value of the objective funciton found by GWO is : ', num2str(Best_score)]);
   

🎉3 参考文献

​[1]梅伟,赵云涛,毛雪松等.基于离散灰狼算法的喷涂机器人路径规划方法[J].计算机应用,2020,40(11):3379-3384.

部分理论引用网络文献,若有侵权联系博主删除。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值