五种多目标优化算法(MOAHA、NSGA2、NSGA3、SPEA2、MODA)性能对比,包含47个多目标测试函数,6种评价指标,MATLAB代码

news2024/11/15 8:23:06

一、五种多目标算法及六种评价指标简介

  1. NSGA-III
    NSGA-III是Deb在2013年提出的,用于解决高维多目标优化问题。它采用参考点基于的非支配排序方法,并引入了种群的自适应标准化和关联操作,以提高算法在高维问题上的性能和多样性 。

  2. NSGA-II
    NSGA-II由Deb等人在1992年提出,是一种经典的多目标优化算法。它使用非支配排序和拥挤度计算来维持种群多样性。NSGA-II在处理最多三个目标的问题时表现良好,但对于高维多目标问题,其性能可能会下降 。

  3. SPEA2
    SPEA2(Strength Pareto Evolutionary Algorithm 2)是SPEA的改进版本,它在保持Pareto解的同时,引入了适应度共享和档案策略来提高种群多样性。SPEA2通过考虑个体间的相似性来避免种群早熟收敛 。

  4. MODA
    多目标蜻蜓算法(MODA)是一种模拟自然界蜻蜓行为的元启发式优化算法,专门设计来解决具有多个冲突目标的优化问题。这种算法通过模拟蜻蜓的觅食、领地防御和飞行行为,将其转化为搜索策略,并利用Pareto支配关系来处理多个目标,从而找到一组Pareto最优解。

  5. 多目标人工蜂鸟算法MOAHA
    在这里插入图片描述

在多目标优化中,评价指标用于衡量算法性能,特别是它们在逼近Pareto最优前沿和保持解的多样性方面的表现。以下是一些常用的多目标评价指标的介绍:

  1. Inverse Generational Distance (IGD)
    IGD是一种衡量算法生成的非支配解集与真实Pareto前沿之间距离的指标。它计算了每个真实Pareto前沿的点到最近非支配解的距离的总和,并取平均值。IGD值越小,表示算法生成的解集与真实Pareto前沿越接近。

  2. Generational Distance (GD)
    GD是IGD的一个变体,它计算了每个非支配解到真实Pareto前沿最近点的距离的总和,并取平均值。GD值越小,表示算法生成的解集在Pareto前沿上分布得越好。

  3. Hypervolume (HV)
    HV指标衡量的是算法生成的非支配解集所覆盖的区域大小。通常,这个区域是在目标函数的最小值和最大值之间定义的。HV值越大,表示算法生成的解集在目标函数空间中覆盖的范围越广。

  4. Coverage
    Coverage指标衡量一个算法生成的Pareto前沿覆盖另一个算法生成的Pareto前沿的比例。如果算法A的Coverage指标高于算法B,那么意味着算法A生成的Pareto前沿在某种程度上包含了算法B生成的Pareto前沿。

  5. Spread
    Spread指标衡量算法生成的非支配解集在Pareto前沿上的分散程度。高的Spread值意味着解集在前沿上分布得更均匀,没有聚集在某个区域。

  6. Spacing
    Spacing是衡量算法生成的非支配解集中各个解之间平均距离的指标。Spacing值越小,表示解集内部的解越密集,多样性越高。

IGD和GD可以评估算法的逼近能力,而HV、Spread和Spacing可以评估算法的多样性保持能力。Coverage则可以用来比较不同算法生成的Pareto前沿的覆盖范围。

二、部分MATLAB代码

五种多目标算法(MOAHA、NSGA2、NSGA3、SPEA2、MODA)在46个多目标测试函数(ZDT1、ZDT2、ZDT3、ZDT4、ZDT6、DTLZ1-DTLZ7、WFG1-WFG10、UF1-UF10、CF1-CF10、Kursawe、Poloni、Viennet2、Viennet3)以及1个工程应用(盘式制动器设计)上实验,并采IGD、GD、HV、Coverage、Spread、Spacing六种评价指标进行评价。

