第三代非支配遗传算法是针对高维多目标优化计算代价大,难以挑选Pareto解的情况而开发的,基本流程与NSGA-II相似,但选择个体的方法加入了基于参考点的方法,能够有效降低计算代价。

NSGA-III 首先定义一组参考点。然后随机生成含有 N 个个体的初始种群,其中 N 是种群大小。接下来,算法进行迭代直至终止条件满足。在第 t 代,算法在当前种群 Pt的基础上,通过交叉和变异产生子代种群 Qt。Pt和 Qt的大小均为 N。因此,两个种群 Pt和 Qt合并会形成种群大小为 2N 的新的种群 Rt=Pt∪Qt。

为了从种群 Rt中选择最好的 N 个解进入下一代,首先利用基于Pareto支配的非支配排序将 Rt分为若干不同的非支配层(F1,F2等等)。然后,算法构建一个新的种群St,构建方法是从 F1开始,逐次将各非支配层的解加入到 St,直至 St的大小等于 N,或首次大于 N。假设最后可以接受的非支配层是 L层,那么在 L+ 1 层以及之后的那些解就被丢弃掉了,且 St\ FL中的解已经确定被选择作为 Pt+1中的解。Pt+1中余下的个体需要从 FL中选取,选择的依据是要使种群在目标空间中具有理想的多样性。

比如你的N设置为100,那么Pt大小为100,Qt是Pt交叉和变异后的个体,Qt的数目也是100,那么Rt=Pt∪Qt,Rt数目是两百,现在只要从这两百中选100个个体进行下一轮迭代。

那么怎么从这两百个选一百个呢?NSGA的思想首先是把所有解进行分非支配排序,假设问题为最小化问题,那么目标值越小越好,若个体A三个目标值是(2,3,5),B的三个目标是(4,3,5),C的三个目标是(3,3,4),那么个体A和C放入F1层,其等级为1,F2层是B,等级为2,以此类推。假如一共有8层非支配层(F1,F2,。。。,F8),你选到F1+F2+F3+…+F7时候已经有90个个体了,而F8层有20个个体,那么怎么在F8选这10个个体,即怎么在F8里的20个选十个,NSGA2用的是基于拥挤距离的方法,而NSGA3用的是基于参考点的方法。这是NSGA-III区别于NSGA-II的显著特征。( St\ FL里面,St就是这里的F1到F7的所有个体的总和,F8就是FL,St\ FL这个符号意思就是已经被选择的F1到F7所有个体)

在原始NSGA-II中,FL中具有较大拥挤距离的解会优先被选择。然而,拥挤距离度量并不适合求解 高维多目标优化问题(三个及更多目标的多目标优化问题)。因此 NSGA-III 不再采用拥挤距离,而是采用了新的选择机制,该机制会通过所提供的参考点,对 St中的个体进行更加系统地分析,以选择 FL中的部分解进入 Pt+1。

算法步骤如下:

1. 分支配排序、分层

2. 生成参考点

3. 计算理想点

即求解这一代种群所有目标每个维度的的最小值。比如A三个目标值是(2,3,5),B的三个目标是(4,3,5),C的三个目标是(3,3,4),那么 ideal point为(2,3,4)。

4. 将解空间零点挪到上述理想点

5. 找出极值点(以上几个步骤是常规操作,较好理解,这里专门阐述较难理解的极值点生成公式)

这个公式通过将群体中的个体均与一个同维度的向量点除找出极值点,这个向量ωi的特点是,除了第i位数字为1,其余都为一个极小值,比如0.000001。这个算法看起来很难,但其实很好理解,用下一张图来表示。

比方说我们现在想找出哪个点离x轴(1号轴)最近,那么ω1=[1, 0.000001],那么上图中的两个点分别点除这个向量会得到:【1,2000 000】,【3,500 000】,那么这两个个体(点)的最大值分别为2000 000和500 000,公式外面的argmin的意思就是说我要的点是带有500 000这个值的点,这样就把离X轴最近的点(极值点)找出来了。找出各个轴的极值点,就能构建超平面(对于上图只有两个个体的情况,超平面其实就是通过两个点的直线),超平面和坐标轴的交点即可得到截距,有多少个坐标轴,就有多少个截距,把所有个体点除包含所有截距的向量,就是个体的归一化,个体即映射到参考点所在的归一化平面上。

6.将所有个体关联到参考点(根据参考点和个体之间的欧几里得距离或其他距离)

7.依据参考点的小生境从F8层提取10个个体加入到下一代种群中。

8.迭代往复进行,直至达到收敛条件。

