NSGA2算法代码理解

NSGA2算法代码理解NSGA2算法代码理解:设置200个个体,目标函数为2个,决策变量的个数为30,首先初始化得到一个每个个体位于0~1之间的决策变量,利用ZDT1函数求得目标值,保存在数组中。寻找非支配排序,在这200个个体中,选中一个个体,将这个个体和其余个体的目标函数值比较,如果没有一个个体可以支配他,那么就将其加入到非支配集合中ifindividual(i).n==0%个体i非支配等级排序最高,…

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

NSGA2算法代码理解:
设置200个个体,目标函数为2个,决策变量的个数为30,首先初始化得到一个每个个体位于0~1之间的决策变量,利用ZDT1函数求得目标值,保存在数组中。

寻找非支配排序,在这200个个体中,选中一个个体,将这个个体和其余个体的目标函数值比较,如果没有一个个体可以支配他,那么就将其加入到非支配集合中
if individual(i).n == 0 %个体i非支配等级排序最高,属于当前最优解集,相应的染色体中携带代表排序数的信息
x(i,M + V + 1) = 1;
F(front).f = [F(front).f i];%等级为1的非支配解集
end
首先求出等级最高的非支配解集,然后遍历这个解集,找出每个解支配的个体,将被支配数量减1,看是否成为一个非支配,如果是则加入到新的非支配集合中,如此反复知道新集合为空。
将种群一分为2,随机选取最优的种群作为父代,然后交叉变异形成子代,接着合并子代和父代,采取精英策略,得到新的子代。
注意,如果原种群是200个,选取的合适繁殖的父代是100个,生成大约200个子代,合并再选取200个作为新的种群。
在这里插入图片描述
代码参考
https://blog.csdn.net/joekepler/article/details/80820240

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

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

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


相关推荐

  • linux的解压zip文件,linux解压zip文件命令是什么

    linux的解压zip文件,linux解压zip文件命令是什么linux解压zip文件命令是什么发布时间:2020-04-2311:02:45来源:亿速云阅读:162作者:小新今天小编给大家分享的是linux解压zip文件命令是什么,相信很多人都不太了解,为了让大家更加了解linux解压zip文件命令,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。Linuxunzip命令用于解压缩zip文件,unzip为.zip压缩文件的解压缩程序。语法u…

    2022年6月7日
    24
  • 小米手机1亿像素跟相机(2020相机新品)

    小米集团旗下品牌Redmi再度发布多款“性价比之王”手机新品。11月26日,小米发布RedmiNote9系列的Note9Pro、Note95G和Note94G三款手机新品,三款手机价格均位于“千元档”甚至低于千元,再度成为市场上同价位机型中的“性价比之王”。对此,小米集团副总裁、中国区总裁、Redmi品牌总经理卢伟冰重申,“Redmi的想法很简单,就是为用户做好产品,然后价格卖的尽量厚道,坚持高端产品大众化,大众产品品质化。”此次小米推出的Note9Pro沿袭了之前的Note8Pro在超清

    2022年4月10日
    42
  • 使用ExecuteReader时报错“阅读器关闭时尝试调用Read无效”的解决办法

    使用ExecuteReader时报错“阅读器关闭时尝试调用Read无效”的解决办法出现如下绿色字体出错的问题,是由于using使用过后数据库会自动关闭,出了using的作用域后,在调用的时候无法找到信息form1.cs        publicstaticSqlDataReaderExecuteReader(stringsql,paramsSqlParameter[]parameters)    {      stringconnStr…

    2022年6月20日
    63
  • python pymssql_Python模块-pymssql[通俗易懂]

    python pymssql_Python模块-pymssql[通俗易懂]Python默认的数据库是SQLlite,不过它对MySql以及SQLserver的支持也可以。如果想链接操作SQLserver,需使用第三方包pymssqlpymssql是一个Python的数据库接口,基于FreeTDS构建,对_mssql模块进行了封装,遵循Python的DBAPI规范,而FreeTDS是一个C语言连接sqlserver的公共开源库工作原理使用connect创建连接对象;…

    2022年6月16日
    37
  • kali vim使用教程_kali命令

    kali vim使用教程_kali命令新手上路,vim编译器不会保存,不会退出,今天教大家如何使用vim编译器的指令vim编译器在使用是会在做左下角出现提示,通常插入表示的是可进行编辑,输入的意思,当你按下Esc键,就会取消编辑状态,但不会退出,你可以按着shift+;输出一个【:】然后输入【:wq!1.txt】已经有【:】的不用在输入【:】,w表示保存为q表示退出!表示强制在里面遇到的任何情况都可以按Esc即退出编辑状态可以按下小写【i】即可进入插入模式,也就是编辑状态下面我把…

    2022年9月28日
    0
  • idea 查看类图_idea查看方法的实现

    idea 查看类图_idea查看方法的实现以BeanFactory为例给大家展示在Idea中查看某个接口的所有的实现类图1.展示一下BeanFactory类2.选中接口右键->Diagrams(showDiagrams)3.出现一个接口类,然后点中接口右键showimplementations或者快捷键ctrl+alt+B4.出现了图然后全选或者快捷键ctrl+a,然后回车就出现了所有的关系图…

    2022年8月15日
    3

发表回复

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

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