EMCMO--多任务优化求解约束多目标问题

EMCMO–多任务优化求解约束多目标问题

title: An Evolutionary Multitasking Optimization Framework for Constrained Multi-objective Optimization Problems

author: Kangjia Qiao, Kunjie Yu, BoyangQu, Jing Liang, Hui Song, and Caitong Yue.

journal: IEEE TRANSACTIONS ON EVOLUTIONARY COMPUTATION (TEVC)

DOI:10.1109/TEVC.2022.3145582

code:

1.主要贡献:

​ 1)提出了EMCMO算法,将约束多目标优化(CMO)问题构建为多任务优化(MTO)问题,其中一个任务是原始的CMO问题,另一个辅助任务是无约束的MOO问题。

​ 2)考虑了两类有效的知识源:父代个体以及子代个体。

2.问题提出:

​ 1)在求解CMO问题时,存在两种帕累托前沿(PF):无约束的PF(UPF)和有约束的PF(CPF),UPF和CPF之间存在如下图所示的四种关系:相同,包含,部分重叠和不重叠。所以,使用无约束的MOO和有约束的CMO一起优化并交互信息可能会提高算法的效率。

image-20241018194649024

​ 2)MTO可以通过利用任务之间的相关关系来加速多个优化任务的求解效率,并在许多实际应用中得到证明。因此,本文提出了一种基于MTO的方法来求解约束多目标优化问题。

​ 3)在没有先验知识的情况下,很难知道辅助任务中包含的约束子集的难易程度;当辅助任务太多时,又会消耗大量的计算资源。

image-20241018205919987

​ 4)迁移什么:在优化过程中包含两类知识,父代个体和子代个体。

​ 如下图所示,在优化前期,主任务的父代种群在可行域内,而辅助任务的父代种群在不可行域内。当两个任务产生了目标值更好的子代个体时,主任务的种群不能帮助主任务跳出局部可行域,辅助任务的种群也不能帮助主任务跳出局部可行域而辅助任务的子代则可以帮助主任务跳出局部可行域。所以在进化前期,子代个体是有用的知识。

image-20241018210320751

​ 在算法迭代后期,由于两个种群的PF都更接近其真实的PF,根据图1,会存在如下的四种情况:

第一类,当UPF和CPF相同时,父代种群更有效;第二类,当UPF包含CPF时,父代种群更有效;第三类,当UPF与CPF部分重叠时,则取决于它们的重叠程度,重叠部分父代种群有效,非重叠部分子代种群有效;第四类,当UPF与CPF不重叠时,子代种群更有效。

image-20241018210419467

3.EMCMO:

3.1 算法框架

​ 1)如算法1所示,EMCMO对两个任务分别初始化了一个种群 P 1 , P 2 P_1,P_2 P1,P2,并评估。

​ 2)因为不同阶段的有用知识不同,所以在主循环中,分为两个阶段:前期进化根据算法2,后期则使用算法3.
image-20241019100900908

3.2 EMCMO前期

EMCMO前期的更新过程如下图和算法2所示,具体步骤如下:

​ 1)对于每个任务随机选择父代

​ 2)每个任务分别产生子代

​ 3)将当前任务种群,当前任务子代以及辅助任务子代合并至一个临时种群中,并评估

​ 4)对于每个任务的临时种群分别进行环境选择。

换句话说,EMCMO前期的知识迁移是通过直接迁移子代个体实现的。

image-20241019100900908 image-20241019100900908 ​ ## 3.3 EMCMO后期

EMCMO后期的更新过程如下图和算法3所示,具体步骤如下:

​ 1)对每个任务,根据个体质量来选择父代,产生子代,并评估。

​ 2)根据主任务的环境选择策略选择出辅助任务中前NP个个体,并计算子代和父代种群在主任务中的成功率如下:
α P j = n u m _ P j N P α O P j = n u m _ O P j N P / 2 \alpha_{P_j}=\frac{num\_P_j}{NP}\\ \alpha_{OP_j}=\frac{num\_OP_j}{NP/2} αPj=NPnum_PjαOPj=NP/2num_OPj
α P j < α O P j \alpha_{P_j}<\alpha_{OP_j} αPj<αOPj时,说明辅助任务的子代(迁移种群)更适合主任务;否则说明辅助任务的父代(迁移种群)更适合主任务。