close all;
clear ;
clc;
addpath('./metric/')%添加算法路径
%%
% TestProblem测试问题说明:
%一共46个多目标测试函数,详情如下:
%1-5:ZDT1、ZDT2、ZDT3、ZDT4、ZDT6
%6-12:DZDT1-DZDT7
%13-22:wfg1-wfg10
%23-32:uf1-uf10
%33-42:cf1-cf10
%43-46:Kursawe、Poloni、Viennet2、Viennet3
%47 盘式制动器设计 温泽宇,谢珺,谢刚,续欣莹.基于新型拥挤度距离的多目标麻雀搜索算法[J].计算机工程与应用,2021,57(22):102-109.
%%
TestProblem=36;%测试函数1-47
MultiObj = GetFunInfo(TestProblem);
MultiObjFnc=MultiObj.name;%问题名
% Parameters
params.Np = 100;        % Population size 种群大小
params.Nr = 100;        % Repository size 外部存档
params.maxgen=50;    % Maximum number of generations 最大迭代次数
numOfObj=MultiObj.numOfObj;%目标函数个数
%% 算法求解,分别得到paretoPOS和paretoPOF

三、部分结果

(1)Viennet3
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

(2)ZDT4
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、完整MATLAB代码

见下方名片

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

线程 --- 同步与生产消费者模型

序言 在上一篇的内容中,我们学习了使用互斥锁来保护共享资源,避免多个线程竞争,造成数据不一致等问题。在这一篇文章中,我们将继续深入,学习多线程同步以及生产消费者模型。 1. 线程同步 1.1 什么是线程同步 线程互斥…

操作系统常见面试题总结

文章目录 1 操作系统基础1.1 什么是操作系统?1.2 操作系统主要有哪些功能?1.3 用户态和内核态1.3.1 什么是用户态和内核态?1.3.2 为什么要有用户态和内核态?只有一个内核态不行么?1.3.3 用户态和内核态是如何切换的&am…

HICOOL 2024全球创业大赛角出200个获奖项目

近日,经过超过200天的紧张竞争,HICOOL 2024全球创业大赛从124个国家和地区的7406个创新项目中脱颖而出,共选出了200个获奖项目。 其中,“新一代智能光学显微成像仪器与全流程解决方案”和“基于多尺度深度学习的功能型生物分子设…

Excel下拉框多选

记录一下学会一个新的知识! 两种方式 第一种方式:先在表格里写好需要的值,再在数据关联里面直接引入。 1.新建excel表格,输入下拉框需要的值。 2.点击——数据>有效性 3.选择——序列 4.数据来源——框住刚才写好的数据——…

IMU用于动物行为监测

近日,由比利时和法国组成的科研团队开展了一项创行性的研究,通过在牛颈部安装IMU(惯性测量单元),实现了对牛吃草行为的实时监测。该技术通过捕捉牛咀嚼时的微小动作,并结合机器学习算法,智能区分…

07--kubernetes.deploy与service

前言:这一章主要是deploy与service的配置及其原理,以及一些细节上的补充,同时还会附上镜像拉取策略和容器健康检查的一些操作实例,内容比较多,建议根据目录查看。 1、镜像拉取策略 IfNotPresent:在镜像已经存在的情况…

新迪天工®看图,专业的三维CAD看图工具

替代专业CAD软件,方便查看各种三维和二维CAD图纸 新迪天工看图是一款功能强大的三维模型和二维图纸查看工具,能帮助制造企业以较低的成本、较高的数据安全性实现产品设计数据的跨业务浏览和交互。 应用场景 1、设计图纸评审 可直接对三维模型和二维…

【MATLAB源码-第255期】基于matlab的长鼻浣熊优化算法(COA)无人机三维路径规划,输出做短路径图和适应度曲线.

操作环境: MATLAB 2022a 1、算法描述 长鼻浣熊优化算法(Coati Optimization Algorithm,COA)是一种新兴的群体智能优化算法,其灵感来源于长鼻浣熊在自然界中的觅食行为。长鼻浣熊是一种生活在美洲热带和亚热带森林中…

Redis中的数据类型及应用场景(面试版)

五种常用数据类型介绍 Redis中存储的都是key-value对结构的数据,其中key都是字符串类型,value有5种常用的数据类型: 字符串 string 哈希 hash 列表 list 集合 set 有序集合 sorted set / zset 各种数据类型特点 解释说明: …

