动态多目标优化算法:基于自适应启动策略的混合交叉动态约束多目标优化算法(MC-DCMOEA)求解DCP1-DCP9(提供MATLAB代码)

一、动态多目标优化问题

1.1问题定义

1.2 动态支配关系定义

二、 基于自适应启动策略的混合交叉动态多目标优化算法

基于自适应启动策略的混合交叉动态多目标优化算法(Mixture Crossover Dynamic Constrained Multi-objective Evolutionary Algorithm Based on Self-Adaptive Start-Up Strategy, MC-DCMOEA)由耿焕同等人于2015年提出,其基于自适应冷热启动、混合交叉算子与精英群体的局部搜索等技术方法,力求克服单独采用冷启动方式而出现再次收敛速度慢、单种交叉算子 自适应不够以及正态变异多样性程度偏弱等问题。MC-DCMOEA算法描述如下:

参考文献:

[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.

三、DCP1-DCP9测试函数简介

现实生活中,存在许多动态多目标优化问题(Dynamic Multi-objective Optimization Problems,DMOPs),这类问题的目标函数之间相互矛盾,并且目标函数、约束或者参数都可能随着时间的变化而发生变化.这种随时间不断变化的特性,给解决DMOPs带来了挑战,算法不仅要能够追踪到最优解,同时还要求算法能够快速地对发生的变化做出响应。DCP系列函数详细介绍见如下文献。

参考文献:

[1]G. Chen, Y. Guo, Y. Wang, J. Liang, D. Gong and S. Yang, “Evolutionary Dynamic Constrained Multiobjective Optimization: Test Suite and Algorithm,” in IEEE Transactions on Evolutionary Computation, doi: 10.1109/TEVC.2023.3313689.
                        
原文链接:https://blog.csdn.net/weixin_46204734/article/details/137398016

四、MC-DCMOEA求解DCP1-DCP9

每个测试函数的环境变化程度、环境变化频率和最大迭代次数考虑如下八种情形:

4.1部分代码

设置种群大小为100,外部存档大小为200,以DCP1为例,当取第1组参数设置时,即环境变化程度、环境变化频率 和最大迭代次数分别为10/5/100,其代码如下:(代码中更改TestProblem以此测试不同函数DCP1-9,更改group选择不同参数设置1-8,共有72种情形可供选择

close all;
clear ; 
clc;
warning off
addpath('./DCP')
addpath('./DCP-PF')
%% 基于自适应启动策略的混合交叉动态约束多目标优化算法(MCDCMOEA)
TestProblem=1;%选择测试函数DCP1-DCP9(可以自己修改)
group=1;%选择参数1-8 (可以自己修改)
MultiObj = GetFunInfo(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部分结果

五、完整MATLAB代码

动态多目标优化算法:MC-DCMOEA求解DCP1-DCP9(MATLAB代码)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值