多目标进化算法详述-MOEA/D与NSGA2优劣比较

多目标进化算法详述-MOEA/D与NSGA2优劣比较多目标进化算法系列1.多目标进化算法(MOEA)概述2.多目标优化-测试问题及其Pareto前沿3.多目标进化算法详述-MOEA/D与NSGA2优劣比较4.多目标进化算法-约束问题的处理方法NSGA-II由KalyanmoyDeb等人于2002年在文章”AFastandElitistMultiobjectiveGeneticAlgorithm:…

大家好,又见面了,我是你们的朋友全栈君。

多目标进化算法系列

  1. 多目标进化算法(MOEA)概述
  2. 多目标优化-测试问题及其Pareto前沿
  3. 多目标进化算法详述-MOEA/D与NSGA2优劣比较
  4. 多目标进化算法-约束问题的处理方法
  5. 基于C#的多目标进化算法平台MOEAPlat实现
  6. MOEAD中聚合函数等高线分析
  7. MOEAD中一种使解更均匀分布的聚合函数介绍

NSGA-II由Kalyanmoy Deb等人于2002年在文章”A Fast and Elitist Multiobjective Genetic Algorithm: NSGA-II”中提出,是对1994年提出的NSGA的改进,相比于NSGA,NSGA2的改进主要两点:

  1. 提出一种快速非支配排序,使得Pareto支配排序的时间复杂度由 O ( N 3 ) O(N^3) O(N3)优化到 O ( N 2 ) O(N^2) O(N2)
  2. 提出一种拥挤距离来衡量解的分布性,并基于此选择种群中的合适的个体

NSGA-II的提出,为多目标进化算法的一大进步,特别是其基于Pareto支配关系的框架被后来许多算法采用,如NSGA-III,VaEA等。同时,NSGA-II对于低维多目标优化问题效果是不错的,但是对于高维多目标优化问题,其首先面对的便是由于其基于Pareto支配关系所导致的选择压力过小的问题,其次,便是拥挤距离在高维空间不适用,计算复杂度也比较高。

MOEA/D由张青富老师等人于2007年在文章”MOEA/D: A Multiobjective Evolutionary Algorithm Based on Decomposition”中提出。MOEA/D将一个多目标优化问题转换为多个标量子问题,且每一个子问题由一个均匀分布的权重向量构成,对于每生成一个新解,则基于聚合函数对该子问题附近的解进行替换。MOEA/D的优时如下:

  1. 收敛更快,计算复杂度低;
  2. 对于比较简单的PF,由于指导进化的权重向量是均匀分布的,因此MOEA/D所得到的解分布比较均匀

MOEA/D的提出为多目标进化算法提供了一种新的解决方案,基于MOEA/D的算法随后遍地开花,MOEA/DD,MOEA/D-STM,MOEA/D-SAS等。标准的MOEA/D对于低维简单PF的多目标优化问题效果是很好的,但对于复杂PF的问题,其分布性将会大打折扣,同时,对于高维多目标优化问题,其分布性也不能得到保证,效果也比较差。

下面比较两种算法的优劣:

  1. 从低维多目标优化问题(2-,3-目标)看:
    低维情况也要分两种情况考虑,一种是简单的PF的MOP,一种是复杂PF的MOP。
    首先来看简单的PF的情况。以2维的DTLZ1为例,下面两张图分别是NSGA-II和MOEA/D得到的2维DTLZ1的散点图。

NSGA-II
MOEA/D
很显然,对于2维DTLZ1,MOEA/D无论在均匀度上面,还是收敛性上面都优于NSGA-II。
下面再看复杂PF的情况,在此以有long tail 和 sharp peak的PF的F1为例,下面两张图就是NSGA-II和MOEA/D得到的近似解的散点图。

