思想:

要对拥挤距离进行计算,则需要根据每个目标函数对种群中的所有个体按升序进行排序。第一个和最后一个个体的拥挤距离设为无穷大,第i个个体的拥挤距离则设为第i+1和第i个体的所有目标函数值之差的和。具体方法如下面伪代码:

def crowding_distance_assignment( I )nLen = len( I )        #I中的个体数量for i in I:i.distance = 0    #初始化所有个体的拥挤距离for objFun in M:        #M为所有目标函数的列表I = sort( I, objFun )    #按照目标函数objFun进行升序排序I[0] = I[ len[I]-1 ] = ∞    #对第一个和最后一个个体的距离设为无穷大for i in xrange( 1, len(I) - 2 ):I[i].distance = I[i].distance + ( objFun( I[i+1] ) - objFun( I[i-1] ) )/(Max(objFun()) - Min(objFun()) )

伪代码中的objFun( i )是对个体i求其目标函数值。Max(objFun())为目标函数objFun()的最大值,Min(objFun())为目标函数objFun的最小值。其复杂度为O(MNlogN)。

NSGA2算法的主体循环部分:

(1)随机初始化开始种群P0。并对P0进行非支配排序,初始化每个个体的rank值。

(2). t = 0

(3).通过二进制锦标赛法从Pt选择个体,并进行交叉和变异操作,产生新一代种群Qt。

(4) 计算新种群的obj值,

(5).通过合并Pt 和 Qt 产生出组合种群Rt =  Pt UQt 。

(6).对Rt进行非支配排序,并通过排挤和精英保留策略选出N个个体,组成新一代种群Pt+1。

(7).跳转到步骤3,并循环,直至满足结束条件。

步骤5伪代码:

while condition:Rt = Pt + QtF = fast_nondominate_sort( Rt )Pt+1 = [ ]i = 0while len(Pt+1) + len( F[i] ) < N:crowding_distance_assignment( F[i] )Pt+1 += F[i]i += 1Pt+1 += F[i][0:N-len(Pt+1)]Qt+1 = make_new_generation( Pt+1 )t = t+1

NSGA2算法中拥挤度计算代码相关推荐

  1. NSGA2算法及其代码

    本人最近研究NSGA2算法,网上有很多示例代码,但是基本没有注释,代码看起来很头疼,因此我最近把整个代码研读了一遍,并做上中文注释,希望可以帮助到一些和我一样的初学者们.贴出代码之前,首先介绍一下NS ...

  2. 协同过滤算法之通过Jaccard相似度计算推荐结果原理及代码实现

    文章目录 Jaccard相似度介绍 Jaccard相似度计算推荐结果代码及实现 基本介绍 Jaccard相似度计算代码 协同过滤推荐代码实现 Jaccard相似度介绍 两个集合的交集元素个数在并集中所 ...

  3. java算法(1)---余弦相似度计算字符串相似率

    功能需求:最近在做通过爬虫技术去爬取各大相关网站的新闻,储存到公司数据中.这里面就有一个技术点,就是如何保证你已爬取的新闻,再有相似的新闻 或者一样的新闻,那就不存储到数据库中.(因为有网站会去引用其 ...

  4. 同义词词林 java_基于同义词词林扩展版的词语相似度计算

    词语相似度计算 词义相似度计算在很多领域中都有广泛的应用,例如信息检索.信息抽取.文本分类.词义排歧.基于实例的机器翻译等等.国内目前主要是使用知网和同义词词林来进行词语的相似度计算. 本文主要是根据 ...

  5. 推荐系统之协同过滤算法分布式实现(附代码实现)

    图片来自网络 文章作者:Sunbow 高级工程师 编辑整理:Hoh Xil 导读:本文主要介绍协同过滤基础知识,以及分布式实现设计,并最终在 Spark 平台上对同现相似度.Cosine 相似度.欧几 ...

  6. 【推荐系统】新闻相似度计算

    文章目录 前言 一.新闻相似度计算思路 1.效果展示 2.实现思路 3.杰卡德相似系数 二.代码实现 1.分词 2.相似度计算 前言 通过结巴进行分词,通过杰卡德相似系数来计算新闻的相似程度,相似度大 ...

  7. 模块度计算python代码_转:模块度(Modularity)与Fast Newman算法讲解与代码实现

    一.背景介绍 Modularity(模块度), 这个概念是2003年一个叫Newman的人提出的.这个人先后发表了很多关于社区划分的论文,包括2002年发表的著名的Girvan-Newman(G-N) ...

  8. 聚类算法中各种距离的计算与python的具体实现代码

    一.聚类算法和相似度 在机器学习中,有两类学习算法,一类是无监督学习,另一类是监督学习.聚类算法是无监督学习算法,一般构建用户兴趣属性画像等可应用聚类算法:而一般的分类算法是有监督学习,基于有标注的历 ...

  9. 数据结构(01)— 算法复杂度概念及常见的复杂度计算

    1. 大 O 表示法 大 O 表示法指出了算法有多快,让你能够比较操作数,它指出了算法运行时间的增速,而并非以秒为单位的速度.大 O 表示法指出了最糟情况下的运行时间.大 O 表示法在讨论运行时间时, ...

  10. 【机器学习基础】机器学习中“距离与相似度”计算汇总

    写在前面 涵盖了常用到的距离与相似度计算方式,其中包括欧几里得距离.标准化欧几里得距离.曼哈顿距离.汉明距离.切比雪夫距离.马氏距离.兰氏距离.闵科夫斯基距离.编辑距离.余弦相似度.杰卡德相似度.Di ...

最新文章

  1. 山东省第三届数据应用赛事来了!
  2. git commit之后,想撤销commit
  3. windows server系统,登录系统提示按下 ctrl+alt+delete
  4. session存储在redis/memcache/mysql
  5. ansible企业级自动化运维工具
  6. Html5实践之EventSource
  7. Ceph 集群整体迁移方案
  8. python加载模型文件进行图片分类_tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式...
  9. docker oracle 11g
  10. android 恢复出厂设置流程
  11. OSGB数据的纹理压缩
  12. 常用的开源3D游戏引擎(转)
  13. 【转载】DDR2 DDR3 PCBlayout规则
  14. 华为给出的测试账号里面的题
  15. 一款功能综合的CSS滑动门特效
  16. 图片上传的两种方式(前端和后端)
  17. Python爬虫入门实例四之百度、360搜索关键字提交(可自主输入关键字)
  18. 数学建模算法与应用——整数规划
  19. 如何在 LearnDash 线上教育平台网站上构建和管理大型课程
  20. 软件测试|MySQL安装最全教程

热门文章

  1. IOS开发之——屏幕适配-AutoLayout代码实现(03)
  2. Photoshop CC(2018)安装破解
  3. HenCoder Android 开发进阶:自定义 View 1-4 Canvas 对绘制的辅助 clipXXX() 和 Matrix
  4. 毕业设计 基于大数据的社交平台数据爬虫舆情分析可视化系统
  5. modscan32做主站 一直显示MODBUS MESSAGE TIME-OUT
  6. 模拟电路中晶体管阵列的性能感知公共质心布局和布线 ALIGN
  7. LSTM神经网络算法
  8. 深入理解JVM虚拟机读书笔记【第十三章】线程安全与锁优化
  9. im即时通讯源码带教程/uniapp即时通讯源码,附安装教程
  10. Win11 在线安装QT5.15.2教程