非支配排序遗传算法 NSGA-II(Non-dominated Sorting Genetic Algorithms-Ⅱ)

NSGA-II是一种改进的遗传算法,通过快速非支配排序降低计算复杂度,引入拥挤度和精英策略保持种群多样性。它利用非支配等级和拥挤度来优化种群,确保Pareto最优解的生成。
该文章已生成可运行项目,

1.带精英策略的非支配排序的遗传算法(NSGA-II)


2000年,Deb又提出NSGA的改进算法一带精英策略的非支配排序遗传算法(NSGA-II),针对以上的缺陷通过以下三个方面进行了改进:

1.提出了快速非支配排序法,降低了算法的计算复杂度。

2.提出了拥挤度和拥挤度比较算子,代替了需要指定共享半径的适应度共享策略,并在快速排序后的同级比较中作为胜出标准,使准Pareto域中的个体能扩展到整个Pareto域,并均匀分布,保持了种群的多样性。

3.引入精英策略,扩大采样空间。将父代种群与其产生的子代种群组合,共同竞争产生下一代种群,有利于保持父代中的优良个体进入下一代,并通过对种群中所有个体的分层存放,使得最佳个体不会丢失,迅速提高种群水平。
 

2.基本原理

2.1快速非支配排序法

    首先解释一下什么叫支配

   

在生成最优的帕累托前沿(Rank 1)前,可能会生成多个rank。那么快速非支配排序就是按照这个rank序列来进行一个排序。

NSGA-II对第一代算法中非支配排序方法进行了改进:对于每个个体 i 都设有以下两个参数 n(i) 和 S(i),

1.n(i) 为在种群中支配个体 i 的解个体的数量。(别的解支配个体 i 的数量)

2.S(i) 为被个体 i 所支配的解个体的集合。(个体 i 支配别的解的集合)

(1)通过循环比较找到种群中所有ni = 0的个体,赋予其非支配等级为1,并将这些个体存入非支配集合rank1中。

(2)集合rank1中的每一个个体,将其所支配的个体集合中的每个个体的nj都减去1,若nj-1=0则将个体j存入集合rank2中,并赋予其中的个体非支配等级2。

(3)之后对rank2中的个体重复上述操作,直至所有个体都被赋予了非支配等级。

非支配等级也称作Pareto等级,其中Pareto等级为1的个体由于不受其他个体的支配,叫做非支配解,也叫 Pareto最优解,而解集所形成的曲线叫做Pareto前沿。

  仔细理解

本文章已经生成可运行项目
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

森屿~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值