動的多目的最適化アルゴリズム: 動的多目的ライオン グループ最適化アルゴリズム DMOLSO が cec2015 を解決します (完全な MATLAB コードと、GD、IGD、HV、および SP 評価指標を含むすべてのテスト問題の実際の POF を提供します)

1. CEC2015の紹介

現実の世界では、多くの最適化問題は多属性だけでなく、時間依存、つまり最適化問題自体が時間の変化に応じて変化する問題であり、このような問題は動的多目的最適化問題 (DMOP) と呼ばれます。) . DMOP は、多目的最適化問題の一種であり、目的が互いに競合し、目的関数、制約関数、および関連するパラメーターが時間とともに変化する可能性があります。cec2015 には、FDA4、FDA5、FDA5 iso、FDA5 dec、DIMP2、dMOP2、dMOP2_iso、dMOP2_dec、dMOP3、HE2、HE7、HE9 の合計 12 のテスト関数が含まれています。このうち、最初の 4 つのテスト関数のターゲット数は 3、残りのターゲット数は 2 です。

cec2015の詳細は以下の通りです。

2.ライオンプライド最適化アルゴリズムLSO

3. 動的多目的ライオン グループ最適化アルゴリズム DMOLSO が CEC2015 を解決

Dynamic Multi-objective Lion Swarm Optimization (DMOLSO) の人口サイズは 300 に設定され、外部アーカイブ サイズは 500 に設定されます。dMOP2_iso を例にとると、パラメーターの 4 番目のグループ、つまり環境変化の度合いを設定する場合、環境変更の頻度と反復の最大回数はそれぞれ 10/50/1000 であり、コードは次のとおりです。 ( コードでは、TestProblem を変更して異なるテスト関数 1 ~ 12 を選択し、グループを変更して異なるパラメーター設定を選択します 1 -8、利用可能な合計 96 の状況と比較して)

%% 完整MATLAB code link: https://mbd.pub/o/bread/mbd-ZJiYkp9y
close all;
clear ; 
clc;
warning off
%% cec2015 参考文献
%[1]M Helbig, AP Engelbrecht. Benchmark Functions for CEC 2015 Special Session and Competition on Dynamic Multi-objective Optimization. 


%% 动态多目标狮群优化算法(Dynamic Multi-objective Lion Swarm Optimization,DMOLSO)
TestProblem=7;%选择测试函数1-12(可以自己修改)
group=4;%选择参数1-8 (可以自己修改)
MultiObj = GetFunInfoCec2015(TestProblem);%获取测试问题维度、目标函数、上下限、目标个数等信息
MultiObj.name=GetFunPlotName(TestProblem);%获取测试问题名称
paramiter=GetFunParamiter(group);%获取参数nt taut maxgen
% 参数设置
params.Np = 100;        %Np 种群大小 (可以自己修改)
params.Nr = 200;        %Nr 外部存档大小 (可以自己修改) 注意:外部存档大小Nr不能小于种群大小Np
params.nt=paramiter(1); % nt 环境变化程度
params.taut=paramiter(2);% taut 环境变化频率  
params.maxgen=paramiter(3);%maxgen 最大迭代次数


%% 动态多目标狮群优化算法DMOLSO求解,结果为Result
Result = DMOLSO(params,MultiObj);


%% 获取真实的POF
for gen=1:params.maxgen
    if rem(gen+1,params.taut)==0
        POF_Banchmark = getBenchmarkPOF(TestProblem,group,gen);
        k=(gen+1)/params.taut;
        Result(k).TruePOF=POF_Banchmark;
    end
end
%% 计算GD IGD HV Spacing
for k=1:size(Result,2)
     Result(k).GD=GD(Result(k).PF,Result(k).TruePOF);
     Result(k).IGD=IGD(Result(k).PF,Result(k).TruePOF); 
     Result(k).HV=HV(Result(k).PF,Result(k).TruePOF);
     Result(k).Spacing=Spacing(Result(k).PF);%计算性能指标SP
end
%% 保存结果
save Result Result %保存结果
disp('Repository fitness values are stored in Result.PF');
disp('Repository particles positions are store in Result.PS');
 
 

部分的な結果:

4. 完全なコード

このフォルダーには、動的多目的ライオン グループ最適化アルゴリズムによって cec2015 を解くための完全な MATLAB コードが含まれており、GD、IGD、HV、および SP 評価インジケーターと同様に、すべての問題に対して実際の POF が提供されます。実行するには、main.m をクリックします。

おすすめ

転載: blog.csdn.net/weixin_46204734/article/details/130520830