当前位置: 首页 > news >正文

多目标平衡优化器黏菌算法(MOEOSMA)求解CEC2020多模式多目标优化

       多目标平衡优化器黏菌算法(MOEOSMA)比现有的多目标黏菌算法具有更好的优化性能。在MOEOSMA中,动态系数用于调整勘探和开采趋势。采用精英存档机制来促进算法的收敛性。使用拥挤距离法来保持Pareto前沿的分布。采用平衡池策略模拟黏菌的协同觅食行为,有助于提高算法的探索能力。求解最新的CEC2020函数。

       为了验证所提出的MOEOSMA的有效性,使用CEC2020函数来分析算法在目标空间和决策空间中的收敛行为。与以前的测试套件不同,CEC2020不仅包括每个测试问题的真实PF,还包括相关的局部和全局PS,使研究人员能够评估算法在目标空间和决策空间中的性能。 由于CEC2020函数包含多个全局最优PS,因此算法在目标空间中的良好性能并不意味着可以找到多个全局优化PS。决策空间(IGDX)和目标空间(IGDF)中的IGD(Zhang等人,2008)分别用于评估获得的PS和PF的质量。在决策空间中,IGDX值越小,所获得的PS就越接近真实PS。在目标空间中,IGDF值越小。所获得的PF就越接近真正的PF。

1 CEC 2020多模式多目标优化特别会议的问题定义和评估标准:

0af39baa2bc944f0ad98aad3ec9980b1.png

       在多目标优化问题中,可能存在两个或多个全局或局部帕累托最优集(PS),其中一些可能对应于相同的帕累托前沿(PF)。这些问题被定义为多模态多目标优化问题(MMOPs)。可以说,找到这些多个PS中的一个可能足以获得一些问题的可接受的解决方案。然而,未能识别多个PS可能会阻止决策者考虑可以提高性能的解决方案选项。最近,许多研究人员提出了不同的多模式多目标优化(MMO)算法。在CEC’2020的MMO测试套件中,设计了一组具有不同特征的MMO试验问题,如具有不同形状的PS和PF的问题、局部和全局PS共存的问题、PS的可扩展数量、决策变量和目标。此外,给出了一个公平、适当的评估标准和参考数据,以评估不同MMO算法的性能。

1.1 相关定义:

       如果一个解不受任何其他解支配,则称为非支配解。非支配解集称为帕累托最优集(PS)。目标空间中与PS相对应的向量集称为Pareto前沿(PF)。

       全局帕累托最优集(Global PS):对于解集GP中的任意解,如果不存在支配该集GP中任何解的解,则称GP为全局帕累托优集。

       全局Pareto Front(Global PF):目标空间中与全局PS相对应的所有向量的集合被定义为全局Pareto Front。

       局部Pareto最优集(局部PS):对于任意解eq?%5Cvec%7Bx%7D 在解集eq?P_%7BL%7D中,如果不存在邻域解eq?%5Cvec%7By%7D 满足eq?%5Cleft%20%5C%7C%20%5Cvec%7By%7D-%5Cvec%7Bx%7D%20%5Cright%20%5C%7C_%7B%5Cinfty%20%7D%5Cleq%20%5Csigmaeq?%5Csigma是一个小正值),支配集合eq?P_%7BL%7D中的任何解,则eq?P_%7BL%7D称为局部Pareto最优集;

        局部Pareto Front(局部PF):目标空间中与局部PS相对应的所有向量的集合被定义为局部Pareto Front。

       给出了判断给定多目标优化问题是否为MMO问题的方法。对于多目标优化问题,如果它满足以下条件之一,则它是MMO问题:

1)它至少有一个局部Pareto最优解;

2) 它至少有两个全局Pareto最优解对应于PF上的同一点。

       不受任何邻域解支配的解称为局部Pareto最优解。在可行空间中不受任何解支配的解称为全局Pareto最优解。

         图1显示了具有两个全局PS和一个局部PS的双目标最小化问题。带星形的实线表示全局PS/PF,而带圆点的虚线表示局部PS/PF。注意,一个多模态多目标问题可能有几个局部PS和全局PS。

752cd771137a453abfe6733424763e5d.png

1.2 MOEOSMA求解CEC2020多模式多目标函数

MMF1:

cfcef6b6fda84bc18e9b7ac1362607ca.png