NSGA-II
MOEA/D
不难看出,对于F1来说,NSGA-II的效果是优于MOEA/D的,这主要是因为MOEA/D基于均匀分布的权重向量来指导进化的进行,但对于这类复杂PF的MOP,单位超平面上分布均匀的权重向量并不能保证解的均匀分布性。
3. 从高维看
NSGA-II 首先存在选择压力过小的问题 再就是拥挤距离的计算及其复杂
MOEA/D 在高维情况下分布性也不是很好

但总的来看,不管低维还是高维,MOEA/D比NSGA-II的速度快很多。

QQ交流群:399652146

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144609.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 十大移动开发平台

    十大移动开发平台1.PutdbWebBuilder    WebBuilder是一款开源的可视化移动Web应用开发和运行平台。基于浏览器的集成开发环境,可视化和智能化的设计,能轻松完成常规应用和面向手机的移动应用开发;高效、稳定和可扩展的特点,适合复杂企业级应用的运行;跨平台、数据库和浏览器的架构,适应复杂的服务器和客户端环境;包括智能数据库访问在内的多项先进技术,使应用系统的开发更快捷和简单。 …

    2022年5月31日
    42
  • 【大话QT之十六】使用ctkPluginFramework插件系统构建项目实战「建议收藏」

    【大话QT之十六】使用ctkPluginFramework插件系统构建项目实战「建议收藏」”使用ctkPluginFramework插件系统构建项目实战”,这篇文章是写博客以来最纠结的一篇文章。倒不是因为技术都多么困难,而是想去描述一个项目架构采用ctkPluginFramework来构建总是未尽其意,描述的太少未免词不达意,描述的太多又显得太啰嗦。有些看过之前写的【大话QT之四】ctkPlugin插件系统实现项目插件式开发这篇文章的朋友也想了解一下到底如果从零开始架构一个项目。在写这

    2022年6月6日
    29
  • Latex 参考文献上标

    Latex 参考文献上标1.如何使连续的参考文献能够中间用破折号连起来?比如[6,7,8,9]变成[6-9]?方法:在文档开始前加上下面的语句命令\usepackage[numbers,sort&compress]{natbib}不但可以压缩参考文献标号,还可以进行排序,即无论正文里面的顺序怎样,显示出来都是先后顺序。在elsevier模板中,natbib包已经默认引用了,无需重新引用,改一下natb

    2025年10月16日
    2
  • eclipse改变html字体大小,eclipse字体大小设置(eclipse如何调整页面字体大小)

    eclipse改变html字体大小,eclipse字体大小设置(eclipse如何调整页面字体大小)eclipse 字体大小设置 eclipse 如何调整页面字体大小 每个人在敲代码的时候习惯都不会一样 有的人喜欢字体大一些看起来容易 有的人喜欢字体小一些 看的范围广 看得更全面 这样今天教大家如何调整字体的大小 找到适合自己的才是最好的 1 首先我们在电脑桌面上找到 eclipse 工具 然后打开 因本人电脑桌面太乱 所以只截取核心部分 2 打开 eclipse 以后 随便找一个项目的代码 打开 可以看百思

    2025年10月18日
    4
  • 故障解决 | win10没声音及找不到Realtek高清音频管理器「建议收藏」

    故障解决 | win10没声音及找不到Realtek高清音频管理器「建议收藏」重装win10系统后,电脑没声音,更新驱动以及万不得已下载驱动精灵都没有解决。后来发现在“硬件和声音”中没有Realtek高清音频管理器,之后找到解决办法如下:1.找到Realtek高清音频

    2022年8月1日
    6
  • css实现返回顶部,实现返回顶部效果

    css实现返回顶部,实现返回顶部效果实现的效果如下可以点击它返回到首页去html部分title=”返回顶部”>css部分.layui-fixbar{position:fixed;right:15px;bottom:15px;z-index:999999;right:50px;bottom:50px;height:50px;list-style:none;}.layui-fixbar.layui-fixba…

    2022年7月13日
    167

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号