CEC2023 Dynamic Multi-Objective Optimization Algorithm: Based on Adaptive Startup Strategy, Hybrid Cross-Dynamic Constraint Multi-Objective Optimization Algorithm (MC-DCMOEA) solves CEC2023 (MATLAB code provided)

1. Dynamic multi-objective optimization problem

1.1 Problem Definition

1.2 Definition of dynamic dominance relationship

2. Hybrid Crossover Dynamic Multi-objective Optimization Algorithm Based on Adaptive Startup Strategy

The Mixture Crossover Dynamic Constrained Multi-objective Evolutionary Algorithm Based on Self-Adaptive Start-Up Strategy (MC-DCMOEA) was proposed by Geng Huan et al. in 2015. It is based on the self- Adapt to technical methods such as hot and cold start, mixed crossover operator and local search of elite groups, and strive to overcome the slow convergence speed, insufficient adaptation of a single crossover operator and the weak degree of normal variation diversity caused by cold start alone And other issues. The MC-DCMOEA algorithm is described as follows:

references:

[1]GENG Huan-Tong,SUN Jia-Qing,JIA Ting-Ting. A Mixture Crossover Dynamic Constrained Multi-objective Evolutionary Algorithm Based on Self-Adaptive Start-Up Strategy[J]. Pattern Recognition and Artificial Intelligence, 2015, 28(5): 411-421.

3. Introduction to CEC2023

In real life, there are many dynamic multi-objective optimization problems (Dynamic Multi-objective Optimization Problems, DMOPs), the objective functions of such problems are contradictory, and the objective function, constraints or parameters may change with time. .This characteristic of changing with time has brought challenges to solving DMOPs. The algorithm must not only be able to track the optimal solution, but also require the algorithm to respond quickly to the changes that occur. Among them, Dynamic Constrained Multiobjective Optimization (Dynamic Constrained Multiobjective Optimization, DCMO) is a kind of dynamic multiobjective optimization problem, and its problem is relatively complicated and difficult to solve. Dynamic Constrained Multiobjective Optimization (Dynamic Constrained Multiobjective Optimization, DCMO) test function DCF1~DCF10 turePF_IT ape hand blog-CSDN blog

Benchmark Problems for CEC2023 Competition on Dynamic Constrained Multiobjective Optimization contains a total of 10 test functions, the details of which are as follows:

The environment change degree, environment change frequency and maximum number of iterations of each test function consider the following eight situations:

4. MC-DCMOEA solves CEC2023

4.1 Part of the code

Set the population size to 100, and the external archive size to 200. Taking DCF5 as an example, when setting the first set of parameters, that is, the degree of environmental change, the frequency of environmental change, and the maximum number of iterations are 10/5/100 respectively. The code is as follows: (Change TestProblem in the code to select different test functions 1-10, change group to select different parameter settings 1-8, compared to a total of 80 situations to choose from)

close all;
clear ; 
clc;
warning off
addpath('./DCF')
addpath('./DCF-PF')
%% 基于自适应启动策略的混合交叉动态约束多目标优化算法(MCDCMOEA)
TestProblem=5;%选择测试函数1-10(可以自己修改)
group=1;%选择参数1-8 (可以自己修改)
MultiObj = GetFunInfoCec2023(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 最大迭代次数


%% 基于自适应启动策略的混合交叉动态约束多目标优化算法(MCDCMOEA)求解,结果为Result
Result = MCDCMOEA(params,MultiObj);


%% 获取真实的POF
POF_Banchmark = getBenchmarkPOF(TestProblem,group);
for i=1:size(POF_Banchmark,2)
    Result(i).TruePOF=POF_Banchmark(i).PF;
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 %保存结果
PlotResult;




    

4.2 Partial results

Since there are 10 test functions in total, and each test function has 8 kinds of parameters to choose from, there are 80 options in total. Due to space limitations, the following only take DCF3, DCF5 and DCF7 as examples, and use MCDCMOEA to solve them. To test the remaining functions, just modify the values ​​of TestProblem and group in the code.

(1) DCF3

(2) DCF5

(3) DCF7

Five, the complete MATLAB code

For the complete MATLAB code, please add the contact information of the blogger below the blog.

Guess you like

Origin blog.csdn.net/weixin_46204734/article/details/131609408