5d83ed652e7b41b2b7af72e24a52456b.png

988bd96cf88945d588a1722366d0ee2e.png

MMF5: 

e193b523258f44ccbf9fec155a8869c0.png

5bc30d6ebaf34dbe86c3946ddb5ae42a.png

b429120b1dbb4ba89cf4af94c238a2dd.png

MMF7: 

3c7284cfe2304528a82021606a3226a2.png

3a42b00fa1a34d9896977ee6ff824558.png

ea0fd403b1ea41d6b5d266385443d4b6.png

c11358c94b454ad795c91e76bcdb9876.png

 

function [fname,xl,xu,n_obj,n_var,repoint,N_ops] = func_info(Func_num)
% func_info: input the number of CEC2020 function and return the information about the corresponding function
switch Func_numcase 1fname='MMF1';      % function namen_obj=2;           % the dimensions of the decision spacen_var=2;           % the dimensions of the objective spacexl=[1 -1];         % the low bounds of the decision variablesxu=[3 1];          % the up bounds of the decision variablesrepoint=[1.1,1.1]; % reference point used to calculate the hypervolume, it is set to 1.1*(max value of f_i)N_ops=2;           % the number of global PS and local PScase 2fname='MMF2';n_obj=2;n_var=2;xl=[0 0];xu=[1 2];repoint=[1.1,1.1];N_ops=2;.
.
.
.case 23fname='MMF16_l2';  % function namen_obj=3;n_var=3;xl=[0 0 0];xu=[1 1 1];repoint=[2.5,2.5,2.5];N_ops=3;case 24fname='MMF16_l3';  % function namen_obj=3;n_var=3;xl=[0 0 0];xu=[1 1 1];repoint=[2.5,2.5,2.5];N_ops=4;
end
end

 

相关文章:

多目标平衡优化器黏菌算法(MOEOSMA)求解CEC2020多模式多目标优化

多目标平衡优化器黏菌算法(MOEOSMA)比现有的多目标黏菌算法具有更好的优化性能。在MOEOSMA中,动态系数用于调整勘探和开采趋势。采用精英存档机制来促进算法的收敛性。使用拥挤距离法来保持Pareto前沿的分布。采用平衡池策略模拟黏菌的协同觅…...

快速开发微信小程序之一登录认证

一、背景 记得11、12年的时候大家一窝蜂的开始做客户端Android、IOS开发,我是14年才开始做Andoird开发,干了两年多,然后18年左右微信小程序火了,我也做了两个小程序,一个是将原有牛奶公众号的功能迁移到小程序&#x…...

Mybatis配置文件(mybatis-config.xml)和Mapper映射文件(XXXMapper.xml)模板

配置文件 ${dirver} ---> com.mysql.jdbc.Driver ${url} ---> jdbc:mysql://localhost:3306/数据库名 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""h…...

4. 条件查询

首先区分下match&#xff0c;match_phrase,term, 参考&#xff1a;https://zhuanlan.zhihu.com/p/592767668?utm_id0 1、全量查询分页指定source 示例&#xff1a;请求地址为http://127.0.0.1:9200/students/_search&#xff0c;请求体为&#xff1a; {"query":…...

【VIM】初步认识VIM-2

2-6 Vim 如何搜索替换_哔哩哔哩_bilibili 1-6行将self改成this 精确替换quack单词为交...

《HelloGitHub》第 90 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 https://github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 …...

Apache Hudi初探(五)(与flink的结合)--Flink 中hudi clean操作

背景 本文主要是具体说说Flink中的clean操作的实现 杂说闲谈 在flink中主要是CleanFunction函数&#xff1a; Overridepublic void open(Configuration parameters) throws Exception {super.open(parameters);this.writeClient FlinkWriteClients.createWriteClient(conf,…...

stream对list数据进行多字段去重

方法一&#xff1a; //根据sj和name去重 List<NursingHandover> testList list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getj() ";" o.getName() ";&…...

一种基于体素的射线检测

