原文:A Fast and Elitist Multiobjective Genetic Algorithm:
NSGA-II
翻译版:https://wenku.baidu.com/view/61daf00d0508763230121235.html

NSGA-Ⅱ中文名是:一个快速和精英机制的多目标遗传算法。本文是作者接触的第一篇多目标算法论文,所以本文尽量引用原文的知识来聚合成一篇通俗易懂的小作。

摘要:

该文致力于解决的问题:

  • O(MN3)的时间复杂度
  • 非精英机制的方法
  • 需要制定共享参数

引言

通过引出NSGA的缺点,并通过对这些问题的研究提出NSGA-Ⅱ。

  1. 支配排序的高时间复杂度:复杂度是O(MN3)。M表示目标函数的数目,N代表种群的数目。
  2. 缺少精英机制:
  3. 需要制定共享参数:为了保存种群多样性需要依赖共享。

经营机制的多目标进化算法的近况:

MOGA、NPGA、MOEA属于最早的进化算法。

  • 基于非支配排序给种群指定适应度
  • 在同一支配前沿面保持多样性

SPEA

  • 提出了一个带有非支配概念的精英机制多重判据进化算法。建议在每一子代中维持一个外部种群用于保存从开始到至今找到的非支配解。

正文

A. 快速非支配排序方法

O(MN3)方法:确定非支配前沿面,每一个解与其他解比较判断是否支配,故每个解的时间复杂度是O(MN),要找到第一前沿面需要判断每个解,故时间复杂度是O(MN2),要找到所有的前沿面最坏的时间复杂度是O(MN3)。
本文提出的O(MN2)方法:

step1. 确定两个实体:np表示被多少解支配,是一个数目,Sp表示该解所支配的解的集合,如下图所示,D点被A和C点支配,所以D点的np为2,A点支配D和E,所以A点的Sp={D,E}。

step2. 初始化,两个实体初始化都为0,通过两层循环来获得上述两个实体的值,该步时间复杂度是O(MN2)。
step3 对第一非支配面,即np为0 的解,访问其集合Sp中的每个解然后把其np-1。重复该步,即可得到所有的非支配面。由于每个解最多由N-1个支配,所以每个解被访问的次数最多为N-1次。所以该步时间复杂度为O(N2)。
综上所述,该文提出的计算非支配排序的时间复杂度为O(MN2)。

B. 保留多样性

该文提出了拥挤比较方法替换了共享函数法。

  • 密度估计:根据每一目标函数计算该点两侧的两个点的平均距离,该值作为以最近邻居作为顶点的长方体周长的估计(作为拥挤系数)。如下图,第i个解的拥挤系数为他周围长方体的长度(虚线表示)。计算拥挤系数需要对每一目标函数进行排序。

  • 拥挤算子比较:

这里对拥挤系数的算法展示一下:
其中 I[i].m 代表集合I中第i个个体第m个目标函数值。I[i]越大代表该点的密度小,越容易被选中。

以上A和B里面的两点就是该文解决的问题,接下来则是主程序。

C. 主程序

先按照非支配面进行排序,然后对每个支配面里的拥挤算子进行排序,找出前N个点,主要思想如上述B里的第二点。

