参考文献
IGD Indicator-Based Evolutionary Algorithm for Many-Objective Optimization Problems
Yanan Sun, Member, IEEE, Gary G. Yen , Fellow, IEEE, and Zhang Yi, Fellow, IEEE

1. 创新点

  1. 一种基于分解的nadir point评估方法
  2. 一种新的非支配比较策略:个体和参考点之间比较
  3. 3种近似距离分配方案
  4. 基于新的非支配比较策略和3种新的近似距离分配方案改进了环境选择和交叉选择机制。

2. DNPE

  1. 公式:

  2. 好处:不用每次都进行非支配排序,挑选出PF的边界点,可以让算法更节约计算成本。

  3. 目的:找到乌托邦PF,使之能够准确的用于计算IGD指标

3. 算法框架

3.1 产生均匀的参考点

  1. 先根据DNPE找到每个维度的nadir point和ideal point

  2. 再使用MOEA/D中的分参考方向的方式产生一系列参考点集,其中这些参考点的每个维度的和都为1

  3. 最后,根据由DNPE得出的nadir point和ideal point将参考点集转换为乌托邦PF,记为p*,这个乌托邦PF将用于IGD的计算

  4. 伪代码:

3.2 分配rank值

  1. 大多数文章中的支配比较都是在个体和个体之间的,而本文中提出的一个新的支配关系比较策略是:个体和参考点之间进行支配比较

  2. 共有3种rank值:

    1. r1:如果某个个体a至少支配一个p*中的参考点,则个体a的rank值为1

    2. r2:如果某个个体a和p*中所有的个体都互不支配,则个体a的rank值为2

    3. r3:若果某个个体a

      1. 被p*中的所有参考点所支配;
      2. 或被p*中一部分参考点支配,与另一部分参考点互不支配

      则,a的ran值为3

  3. 好处:

    1. 在连续的情况下(前提),根据算法结束时得到的PS,我们可以根据PS中的个体的rank值来推断真实PF的形状。如果PS中所有的个体的rank值为r1,则PF的形状为凹的;如果为r2,PF的形状为超平面;如果为r3,则PF的形状为凸的
    2. 根据rank值,我们可以粗略的估计出rank值为1的个体很可能是支配rank值为2和3的个体的,至少可以保证rank值越小的个体,是有较好的收敛性的。因此,可以将rank值作为环境选择和交叉选择中的第一个选择标准。(rank值这样分配的潜在缺点:不能保持传统的Pareto支配关系,因为rank值为1的个体,有可能不支配rank值为2的个体)
    3. 可以根据3种rank值,设计不同的近似距离

3.3 近似距离的分配

  1. rank值为1的个体:个体到参考点的欧式距离的负数(统一标准,都是选择有较小的距离的个体是有较好收敛性的个体)

  2. rank值为2的个体:即图2中的d+。即IGD+指标

  1. rank值为3的个体:正欧式距离

3.4 产生后代

  1. 如何选择父代进入交叉池?

    1. 首先,随机选择两个个体,比较rank值,较小者进入交叉池
    2. 若rank值相同,则比较近似距离,较小者进入交叉池
    3. 如果近似距离还一样,随机选择一个
  2. 在一个大的搜索空间中(高维空间)怎么确保产生一个有希望的后代?
    1. 限制性的交叉方法:在邻居中交叉、变异产生后代
    2. SBX:使用一个大的分布索引值的模拟二进制交叉(本文采用)

3.5 环境选择

  1. 先选r1层,再选r2层,最后选r3层

  2. 如果所选取的最后一层的数量与前几层的数量相加大于N,则需要从最后一层中均匀的选取

  3. 假设需要从最后一层中选A个个体

    1. 均匀的选取参考点A个参考点

       %% Select K points from W
      Distance = pdist2(W,W); % 计算参考点之间的欧式距离
      Distance(logical(eye(length(Distance)))) = inf; % 将自己到自己的距离设置为inf
      Del = false(1,size(W,1)); % 初始化删除的矩阵,此时Del矩阵中全是逻辑false
      while sum(~Del) > K % 如果没有被删除的参考点的数量大于要选择的数量K,进入循环Remain   = find(~Del); % 找到剩余的参考点Temp     = sort(Distance(Remain,Remain),2); % 按照欧氏距离排序[~,Rank] = sortrows(Temp); % 按行排序,Del(Remain(Rank(1))) = true; % 将要删除的参考点设置为true
      end
      Dis = Dis(:,~Del); % 取反
      
    2. 然后选取距离每个参考点最近的个体(这些个体是最后一层中的个体),共A个,以准确的填满下一代种群

      %% Greedy algorithm based selection (more efficient)
      Choose = false(1,size(Dis,1)); % 初始化 size(Dis,1) ===> 个体数量
      for i = 1 : size(Dis,2) % (Dis,2) ===> 参考点数量remain   = find(~Choose); % 找到剩余的参考点的索引值[~,best] = min(Dis(remain,i)); % 找到到第i个参考点的距离最小的个体的索引值Choose(remain(best)) = true; % 将这个被选中的个体移除
      end
      