效果 基于体素的射线检测 一个漏检的射线检测 从起点一直递增指定步长即可得到一个稀疏的检测 bool Raycast(Vector3 from, Vector3 forword, float maxDistance){int loop 6666;Vector3 pos from;Debug.DrawLine(from, from forword * maxDistance, Color.red);while (loo…...

利用Docker安装Protostar

文章目录 一、Protostar介绍二、Ubuntu下安装docker三、安装Protostar 一、Protostar介绍 Protostar是一个免费的Linux镜像演练环境&#xff0c;包含五个系列共23道漏洞分析和利用实战题目。 Protostar的安装有两种方式 第一种是下载镜像并安装虚拟机https://github.com/Exp…...

go基础语法10问

1.使用值为 nil 的 slice、map会发生啥 允许对值为 nil 的 slice 添加元素&#xff0c;但对值为 nil 的 map 添加元素&#xff0c;则会造成运行时 panic。 // map 错误示例 func main() {var m map[string]intm["one"] 1 // error: panic: assignment to entry i…...

SpringCloud + SpringGateway 解决Get请求传参为特殊字符导致400无法通过网关转发的问题

title: “SpringCloud SpringGateway 解决Get请求传参为特殊字符导致400无法通过网关转发的问题” createTime: 2021-11-24T10:27:5708:00 updateTime: 2021-11-24T10:27:5708:00 draft: false author: “Atomicyo” tags: [“tomcat”] categories: [“java”] description: …...

vim基本操作

功能&#xff1a; 命令行模式下的文本编辑器。根据文件扩展名自动判别编程语言。支持代码缩进、代码高亮等功能。使用方式&#xff1a;vim filename 如果已有该文件&#xff0c;则打开它。 如果没有该文件&#xff0c;则打开个一个新的文件&#xff0c;并命名为filename 模式…...

Drift plus penalty 漂移加惩罚Part1——介绍和工作原理

文章目录 正文Methodology 方法论Origins and applications 起源和应用How it works 它是怎样工作的The stochastic optimization problem 随机优化问题Virtual queues 虚拟队列The drift-plus-penalty expression 漂移加惩罚表达式Drift-plus-penalty algorithmApproximate sc…...

(四)动态阈值分割

文章目录 一、基本概念二、实例解析 一、基本概念 基于局部阈值分割的dyn_threshold()算子&#xff0c;适用于一些无法用单一灰度进行分割的情况&#xff0c;如背景比较复杂&#xff0c;有的部分比前景目标亮&#xff0c;或者有的部分比前景目标暗&#xff1b;又比如前景目标包…...

jvm介绍

1. JVM是什么 JVM是Java Virtual Machine的缩写&#xff0c;即咱们经常提到的Java虚拟机。虚拟机是一种抽象化的计算机&#xff0c;有着自己完善的硬件架构&#xff0c;如处理器、堆栈等&#xff0c;具体有什么咱们不做了解。目前我们只需要知道想要运行Java文件&#xff0c;必…...

数据结构与算法课后题-第三章(顺序队和链队)

#include <iostream> //引入头文件 using namespace std;typedef int Elemtype;#define Maxsize 5 #define ERROR 0 #define OK 1typedef struct {Elemtype data[Maxsize];int front, rear;int tag; }SqQueue;void InitQueue(SqQueue& Q) //初始化队列 {Q.rear …...

SSM - Springboot - MyBatis-Plus 全栈体系(十六)

第三章 MyBatis 三、MyBatis 多表映射 2. 对一映射 2.1 需求说明 根据 ID 查询订单&#xff0c;以及订单关联的用户的信息&#xff01; 2.2 OrderMapper 接口 public interface OrderMapper {Order selectOrderWithCustomer(Integer orderId); }2.3 OrderMapper.xml 配置…...

k8s--storageClass自动创建PV

文章目录 一、storageClass自动创建PV1.1 安装NFS1.2 创建nfs storageClass1.3 测试自动创建pv 一、storageClass自动创建PV 这里使用NFS实现 1.1 安装NFS 安装nfs-server&#xff1a; sh nfs_install.sh /mnt/data03 10.60.41.0/24nfs_install.sh #!/bin/bash### How to i…...

7.3 调用函数

前言&#xff1a; 思维导图&#xff1a; 7.3.1 函数调用的形式 我的笔记&#xff1a; 函数调用的形式 在C语言中&#xff0c;调用函数是一种常见的操作&#xff0c;主要有以下几种调用方式&#xff1a; 1. 函数调用语句 此时&#xff0c;函数调用独立存在&#xff0c;作为…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...