【学习笔记】Multi-Objective Differential Evolution Algorithm --MODEA

  • 正文
    • (一)算法关键点
    • (二).概念定义
  • 算法流程
    • 算法伪代码、算法流程图

正文

差分进化算法在处理多目标问题(MOP)会遇到很多问题。例如:如何生成新的点,从而更快地收敛到最优帕累托前沿,以及如何替换这些点,以获得尽可能多样的解集?
**MODEA算法是对MDE算法(一种解决单目标问题优化的算法)的扩展。**在MODEA算法中,从算法开始就注意保持种群的多样性和产生潜在的候选解。除了使用反向学习机制生成潜在的初始点,我们还在变异阶段使用了锦标赛最佳过程(或随机定位过程),以防止搜索变成纯随机搜索或纯贪婪搜索。

(一)算法关键点

  1. Opposition Based-Learning(反向学习机制)
  2. Randomized localization(随机定位)
  3. 引入新的选择机制----为了产生良好的pareto Font(帕累托前沿)

(二).概念定义

1.Opposition Based-Learning(反向学习机制)
反向学习机制(OBL)背后的主要思想是同时考虑一个估计及其相应的相反估计(即猜测和相反猜测),以便获取更好的当前候选解。
假设X = (x1,x2,…xn)是n维空间中的一个点,

定义点X的相反点X’=(x1’,x2’,…xn’)根据公式
根据相反点(对立点)的定义,我们可以利用反向学习进行优化操作;具体步骤:

  1. 生成N维空间的一个点X和相反点X’
  2. 对两点的函数适应的进行评估,即计算F(X) AND F(X’)
  3. 进行贪婪选择,比较F(X) AND F(X’)哪一个更优,将更优的值放在X中;

因此,我们看到该点和它的相对点被同时求值,以便继续进行更合适的一个。
2. Randomized localization(随即定位)
从对应于目标解Xi的群体中随机选择三个不同的解Xr1、Xr2和Xr3。然后在三个解决方案之间举行比赛,并探索最佳解决方案周围的区域。也就是说,如果Xr1是具有最佳适应度函数值的解,则搜索它周围的区域,希望得到更好的解。为了方便起见,我们将用Xtb表示锦标赛的最佳解决方案。假设Xtb= Xr1,突变方程(1)变为:

3. Fast nondominated sorting(快速非支配排序)
对于集合S中的每个可行解i,即种群中的每个个体i,计算:

  1. ni(被支配计数):支配当前可行解i的解的个数,即可行解i被多少个解支配
  2. si(支配集):被可行解 i 所支配的解个体的集合。即个体 i 支配别的解的集合

