多目标进化算法详述-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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Redis集群主从复制(一主两从)搭建配置教程【Windows环境】

    如何学会在合适的场景使用合适的技术方案,这值得思考。由于本地环境的使用,所以搭建一个本地的Redis集群,本篇讲解Redis主从复制集群的搭建,使用的平台是Windows,搭建的思路和Linux上基本一致! (精读阅读本篇可能花费您15分钟,略读需5分钟左右)Redis主从复制简单介绍为了使得集群在一部分节点下线或者无法与集群的大多数节点进行通讯的情况下, 仍然可以正常运…

    2022年2月27日
    59
  • html网页中加入音乐播放器,[HTML5]简单网页本地音乐播放器[通俗易懂]

    html网页中加入音乐播放器,[HTML5]简单网页本地音乐播放器[通俗易懂]既然HTML5提出与本地交互方便,就想写个HTML5的本地音乐播放器。一开始问题主要集中在怎么读取本地文件路径,我想肯定可以用JS实现去操作本地文件(因为node.js很容易实现读取本地文件,但是原生JS怎么写不太清楚),不过简单一点就用这样只能读取一个,我想做的是最好是把一个文件夹中的都取出来,然后参考http://sapphion.com/2011/11/html5-folder-upload…

    2022年6月21日
    23
  • 【Java】一篇文章带你了解String、StringBuffer和StringBuilder的区别

    【Java】一篇文章带你了解String、StringBuffer和StringBuilder的区别String:字符串常量StringBuffer:字符串变量(多线程情况下使用,保护线程安全)synchronized:保护线程安全的StringBuilder:字符串变量(单线程情况下使用)String、StringBuffer、StringBuilder的主要区别:1.String类的内容不可以修改,而StringBuffer和StringBuilder的内容可以修改;2.StringBuffer和StringBuilder的大部分功能都是相似的;3.StringBu..

    2022年7月17日
    19
  • py爬取图片_Python爬取图片

    py爬取图片_Python爬取图片疲惫的生活里总要有些温柔梦想吧目标URL:http://www.win4000.com/meinvtag4_1.html爬取美桌网某个标签下的美女壁纸,点进详情页可以发现,里面是一组套图一…

    2025年11月16日
    3
  • 【MySQL 数据库】数据库的基础知识「建议收藏」

    【MySQL 数据库】数据库的基础知识「建议收藏」文章目录1.认识数据库1.1数据库和数据结构的关系1.2为什么需要数据库1.3数据库的存储2.SQL2.1介绍2.2分类3.数据库的类别3.1关系型数据库3.2非关系型数据库3.3区别4.MySQL的程序结构4.1客户端和服务器4.2MySQL的客户端-服务器结构4.3MySQL服务器1.认识数据库1.1数据库和数据结构的关系数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合,是一个抽象的学科我们熟知的数据结构有:顺序表、链表、栈、队列、二

    2022年6月26日
    24
  • 详解HTML超链接

    详解HTML超链接超链接是互联网提供的最令人兴奋的创新之一,它们从一开始就一直是互联网的一个特性,使互联网成为互联的网络。HTML超链接也是各个网站网页之间实现相互连接的一个手段之一,被广泛应用在各大网站。HTML超

    2022年7月4日
    34

发表回复

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

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