NSGA II实例讲解

NSGA II实例讲解

此文章是[1]的文字版,相关视频原链接见参考资料.
假设有一个圆规问题,目标函数为最小的底面积和最小的侧面积。
在这里插入图片描述
底面积=πr^2, 侧面积=πrsh
总的目标函数=底面积+侧面积=π
r*(r+sh).
**我们的目标是找到合适的r和h是的底面积和侧面积最小 **

1.提前准备

1.父代初始化为
,(父代的个体为随机选择)
在这里插入图片描述2.对父代进行编码,
采用二进制编码的方式。r要求在[0,10],h要求在[0,20].
假设最优解精确到两位小数,则r共有1000种取值可能,需要10位二进制数表示,而h有2000种可能,需要11位二进制数表示。于是父代的各个值可以用二进制表示,如下所示(前10位表示r,后11位表示h)
在这里插入图片描述
3.交叉
之后进行交叉操作,和生物中学到的遗传规则一样,两个个体交换一段基因,假设交换后的基因序列如下图
在这里插入图片描述
4.变异
将编码从0改为1或者从1变为0,假设经过编译后的个体如下图所示,得到6个子代
在这里插入图片描述
现在有12个个体(6个父代,6个子代,如下图所示,左边为1到6,右边为7到11),我们的目标是从这12个个体中选择优秀的个体进行下一次遗传。
在这里插入图片描述

2.非支配排序

然后经过上一篇讲的非支配排序,对这12个个体进行等级排序,排序结果如下
在这里插入图片描述

3.拥挤距离

因为我们要选择6个个体作为新的父代进行遗传,所以F5中只能选择1个,所以要对F5中的个体进行拥挤距离测算,选择出拥挤距离最大的个体。之所以选择距离较大的个体保留,是因为这个个体周围可能存在最优解,还有待开发。计算拥挤距离的公式为
在这里插入图片描述
在F5={5,6,12}中,如下图所示,对于S来说,6是边界点,对于T来说,5是边界点。所以6和5的拥挤距离将被赋予∞。
在这里插入图片描述
12的拥挤距离为0.14,计算如下图所示。因为5,和6的拥挤距离最大,所以可以随机选择一个作为新的父代。
在这里插入图片描述

4.新的父代

经过非支配排序和拥挤距离之后,新的父代为{8,2,3,4,11,5}。

整体的算法流程图如下
在这里插入图片描述

[ [1]: https://www.bilibili.com/video/BV1q7411C77i?t=389

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值