• CEC2023:基于自适应启动策略的混合交叉动态约束多目标优化算法(MC-DCMOEA)求解CEC2023(提供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.

    三、CEC2023简介

    现实生活中,存在许多动态多目标优化问题(Dynamic Multi-objective Optimization Problems,DMOPs),这类问题的目标函数之间相互矛盾,并且目标函数、约束或者参数都可能随着时间的变化而发生变化.这种随时间不断变化的特性,给解决DMOPs带来了挑战,算法不仅要能够追踪到最优解,同时还要求算法能够快速地对发生的变化做出响应。其中,动态约束多目标优化(Dynamic Constrained Multiobjective Optimization,DCMO)是动态多目标优化问题中的一种,其问题较为复杂且求解难度大。动态约束多目标优化(Dynamic Constrained Multiobjective Optimization,DCMO)测试函数DCF1~DCF10的turePF_IT猿手的博客-CSDN博客

    Benchmark Problems for CEC2023 Competition on Dynamic Constrained Multiobjective Optimization中共包含10测试函数,其详细信息如下:

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

    DCF

    DCF1~DCF10的turePF如下:

    四、MC-DCMOEA求解CEC2023

    4.1部分代码

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

    1. close all;
    2. clear ; 
    3. clc;
    4. warning off
    5. addpath('./DCF')
    6. addpath('./DCF-PF')
    7. %% 基于自适应启动策略的混合交叉动态约束多目标优化算法(MCDCMOEA)
    8. TestProblem=5;%选择测试函数1-10(可以自己修改)
    9. group=1;%选择参数1-8 (可以自己修改)
    10. MultiObj = GetFunInfoCec2023(TestProblem);%获取测试问题维度、目标函数、上下限、目标个数等信息
    11. paramiter=GetFunParamiter(group);%获取参数nt taut maxgen
    12. % 参数设置
    13. params.Np = 100;        %Np 种群大小 (可以自己修改)
    14. params.Nr = 200;        %Nr 外部存档大小 (可以自己修改) 注意:外部存档大小Nr不能小于种群大小Np
    15. params.nt=paramiter(1); % nt 环境变化程度
    16. params.taut=paramiter(2);% taut 环境变化频率  
    17. params.maxgen=paramiter(3);%maxgen 最大迭代次数
    18. %% 基于自适应启动策略的混合交叉动态约束多目标优化算法(MCDCMOEA)求解,结果为Result
    19. Result = MCDCMOEA(params,MultiObj);
    20. %% 获取真实的POF
    21. POF_Banchmark = getBenchmarkPOF(TestProblem,group);
    22. for i=1:size(POF_Banchmark,2)
    23.     Result(i).TruePOF=POF_Banchmark(i).PF;
    24. end
    25. %% 计算GD IGD HV Spacing
    26. for k=1:size(Result,2)
    27.      Result(k).GD=GD(Result(k).PF,Result(k).TruePOF);
    28.      Result(k).IGD=IGD(Result(k).PF,Result(k).TruePOF); 
    29.      Result(k).HV=HV(Result(k).PF,Result(k).TruePOF);
    30.      Result(k).Spacing=Spacing(Result(k).PF);%计算性能指标SP
    31. end
    32. %% 保存结果
    33. save Result Result %保存结果
    34. PlotResult;
    
    
        
    

    4.2部分结果

    由于测试函数共有10个,且每个测试函数均有8种参数可供选择,因而共有80种选择方案。由于篇幅限制,下面仅以DCF3、DCF5和DCF7为例,采用MCDCMOEA求解。测试其余函数只需修改代码中TestProblem和group的值。

    (1)DCF3

    (2)DCF5

    (3)DCF7

    五、完整MATLAB代码

    完整MATLAB代码请添加博客下方博主联系方式。

  • 相关阅读:
    java实现http/https请求
    语法练习:pos_neg
    1.12 进程注入ShellCode套接字
    【Java面试题】AQS为什么要使用双向链表?
    什么是依赖注入(Dependency Injection)?它在 C++ 中是如何实现的?
    task_struct
    JAVA多线程和JUC
    如何与博格华纳BorgWarner通过EDI传输业务数据?
    关于地方美食的HTML网页设计——地方美食介绍网站 HTML顺德美食介绍 html网页制作代码大全
    python笔记二【string】
  • 原文地址:https://blog.csdn.net/weixin_46204734/article/details/133969879