当前位置: 首页 > 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;作为…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

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

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

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)

目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 &#xff08;1&#xff09;输入单引号 &#xff08;2&#xff09;万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...