Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >NSGA-II多目标遗传算法概述

NSGA-II多目标遗传算法概述

作者头像
里克贝斯
发布于 2021-05-21 09:09:10
发布于 2021-05-21 09:09:10
7.6K0
举报
文章被收录于专栏:图灵技术域图灵技术域

什么是NSGA-II

Non dominated sorting genetic algorithm -II NSGA-Ⅱ是目前最流行的多目标遗传算法之一,它降低了非劣排序遗传算法的复杂性,具有运行速度快,解集的收敛性好的优点,成为其他多目标优化算法性能的基准。 NSGA-Ⅱ就是在第一代非支配排序遗传算法的基础上改进而来,其改进主要是针对如上所述的三个方面: ①提出了快速非支配排序算法,一方面降低了计算的复杂度,另一方面它将父代种群跟子代种群进行合并,使得下一代的种群从双倍的空间中进行选取,从而保留了最为优秀的所有个体; ②引进精英策略,保证某些优良的种群个体在进化过程中不会被丢弃,从而提高了优化结果的精度; ③采用拥挤度和拥挤度比较算子,不但克服了NSGA中需要人为指定共享参数的缺陷,而且将其作为种群中个体间的比较标准,使得准Pareto域中的个体能均匀地扩展到整个Pareto域,保证了种群的多样性。

算法目的:针对当前M个个体,选取N个个体(M>N)。 NSGA-II关键算法(步骤) 1.先对M个个体求pareto解。然后得到F1,F2……等这些pareto的集合。 2.把F1的所有个体全部放入N,若N没满,继续放F2,直到有Fk不能全部放入已经放入F1、F2、…、F(k-1)的N(空间)。此时对Fk进行求解。 3.对于Fk中的个体,求出Fk中的每个个体的拥挤距离Lk[i](crowding distance),在fk中按照Lk[i]递减排序,放入N中,直到N满。

NSGA-II关键子程序算法

1. 快速非支配排序算法 多目标优化问题的关键在于求取Pareto最优解集。NSGA-II快速非支配排序是依据个体的非劣解水平对种群M进行分层得到Fi,作用是使得解靠近pareto最优解。这是一个循环的适应值分级过程,首先找出群体中的非支配解集,记为F1,将其所有个体赋予非支配序irank=1(其中irank是个体i的非支配序值),并从整个群体M中除去,然后继续找出余下群体中的非支配解集,记为F2,F2中的个体被赋予irank=2,如此进行下去,知道整个种群被分层,Fi层中的非支配序值相同。

2.个体拥挤距离 在同一层Fk中需要进行选择性排序,按照个体拥挤距离(crowding distance)大小排序。个体拥挤距离是Fk上与i相邻的个体i+1和i-1之间的距离,其计算步骤为: ①对同层的个体距离初始化,令L[i]d=0(表示任意个体i的拥挤距离)。 ②对同层的个体按照第m个目标函数值升序排列。 ③对于处在排序边缘上的个体要给予其选择优势。 ④对于排序中间的个体,求拥挤距离:

(其中:L[i+1]m为第i+1个体的第m目标函数值fmax,fmin分别为集合中第m目标函数的最大和最小值。) ⑤对于不同的目标函数,重复②到④的步骤,得到个体i的拥挤距离L[i]d,有限选择拥挤距离较大的个体,可以是计算结果在目标空间均匀地分布,维持群体的多样性。

3.精英策略选择算法 保持父代中优良个体直接进入子代,防止Pareto最优解丢失。 选择指标对父代Ci和子代Di合成的种群Ri进行优选,组成新父代Ci+1. 先淘汰父代中方案检验标志不可行的方案,接着按照非支配序值irank从低到高将整层种群依次放入Ci+1,直到放入某一层Fk超过N的限制,最后,依据拥挤距离大小填充Ci+1直到种群数量为N。

注释: 多目标规划中,由于存在目标之间的冲突和无法比较的现象,一个解在某个目标上是最好的,在其他的目标上可能比较差。Pareto 在1986 年提出多目标的解不受支配解(Non-dominated set)的概念。其定义为:假设任何二解S1 及S2 对所有目标而言,S1均优于S2,则我们称S1 支配S2,若S1 的解没有被其他解所支配,则S1 称为非支配解(不受支配解),也称Pareto解。这些非支配解的集合即所谓的Pareto Front。所有坐落在Pareto front 中的所有解皆不受Pareto Front 之外的解(以及Pareto Front 曲线以内的其它解)所支配,因此这些非支配解较其他解而言拥有最少的目标冲突,可提供决策者一个较佳的选择空间。在某个非支配解的基础上改进任何目标函数的同时,必然会削弱至少一个其他目标函数。

