NSGA 和 NSGA-II 学习笔记

 

参考资料:

CSDN博客:https://blog.csdn.net/kiding_k/article/details/70147299?locationNum=13&fps=1

Cnblog:https://www.cnblogs.com/bnuvincent/p/5268786.html

基于遗传算法的多目标寻优策略的应用研究_李莉:http://kns.cnki.net/KCMS/detail/detail.aspx?dbcode=CMFD&dbname=CMFD2009&filename=2009014373.nh&uid=WEEvREcwSlJHSldRa1FhdkJkVWI3Y2JUZGpaT2lhOTJKRURJQldYRGplMD0=$9A4hF_YAuvQ5obgVAqNKPCYcEjKensW4ggI8Fm4gTkoUKaID8j8gFw!!&v=MzI3MTNKRWJQSVI4ZVgxTHV4WVM3RGgxVDNxVHJXTTFGckNVUkxLZll1ZHJGeTdoVTd6QlYxMjdGN081R3RMTHI=

CSDN博客:https://blog.csdn.net/u014119694/article/details/77248913?locationNum=6&fps=1

 

NSGA-II Python 3 参考代码:

https://github.com/haris989/NSGA-II/blob/master/NSGA%20II.py

 

一般多目标规划问题,都可以建模为寻找Pareto最优解的问题。

 

NSGA:非支配排序遗传算法(Non-dominated Sorting Genetic Algorithm)

 

种群分层:

NSGA 和 NSGA-II 学习笔记_第1张图片

Tips:此处存在重复对比情况,即X1 与 X2 进行了两次对比

虚拟适应度:目标函数值

共享小生境技术:

NSGA 和 NSGA-II 学习笔记_第2张图片

 

 

同一小生境内的种群,适应度互相减小。相似度高的、小生境内个体多的种群适应度减少程度更大。

通过这样的方式可以保证非支配层的每个个体拥有不同的适应度值。(这个没有懂)

 

NSGA-II:带精英策略的非支配排序遗传算法

 

快速非支配排序算法:

 

 

 

 

 

NSGA 和 NSGA-II 学习笔记_第3张图片

伪代码:

NSGA 和 NSGA-II 学习笔记_第4张图片

NSGA 和 NSGA-II 学习笔记_第5张图片

如图,D点被A和C点支配,所以D点的np为2,A点支配D和E,所以A点的Sp={D,E}。

 

该排序算法分级与NSGA中的结果不一样

 

 

 

拥挤度和拥挤度比较算子

 

 

密度估计:根据每一目标函数计算该点两侧的两个点的平均距离,该值作为以最近邻居作为顶点的长方体周长的估计(作为拥挤系数)。如下图,第i个解的拥挤系数为他周围长方体的长度(虚线表示)。

计算拥挤系数需要对每一目标函数进行排序。

每个非支配层的边界的个体拥挤度为无穷。

NSGA 和 NSGA-II 学习笔记_第6张图片

拥挤度有多种计算方式

1.直接计算长方体边长

 

 

2.需要除以....

 

NSGA 和 NSGA-II 学习笔记_第7张图片

拥挤度比较算子:

NSGA 和 NSGA-II 学习笔记_第8张图片

 

 

主程序:

NSGA 和 NSGA-II 学习笔记_第9张图片

精英策略:

 

 

 

NSGA 和 NSGA-II 学习笔记_第10张图片

NSGA 和 NSGA-II 学习笔记_第11张图片

 

NSGA-II 程序流程图

NSGA 和 NSGA-II 学习笔记_第12张图片

需要输入的变量是:规模N、迭代次数

 

 

你可能感兴趣的:(NSGA 和 NSGA-II 学习笔记)