DP10RF001支持200MHz~960MHz(G)FSK/OOK调制无线抄表工业传感无线遥控

简介 DP10RF001是一款工作于 200MHz~960MHz 范围内的低功耗、高性能、单片集成的(G)FSK/OOK无线收发芯片。内部集成完整的射频接收机、射频发射机、频率综合器、调制解调器,只需配备简单、低成本的外围器件就可以获得良好的收发性能。 芯片支持灵活可设的数据包格式…

6U VPX总线架构:搭载飞腾D2000/FT2000 + FPGA-K7(赛灵思)

"CPU FPGA" 结构是指一种结合了中央处理器(CPU)和现场可编程门阵列(FPGA)的系统架构。这种架构利用了CPU的通用计算能力和FPGA的并行处理能力,可以提供高效能、低延迟和高灵活性的计算平台。 K7是 Xilinx 7…

Linux进程信号——信号的捕捉、保存、处理

文章目录 信号的基本概念信号保存block位图pending位图handler数组 信号处理sigset_tsigemptysetsigfillsetsigaddset sigdelsetsigismembersigprocmask 捕捉信号 信号的基本概念 信号递达:实际处理信号的动作信号未决:信号从产生到递达之间的状态信号阻…

比人还毒舌的AI上线了!

前段时间社交媒体上很火的毒舌版AI,上线后异常火爆,网友把各路名人的账号输入,川普,马斯克等一干名人被吐槽得体无完肤。 现在这个功能国内也有了,推出了微博版的AI嘴替,微博上的名人纷纷中招。 体验地址&a…

如何修改注解里面的属性值

说明:Java中,注解里的属性值在编译时就已经固定了,是无法通过AOP或者反射技术直接去修改的。本文介绍如何通过动态代理的方式来修改属性值。 搭建环境 首先,创建一个简单的Spring Boot项目,pom.xml文件如下&#xff…

声音事件检测DESED 数据集介绍

DESED dataset contains:DESED Domestic Environment sound event detection; 家庭环境声音事件检测; 1. 数据 Content内容 DESED dataset contains:DESED 数据集包含: Domestic Environment sound event detection; 家庭环境声音事件检测&#xff1…

[学习笔记]在不同项目中切换Node.js版本

文章目录 使用 Node Version Manager (NVM)安装 NVM使用 NVM 安装和切换 Node.js 版本为项目指定 Node.js 版本 使用环境变量指定 Node.js安装多个版本的 Node.js设置环境变量验证配置使用 npm 脚本切换 在开发中,可能会遇到不同的Vue项目需要不同的Node.js&#xf…

各个版本jdk新特性

jdk8新特性 方法引用:方法引用允许直接通过方法的名称来引用已经存在的方法,简化了函数式接口的实现。默认方法(Default Methods):默认方法允许在接口中定义具有默认实现的方法,以便接口的实现类可以继承该…

uniapp-Vue项目如何实现国际化,实现多语言切换,拒绝多套开发,一步到位,看这篇就够

一 安装 找到自己的项目,输入cmd进入命令行,输入安装命令,点击回车进行下载: npm install vue-i18nnext 下载完将在项目的配置文件中看到: 二 使用 2.1 在项目中创建一个文件夹如:lang 用于存放不同语言的包。这些语言文件通常为JSON格式 2.2 在项目main.js文件中引入并初…

YoloV8损失函数篇(代码加理论)

首先yolov8中loss的权重可以在ultralytics/cfg/default.yaml修改 损失函数定义ultralytics/utils/loss.py 回归分支的损失函数 DFL(Distribution Focal Loss),计算anchor point的中心点到左上角和右下角的偏移量IoU Loss,定位损失,采用CIoU…

开源网络安全大模型 - SecGPT

网络安全大模型是指使用大量数据和参数来训练的人工智能模型,它可以理解和生成与网络安全相关的内容,例如漏洞报告、利用代码、攻击场景等。 目前各家网络安全厂商也纷纷跟进在大模型方面的探索,但可供广大从业者研究的特有网络安全大模型…