五种多目标优化算法(NSGA2、MOPSO、MSSA、MOGWO、NSWOA)求解9个测试函数,包含6种评价指标(提供MATLAB代码)
一、5种多目标优化算法简介
1.1NSGA2

1.2MOPSO

1.3MSSA

1.4MOGWO

1.5NSWOA

二、5种多目标优化算法性能对比
为了测试5种算法的性能将其求解9个多目标测试函数(zdt1、zdt2 、zdt3、 zdt4、 zdt6 、Schaffer、 Kursawe 、Viennet2、 Viennet3),其中Viennet2 与Viennet3的目标数为3,其余测试函数的目标数为2,并采用6种评价指标(IGD、GD、HV、Coverage、Spread、Spacing)进行评价对比
2.1部分代码
close all;
clear ;
clc;
addpath('./NSGA2/')%添加算法路径
addpath('./MOPSO/')%添加算法路径
addpath('./MSSA/')%添加算法路径
addpath('./MOGWO/')%添加算法路径
addpath('./NSWOA/')%添加算法路径
%%
% TestProblem测试问题说明:
%一共9个多目标测试函数1-9分别是: zdt1 zdt2 zdt3 zdt4 zdt6 Schaffer Kursawe Viennet2 Viennet3
%%
TestProblem=3;%测试函数1-9
MultiObj = GetFunInfo(TestProblem);
MultiObjFnc=MultiObj.name;%问题名
% Parameters
params.Np = 100; % Population size 种群大小
params.Nr = 200; % Repository size 外部存档
params.maxgen=50; % Maximum number of generations 最大迭代次数
numOfObj=MultiObj.numOfObj;%目标函数个数
%% 算法求解,分别得到paretoPOS和paretoPOF
[Xbest1,Fbest1] = NSGA2(params,MultiObj);
[Xbest2,Fbest2] = MOPSO(params,MultiObj);
[Xbest3,Fbest3] = MSSA(params,MultiObj);
[Xbest4,Fbest4] = MOGWO(params,MultiObj);
[Xbest5,Fbest5] = NSWOA(params,MultiObj);
FbestData(1).data=Fbest1;
FbestData(2).data=Fbest2;
FbestData(3).data=Fbest3;
FbestData(4).data=Fbest4;
FbestData(5).data=Fbest5;
%% 获取测试函数的真实pareto前沿
True_Pareto=MultiObj.truePF;
%% 计算每个算法的评价指标
% ResultData的值分别是IGD、GD、HV、Coverage、Spread、Spacing
for i=1:5Fbest=FbestData(i).data;ResultData(i,:)=[IGD(Fbest,True_Pareto),GD(Fbest,True_Pareto),HV(Fbest,True_Pareto),Coverage(Fbest,True_Pareto),Spread(Fbest,True_Pareto),Spacing(Fbest,True_Pareto)];
end%% 画图
PlotFigure;
2.2部分结果
(1)以ZDT3为例:



(2)以Viennet2为例:



三、完整MATLAB代码

