NSGA II

多目标优化问题NSGAii实例讲解

多目标优化问题NSGAii概念介绍

首次接触多目标优化问题,以NSGA2为例介绍自己的理解,如有不妥之处,欢迎大家批评指正.
NASG II主要由两部分组成,一是非支配排序,二是拥挤距离测算。非支配排序的目的是将群体分级,拥挤距离排序的目的是对同一级别中的个体进行排序。最终选择级别高,拥挤距离大的个体作为下一代。
本文先对概念进行解释,在下一篇中将结合具体实例进行介绍。
.在这里插入图片描述

1.非支配排序

首先介绍非支配排序的概念。
假设有两个函数f1和f2.目标是f1和f2函数值越小越好。如下图所示为一些可行解。
图片:
非支配排序示例

  1. 计算每个个体的支配数量(np)和被支配集(Sp)
    1>对于节点C,节点D和节点E在F1和F2上都比C要小,所以称为:节点D和E可以支配C,所以npc=2。而被C支配的节点有B,所以Spc=[B]。
    2>对于节点D,没有节点能够支配节点D,所以npD=0。而被D支配的节点有A,B,C,所以SpD=[A,B,C]。
    3>对于节点E,没有节点能够支配节点E,所以npE=0。而被D支配的节点有B,C,所以SpE=[B,C]。
    4>对于节点A,节点D可以支配节点A,所以npA=1。而被A支配的节点没有,所以SpA=[null]。
    5>对于节点B,节点C,D,E可以支配节点B,所以npB=3。而被B支配的节点没有,所以SpB=[null]。
  2. 将所有节点分级
    1>选择群体中计数为0的个体,表示他们不被其他个体所支配,该集合分为第一级别,即F1=[D,E];
    2>为了找到F2,F1中每个个体有一个包括其支配的所有个体的列表。当前
    SpD=[A,B,C],SpE=[B,C]。
    对于列表中的每个个体,每遍历一次,相应的次数减1。当前情况下
    遍历A一次,所以npA-1,此时npA=0
    遍历B两次,所以npB-2,此时npB=1
    遍历C两次,所以npC-2,此时npC=0
    之后,将计数为0的节点归为第二类
    F2 = [A,C].
    3>为了发现F3,只需遍历F2中所有的个体,再次相减,查看哪个个体的数值为0,将他们归为F3。以此类推,可以进行个多个体的分级操作。

具体过程,参考来自[[1]]。

二、拥挤距离测算

1.拥挤距离越大越容易被保留。

拥挤距离的测算公式为
公式
CDim表示在第m个目标函数中第i个个体的拥挤度。fm表示第m个目标函数。
Xmax表示所有个体中在m函数下的最大值,Xmin表示最小值。

在这里插入图片描述

总结

非支配排序和拥挤距离是NSGA II中两个非常重要的概念。具体实例讲解会在下一篇中介绍。

[ [1]: https://www.bilibili.com/video/BV1Tz4y197C9?from=search&seid=4640222944441702255

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值