NSGA2学习(1)——与遗传算法的比较
说明
本文旨在对NSGA2和遗传算法GA的内容进行对比分析来加深对NSGA2算法的了解,里面的内容可能有部分错误,没有具体的代码只有一些分析来理解NSGA2的算法过程
初始种群的对比
相同点
- 都需要种群数量NP,维度D以及变量的取值范围即Xmax和Xmin
不同点
- NSGA2是解决多目标的算法,GA是单目标的算法
- NSGA2的种群f的维度不仅仅包括了变量X,还有目标函数的值以及目标函数的评价(支配关系和拥挤度),GA的种群只有变量X
对种群个体的评价的对比
相同点
- 都是计算目标函数的值来评价种群个体的优劣
不同点
- NSGA2计算得到的目标函数值储存在种群f中,GA算法计算得到的目标函数值一般储存在适应度fitness中
- NSGA2对种群个体的支配关系以及拥挤度进行比较来评价个体,GA是直接比较适应度来评价个体
交叉和变异操作的的对比
相同点
- 都采用了交叉和变异操作
不同点
- NSGA2种群个体中交叉和变异有且仅有一个发生,GA种群个体交叉和变异都可以发生也可以都不发生
- NSGA2在一个个体交叉和变异后会直接计算目标函数值,GA则是在种群完成后再计算或者合并后计算
选择操作的对比
相同点
- 都是选择优秀个体进行下一代的操作
不同点
- 选择方法不同: NSGA2大多使用竞标赛,GA大多使用轮盘赌或者择优随机选择
输出图像的对比
相同点
没有相同点
不同点
- NSGA2输出的是最后一代种群的多个目标函数值的关系,GA则是适应度迭代图
总结
NSGA2是通过对多个目标函数值进行比较来得到一系列最优的解,GA则是得到准确的一个最优的解.
NSGA2学习(1)——与遗传算法的比较相关推荐
- nsga2算法_用遗传算法进行容量管理 让虚拟机放置策略更优
随着互联网技术的高速发展,云计算已经成为各行各业的"水电煤",成为"互联网+"的基础设施,而数据中心则是云服务背后的刚性保障.无论是传统的数据中心,还是云形态的 ...
- 深度学习经典算法 | 遗传算法详解
遗传算法生物学基础 在一定的时间内,有一群兔子,其中一些比另外一些兔子跑得快,而且更聪明,这些兔子被狐狸吃掉的可能性比较小,因此它们中的多数就存活下来并繁殖更多的兔子.当然,一些跑得慢而愚蠢的兔子也会 ...
- NSGA-2学习笔记
NSGA2主要是对NSGA算法的改进.NSGA是N. Srinivas 和 K. Deb在1995年发表的一篇名为<Multiobjective function optimization us ...
- 算法学习报告-02 遗传算法
遗传算法(Genetic Algorithms) 目录 遗传算法(Genetic Algorithms) 简介: 原理: 步骤: 1.初始参数: 2.染色体编码: 3.适应度函数: 4.约束条件的处理 ...
- matlab工序,Matlab学习日志——基于遗传算法的车间调度
资料来源<Matlab智能算法30个案例分析> 郁磊 史峰 等 著 问题描述:共有6个工件,在10台机器上加工,每个工件序经过6道工序,安排最零件加工方案. 列号,表示零件的标号:行号表示 ...
- Uber AI实验室总结「神经进化」研究:如何利用遗传算法优化网络?
本文授权转自雷克世界(微信:ROBO_AI) 编译 | 嗯~阿童木呀 现如今,在深度学习领域中,我们通过随机梯度下降(SGD)对具有多个层和数百万个连接的深度神经网络(DNN)进行常规训练.许多人认为 ...
- MATLAB利用遗传算法求取最优解
MATLAB内置GA函数,用以求解全局最优化问题,适用于求解目标函数最优解问题. 一.GA函数原型: 二.函数介绍 常用的两种分别是: 1.X = ga(fitnessfcn,nvars) 2.X = ...
- AForge学习笔记(4):AForge.Genetic
遗传算法简介: 在学习AForge的遗传算法之前,我们首先简单介绍一下遗传算法的理念:遗传算法的提出是源于达尔文进化论思想的启发,优胜劣汰,适者生存,适应力强的生存下去的几率更大,那么在算法上我们用适 ...
- 遗传算法(基础知识)
遗传算法(基础知识) 遗传算法简称GA(Genetic Algorithms)模拟自然界生物遗传学(孟德尔)和生物进化论(达尔文)通过人工方式所构造的一类 并行随机搜索最优化方法,是对生物进化过程** ...
- 学习,教育的1000+篇文章总结
学习,教育的1000+篇文章总结 本文收集和总结了有关学习,教育的1000+篇文章,由于篇幅有限只能总结近期的内容,想了解更多内容可以访问:http://www.ai2news.com/, 其分享了有 ...
最新文章
- 重磅!清华大学,迎来新任校长!
- SyntaxError: Non-UTF-8 code starting with ‘\xe4‘ in file解决办法
- Linux安装ipvsadm工具查看ipvs
- 查找前端依赖 jquery css js 时间控件 不要用远程依赖 会变化的 card
- Postgresql 帐号密码修改方法
- flutter和dart的SDK安装
- [转载] python集合add和update_python 集合set remove update add
- 中标麒麟(linux)下Qt调用python数据转换
- android勾选控件_【Android 开发】:UI控件之复选框控件 CheckBox 的使用方法
- linux卸载jdk方法
- DM6437 平台概况
- 极智AI | 目标检测 VOC 格式数据集制作
- 刘颂计算机学院,关于表彰2013—2014学年 - 首页 北京工商大学计算机与 .doc
- Java利用itchat4j插件实现个人微信自动化
- 这段时间做的简单dp题目(部分)
- 进阶篇:3.5)粉末冶金件设计
- 作业二 20182325袁源
- 月薪40K起,什么是Python全栈工程师?全栈工程师薪资为何这么高?
- 手动实现promise基础功能代码并测试自己写的promise库是否符合规范
- 2014阿里实习生面试题——mysql如何实现索引的