NSGA2理解

NSGA2理解NSGA-II算法学习什么是支配:支配就是统治,在各方面都优于其余个体如个体i支配个体j,就说明个体i在所有目标函数的表现上都不差于个体j,并且至少在一个目标上优于个体j;什么是非支配:非支配就是个体在种群中是最优秀的,它们在该种群中不受其余个体支配。快速非支配排序,将种群中的个体进行分层,最优秀的个体处于第一层,然后除了第一层,再从其余个体中找出非支配个体,以此类推…

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

NSGA-II算法学习

什么是支配:

支配就是统治,在各方面都优于其余个体

如个体i支配个体j,就说明个体i在所有目标函数的表现上都不差于个体j,并且至少在一个目标上优于个体j;

什么是非支配:

非支配就是个体在种群中是最优秀的,它们在该种群中不受其余个体支配。

 

快速非支配排序,将种群中的个体进行分层,最优秀的个体处于第一层,然后除了第一层,再从其余个体中找出非支配个体,以此类推。

为什么要记录np和Sp:

Np是指支配个体p的个体数,就是比个体p优秀的个体

Sp是指受p支配的个体,也就是没有个体优秀的个体。

因为算法首先可以找出第一层最优秀的个体,然后再从它们中获取到受它们所支配的个体(除了第一层都受它们支配),也就是从Sp中找,它们没有个体p优秀,让它们的np-1;因为p已经存在于第一级了。

然后再判断np是否为0,即它是否还受其余个体支配,0说明除了个体p,它不再受其余个体支配,则将这样的个体分到第二级,也就是比第一级稍微弱点的个体。

 

拥挤度是什么?

表示种群中给定点的种群密度。用来确保种群多样性。

 

 

为什么引入拥挤度?

因为在NSGA中需要认为指定一个共享参数,这个参数需要结合经验,不太好确定,所以引入拥挤度,就不需要小生境技术了。

 

当进行完快速非支配排序和拥挤度计算之后,每个个体都拥有这两个参数,然后根据拥挤度比较算子进行选择,

 

 

 

采用共享小生境技术以确保种群的多样性,但需要决策者指定共享半径。

为了解决这个问题,NSGA-II中提出了拥挤度的概念,拥挤度表示在种群中给定点的周围个体的密度,直观上用个体i周围包含个体i但不包含其余个体的最大长方形的长来表示。

算法:

每个点的拥挤度置为0

针对每个目标,对种群进行非支配排序,令边界两个个体的拥挤度为无穷。

对其余个体进行拥挤度计算:

 

 

 

算法基本思想:

首先,随机产生规模为N的初始种群Pt,产生子代种群Qt,并将两个种群联合在一起形成大小为2N的种群Rt;

其次,将父代种群与子代种群合并,进行快速非支配排序并且分层,同时对每个非支配层中的个体进行拥挤度计算,根据非支配关系以及个体的拥挤度选取合适的个体组成新的父代种群Pt+1,最后,通过遗传算法的基本操作产生新的子代种群Qt+1,将Pt+1与Qt+1合并形成新的种群Rt,重复以上操作,直到满足程序结束的条件。

拥挤度比较算子:根据非支配排序后赋予的虚拟适应度值和拥挤度来决定那些个体进入下一代。

 

 

密度估计:为了得到种群中特定解周围的解的密度估计,我们根据每一目标函数计算这点两侧的两个点的平均距离。这个数值作为以最近邻居作为顶点的长方体周长的估计(称为拥挤系数)

拥挤系数的计算需要根据每一目标函数值的大小的升序顺序对种群进行排序。因此,对每一目标函数,边界解(拥

有最大和最小值的解)被指定为无穷大距离的值。所有其它

中间的解都被指定为等于两个相邻解的函数值归一化后的绝对差值。全部拥挤系数值是通过个体每一目标的距离值的加和计算得到的。每一目标函数在计算拥挤系数前都会进过归一化处理。在页底展示的算法概括了非支配集合中所有解拥挤系数的计算过程。

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

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

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


相关推荐

  • 特殊符号大全复制_特殊符号大全爱好者工具讲解[通俗易懂]

    特殊符号大全复制_特殊符号大全爱好者工具讲解[通俗易懂]前言:明天将会举办第2期微信昵称悬赏令,第1期结果已公布,如果您还没准备好,可以先准备一下哦。下面是第1期的结果放榜-微悬令第1期活动结束,奖金会陆续发放给获奖同学!漂亮的网名昵称符号让我们在游戏或者其它平台里面显得与众不同,为了实现这样的目标,小编制作了网名在线生成器,这是一整套的工具,可以让我们快速定制出与众不同的符号特殊符号大全爱好者首先我们打开昵称符号加字器,这是个非常有用的网名…

    2022年6月11日
    96
  • 中国国家航天局:探月工程四期还有三次任务「建议收藏」

    中国国家航天局:探月工程四期还有三次任务「建议收藏」中国国家航天局:探月工程四期还有三次任务

    2022年4月21日
    57
  • char类型「建议收藏」

    char类型「建议收藏」1、JAVA中,char占2字节,16位。可在存放汉字2、char赋值chara='a';//任意单个字符,加单引号。chara='中';//任意单个中文字,加单

    2022年8月2日
    7
  • UDP 流量攻击_网络流量攻击

    UDP 流量攻击_网络流量攻击最近在群里聊天看到有人被UDP攻击我几年前也遇到过当时前任工作交接过来面临很多挑战。话又说回来凡是跳槽或主动找到你的公司都是让你去救火的。先说说UDP攻击原理很简单就是随便连接一个IP地址随便写一个端口号。IP地址存在与否并不重要。这是UDP的特性。然后发送大数据包堵塞交换机路由器。我们在局域网上模拟注意UDP不能在同一个VLAN下…

    2022年9月27日
    5
  • 使用ICSharpCode.SharpZipLib.dll实现在线解压缩

    使用ICSharpCode.SharpZipLib.dll实现在线解压缩ICSharpCode.SharpZipLib.dll是一个基于GNU的免费库文件,他的功能很强大。下载地址:http://www.icsharpcode.net/OpenSource/SharpZipLib/Download.aspx下面是对#ZipLib进行.net下的解压缩的方法的介绍。1.BZip2加入ICSharpCode.SharpZipLib.dll的引用,在#De

    2022年7月26日
    10
  • Python中字符串String去除出换行符(\n,\r)和空格的问题

    Python中字符串String去除出换行符(\n,\r)和空格的问题Python中字符串String去除出换行符和空格的问题(\n,\r)在Python的编写过程中,获取到的字符串进场存在不明原因的换行和空格,如何整合成一个单句,成为问题。方法:一、去除空格“·”代表的为空格  strip()"···xyz···".strip()#returns"xyz""···xyz···".lstrip()…

    2022年5月2日
    51

发表回复

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

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