NSGA-III算法:如何在多目标优化问题中找到最合适的解

当我们面临多个目标函数时,单目标的遗传算法可能无法满足需求。这时,我们可以引入多目标遗传算法。在这种情况下,目标函数可能存在冲突,例如,一个目标函数需要最小化,而另一个目标函数需要最大化。某个目标函数的提高可能需要以另一个函数的降低为代价。这就引出了帕累托解(Pareto解)的概念。即每个目标都想达到最优。
true.jpg
解决pareto解有以下几种常用方法:

权重系数转换法

对于每个目标函数f(xi)(i=1,2,3,4…),赋予权重wi(i=1,2,3…),wi为目标函数重要程度,有
在这里插入图片描述

权重系数函数利用权重将多目标转化为单目标函数,将W作为评价函数。
缺点:需要自己确定特征数据的权重,主观影响较大。
OIP-C.jpg

排序选择法

基于pareto最优个体的概念对群体中的个体进行排序。然后根据这个次序进行种群选择。这样的话能够让pareto最优个体有更多的机会遗传到下一代。
缺点:仅仅度量了各个个体之间的优越次序,而并未度量各个个体的分散程度,所以容易生成相似的解,而不是分布较广的多个最优解。
v2-b13f87384cce329ea7796e4be15e43a4_r.jpg

带精英策略的非支配排序遗传算法–NSGAII

(1)采用快速非支配型排序,降低了算法复杂度。其复杂度为O(MN**2)。
(2)提出了拥挤度和拥挤度比较算子,代替需要制定共享半径的适应度共享策略。并在快速排序后的同级比较中作为胜出标准。使pareto解中的个体扩展到整个pareto域中,并均匀分布,保持了种群的多样性。
(3)引入精英策略,扩大采样空间。将父代种群和子代种群合并,保证优良个体能够留存下来。
R-C (1).jpg

算法步骤如下:

首先随机产生数量为n的初始种群

(2)然后对其进行非支配排序,,可以将种群中的个体按照pareto支配关系分成不同的层级。
(3)然后计算每个个体的拥挤度,拥挤度主要是用于衡量每个个体在目标空间中与其他个体的相似程度,拥挤度距离越大,说明个体越具有多样性。
(4)接下来,就是常规的选择,交叉,变异操作产生第一代子代种群。

从第二代开始,将父代和子代合并

然后对其进行快速非支配型排序,同时计算每个非支配层的个体进行拥挤度的计算。然后根据非支配关系和拥挤度来选择合适的个体组成新的父代种群。最后再通过选择、交叉,变异产生子代。重复。
还有几个主要的关键技术需要解释一下:
(1)快速非支配型排序
假设种群为P,则该算法需要计算P中的每个个体p的两个参数np和Sp,其中np为种群中支配个体p的个体数,Sp为种群中支配个体p的个体集合。遍历整个种群,这里那个两个参数的时间复杂度O(mN2)。
(2)拥挤度
在种群中给定点的周围个体密度,用id表示。它指出了在个体i周围包含个体i本身但不包含其他个体的最小的长方形。
(3)拥挤比较算子
经过快速非支配排序和拥挤度计算,种群中的每一个个体都得到了两个属性:非支配序rankn和拥挤度。利用这两个属性,我们可以区分种群中间任意两个个体间的支配和非支配关系。定义拥挤度比较算子,当且仅当irank>jrank或irank=jrank且id>jd,有个体i优于个体j。
(4)精英选择策略
精英策略是指在每一代的进化过程中,保留一部分优秀的个体,使得下一代的种群从父代和子代的合并种群中选择,从而提高算法的收敛性和解的质量。精英选择策略可以防止优秀的解被破坏或丢失,也可以加快非支配解集的收敛速度。
NSGAII中的精英选择策略具体如下:

  • 在每一代,首先对父代种群进行交叉和变异操作,产生子代种群。
  • 然后将父代种群和子代种群合并为一个大小为2N的种群,其中N是种群大小。
  • 对合并种群进行快速非支配排序,根据Pareto支配关系将个体分成不同的层级,并给每个个体赋予一个等级值。
  • 从最高层级开始,依次将每个层级的个体加入到下一代种群中,直到下一代种群达到N个个体或者超过N个个体。
  • 如果最后一个加入的层级导致下一代种群超过N个个体,则对该层级的个体进行拥挤度计算和比较,根据拥挤度大小选择部分个体加入到下一代种群中,使得下一代种群恰好有N个个体。
  • 重复上述步骤,直到达到预设的进化代数。