相关文章:
五种多目标优化算法(NSGA2、MOPSO、MSSA、MOGWO、NSWOA)求解9个测试函数,包含6种评价指标(提供MATLAB代码)
一、5种多目标优化算法简介 1.1NSGA2 1.2MOPSO 1.3MSSA 1.4MOGWO 1.5NSWOA 二、5种多目标优化算法性能对比 为了测试5种算法的性能将其求解9个多目标测试函数(zdt1、zdt2 、zdt3、 zdt4、 zdt6 、Schaffer、 Kursawe 、Viennet2、 Viennet3)࿰…...
Sora--首个大型视频生成模型
Sora--首个大型视频生成模型 胡锡进于2024年2月20日认为:台当局怂了 新的改变世界模拟器视觉数据转换视频压缩时空补丁(Spacetime Laten Patches)视频生成扩展变压器算法和模型架构结语 胡锡进于2024年2月20日认为:台当局怂了 **T…...
关于 Reflect 的笔记
背景:Reflect 为了操作对象而提供的新Api 和 Proxy对象一样 特点 将object 对象的一些明显属于语言内部的方法,放到Reflect 上处理;修改某些object返回的异常结果,让其变得更合理;让object操作都变成函数行为…...
week04day02(爬虫02)
<span>: 通常用于对文本的一部分进行样式设置或脚本操作。<a>: 定义超链接,用于创建链接到其他页面或资源的文本。<img>: 用于插入图像。<br>: 用于插入换行。 姓名:<input type"text" value"lisi">…...
【C++初阶】类和对象(中)
目录 一.类的6个默认成员函数 1.知识引入 编辑 2.构造函数 (1)概念 (2)语法特性 (3)特征 ①问题引入1 ②问题引入2 (缺少默认构造函数) 3.析构函数 (1)概念 (2)特性 4.拷贝构造函数 (1)概念 (2)特征 ①拷贝构造函数是构造函数的一…...
Python爬虫知识图谱
下面是一份详细的Python爬虫知识图谱,涵盖了从基础入门到进阶实战的各个环节,涉及网络请求、页面解析、数据提取、存储优化、反爬策略应对以及法律伦理等多个方面,并配以关键点解析和代码案例,以供读者深入学习和实践。 一、Pyth…...
安宝特AR汽车行业解决方案系列1-远程培训
在汽车行业中,AR技术的应用正悄然改变着整个产业链的运作方式,应用涵盖培训、汽修、汽车售后、PDI交付、质检以及汽车装配等,AR技术为多个环节都带来了前所未有的便利与效率提升。 安宝特AR将以系列推文的形式为读者逐一介绍在汽车行业中安宝…...
微服务篇之分布式系统理论
一、CAP定理 1.什么是CAP 1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标: 1. Consistency(一致性)。 2. Availability(可用性)。 3. Partition tolerance ࿰…...
MLflow【部署 01】MLflow官网Quick Start实操(一篇学会部署使用MLflow)
一篇学会部署使用MLflow 1.版本及环境2.官方步骤Step-1 Get MLflowStep-2 Start a Tracking ServerStep 3 - Train a model and prepare metadata for loggingStep 4 - Log the model and its metadata to MLflowStep 5 - Load the model as a Python Function (pyfunc) and us…...
NDK的log.h使用__android_log_print报错app:buildCMakeDebug[x86_64]
org.gradle.api.tasks.TaskExecutionException: Execution failed for task :app:buildCMakeDebug[x86_64] 重点是 Execution failed for task :app:buildCMakeDebug[x86_64]. 我的代码: #include <android/log.h> #define LOG_TAG "MyJNI" #d…...
【计算机网络:DHCP协议】
文章目录 前言一、DHCP是什么?二、DHCP的工作原理1.基本流程发现(DISCOVER)提供(OFFER)请求(REQUEST)确认(ACKNOWLEDGEMENT) 2.DHCP租约的概念3.DHCP续租过程 三、DHCP服…...
http前生今世
HTTP/0.9,仅支持GET方法,并且响应中没有HTTP头信息,只有文档内容。 HTTP/1.0增加了对POST方法、状态码、HTTP头信息等的支持,这一版本也是广泛应用的历史性版本。 HTTP/1.1引入了持久连接(Persistent Connections&…...
一键安装ROS适用于Ubuntu22/20/18
一键安装ROS适用于Ubuntu22/20/18 1、简介 ROS(Robot Operating System,机器人操作系统)是一个用于机器人软件开发的框架。它提供了一套工具和库,用于机器人应用程序的开发、测试和部署。ROS是由美国斯坦福大学机器人实验室&…...
OLED透明屏厂家:开启2024年新征程
随着科技的不断进步和创新,OLED透明屏作为一种前沿的显示技术,正逐渐走进人们的视野,成为多个领域的焦点。在2024年2月21日这个特殊的日子,我们这家领先的OLED透明屏厂家正式开工,预示着我们将迎来一个充满机遇和挑战的…...
【算法与数据结构】200、695、LeetCode岛屿数量(深搜+广搜) 岛屿的最大面积
文章目录 一、200、岛屿数量1.1 深度优先搜索DFS1.2 广度优先搜索BFS 二、695、岛屿的最大面积2.1 深度优先搜索DFS2.2 广度优先搜索BFS 三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、200、岛屿数量 1.1 深度优先搜…...
第四十一回 还道村受三卷天书 宋公明遇九天玄女-python创建临时文件和文件夹
宋江想回家请老父亲上山,晁盖说过几天带领山寨人马一起去。宋江还是坚持一个人去。 宋江到了宋家村,被两个都头和捕快们追捕,慌不择路,躲进了一所古庙。一会儿,听见有人说:小童奉娘娘法旨,请星主…...
Tofu5m 高速实时推理Yolov8
Tofu5m 是高性价比目标识别跟踪模块,支持可见光视频或红外网络视频的输入,支持视频下的多类型物体检测、识别、跟踪等功能。 Yolov8推理速度达到40帧每秒。 实测视频链接:Tofu5m识别跟踪模块_哔哩哔哩_bilibili 产品支持视频编码、设备管理…...
[SWPUCTF 2021 新生赛]crypto8
第一眼看见是乱码不确定是什么的编码 看了下感觉是UUencode编码 UUencode编码是一种古老的编码方式,通常用于将二进制数据转换成可打印字符的形式。UUencode编码采用一种基于64个字符的编码表,将每3个字节的数据编码为4个可打印字符,以实现…...
学习使用js调用动态函数名(动态变量函数名)
学习使用js调用动态函数名-动态变量函数名 背景代码 背景 函数名写在 html 上,在 js 中定义这个变量,js 报错该函数不存在,在此给出解决方法 代码 //html代码如下 <a data-function"qipa" class"clickMe">250&l…...
CSS 圆形的时钟秒针状的手柄绕中心点旋转的效果
<template><!-- 创建一个装载自定义加载动画的容器 --><view class="cloader"><!-- 定义加载动画主体部分 --><view class="clface"><!-- 定义类似秒针形状的小圆盘 --><view class="clsface"><!-…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...
HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法
用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法 大家好,我是Echo_Wish。最近刷短视频、看直播,有没有发现,越来越多的应用都开始“懂你”了——它们能感知你的情绪,推荐更合适的内容,甚至帮客服识别用户情绪,提升服务体验。这背后,神经网络在悄悄发力,撑起…...
Python异步编程:深入理解协程的原理与实践指南
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 持续学习,不断…...
轻量安全的密码管理工具Vaultwarden
一、Vaultwarden概述 Vaultwarden主要作用是提供一个自托管的密码管理器服务。它是Bitwarden密码管理器的第三方轻量版,由国外开发者在Bitwarden的基础上,采用Rust语言重写而成。 (一)Vaultwarden镜像的作用及特点 轻量级与高性…...
从数据报表到决策大脑:AI重构电商决策链条
在传统电商运营中,决策链条往往止步于“数据报表层”:BI工具整合历史数据,生成滞后一周甚至更久的销售分析,运营团队凭经验预判需求。当爆款突然断货、促销库存积压时,企业才惊觉标准化BI的决策时差正成为增长瓶颈。 一…...
