




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
NSGA2主要是对NSGA算法的改进。NSGA是N. Srinivas和 K. Deb在1995年发表的一篇名为Multiobjective function optimization using nondominated sorting genetic algorithms的论文中提出的。该算法在快速找到Pareto前沿和保持种群多样性方面都有很好的效果,不过在这么多年的应用中也出现了如下的一些问题:1。非支配排序的时间复杂的很大,为O(MN3)。其中M为目标函数的数量,N为种群规模。2。不支持精英策略。精英策略在保持好的个体及加速向Pareto前沿收敛方面都有很好的表现。3。需要自己指定共享参数。该参数将对种群的多样性产生很大的影响。NSGA2算法将在以下方面进行改进:1。快速的非支配排序 在NSGA进行非支配排序时,规模为N的种群中的每个个体都要针对M个目标函数和种群中的N-1个个体进行比较,复杂度为O(MN),因此种群中的N个个体都比较结束的复杂度为O(MN2),即每进行一次Pareto分级的时间复杂度为O(MN2)。在最坏的情况下,每个Pareto级别都只含有一个个体,那么需要进行N次分级所需要的时间复杂度则会上升为O(MN3)。鉴于此,论文中提出了一种快速非支配排序法,该方法的时间复杂度为O(MN2)。 该算法需要保存两个量: (1).支配个数np。该量是在可行解空间中可以支配个体p的所以个体的数量。 (2).被支配个体集合SP。该量是可行解空间中所有被个体p支配的个体组成的集合。排序算法的伪代码如下:deffast_nondominated_sort(P):F=forpinP:Sp=np=0forqinP:ifpq:#如果p支配q,把q添加到Sp列表中Sp.append(q)elseifpq:#如果p被q支配,则把np加1np+=1ifnp=0:p_rank=1#如果该个体的np为0,则该个体为Pareto第一级F1.append(p)F.append(F1)i=0whileFi:Q=forpinFi:forqinSp:#对所有在Sp集合中的个体进行排序nq-=1ifnq=0:#如果该个体的支配个数为0,则该个体是非支配个体q_rank=i+2#该个体Pareto级别为当前最高级别加1。此时i初始值为0,所以要加2Q.append(q)F.append(Q)i+=1 在上面伪代码中,第一部分循环为二重循环,时间复杂度为O(N2),第二部分循环中,我们可以假设共有x个级别,而每个级别中最多有(N-N/x)各个体,每个个体的支配集合中也最多有(N- N/x)各个体。由此可得出循环次数为x*(N-N/x)*(N-N/x)=(x-1)2/x2)N2M,即时间复杂度为O(MN2)。2。种群中个体多样性的保留 原始的NSGA算法中使用共享函数的方法来维持物种的多样性,这种方法包含一个共享参数,该参数为所求解问题中所期望的共享范围。在该范围内,两个个体共享彼此的适应度。但是该方法有两个难点: (1).共享函数方法在保持多样性的性能很大程度上依赖于所选择的共享参数值。 (2).种群中的每个个体都要与其余的个体相比较,因此该方法的全局复杂度为O(N2)。 在NSGA2中使用了排挤算法和精英策略来代替共享函数算法。而要实现这两种方法,首先我们需要定义两个操作:密度估算和排挤算子。 (1).密度估算 要对拥挤距离进行计算,则需要根据每个目标函数对种群中的所有个体按升序进行排序。第一个和最后一个个体的拥挤距离设为无穷大,第i个个体的拥挤距离则设为第i+1和第i个体的所有目标函数值之差的和。具体方法如下面伪代码:defcrowding_distance_assignment(I)nLen=len(I)#I中的个体数量foriinI:i.distance=0#初始化所有个体的拥挤距离forobjFuninM:#M为所有目标函数的列表I=sort(I,objFun)#按照目标函数objFun进行升序排序 I0=IlenI-1=#对第一个和最后一个个体的距离设为无穷大foriinxrange(1,len(I)-2):Ii.distance=Ii.distance+(objFun(Ii+1)-objFun(Ii-1)/(Max(objFun()-Min(objFun() 伪代码中的objFun( i )是对个体i求其目标函数值。Max(objFun()为目标函数objFun()的最大值,Min(objFun()为目标函数objFun的最小值。其复杂度为O(MNlogN)。3。主体循环部分 (1).随机初始化开始种群P0。并对P0进行非支配排序,初始化每个个体的rank值。 (2). t = 0 (3).通过二进制锦标赛法从Pt选择个体,并进行交叉和变异操作,产生新一代种群Qt。 (4).通过合并Pt和 Qt产生出组合种群Rt= PtUQt。 (5).对Rt进行非支配排序,并通过排挤和精英保留策略选出N个个体,组成新一代种群Pt+1。 (6).跳转到步骤3,并循环,直至满足结束条件。 步骤5的具体操作可见下图: 伪代码如下:whilecondition:Rt=Pt+QtF=fast_nondominate_sort(Rt)Pt+1=i=0whilelen(Pt+1)+len(Fi)N:crowding_distance_assignment(Fi)Pt+1+=Fii+=1Pt+1+=Fi0:N-len(Pt+1)Qt+1=make_new_generation(Pt+1)t=t+1 下面分析NSAG
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 温差电器件制造工岗位操作技能考核试卷及答案
- 缩放排工异常处理考核试卷及答案
- 建筑方案设计平面布局图
- 游艇制作厂家施工方案
- 市政承台降水施工方案
- 校园防性侵安全教育方案
- 装修微信营销策划方案
- 罗平新年装修活动方案策划
- 建筑方案设计任务和内容
- 移动人工智能营销方案
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
- 第二章 临床康复工程学基础
- 《水生生物学桡足类》课件
- 《预算员培训二》课件
- 八年级劳动课下册教案
- 人工动静脉瘘狭窄查房
- 加药装置技术规范书2014.1.16
- 水利工程中挡土墙的选型与稳定性验算
- 四年级语文下册看拼音写词语-田字格
- 重庆出版社综合实践四年级上全册教案
- 《先进制造技术》课件(全套)
评论
0/150
提交评论