总结来说,相比于单目标函数求解,多目标函数求解明显难度提升了好几个数量级,其核心问题在于出现Pareto解。我们需要权衡各个目标函数之间的利弊,选择合适算法来求解。
下面是NSGA3算法流程图:
image.png

NSGA-III算法相比于NSGA和NSGA-II算法:

  • NSGA-III算法引入了一组均匀分布的参考点,用于指导种群的选择,保持种群的多样性和收敛性。参考点的数量和位置可以根据目标个数和种群大小自适应地确定,而不需要人为地设定。
  • NSGA-III算法采用了一种新的归一化方法,即用理想点和截距点将目标空间映射到单位超立方体中,然后计算每个个体与最近的参考点的距离,根据距离和参考点的拥挤度进行选择,这样可以避免目标之间的尺度差异和非均匀分布的影响。
  • NSGA-III算法在选择过程中,不仅考虑了个体的非支配等级,还考虑了个体的参考点关联度,即个体与参考点的距离和参考点的拥挤度,这样可以更好地平衡种群的多样性和收敛性,同时也可以避免过度选择或忽略某些目标。

结论

多目标遗传算法的核心思想是,没有最好的解,只有最合适的解。所以,不要太担心你的选择是否正确,只要你能找到一个让你满意的解,就可以啦。
R-C.jpg

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

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

相关文章

联发科MT8797迅鲲1300T规格参数_MTK5G安卓核心板方案定制

联发科MT8797(迅鲲1300T)平台采用Arm Cortex-A78和Cortex-A55组成的八核架构CPU,以及Arm Mali-G77MC9九核GPU,集成了AI处理器MediaTek APU,支持5G Sub-6GHz全频段和5G双载波聚合,支持1.08亿像素拍照和多镜头组合,以及1…

3.5 RK3399项目开发实录-板载RTLinux系统的使用(wulianjishu666)

STM32F103单片机从零到项目开发程序实例 链接:https://pan.baidu.com/s/1dWNskNinrMk4bxaE-jgHhQ?pwdymn3 1. 介绍 为了满足用户对系统实时性的需求,官方在 SDK 源码的内核基础上支持升级 Linux 到 RTLinux。 我们RTlinux支持有preempt和xenomai两个版…

032—pandas 时间窗口中最多的风向和频数

前言 时间窗口指的是在一段时间内对数据进行分析的时间段,通常是一个连续的时间段,如一小时、一天、一周或一个月等。在分析时间序列数据时,时间窗口的选择通常会影响分析结果和预测精度。 需求: 风向是指风的方向,…

如何与Polytec建立EDI连接?

Polytec Holding AG是一家总部位于奥地利的汽车供应商和塑料加工公司。该公司的业务分为四个部门:塑料,为乘用车和非汽车行业的发动机和内饰提供塑料部件;复合材料,为商用车和乘用车提供外饰和发动机零部件;汽车造型&a…

106 基于消息队列来做 mysql 大数据表数据的遍历处理

前言 最近有这样的一个需求, 我们存在一张 很大的 mysql 数据表, 数据量大概是在 六百万左右 然后 需要获取所有的记录, 将数据传输到 es 中 然后 当时 我就写了一个脚本来读取 这张大表, 然后 分页获取数据, 然后 按页进行数据处理 转换到 es 但是存在的问题是, 前面 还…

前后端项目笔记

前端项目创建 准备工作 nodejs安装 vue cli安装 vue create frontend 最后一个y的话 它会保存 方便下次创建项目 我这是手快敲错了 随自己 前端项目组件及作用 Element-UI引入 安装 npm i element-ui -S main.js中引入 清空路口App.vue 清空Home页面 随便写个按钮 原因…

HCIE考证心得 | 在云校的学习收获颇多

我是来自深圳信息职业技术学院22级现代移动通信3-3班的冯同学,我在2023年12月12日通过了华为认证Cloud Service HCIE。在此,我将分享考证中的心得体会给大家。 备考的六点建议 一是要细心严谨,做实验时要全神贯注,明确实验要求…

