非支配排序的蜣螂算法(NSDBO),MATLAB代码免费获取

本文介绍了非支配排序的蜣螂优化算法NSDBO,相比于网格机制,它在处理多目标问题时表现出较高的效率。提供了代码示例,展示了算法的主函数和性能评估指标,如执行效率以及IGD、GD、HV和Spacing等。

非支配排序的蜣螂优化算法(Non-Dominated Sorting Dung beetle optimizer),与网格机制不同,多目标蜣螂优化算法采用的是传统的非支配方式,使用起来更加高效。

多目标蜣螂算法结果如下:

d24934b1b5efa13f7c2067d15b84e38d.png

42373412dce185daa5862a21316bab23.png

bdfcb65922286558ce72eae1622556ca.png

c8bf17c25a967d1027cc5ca893dfccdc.png

b338b79c3ccaa341349137e612422a30.png

多目标蜣螂算法的执行效率还是相当高的,代码写的也很清楚简单。

主函数代码:

close all;
clear ; 
clc;
%%
TestProblem=31;%1-47
MultiObj = GetFunInfo(TestProblem);
MultiObjFnc=MultiObj.name;%问题名
% Parameters
params.Np = 300;        % Population size
params.Nr = 300;        % Repository size
params.maxgen =300;     % Maximum number of generations
numOfObj=MultiObj.numOfObj;%目标函数个数
D=MultiObj.nVar;%维度
f = NSDBO(params,MultiObj);
X=f(:,1:D);%PS
Obtained_Pareto=f(:,D+1:D+numOfObj);%PF
if(isfield(MultiObj,'truePF'))%判断是否有参考的PF
True_Pareto=MultiObj.truePF;
%%  Metric Value
% ResultData的值分别是IGD、GD、HV、Spacing  (HV越大越好,其他指标越小越好)
ResultData=[IGD(Obtained_Pareto,True_Pareto),GD(Obtained_Pareto,True_Pareto),HV(Obtained_Pareto,True_Pareto),Spacing(Obtained_Pareto)];
else
    %计算每个算法的Spacing,Spacing越小说明解集分布越均匀
    ResultData=Spacing(Obtained_Pareto);%计算的Spacing
end
%%
disp('Repository fitness values are stored in Obtained_Pareto');
disp('Repository particles positions are store in X');

点击下方阅读原文,免费获取本文完整代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

淘个代码_

不想刀我的可以选择爱我

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

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

打赏作者

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

抵扣说明:

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

余额充值