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

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...

构建Docker镜像的Dockerfile文件详解

文章目录 前言Dockerfile 案例docker build1. 基本构建2. 指定 Dockerfile 路径3. 设置构建时变量4. 不使用缓存5. 删除中间容器6. 拉取最新基础镜像7. 静默输出完整示例 docker runDockerFile 入门syntax指定构造器FROM基础镜像RUN命令注释COPY复制ENV设置环境变量EXPOSE暴露端…...

初级程序员入门指南

初级程序员入门指南 在数字化浪潮中&#xff0c;编程已然成为极具价值的技能。对于渴望踏入程序员行列的新手而言&#xff0c;明晰入门路径与必备知识是开启征程的关键。本文将为初级程序员提供全面的入门指引。 一、明确学习方向 &#xff08;一&#xff09;编程语言抉择 编…...

安宝特方案丨从依赖经验到数据驱动:AR套件重构特种装备装配与质检全流程

在高压电气装备、军工装备、石油测井仪器装备、计算存储服务器和机柜、核磁医疗装备、大型发动机组等特种装备生产型企业&#xff0c;其产品具有“小批量、多品种、人工装配、价值高”的特点。 生产管理中存在传统SOP文件内容缺失、SOP更新不及、装配严重依赖个人经验、产品装…...

codeforces C. Cool Partition

目录 题目简述&#xff1a; 思路&#xff1a; 总代码&#xff1a; https://codeforces.com/contest/2117/problem/C 题目简述&#xff1a; 给定一个整数数组&#xff0c;现要求你对数组进行分割&#xff0c;但需满足条件&#xff1a;前一个子数组中的值必须在后一个子数组中…...

Async-profiler 内存采样机制解析:从原理到实现

引言 在 Java 性能调优的工具箱中&#xff0c;async-profiler 是一款备受青睐的低开销采样分析器。它不仅能分析 CPU 热点&#xff0c;还能精确追踪内存分配情况。本文将深入探讨 async-profiler 实现内存采样的多种机制&#xff0c;结合代码示例解析其工作原理。 为什么需要内…...