Python-GEE绘制DEM精美图片

目录 上传矢量和DEM获取添加颜色条参考文章 先连接上GEE的自己的项目 import ee import geemap geemap.set_proxy(port33210) ee.Authenticate() ee.Initialize(projecta-flyllf0313)上传矢量和DEM获取 使用Google Earth Engine(GEE)和Google Earth Eng…

基于单片机的模糊PID炉温控制系统设计

摘 要 电热炉是在工业热处理的生产中广泛使用的一种设备,电热炉的温度控制系统存在时变性,非线性,滞后性等特征,难以用常规PID的控制器对系统达到很好的控制效果。当控温精度的要求高时,使用传统的控制理论方法难以达…

亮相AWE 2024,日立中央空调打造定制空气新体验

日立中央空调于3月14日携旗下空气定制全新成果,亮相2024中国家电及消费电子博览会(简称AWE 2024)现场,围绕“科创先行 智引未来”这一主题,通过技术与产品向行业与消费者,展现自身对于家居空气的理解。 展会…

kanzi颜色工作流程

线性和非线性伽玛色彩空间 RGB 颜色空间的目的是表示在计算机显示器上显示的颜色。目前,sRGB是非线性伽玛色彩空间的标准。之所以需要它,是因为人类对光的感知是非线性的,而且计算机显示器对光强度具有非线性响应。 人眼比浅色更能区分深色…

Android 13 源码编译及报错修复

下载AOSP指定分支 repo init -u git://aosp../platform/manifest -b android-13.0.0_r83 同步代码到本地 repo sync -c 初始化编译环境, 选择构建目标 source build/envsetup.sh lunch 选择需要构建的目标,此处以aosp_arm64-eng为例 进行固件编译 make -j12 期间编译…

力扣热门算法题 49. 字母异位词分组,50. Pow(x, n),51. N 皇后

49. 字母异位词分组,50. Pow(x, n),51. N 皇后,每题做详细思路梳理,配套Python&Java双语代码, 2024.03.19 可通过leetcode所有测试用例。 目录 49. 字母异位词分组 解题思路 完整代码 python Java 50. Pow(x…

STM32F411 Micropython使用日记

1、开发板购买:推荐淘宝“无名科技Nologo” 19.8包邮到手;买开发板还需要买SPI NorFlash,推荐8MB的flash,不懂的可以问卖家,买回来需要焊接好,也可以找店家试试看能不能帮忙焊接,不然micropytho…

八节【DBA从入门到实践】课程,带你快速掌握OceanBase运维管理核心技能

为帮助用户及开发者更好、更快地掌握OceanBase DBA核心技能,OceanBase社区设计了配套教程——“DBA从入门到实践”。8期教程带大家循序渐进掌握OceanBase运维管理核心技能。搭配随堂习题和OceanBase技术专家在线答疑,快速掌握重要知识点,并轻…

【DL经典回顾】激活函数大汇总(二十七)(Bent Identity附代码和详细公式)

激活函数大汇总(二十七)(Bent Identity附代码和详细公式) 更多激活函数见激活函数大汇总列表 一、引言 欢迎来到我们深入探索神经网络核心组成部分——激活函数的系列博客。在人工智能的世界里,激活函数扮演着不可或…

直观与交互:山海鲸可视化软件与Excel传统表格的对比

作为一名长期使用Excel进行数据处理和分析的用户,最近我尝试了一款名为山海鲸的可视化软件,发现它与Excel传统表格之间存在诸多明显的差异。接下来,我将从个人体验视角出发,谈谈这两种工具的不同之处。 首先,从数据呈…

组件化开发

一、引言 Vue.js 的组件化开发是其核心特性之一,它允许开发者将复杂的界面拆分为可复用的、独立的、小的组件,从而提高开发效率和代码的可维护性。 二、关键点 1.组件的定义 在components下创建.vue文件timecard.vue用来编辑内容。 文件创建完毕后&am…

000_【基础篇】SpringBoot概述

介绍 springboot 是 spring 提供的一个子项目,用于快速构建 spring 应用程序 传统的 SSM 框架要导入很多依赖的 jar 包以及配置很多的配置文件,麻烦、繁琐 springboot 特性 springboot 主要(还有其他的一些特性)有起步依赖和…