非支配排序遗传算法c语言,第三代非支配排序遗传算法(NSGA-III)相关推荐

  1. 超级列表框排序mysql,易语言超级列表框排序源码

    易语言超级列表框排序源码.版本 2 .支持库 iext .程序集 窗口程序集1 .程序集变量 集_中文, 文本型, , "0" .程序集变量 集_中文排序, 整数型, , &quo ...

  2. c语言效率最高排序方法,C语言综合实现所有排序方法及效率比较.doc

    C语言综合实现所有排序方法及效率比较 #include#include#include #include #define N 50000typedef char elemtype;typedef st ...

  3. 鸡尾酒排序算法c语言,[golang] 数据结构-鸡尾酒排序

    吐个槽 又是一个不正经取名的排序算法.真要说和鸡尾酒间的关系,大概就是想喝到鸡尾酒(得到排序好的队列)就要摇晃酒杯让不同的成分混合均匀(向两个方向冒泡排序) 原理 鸡尾酒排序(Cocktail Sor ...

  4. swift语言注册非免费苹果账号iOS游戏框架Sprite Kit基础教程

    swift语言注册非免费苹果账号iOS游戏框架Sprite Kit基础教程 1.2.3  注册非免费苹果账号swift语言注册非免费苹果账号iOS游戏框架Sprite Kit基础教程 免费的苹果账号在 ...

  5. 经典的十种排序算法 C语言版

    经典的十种排序算法(C语言版) 1.冒牌排序 冒牌排序的特点 ​ 一趟一趟的比较待排序的数组,每趟比较中,从前往后,依次比较这个数和下一个数的大小,如果这个数比下一个数大,则交换这两个数,每趟比较后, ...

  6. 输入法按照选字频率排序的C语言程序算法,算法与数据结构之选择排序(C语言)...

    #include #include void SelectSort(int *a,int n);//预声明要调用的函数 int main(void) { int k; int x[]={,,,,,,, ...

  7. 希尔排序及C语言实现

    排序系列之(4)希尔排序及C语言实现 收藏 希尔排序(Shell Sort)也称为递减增量排序算法,是插入排序的一种高速而安定的改良版.因希尔(Donald L. Shell)于1959年提出而得名. ...

  8. 非支配排序遗传算法c语言,非支配排序遗传算法(NSGA)的研究与应用

    摘要: 多目标优化问题一直是科学和工程研究领域的难题和热点问题.传统的解决方法在处理大维数,多模态等复杂问题上存在许多不足.为了解决这一问题,国内外研究学者在简单遗传算法的基础上,发展出了多种多目标优 ...

  9. C语言已知二进制码求循环码,循环码系统与非系统编码的C语言实现

    循环码系统与非系统编码的C语言实现: #include"stdio.h" #include #defineN10 //系统编码实现 voidX(int g[N],int c[N], ...

最新文章

  1. 计算机软件属于输入还是输出,计算机基本输入输出系统是什么意思(基本输入输出系统简介)...
  2. SQL Server基础知识之:设计和实现视图
  3. 森林病虫防治系统 (二.2)
  4. Arduino初初教程3 ——交通灯
  5. centos yum mysql_CentOS 7 yum安装配置MySQL5.7教程
  6. centos7 转换为lvm_[转] centos7 调整XFS格式的LVM大小
  7. python创建方法draw_Python做图像处理(五)---ImageDraw综合应用实例:自制验证码...
  8. 河北省计算机网络技术专接本考什么,河北计算机专接本考什么
  9. 在Unity编辑器中开发遇到问题BUG如何调试解决?
  10. mysql初学者_MYSQL初学者使用介绍
  11. struts2 javaweb 过滤器、监听器 拦截器 原理
  12. 在手动安装 Kubernetes 的基础上搭建微服务
  13. spring中的ioc解决程序的耦合入门
  14. 利用SWT做Java版局域网QQ(一)——基于UDP协议
  15. angular整合环信webIM
  16. signature=de4fefc549f99f0b0c76a2cec8e340bf,Diagnostics based on faulty signature
  17. APISpace 语音验证码API
  18. 在线全国计算机等级模拟题,全国计算机等级考试模拟试题一级.doc
  19. 计算机图形学(1)基本图形算法
  20. 计算机一级西溪2,我的西溪研学日记(二)——不一样的课堂,不一样的精彩...

热门文章

  1. 广告联盟如何获利变现引流?
  2. 博通Broadcom SDK源码学习与开发4——ECOS系统数据流
  3. (2) 机器视觉技术发展的五大趋势
  4. Java视频修改分辨率(附代码) | Java工具类
  5. 抖音短视频企业团队SOP策划运营工作计划表格
  6. 2.Lambda表达式
  7. 功能安全 李艳文_如何理解功能安全管理
  8. 在物流信息系统中,物联网主要应用于哪些领域
  9. 如何在公司建立好一个较为完整的固定资产设备台账
  10. 面试常问,答案简易版