(1) 首先,找到种群中所有 n(i)=0 的个体(种群中所有不被其他个体至配的个体 i),将它们存入当前集合F(1);(找到种群中所有未被其他解支配的个体

(2) 然后对于当前集合 F(1) 中的每个个体 j,考察它所支配的个体集 S(j),将集合 S(j) 中的每个个体 k 的 n(k) 减去1,即支配个体 k 的解个体数减1(因为支配个体 k 的个体 j 已经存入当前集 F(1) );(对其他解除去被第一层支配的数量,即减一

(3) 如 n(k)-1=0则将个体 k 存入另一个集H。最后,将 F(1) 作为第一级非支配个体集合,并赋予该集合内个体一个相同的非支配序 i(rank),然后继续对 H 作上述分级操作并赋予相应的非支配序,直到所有的个体都被分级。(按照(1)、(2)的方法完成所有分级
4. Crowding distance metric(拥挤距离度量)
拥挤距离被用来获得在群体中围绕特定解i的解的密度的估计。它需要根据每个目标函数计算解i临近的两个解即(i+1和i-1)的平均距离。

  1. 根据每个目标函数的函数值对种群中的每个个体进行排序(升序)
  2. 对于每个目标函数,边界解(具有最小和最大函数值的解)被分配一个无限距离值。所有其他中间解被赋予一个距离值,该距离值等于两个相邻解的函数值的绝对归一化差。
  3. 继续计算其他的目标函数
  4. 每个个体的总拥挤距离值为各个目标函数的拥挤距离值相加(在计算拥挤距离之前,对每个目标函数进行归一化操作。)

算法流程

step1. 种群初始化

  1. 在MODEA中,初始种群的生成方式与MDE相似。
  2. 使用均匀随机分布生成NP个个体,然后利用反向学习机制生成它们的相反解,共生成2NP解的总体
  3. 从中选择NP最佳(精英)解。(基于非支配秩和拥挤距离秩来选择NP解)

**PS.**反向学习机制的意义就是能够生成更好的初始候选解,通常来说算法的计算时间与这些初始解距离最优解的距离有关。我们可以通过同时检查相反的解来提高从更接近最优解的解开始的机会。事实上,根据概率论,50%的时候一个猜想比它的反面猜想离解更远。
step2. 变异操作
利用随机定位来进行变异操作。这有助于提高产生的变异向量的勘探和开发能力,确保快速收敛和平衡多样性。
例如: DE/best/1/
这种策略可以在初始阶段提供快速收敛。然而,随着搜索过程的进行,它可能会导致种群多样性的损失,因为它的贪婪性质导致早熟收敛。
DE/rand/1/
这种策略,由于其随机性,有助于保持多样性,但可能会导致较慢的收敛。

现在,如果我们看一下随机定位方法,我们会看到,虽然突变的三个点是随机选择的,但基本向量总是被选为具有最佳适应度的向量。这使得它在本质上既不是纯粹的贪婪,也不是纯粹的随机,而是提供了一种局部化的效果,这有助于探索潜在候选人周围的搜索空间的不同区域。
step3. 选择操作
这可能是最重要的阶段,因为仔细选择候选解有助于产生良好的帕累托最优前沿。
MODEA结合了PDEA 和 DEMO;父代个体(目标向量)存在的种群为current population (当前种群)具体步骤为:

  1. 将目标向量和试验向量进行比较,如果试验向量支配目标向量,试验向量直接替换目标向量,并且将原目标向量放入另一个种群advanced population(高级种群);
  2. 如果试验向量不支配目标向量直接将试验向量放入高级种群;
  3. 在每个个体比较完了之后,对于高级种群以及当前种群共2NP个个体,从中选择NP最佳(精英)解。(基于非支配秩和拥挤距离秩来选择NP解)

算法伪代码、算法流程图

算法C++伪代码如图1:

流程图如图2:

【学习笔记】Multi-Objective Differential Evolution Algorithm --MODEA相关推荐

  1. Self-adaptive Differential Evolution Algorithm for Numerical Optimization

    0.论文背景 本文在DE算法的基础上,提出了一种自适应的差分进化算法(SaDE).其中学习策略的选择和两个控制参数F和CR不需要预先指定. Qin A K, Suganthan P N. Self-a ...

  2. 【matcovnet学习笔记】objective,top1error,top5error详解

    [matcovnet学习笔记]objective,top1error,top5error详解 排名前1和前5的错误率是衡量某些解决方案成功与否的重要单位 ,要理解这三个概念,关键是要看懂下面这个多类误 ...

  3. SRv6 学习笔记 -- draft of igp flex algorithm draft

    背景 由于IGP度量未反映的流量要求,基于最短IGP度量的IGP计算路径通常必须由流量工程路径替换.一些网络以IGP度量标准反映链路带宽或延迟的方式设计IGP度量分配.为了克服这种限制,已经部署了各种 ...

  4. IOS学习笔记6—Objective C—Foundation框架

    2019独角兽企业重金招聘Python工程师标准>>> 原文:http://blog.csdn.net/tangren03/article/details/7747281 转载于:h ...

  5. 不完全免疫算法简介DMMO--AIS学习笔记3

    不完全免疫算法简介DMMO–AIS学习笔记3 觉得有用的话,欢迎一起讨论相互学习~ 多目标优化 A double-module immune algorithm for MOP 参考文献 A doub ...

  6. 关于差分进化算法(Differential Evolution)

    关于差分进化算法(Differential Evolution) 觉得有用的话,欢迎一起讨论相互学习~ 最近因为论文和审稿等综合因素的影响,决定对DE进行多一些研究,发现原先自己的了解太肤浅了发现了不 ...

  7. OpenCV学习笔记(五十一)——imge stitching图像拼接stitching OpenCV学习笔记(五十二)——号外:OpenCV 2.4.1 又出来了。。。。。 OpenCV学习笔记(五

    OpenCV学习笔记(五十一)--imge stitching图像拼接stitching stitching是OpenCV2.4.0一个新模块,功能是实现图像拼接,所有的相关函数都被封装在Stitch ...

  8. OpenCV学习笔记(四十六)——FAST特征点检测features2D OpenCV学习笔记(四十七)——VideoWriter生成视频流highgui OpenCV学习笔记(四十八)——PCA算

    OpenCV学习笔记(四十六)--FAST特征点检测features2D 特征点检测和匹配是计算机视觉中一个很有用的技术.在物体检测,视觉跟踪,三维常年关键等领域都有很广泛的应用.这一次先介绍特征点检 ...

  9. OpenCV学习笔记(五十四)——概述FaceRecognizer人脸识别类contrib

    在最新版的2.4.2中,文档的更新也是一大亮点,refrence manual扩充了200多页的内容,添加了contrib部分的文档.contrib就是指OpenCV中新添加的模块,但又不是很稳定,可 ...

最新文章

  1. H.264的一些资料整理
  2. 【编译打包】twemproxy-0.4.0-2.el7.centos.src.rpm
  3. 开源播放器 支持视频广告
  4. Appium 夜神 配置
  5. 「leetcode」973. 最接近原点的 K 个点【优先级队列】详解
  6. 区块链100问:区块链到底能不能篡改?
  7. VS2005发布网站问题及aspnet_merge.exe”已退出,代码为 1的错误以及所有代码文件生成一个dll
  8. SQL查询本周过生日的同学,和下周过过生日的同学
  9. 测试网站速度的8款免费工具推荐
  10. js获取当前时间 年月日 分秒
  11. opencv 图像上画出目标运动的轨迹_OpenCV视频分析-Meanshift、Camshift运动轨迹绘制...
  12. MATLAB中CVX工具箱解决凸优化问题的基本知识——语法、变量声明、目标函数、约束条件、cvx编程错误及解决方法
  13. 搭建论坛discuz
  14. 可以用购买的专利做高新技术企业申请吗?
  15. 微信小程序:大红喜庆版UI猜灯谜又叫猜字谜
  16. Java Class05
  17. STemWin的移植
  18. 中关村程序员的996强制加班与工作效率
  19. 转:做一个有趣的有意思的人
  20. 弹性云服务器做云终端,一台云服务器可以同时带动多少云终端用户

热门文章

  1. 【[BJOI2017]魔法咒语】
  2. ZCMU 5260: 魔法咒语(贪心)
  3. 2022届安防展观展所感所悟
  4. linux禁止root用户su,Linux禁止普通用户su至root的解决方法
  5. 姿态检测 树莓派_利用树莓派追踪飞机航行轨迹的骚姿势分享
  6. 计算机硬件评分系统,win7系统使用自带windows体验指数给计算机硬件评分的操作方法...
  7. 嵌入式平台 mips(arm)交叉编译 OpenBLAS 编译和安装
  8. 从根源解决Pycharm中terminal控制台环境与项目环境不一致问题
  9. Windows 10打开任务管理器的方式
  10. 2012年北航研究生入学考试机试题