首页 > 编程知识 正文

nsga2算法原理,ns火纹无双

时间:2023-05-05 05:57:45 阅读:10345 作者:2342

afastandelitistmultiobjectivegeneticalgorithm : nsga-ii中文翻译

目录

1. NSGA-II概述

2. NSGA-II详细信息

3. NSGA-II模拟结果

4 .参数设置问题

5 .约束处理方法

1. NSGA概述NSGA-II适用于复杂的多目标优化问题。 中小学教授于2002年在论文: afastandelitistmultiobjectivegeneticalgorithm 3360 nsga-ii,中提出。 论文提出的NSGA-II解决了NSGA的主要缺陷,实现了快速准确的搜索性能。 NSGA非支配排序的时间复杂度为o(Mn3 ) o(Mn3 ) ),种群规模n较大时排序速度变慢。 NSGA-II使用带精英战略的快速非支配排序,时间复杂度为o(m(2n )2) o (m ) 2n ),排序速度大幅提高。 另外,运用精英策略,使找到的最优解不被舍弃,提高了搜索性能。 另一方面,NSGA使用共享函数使解的分布均匀。 该函数依赖于共享参数share s h a r e的选择,而且共享函数的复杂度高达o(n2 ) o(n2 )。 NSGA-II新定义了拥塞距离而不是共享参数。

2. NSGA-II详细介绍1 .高速非支配排序

根据支配比较进行种群快速非支配排序,排序分为两部分

将群体个体能够支配的个体作为一个集合Sp S p,记录个体支配的个体数NPNPp,将np==0 n p==0的个体作为最初的上位集合F1 F 1,将1代入个体的等级rank。 从Fi F i中取出各个个体,对该个体的Sp S p集合中的个体,进行将np n p减少1,如果np==0 n p==0,则判断为添加到集合Fi 1 F i 1的操作。 2 .多样性保护1 .拥挤距离(关闭距离) )。

NSGA在使种群收敛于pareto-optimal-solutions的同时,还需要利用共享参数使解能相对均匀分布,即尽量保持解的多样性。 然而,由于共享函数的复杂度(o ) n^2) )太高,这里使用拥塞距离代替共享参数。 对两个目标函数的拥挤距离如下图所示

会聚距离等于各目标函数方向上解的前后两个解的距离。 对于二维,它是图标矩形周长的一半。

拥挤距离的伪代码为note : 如果某个方向上的距离很大,就会很大程度上影响总的距离的大小。为了使每个方向上的目标函数对拥挤距

离有等效的影响力,需要每个目标函数上的距离要规则化normalized。

2.拥挤比较操作(crowded-comparison-operator)
在选择算子是基于非支配比较操作区选择个体

3.NSAG-II的实现过程

首先:对种群 Pt P t 执行选择、交叉、变异操作,形成新种群 Qt Q t 。
然后:合并这两个种群并对合并后的种群执行非支配排序
最后:根据个体rank形成的前列面 Fi F i ,从低到高依次加入下一代种群 Pt+1 P t + 1 ,当 Fi F i 加入使种群大小越界时,依据拥挤距离从大到小,将个体加入种群。
we use a binary tournament selection operator on crowded_comparison operator

复杂度分析:worst case
fast_nondominated_sort complexity: O(M(2N)2) O ( M ( 2 N ) 2 )
crowding_distance_assign complexity: O(M(2N)log(2N)) O ( M ( 2 N ) l o g ( 2 N ) )
sorting on nondominated_operator complexity: O((2N)log(2N)) O ( ( 2 N ) l o g ( 2 N ) ) (such as quick sort)

3.模拟结果

选择合适参数设置进行测试,虽然不是最佳的参数设置,但是为了体现NSGA-II相比其他算法的优越性,应该是对各种问题表现都相对均衡的参数。参数设置如下
population size:250
probability for crossover:0.9
probability for mutation: 1nvariesor1nbits 1 n v a r i e s o r 1 n b i t s
distribution index for crossover and mutation: nc=20 nm=20 n c = 20   n m = 20

binary code : single point crossover, bitwise mutation
real code : SBX , polynomial mutation

测试结果:

可见除了ZDT3 和ZDT6,NSGA-II性能都是最好的。
大多数情况下,浮点数编码的NSGA-II比其他任何算法都有更好的解分布,包括二进制编码的NSGA-II.

4.参数设置

只是以进化次数和变异分布指数为例,简单说明参数的影响,并不对最优参数设置做深入的研究。
增加进化次数到500 :可以得到离最优解更近的收敛,和更均匀的解分布
减少变异分布指数: 可以使多项式变异产生变化更大的解
例如:ZDT4有很多局部最优解,为了跳出zdt4的局部最优解,自变量要有大变化才可能。这里使用了更小的distribution index for mutation: nm=10 n m = 10 ,结果convergence metric 减小到0.02,diversity metric 减小到0.498

5.约束处理

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。