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

三、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.maxgenif rem(gen+1,params.taut)==0POF_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.rhkb.cn/news/143751.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YUM 升级 PHP7

文章目录 YUM 升级 PHP71. 查看当前 PHP 信息2. YUM 安装 PHP73. 查看 PHP 版本4. 启动PHP-FPM YUM 升级 PHP7 参考地址:网站地址 参考地址:网站地址 1. 查看当前 PHP 信息 # 查看 PHP 版本信息 php -v# 查看 yum 源中 PHP 信息 yum list | grep php2. …

Linux学习第22天:Linux中断驱动开发(一): 突如其来

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 中断作为驱动开发中很重要的一个概念,在实际的项目实践中经常用到。本节的主要内容包括中断简介、硬件原理分析、驱动程序开发及运行测试。其中驱动程…

网工内推 | H3C售前工程师,上市公司,13薪,有带薪年假、年终奖

01 长虹佳华 招聘岗位:高级售前工程师(H3C) 职责描述: 1. 负责公司签约代理的网络安全产品在区域的项目售前技术支持工作,包括项目售前交流、方案编写、招投标、产品测试等相关支持工作; 2. 与厂商产品部门…

多数据源Pagehelper怎么配置

1.遇到的问题 若依增加多数据源,分页报错,查了下pagehelper也要修改配置。 官方配置: 官方文档:连接多数据源sqlServer使用分页的情况下报错,不使用分页时正常。 Issue #I3NJMR 若依/RuoYi - Gitee.com 我的配置&a…

msvcp140.dll丢失的解决方法与msvcp140.dll是什么东西详细解析

在使用电脑时,可能会遇到打开软件时提示“找不到 msvcp140.dll,无法继续执行代码”的问题。这通常意味着你的计算机上缺少 Microsoft Visual C Redistributable 的运行时库,或者该库的版本不正确。下面是我找了几天的修复方法,今天…

搭建Android自动化python+appium环境

一. 需要软件 JDK:JAVA安装后配置JDK环境 SDK:SDK下载后配置adb环境 Python:pyhton语言 Pycharm:python脚本编译工具 Appium-python-client:pyhton中的库 Appium客户端 二. 搭建步骤 1. 配置JDK环境 ①. 下载安装java: https://www.oracle.com/java/technologies/jav…

聊聊并发编程——多线程之AQS

目录 队列同步器(AQS) 独占锁示例 AQS之同步队列结构 解析AQS实现 队列同步器(AQS) 队列同步器AbstractQueuedSynchronizer(以下简称同步器),是用来构建锁或者其他同步组 件的基础框架&…

26591-2011 粮油机械 糙米精选机

声明 本文是学习GB-T 26591-2011 粮油机械 糙米精选机. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了糙米精选机的有关术语和定义、工作原理、型号及基本参数、技术要求、试验方法、检 验规则、标志、包装、运输和储存要求。 …

Python二级 每周练习题20

练习一: 日期计算器 设计一款日期计算程序,能否实现下面的功能: (1)要求用户分别输入年、月、日(分三次输入); (2)程序自动会根据输入的年月日计算出这一天是这一年的第几天; (3)输出格式为:这…

C++——namespace std

命名空间(namespace) 0.使用方法 namespace 命名空间名 {... } 1. 每个命名空间都是一个作用域 同其他作用域类似,命名空间中的每个名字都必须表示该空间内的唯一实体。因为不同命名空间的作用域不同,所以在不同命名空间内可以…

巨人互动|Facebook海外户Facebook的特点优势

Facebook作为全球最大的社交媒体平台之一,同时也是最受欢迎的社交网站之一,Facebook具有许多独特的特点和优势。本文小编将说一些关于Facebook的特点及优势。 1、全球化 Facebook拥有数十亿的全球用户,覆盖了几乎所有国家和地区。这使得人们…

ios证书类型及其作用说明

ios证书类型及其作用说明 很多刚开始接触iOS证书的开发者可能不是很了解iOS证书的类型功能和概念。下面对iOS证书的几个方面进行介绍。 apple开发账号分类: 免费账号: 无需支付费用给apple,使用个人信息注册的账号 可以开发测试安装&…

文件内容显示

目录 1.浏览普通文件 1.1. 文件内容查看 1.1.1. cat 命令 例: 1.1.2 扩展tac命令: 1.1.3. more 命令 1.1.4. less命令 1.1.5. head命令 1.1.6. tail命令 1.2. 文件属性信息查看 1.2.1. file 命令 1.2.2. stat 命令 2. 文件内容过滤…

计算机竞赛 深度学习OCR中文识别 - opencv python

文章目录 0 前言1 课题背景2 实现效果3 文本区域检测网络-CTPN4 文本识别网络-CRNN5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习OCR中文识别系统 ** 该项目较为新颖,适合作为竞赛课题方向,…

DSOMEIP丢数据问题分析和总结:

(1)问题现象 无论使用arm64硬件、x86 ubuntu电脑、ubuntu docker哪种组合进行DSOMEIP event通信,接收端都会在event payload长度增加到一定程度时udp方式出现丢数据现象。 总体上arm64硬件略优于x86 ubuntu电脑,x86 ubuntu电脑略优…

CorelDRAW Graphics Suite2023绿色中文版本下载教程

CorelDRAW Graphics Suite2023版是领先的一体化软件包,它包括多个程序,如CorelDRAW、Corel PHOTO-PAINT、Corel CAPTURE、Corel Font Manager、Duplexing Wizard等,可全部安装,也可根据实际需要选择进行安装,都是最新版…

linux权限机制,

目录 用户与组,id,passwd 查看登录用户whomi,who,w 创建用户 useradd 修改用户信息usermod 删除指定用户userdel 组 ​编辑创建修改删除组groupadd groupmod groupdel 权限 ls-l 修改文件所属用户,所属组 chown,chgrp(change group) 修改权限 chmod 默认权…

CSS 模糊效果 CSS 黑白效果 CSS调整亮度 对比度 饱和度 模糊效果 黑白效果反转颜色

CSS 模糊效果 CSS 黑白效果 CSS调整亮度 饱和度 模糊效果 黑白效果 实现 调整亮度 饱和度 模糊效果 黑白效果 使用 filter1、模糊2、亮度3、对比度4、饱和度5、黑白效果6、反转颜色7、组合使用8、 filer 完整参数 实现 调整亮度 饱和度 模糊效果 黑白效果 使用 filter 1、模糊…

2023软工作业(一)——计算器

班级班级社区作业要求软件工程实践第一次作业-CSDN社区作业目标完成一个具有可视化界面的科学计算器参考文献Fyne 目录 作业要求 项目源码地址 作业目标 0. 界面及功能展示 1. PSP表格 2. 解题思路描述 3. 核心代码 4. 设计与实现过程 5. 程序性能改进 6. 单元测试展…

Qt扫盲-QSqlRelationalTableModel 理论总结

QSqlRelationalTableModel 理论总结 一、概述二、使用概述三、常用 一、概述 QSqlRelationalTableModel的行为类似于QSqlTableModel,但允许将列设置为进入其他数据库表的外键。 二、使用概述 在上面左边的截图显示了 QTableView 中的普通 QSqlTableModel。外键(…