基于自适应启动策略的混合交叉动态约束多目标优化算法(MC-DCMOEA)求解CEC2015/CEC2018/CEC2023(MATLAB代码)

news2024/11/29 0:56:26

一、动态多目标优化问题

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.

三、CEC2015简介

cec2015共包含12个测试函数,分别是FDA4、FDA5、FDA5iso、FDA5dec、DIMP2、dMOP2、dMOP2_iso、dMOP2_dec、dMOP3、 HE2、HE7和HE9。其中前四个测试函数目标数为3,其余目标数为2。

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

参考文献:

[1]Marde´ Helbig, and Andries P. Engelbrecht. "Benchmark Functions for CEC 2015 Special Session and Competition on Dynamic Multi-objective Optimization.". 

四、CEC2018简介

现实生活中,存在许多动态多目标优化问题(Dynamic Multi-objective Optimization Problems,DMOPs),这类问题的目标函数之间相互矛盾,并且目标函数、约束或者参数都可能随着时间的变化而发生变化.这种随时间不断变化的特性,给解决DMOPs带来了挑战,算法不仅要能够追踪到最优解,同时还要求算法能够快速地对发生的变化做出响应。CEC2018:动态多目标测试函数DF10~DF14的PS及PF(提供Matlab代码)_IT猿手的博客-CSDN博客

CEC2018:动态多目标测试函数DF1-DF5的PS及PF(提供MATLAB代码)cec测试函数IT猿手的博客-CSDN博客

CEC2018:动态多目标测试函数DF6~DF9的PS及PF(提供Matlab代码)_IT猿手的博客-CSDN博客

CEC2018:动态多目标测试函数DF10~DF14的PS及PF(提供Matlab代码)_IT猿手的博客-CSDN博客

CEC2018共有14个测试函数:DF1-DF14,其中DF1-DF9是两个目标,DF10-DF14是三个目标。

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

参考文献:

[1] Jiang S , Yang S , Yao X ,et al.Benchmark Functions for the CEC'2018 Competition on Dynamic Multiobjective Optimization[J]. 2018.

五、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测试函数,其详细信息如下:

六、MC-DCMOEA求解CEC2015

6.1部分代码

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

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. 


%% 基于自适应启动策略的混合交叉动态约束多目标优化算法(MCDCMOEA)
TestProblem=7;%选择测试函数1-12(可以自己修改)
group=4;%选择参数1-8 (可以自己修改)
MultiObj = GetFunInfoCec2015(TestProblem);%获取测试问题维度、目标函数、上下限、目标个数等信息
MultiObj.name=GetFunPlotName(TestProblem);%获取测试问题名称
paramiter=GetFunParamiter(group);%获取参数nt taut maxgen
% 参数设置
params.Np = 300;        %Np 种群大小 (可以自己修改)
params.Nr = 500;        %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
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 %保存结果
PlotResult;

6.2部分结果

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

(1)FDA4

(2)dMOP3

(3)dMOP2_iso

七、MC-DCMOEA求解CEC2018

7.1部分代码

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

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

7.2部分结果

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

(1)DF1

(2)DF9

(3)DF10

八、MC-DCMOEA求解CEC2023

8.1部分代码

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;


8.2部分结果


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

(1)DCF3

(2)DCF5

(3)DCF7

九、完整MATLAB代码

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

CEC2018动态多目标优化算法:基于自适应启动策略的混合交叉动态约束多目标优化算法(MC-DCMOEA)求解CEC2018_IT猿手的博客-CSDN博客

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

动态约束多目标优化(Dynamic Constrained Multiobjective Optimization,DCMO)测试函数DCF1~DCF10的turePF_IT猿手的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1055435.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习(1)---卷积神经网络(CNN)