多目标优化系列(一)NSGA-Ⅱ相关推荐

  1. 多目标优化系列(四)RM-MEDA

    RM-MEDA: A Regularity Model-Based Multiobjective Estimation of Distribution Algorithm 原文:http://ieee ...

  2. MATLAB应用实战系列NSGA-II多目标优化算法原理及应用实例(附MATLAB代码)

    前言 NSGA-Ⅱ是最流行的多目标遗传算法之一,它降低了非劣排序遗传算法的复杂性,具有运行速度快,解集的收敛性好的优点,成为其他多目标优化算法性能的基准. NSGA-Ⅱ算法是 Srinivas 和 D ...

  3. 【多目标优化】2. 非支配排序遗传算法 —(NSGA、NSGA-II)

    [多目标优化]1. 多目标优化的相关基本概念 [多目标优化]2. 非支配排序遗传算法 -(NSGA.NSGA-II) [多目标优化]3. 基于分解的多目标进化算法 -(MOEAD) 1. 非支配排序遗 ...

  4. MATLAB实战系列(三十九)-matlab多目标优化之海洋捕食者算法

    前言 文中涉及代码可参见 matlab多目标优化之海洋捕食者算法 海洋捕食者算法(Marine Predators Algorithm, MPA)是Afshin Faramarzi等人于2020年提出 ...

  5. 多目标优化蚁群算法的matlab_深入浅出多目标优化10分钟多目标优化入门

    多目标优化快速入门 多目标优化--引子 正如生活中,你想买一辆车,又想汽车的性能好,外观不错,价格还比较低,对于这同时满足这三个条件,我们应该如何进行考虑呢? 在投资的时候,我们想投入的资金最少,所付 ...

  6. SEO站内优化系列讲座(八)——

    SEO站内优化系列讲座(八)-- 一.面包屑路径 合理的颜色有利于用户点击: 现在的位置:首页的目标关键词 > 分集剧情介绍 > 新拿什么拯救你我的爱人电视剧(对) 现在的位置:放网站的名 ...

  7. 【NSGAII】基于NSGAII的多目标优化算法的MATLAB仿真

    1.软件版本 matlab2021a 2.本算法理论知识 NSGA-II适合应用于复杂的.多目标优化问题.是K-Deb教授于2002在论文:A Fast and Elitist Multiobject ...

  8. nsga2多目标优化之核心知识点(快速非支配排序、拥挤距离、精英选择策略)详解(python实现)

    文章目录 一.多目标优化算法简介 1.基本知识 二.NSGA2算法 1.基本原理 2.快速非支配排序 2.1快速非支配排序 python实现 3.拥挤距离 3.1 拥挤距离python 实现 4.精英 ...

  9. 推荐:Java性能优化系列集锦

    Java性能问题一直困扰着广大程序员,由于平台复杂性,要定位问题,找出其根源确实很难.随着10多年Java平台的改进以及新出现的多核多处理器,Java软件的性能和扩展性已经今非昔比了.现代JVM持续演 ...

最新文章

  1. 绝了!这款工具让SpringBoot不再需要Controller、Service、DAO、Mapper!
  2. 使用Linq读取资源文件
  3. ORACLE SQL机能优化系列(六)
  4. MongoDB导入json数据
  5. Spring控制器响应(action)请求的几种处理方式,如返回JSON,MODEL MODELVIEW,STRING
  6. 【ARM】ARM体系结构-GPIO
  7. 分享干货:靠刷算法题,真的可以刷进大厂吗?
  8. Cortex-M3工作模式与异常
  9. 非空约束 mysql
  10. MIT 算法导论 (二)Math Notation
  11. 基于角色的用户权限设计的问题,大家探讨下
  12. 《Master Bitcoin》学习笔记02——比特币的交易模型
  13. php创建图片的缩略图,如何通过php给图片创建缩略图?
  14. pip 下载torch gup版本
  15. 吉林大学超星学习通06 07 08
  16. QTTabBar在win10下多标签栏功能消失
  17. 串级控制MATLAB实验报告,串级控制系统实验报告.docx
  18. python+大数据学习day4
  19. ZooKeeper示例 实时更新server列表
  20. 普陀区科技创新型小巨人企业

热门文章

  1. 云服务器和虚拟主机有什么区别?哪个比较好呢?
  2. 智能CDN(上):CDN的访问过程和加速原理
  3. 2017.10.23 模拟考试 (题目来自:学大伟业)
  4. 服务器系统fluent,用云服务器算fluent
  5. 一个简单的画程序框图例子(画流程图)
  6. 第 2-3 课:流式布局组件详解(Flow、Wrap)
  7. 学习记录:VB.NET.操作ACCESS数据库
  8. Cognos产品功能介绍
  9. Java售票方式_Java多线程之火车售票系统
  10. sublime 集成 markdown 插件【小明同学】