多目标进化优化-MaOEA-IGD相关推荐

  1. 多目标进化优化(MOEA)方法

    文章目录 多目标优化概念 一. MOEA流程 1.目标函数: 2.多目标进化个体之间关系 3.基于Pareto的多目标最优解集 二. MOEA算法 1.基于分解的MOEA(MOEA/D) 1.1 三类 ...

  2. 动态分区分配算法代码_【代码】巩敦卫等TEVC论文:基于区间相似度分析的协同动态区间多目标进化优化算法...

    分享代码:巩敦卫等TEVC论文:基于区间相似度分析的协同动态区间多目标进化优化算法. 说明:该代码基于Matlab2012a及Intlab5.5编写,对应文献:"Dunwei Gong, B ...

  3. 【多目标进化优化】 MOEA 测试函数

    声明 本文内容来源于 <多目标进化优化> 郑金华 邹娟著,非常感谢两位老师的知识分享,如有侵权,本人立即删除,同时在此表示,本文内容仅学习使用,禁止侵权,谢谢! 注:本文中提到的参数与(决 ...

  4. 《多目标进化优化》笔记

    目前在做多目标优化这块的研究,找了一本郑金华的<多目标进化优化>恶补下基础知识,有需要的可以下载电子版,一起优化优化.在此笔记来督促自己的科研进度,有个输出的过程,也方便和各位同方向的同学 ...

  5. 动态多目标进化优化研究进展

    摘要: 动态多目标优化问题在实际生产与生活中广泛存在且问题特性随时间或环境的变化复杂多样.为有效解决该类问题,研究人员先后提出用于跟踪最优解的动态多目标进化优化方法和获得鲁棒Pareto最优解集的鲁棒 ...

  6. 【多目标进化优化】多目标进化算法的收敛性

    声明 本文内容来源于 <多目标进化优化> 郑金华 邹娟著,非常感谢两位老师的知识分享,如有侵权,本利立即删除,同时在此表示,本文内容仅学习使用,也禁止他人侵权,谢谢! 0 前言 \quad ...

  7. 多目标进化优化_SDIM 学术讲座|分解多目标优化与帕累托多任务学习

    分解多目标优化与 帕累托多任务学习 2020年11月4日晚,香港城市大学电脑学系讲座教授.博士生导师.IEEE Fellow张青富教授应我院王振坤教授的邀请,在线举办了一场主题为"分解多目标 ...

  8. 多目标进化优化 郑金华pdf_简化审批流程 金华首张以“告知承诺制”审批的医疗器械经营许可证发放...

    3月27日上午,金华市张文龙眼科门诊部有限公司负责人张文龙在市行政服务中心市场监管窗口领到了<医疗器械经营许可证>,这也是金华首张通过"证照分离"改革.以"告 ...

  9. 多目标进化优化_科研一角|论文分享 | 等离子喷焊工艺参数多目标优化

    科研一角|论文分享 等离子喷焊工艺参数多目标优化 喷焊层质量是影响再制造产品质量的主要因素,而等离子喷焊过程中参数的选择又影响着喷焊层质量,工艺参数的确定通常依靠加工手册.工人的操作经验以及工艺参数优 ...

  10. 多目标进化优化-BiGE

    参考文献 Bi-goal evolution for many-objective optimization problems Miqing Li a, Shengxiang Yang b,∗, Xi ...

最新文章

  1. MNE-Python专辑 | MNE-Python详细安装与使用(更新)
  2. 你真的会写二分查找吗?
  3. Git005--工作区和暂存区
  4. 【机器学习】FaceBook开源全网第一个时序王器--Kats。
  5. python最小二乘法拟合_Python 普通最小二乘法(OLS)进行多项式拟合
  6. 北京林业大c语言程序设计考试试题,2020年南京林业大学2017考研真题考研真题试卷及试题答案,C程序设计考研试题下载...
  7. 系统动力学9种模型_软工国际标准专栏(9)|系统和软件质量模型
  8. C语言线性表之单链表
  9. c语言 判断乘法是否溢出,如何判断C语言算术运算的越界问题
  10. 小米无线路由器服务器用户名和密码忘了,小米路由器登陆入口用户名和密码指南...
  11. 会员积分系统运营的五个操作步骤
  12. 深入理解CSS动画animation
  13. jQuery源码分析-10事件处理-Event-事件绑定与删除-bind/unbind+live/die+delegat/unde
  14. Linux pstack命令
  15. CentOS 命令使用
  16. WPF翻盘连连看(二)
  17. 汇文系统和一卡通项目的结合
  18. 神经网络研究主要内容,神经网络的起源和发展
  19. 别忘搜索:可用谷歌、百度等多个搜索引擎同时搜索
  20. 斗智斗勇之redis

热门文章

  1. DuplicateHandle在win10和xp下的一点差异
  2. 自定义 RPC框架3——JAVA实现Zookeeper节点增删改查
  3. 【新书推荐】民异鬼事录
  4. 海鸥表表带太长了怎么拆_「表带太长怎么拆」表带太长了,怎么拆解和安装?...
  5. android 理财助手 app 记一笔,这一款个人理财助手 APP,可以让你变成好会计
  6. 创始人亲自操刀,呷哺呷哺打响“翻身仗”?
  7. 按揭买两套房,保证天天打鸡血一样
  8. 读完了《范曾谈中国文化之美》
  9. Google与卡片式设计
  10. dct变换java_DCT变换的基函数与基图像(图)