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
NSGA II实例讲解相关推荐
- 完整的芯片反向设计流程原来是这样的!(实例讲解)
完整的芯片反向设计流程原来是这样的!(实例讲解) 作者:时间:2018-02-23来源:网络收藏 现代IC产业的市场竞争十分激烈,所有产品都是日新月异,使得各IC设计公司必须不断研发新产品,维持自身企 ...
- FullCalendarDemo5 控件的实例讲解—拖拽实现值班排班(五)
FullCalendarDemo5 控件的实例讲解-拖拽实现值班排班(五) (五)c# asp.net 操作FullCalendarDemo5 导出排班记录 目的:点击导出按钮,弹出参数指定对话框,选 ...
- Zsh 开发指南(第十九篇 脚本实例讲解)
导读 本文将讲解一些比较简单的 zsh 脚本实例. 实例一:复制一个目录的目录结构 功能: 将一个目录及它下边的所有目录复制到另一个目录中(即创建同名目录),但不复制目录下的其他类型文件. 例子: s ...
- 进化计算(四)——NSGA/NSGA II算法详解
NSGA/NSGA II算法理论学习 -A fast and elitist multiobjective genetic algorithm NSGA-II阅读笔记 引言 概述 为什么引入NSGA ...
- 实例讲解如何在DB2 UDB中正确的监控死锁
实例讲解如何在DB2 UDB中正确的监控死锁 aS,?Kr P 前言:这篇文章通过详细的实例阐述了如何在DB2 UDB 中监控死锁的发生.在DB2 UDB中有两种类型的监控器:快照监控器和事件监控 ...
- java实现页面高效刷新_selenium高效应对Web页面元素刷新的实例讲解
当我们在页面上进行selenium.type()或者selenium.click()操作的时候,往往需要需要等待一个元素的出现,对于一般的网页,当我们进入一个新页面的时候,往往会使用selenium. ...
- php 返回一个json对象,PHP给前端返回一个JSON对象的实例讲解
解决问题:用php做后台时,如何给前端发起的AJAX请求返回一个JSON格式的"对象": 说明:我本身是一个前端,工作久了之后发现要是不掌握一门后端开发语言的话,总感觉有点无力.最 ...
- python简易版实例_Python3之简单搭建自带服务器的实例讲解
WEB开发,我们先从搭建一个简单的服务器开始,Python自带服务模块,且python3相比于python2有很大不同, 在Python2.6版本里,/usr/bin/lib/python2.6/ 目 ...
- 手摸手教你数据可视化!(附实例讲解)
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:CrescentAI,华南理工大学,Datawhale优秀学习者 ...
最新文章
- C++中Reference与指针(Pointer)的使用对比
- !aspxpages(即!dumphttpcontext)命令输出的解释
- netty 文件传输服务器,Netty之二进制文件传输
- 在使用线程池时应特别注意对ThreadLocal的使用
- 情怀成驱动力 网游改编手游能火多久?
- 简单了解RestTemplate消息读取的转化
- 多边形对角线条数(C语言)
- mysql触发器不起作用 navicat的bug?
- 第69课 胡萝卜与骨头
- python 中time和datetime_python中time模块与datetime模块的详解
- 弗拉门戈-吉普赛婚礼-保利剧院
- android优化 清除无效代码 UCDetector
- 不同Ubuntu版本,对应ROS版本
- c语言中的面积和体积计算器,C语言编程问题(面积计算器)——新手问题
- 程序员一些有意思的智力题整理
- C语言中终端一直有光标闪烁,word里光标一直闪
- PXC pxc_strict_mode
- centos查看dns缓存_centos的dns配置总结
- vim开启粘贴板功能
- 赵小楼《天道》《遥远的救世主》解读(1)怎么评价《遥远的救世主》《天幕红尘》这两本书和《天道》这部电视剧?