文章目录 一、发展历史1.1 CNN简要说明1.2 猫的视觉实验1.3 新认知机1.4 LeNet-51.5 AlexNet 二、卷积层2.1 图像识别特点2.2 卷积运算2.3 卷积核2.4 填充和步长2.5 卷积计算公式2.6 多通道卷积 三、池化层 一、发展历史 1.1 CNN简要说明 1. 卷积神经网络(Convolut…

【51单片机编写占空比按秒渐亮与渐暗】2023-10-2

昨天刚在W10上安装CH340驱动,又下载到板子上LCD1602定时器时钟程序,为了调试,调用了一个LED观察控制蜂鸣器按秒响的变量,几经调试才发觉该开发板用的是有源蜂鸣器,不用IO取反操作,直接控制IO的高低电平即可…

手机号码格式校验:@Phone(自定义参数校验注解)

需求 新增接口 和 修改接口 中,手机号码的格式校验是普遍需要的。 在每个手机号码字段上添加正则表达式校验注解来实现校验,重复书写,容易出错;在不同的手机号码字段上,可能使用了不同的校验规则,无法有效…

2023年9月文章一览

2023年9月编程人总共更新了4篇文章: 1.2023年8月文章一览 2.Programming abstractions in C阅读笔记:p144-p160 3.Programming abstractions in C阅读笔记:p161-p165 4.我为什么选择这样一份经常出差的工作 9月份大部分时间在出差&#…

【论文阅读】Prototypical Networks for Few-shot Learning

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、论文摘要方法 二、视频总结 前言 本文结合论文和youtube上的视频[Few-shot learning][2.2] Prototypical Networks: intuition, algorithm, pytorch code来…

Spring Boot中的@Controller使用教程

一 Controller使用方法,如下所示: Controller是SpringBoot里最基本的组件,他的作用是把用户提交来的请求通过对URL的匹配,分配个不同的接收器,再进行处理,然后向用户返回结果。下面通过本文给大家介绍Spr…

Linux shell编程学习笔记5:变量命名规则、变量类型、使用变量时要注意的事项

跟其他的高级开发语言一样,Linux Shell编程中使用的数据也需要保存在变量中。 Shell使用变量来控制其行为,并且可以通过更改变量值来更改Shell和其他程序的行为。 我们先来了解一下变量命令的规则、变量类型和使用变量时要注意的事项。 一、变量命名规…

Redis学习笔记(常用数据类型,发布订阅,事务和锁机制,持久化,集群,雪崩,缓存击穿,分布式锁)

一、NoSQL数据库简介 解决扩展性问题,如果需要对功能进行改变(比如增删功能),用框架有一定的规范要求,无形中解决了扩展性问题。 Redis是一种典型的NoSQL数据库。 NoSQL的基础作用: 1. nginx负载均衡反向…

3. 文档操作

1. 创建文档 1.1 创建一个文档 在相应的索引下面使用_doc创建文档,地址为:http://127.0.0.1:9200/students/_doc,创建一个姓名张三的学生信息: {"姓名":"张三","年级":5,"班级":2,&qu…

MySQL数据库——索引(6)-索引使用(覆盖索引与回表查询,前缀索引,单列索引与联合索引 )、索引设计原则、索引总结

目录 索引使用(下) 覆盖索引与回表查询 思考题 前缀索引 语法 示例 前缀长度 前缀索引的查询流程 单列索引与联合索引 索引设计原则 索引总结 1.索引概述 2.索引结构 3.索引分类 4.索引语法 5.SQL性能分析 6.索引使用 7.索引设计…

ORACLE Redo Log Buffer 重做日志缓冲区机制的设计

最近和朋友包括一些国产数据库的研发人员交流,很多程序员认为 Oracle 已经过时,开源数据库或者他们研发的国产数据库才代表数据库发展的未来。甚至在很多交流会议上拿出自家产品的某一个功能点和 Oracle 对比就觉得已经遥遥领先。 实际上数据库系统的发展…

Spring Cloud Alibaba Nacos 配置中心 (配置持久化与动态刷新) 实战

文章目录 一、配置持久化到DB1. 找到配置文件2. 修改配置文件3. 执行数据库SQL4. 控制台创建配置文件 二、集成Nacos配置中心客户端1. 引入依赖2. 添加配置信息3. 创建配置信息4. 编写测试类5. 运行测试6. 动态刷新配置 一、配置持久化到DB 1. 找到配置文件 找到 nacos 的安装…

C#,数值计算——Ranlim32的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// High-quality random generator using only 32-bit arithmetic.Same conventions /// as Ran.Period is 3.11E37 . Recommended only when 64-bit arithmetic is not /// a…

中国1km土壤特征数据集(2010年)

简介&#xff1a; 中国1km土壤特征数据集&#xff08;2010&#xff09;是基于第二次全国土壤调查的中国1:1000000比例尺土壤图和8595个土壤剖面图&#xff0c;以及美国农业部&#xff08;USDA&#xff09;中国区域土地和气候模拟标准&#xff0c;开发了一个多层土壤粒度分布数…

开源layui前端框架 收款码生成系统源码 多合一收款码生成源码 带50多套UI模板

Layui前端的多合一收款码在线生成系统源码_附多套前端UI模板。 卡特三合一收款码生成系统源码&#xff0c;和收款啦采用一样的原理。 内部多达50多套模板&#xff0c;前端跟付款界面都特别好看。 识别收款码之后会自动加密&#xff0c;非常安全。 一样没有后台&#xff0c;一样…

2023年全球接口IP市场发展趋势分析:市占率第二IP品类,受大数据及计算需求推动高速增长[图]

接口IP是基于标准接口协议&#xff0c;实现芯片与内外部设备进行通信、传输数据的电路模块&#xff0c;分为有线接口IP与无线接口IP&#xff0c;主要用于数字信号处理和嵌入式系统中的接口设计。 接口IP分类 资料来源&#xff1a;共研产业咨询&#xff08;共研网&#xff09; …

深度学习:基于长短时记忆网络LSTM实现情感分析

目录 1 LSTM网络介绍 1.1 LSTM概述 1.2 LSTM网络结构 1.3 LSTM门机制 1.4 双向LSTM 2 Pytorch LSTM输入输出 2.1 LSTM参数 2.2 LSTM输入 2.3 LSTM输出 2.4 隐藏层状态初始化 3 基于LSTM实现情感分析 3.1 情感分析介绍 3.2 数据集介绍 3.3 基于pytorch的代码实现 3…

在Windows11家庭中文版中启用Copilot(预览版)

1、下载ViveTool-vx.x.x.zip 2、解压下载的压缩包ViveTool-vx.x.x.zip 3、复制ViveTool文件夹的路径 4、按下wins&#xff0c;打开搜索 5、输入cmd&#xff0c;并选择“以管理员身份运行” 6、在cmd中输入以下命令&#xff0c;进入ViveTool文件夹&#xff1a; cd ViveTool…

【最新版配置conda环境】新版pycharm导入新版anaconda环境

最近下载了新版pycharm和新版anaconda&#xff0c;并且在命令行创建了环境&#xff0c;想着在pycharm里面导入环境。结果现在的导入方式发生了变化。 之前是通过导入Python.exe进行的。 现在&#xff1a; 当我们点击进去之后&#xff0c;会发现找不到python.exe了。 具体什么…

网络安全复习大纲wcf

单选10判断10填空30简答25分析25 选择 &#xff08;1&#xff09;计算机网络安全是指利用计算机网络管理控制和技术措施&#xff0c;保证在网络环境中数据的&#xff08; &#xff09;、完整性、网络服务可用性和可审查性受到保护。 A、保密性 B、抗攻击性 C、网络服务管理性 …