原创文章非商业转载请注明出处,商业转载请联系。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-04-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
非支配排序遗传算法进化多目标优化算法
非支配排序遗传算法(NSGA-II)是一种经典的多目标优化算法,其Matlab实现结合了遗传算法框架与非支配排序、拥挤距离等关键技术。
用户4006703
2025/07/01
1410
NSGA-II入门
在遗传算法在解决多目标优化遇到瓶颈时,许多学者花费了不少时间和精力在多目标优化的遗传算法上,Goldberg首先将Pareto最优解的概念与适应度值概念相关联,即将Pareto非支配排序分层的概念与适应度联系,排序的层次低,则其分层中个体的适应度值较高,使算法能够朝着Pareto最优前沿进化,最终输出Pareto最优解集。在提出此概念后,学者们陆续提出了一系列多目标遗传算法,如SPGA、NPGA、FFGA、NSGA等等。但是最能代表Goldberg思想的算法是基于非支配排序的遗传算法,即NSGA(Non—dominated Sorting Genetic Algorithm)。
演化计算与人工智能
2020/08/14
2.6K0
多目标优化算法(一)NSGA-Ⅱ(NSGA2)[通俗易懂]
注:没有想到这篇博客竟然有很多人查看,这是我去年写的算法,里面难免会有一些错误,大家可以看看评论区,这里的matlab代码写的不太好,是以C语言思维写的,基本上没有并行,初学者建议可以看看platEMO上的源代码,提前培养好写代码的习惯!
全栈程序员站长
2022/07/21
10.4K0
多目标优化算法(一)NSGA-Ⅱ(NSGA2)[通俗易懂]
matlab多目标优化算法之NSGA-Ⅱ【含源代码】
当优化问题的目标函数为两个或两个以上时,该优化问题就是多目标优化。不同于单目标优化问题,多目标问题没有单独的解能够同时优化所有目标,也就是目标函数之间存在着冲突关系,其最优解通常是一系列解。多目标优化问题的解决办法有两类:一种是通过加权因子等方法将多目标转换成单目标优化问题,这种方法缺点明显;现在更多地是采用基于Pareto最优解的方法。
巴山学长
2021/08/26
6.2K1
NSGA-Ⅱ算法Matlab实现(测试函数为ZDT1)
NSGA-Ⅱ就是在第一代非支配排序遗传算法的基础上改进而来,其改进主要是针对如上所述的三个方面: ①提出了快速非支配排序算法,一方面降低了计算的复杂度,另一方面它将父代种群跟子代种群进行合并,使得下一代的种群从双倍的空间中进行选取,从而保留了最为优秀的所有个体; ②引进精英策略,保证某些优良的种群个体在进化过程中不会被丢弃,从而提高了优化结果的精度; ③采用拥挤度和拥挤度比较算子,不但克服了NSGA中需要人为指定共享参数的缺陷,而且将其作为种群中个体间的比较标准,使得准Pareto域中的个体能均匀地扩展到整个Pareto域,保证了种群的多样性。
里克贝斯
2021/05/21
2.4K0
NSGA2算法详解「建议收藏」
1.预备知识 多目标优化的相关知识:https://blog.csdn.net/haha0332/article/details/88634378
全栈程序员站长
2022/08/26
5.1K0
NSGA2算法详解「建议收藏」
有约束最优化问题MATLAB_约束条件下的最优化问题
最近在做天线多目标优化的实例,因此接触到了NSGA-Ⅱ算法,所以想分享以下我个人的学习内容与经历,仅作参考,如果内容有误,也希望各位能够指出来,大家一起进行交流指正。 内容将分为以下几个模块,内容可能较多,如果觉得不错的话,可以点赞👍,收藏或者转发哦! 目录 NSGA-Ⅱ算法简介 非支配集排序 锦标赛选择 模拟二进制交叉 多项式变异 精英保留策略 参考文献 NSGA-Ⅱ算法简介 NSGA-Ⅱ算法由Deb等人首次提出,其思想为带有精英保留策略的快速非支配多目标优化算法,是一种基于Pareto最
全栈程序员站长
2022/11/07
1.6K0
有约束最优化问题MATLAB_约束条件下的最优化问题
NSGA-Ⅱ算法C++实现(测试函数为ZDT1)
https://www.omegaxyz.com/2017/04/14/nsga-iiintro/
里克贝斯
2021/05/21
2K0
NSGA-Ⅱ算法C++实现(测试函数为ZDT1)
遗传算法系列之五:多目标遗传算法和遗传编程
本文介绍了遗传算法的基本概念、发展历程、应用案例以及未来展望。遗传算法是一种基于自然选择和遗传学原理的优化搜索算法,具有高度的并行性、全局搜索能力和鲁棒性。在计算机科学、人工智能、机器学习和生物信息学等领域具有广泛的应用。随着理论和技术的发展,遗传算法在解决复杂问题、优化模型和降低计算复杂度等方面取得了重要进展。
AlgorithmDog
2018/01/08
7K0
遗传算法系列之五:多目标遗传算法和遗传编程
NSGA3算法及其MATLAB版本实现
看懂NSGA3之前,了解的NSGA2的话更有帮助,这个博士写的带约束的NSGA2的matlab版本很不错(9个非约束的测试问题和5个带约束的测试问题),大家想了解NSGA3的最好先看看。 1. Constrained NSGA2:
全栈程序员站长
2022/08/26
1.4K0
NSGA3算法及其MATLAB版本实现
Jmetal 4+ 使用指南一以NSGA-II为例
以NSGA-II为例 本文以Jmetal官网文档为基础,结合自身理解链接如下 如果你还不了解NSGA-II可以参考 NSGA-II入门 多目标优化拥挤距离计算 多目标优化按支配关系分层实现 在本节中,我们描述了jMetal中NSGA-II的实现。在jMetal下,元启发式方法由定义算法本身的类和执行该算法的另一个类组成。第二类用于指定要解决的问题,要应用的运算符,算法的参数以及需要设置的其他任何参数(自jMetal 2.0起,我们通过使用包jmetal.experiments引入了另一种方法。如第4章中所述
演化计算与人工智能
2021/04/23
1.3K0
NSGA2理解
如个体i支配个体j,就说明个体i在所有目标函数的表现上都不差于个体j,并且至少在一个目标上优于个体j;
全栈程序员站长
2022/08/31
9510
​多目标优化拥挤距离计算
[1]支配关系: https://blog.csdn.net/u013555719/article/details/91356078
演化计算与人工智能
2020/08/14
2.6K0
论文研读-多目标自适应memetic算法
论文研读-多目标自适应memetic算法 Adaptive Memetic Computing for Evolutionary Multiobjective Optimization 此篇文章为 V. A. Shim, K. C. Tan and H. Tang, "Adaptive Memetic Computing for Evolutionary Multiobjective Optimization," in IEEE Transactions on Cybernetics, vol. 45
演化计算与人工智能
2020/08/14
2.3K0
深入解析多目标优化技术:理论、实践与优化
在现代机器学习和深度学习的世界里,优化算法扮演着核心角色。它们是推动算法向预期目标前进的引擎,无论是在精度、速度还是效率方面。但随着技术的发展,我们越来越多地面临着一个不可避免的挑战:如何在多个目标间寻找最佳平衡点。这就引出了多目标优化(Multi-Objective Optimization,简称MOO)的概念。
TechLead
2024/01/17
8.2K0
深入解析多目标优化技术:理论、实践与优化
NSGA2 算法MATLAB完整代码 中文注释详解
https://download.csdn.net/download/joekepler/10590751
全栈程序员站长
2022/08/26
1.2K0
NSGA2 算法MATLAB完整代码 中文注释详解
NSGA2算法中文版详细介绍
NSGA2主要是对NSGA算法的改进。NSGA是N. Srinivas 和 K. Deb在1995年发表的一篇名为《Multiobjective function optimization using nondominated sorting genetic algorithms》的论文中提出的。该算法在快速找到Pareto前沿和保持种群多样性方面都有很好的效果,不过在这么多年的应用中也出现了如下的一些问题:
全栈程序员站长
2022/08/31
9950
外部存档指导的多目标进化算法简略版
正值毕业季,小编这里简洁明了地讲述一下自己毕业设计相关的算法。 当初之所以跟着导师学习进化算法,首先很有意思的一点是,进化算法是一种种群类算法,设计算法思路的时候感觉就像在玩策略游戏,讲求如何排兵布阵
智能算法
2018/04/02
1.8K0
外部存档指导的多目标进化算法简略版
外部存档指导的多目标进化算法简略版
正值毕业季,小编这里简洁明了地讲述一下自己毕业设计相关的算法。 当初之所以跟着导师学习进化算法,首先很有意思的一点是,进化算法是一种种群类算法,设计算法思路的时候感觉就像在玩策略游戏,讲求如何排兵布阵
智能算法
2018/04/03
9830
外部存档指导的多目标进化算法简略版
论文研读-基于决策变量聚类的大规模多目标优化进化算法
A Decision Variable Clustering-Based Evolutionary Algorithm for Large-Scale Many-Objective Optimization 此篇文章为 X. Zhang, Y. Tian, R. Cheng and Y. Jin, "A Decision Variable Clustering-Based Evolutionary Algorithm for Large-Scale Many-Objective Optimization,
演化计算与人工智能
2020/08/14
2K0
相关推荐
非支配排序遗传算法进化多目标优化算法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档