​ 3)将每个任务的父代,子代及辅助任务的迁移种群融合为临时种群,并在对应任务上进行评估和选择。

image-20241019100900908 image-20241019100900908

4.思考

1)EMCMO为CMO问题构建了一个辅助任务(无约束的MOO问题),通过使用MTO在两个任务之间的有效信息交互来求解CMO问题。其次,文章还分析了两个任务的PF之间的关系,以及迁移什么的问题。

2)在原始的MFEA的定义中,MTO旨在通过利用任务之间的隐式并行性来同时求解多个优化问题,而对于什么是知识,迁移什么的问题却很少有人提到。一种常用的方式是通过属于两个任务的个体进行交叉来实现的,也就是隐式知识迁移;另一种是显示知识迁移,直接或者间接地迁移个体。

3)所以进一步挖掘这种知识表示也是MTO领域的一种未来研究方向。
常用的方式是通过属于两个任务的个体进行交叉来实现的,也就是隐式知识迁移;另一种是显示知识迁移,直接或者间接地迁移个体。

3)所以进一步挖掘这种知识表示也是MTO领域的一种未来研究方向。

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

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

相关文章

C++基础补充(03)C++20 的 std::format 函数

文章目录 1. 使用C20 std::format2. 基本用法3. 格式说明 1. 使用C20 std::format 需要将VisualStudio默认的标准修改为C20 菜单“项目”-“项目属性”&#xff0c;打开如下对话框 代码中加入头文件 2. 基本用法 通过占位符{}制定格式化的位置&#xff0c;后面传入变量 #…

rk3588 opencv 的使用

-------------------------------------------------------------------------------------------------------- 目前是 3588 上无法 直接编译出 C程序。 报错如下&#xff1a; -----------------------------------------------------------------------------------------…

82.【C语言】数据结构之顺序表的初始化和销毁

目录 1.线性表 2.分类 1.静态顺序表&#xff1a;使用定长数组存储元素 代码示例(写入Seqlist.h中) 2.动态顺序表:使用与动态内存管理有关的函数 代码示例(写入Seqlist.h中) 补:数据管理的四个需求:增改删查 3.操作顺序表 1.初始化顺序表 1.不开辟空间 2.开辟空间 1…

无人机之三维航迹规划篇

一、基本原理 飞行环境建模&#xff1a;在三维航迹规划中&#xff0c;首先需要对飞行环境进行建模。这包括对地形、障碍物、气象等因素进行准确的测量和分析&#xff0c;以获得可行的飞行路径。 飞行任务需求分析&#xff1a;根据无人机的任务需求&#xff0c;确定航迹规划的…

分布式篇(分布式事务)(持续更新迭代)

一、事务 1. 什么是事务 2. 事务目的 3. 事务的流程 4. 事务四大特性 原子性&#xff08;Atomicity&#xff09; 一致性&#xff08;Consistency&#xff09; 持久性&#xff08;Durability&#xff09; 隔离性&#xff08;Isolation&#xff09; 5. MySQL VS Oracle …

汇总10个AI免费一键生成PPT的网站

一、前言 PPT幻灯片是现代办公和学习中的重要组成部分。它在工作、研究或培训中扮演着重要角色&#xff0c;并能够让观众更好地理解信息。随着当今人工智能技术的快速发展&#xff0c;现在有很多免费的AI PPT生成器可供选择&#xff0c;帮助用户更加便捷地制作出高效且具有较强…

基于SpringBoot+Vue+uniapp微信小程序的宿舍报修系统的详细设计和实现

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…

Qt获取磁盘信息+表格显示

效果展示 主要代码 获取磁盘相关数据 获取磁盘数据 Qt 没有提供相关的接口&#xff0c;需要使用 Windows API。接口解释如下&#xff1a; BOOL GetDiskFreeSpaceExW([in, optional] LPCWSTR lpDirectoryName,[out, optional] PULARGE_INTEGER lpFreeBytesAvailable…

GPIO口的学习

推挽输出 用它去控制一个mos管&#xff0c;当输出高电平时电流这样流出去&#xff0c;给外面的这颗mos管的栅极充电&#xff0c;所以这个过程称为推把电流推出去 然后当IO口输出低电平时电流这样流进来,给外面的这颗mos管的栅极放电,那这就是挽&#xff0c;把电流挽回来,所以所…

