目录
💥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.
部分理论引用网络文献,若有侵权联系博主删除。