【汇编语言】寄存器(内存访问)(七)—— CPU提供的栈机制

文章目录 前言1. CPU提供的栈机制2. push指令3. 问题4. 问题的分析与解答5. pop指令结语 前言 &#x1f4cc; 汇编语言是很多相关课程&#xff08;如数据结构、操作系统、微机原理&#xff09;的重要基础。但仅仅从课程的角度出发就太片面了&#xff0c;其实学习汇编语言可以深…

fmql之Linux Uart

正点原子第48章。 串口收发测试 正点原子教程 RS232和RS485的串口收发测试是一样的。 // 设置串口波特率为115200 stty -F /dev/ttyPS1 ispeed 115200 ospeed 115200 cs8// 发送字符串 echo "www.openedv.com" >/dev/ttyPS1// 接收数据 cat /dev/ttyPS1 fmql测…

强烈推荐Kafka动画入门概念的3个讲座

强烈推荐Kafka动画入门概念的3个讲座&#xff0c;3个都是动画讲解&#xff0c;十分不错&#xff0c; 1、主题、偏移量和分区 ~ Kafka核心概念(Part1) 地址&#xff1a;主题、偏移量和分区 ~ Kafka核心概念(Part1)_哔哩哔哩_bilibili 2、偏移量提交、重平衡和消费者组 ~ Kafka核…

C Primer Plus 第9章——第一篇

你该逆袭了 文章目录 一、复习函数1、定义带形式参数的函数2、声明带形式参数函数的原型3、使用 return 从函数中返回值&#xff08;1&#xff09;、返回值不仅可以赋给变量&#xff0c;也可以被用作表达式的一部分。&#xff08;2&#xff09;、返回值不一定是变量的值&#x…

【Linux】进程池

目录 进程池 进程池的概念&#xff1a; 手搓进程池&#xff1a; 1、创建信道和子进程 2、通过channel控制子进程 3、回收管道和子进程 进程池 进程池的概念&#xff1a; 定义一个池子&#xff0c;在里面放上固定数量的进程&#xff0c;有需求来了&#xff0c;就拿一个池中…

微信小程序考试系统(lw+演示+源码+运行)

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了微信小程序考试系统的开发全过程。通过分析微信小程序考试系统管理的不足&#xff0c;创建了一个计算机管理微信小程序考试系统的方案。文章介绍了微信小程序考…

Leetcode 二叉搜索树的第 K 个元素

复习一下二叉搜索树 二叉搜索树 (Binary Search Tree, 简称 BST) 是一种特殊的二叉树(可以为空)&#xff0c;其中每个节点都有一个值&#xff0c;并且满足以下特点&#xff1a; 定义&#xff1a; 左子树节点的值小于根节点的值&#xff1a;对于每个节点&#xff0c;左子树中所…

力扣66~70题

题66&#xff08;简单&#xff09;&#xff1a; python代码&#xff1a; class Solution:def plusOne(self, digits: List[int]) -> List[int]:s_str.join([str(i) for i in digits])nstr(int(s_str)1)n_strlist(n)res[int(i) for i in n_str]return res题67&#xff08;简…

Vscode的远程开发之VScode优势(一)

一、VSCode 优势 时代的弄潮儿 vscode是微软开源的基于electron的编辑器&#xff0c;通过各种各样的插件&#xff0c;它能够变成你最花里胡哨的IDE。 vscode 最大的特点与优势就是它将Server与Client解耦&#xff1a; 作为Client的vscode&#xff0c;他只负责作为文本编辑器…

kali的学习

一、Namp的使用 首次使用时&#xff0c;要确保Metasploitable已经启动并正在运行 nmap扫描原理&#xff1a; 首先判断nmap传输的命令行中是否包含域名&#xff0c;如果包含需要利用DNS服务器进行域名分析&#xff0c;然后发送ICMP Echo Request 来探测主机存活性。 nmap默认扫描…

判断在子集

今天晚上练习赛的A没写括号&#xff0c;搞了好久&#xff0c;真的是醉了。。。 #include<bits/stdc.h> using namespace std; typedef long long ll; int t; int main() {cin>>t;while(t--){ll x,y;cin>>x>>y;if(x<y)swap(x,y);if(xy)cout<<0…