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

【学习笔记】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维空间中的一个点,x1,x2,...xn
在这里插入图片描述
定义点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:
在这里插入图片描述

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
差分进化算法Differential Evolution Algorithm,DE)是一种经典的群体智能优化算法,用于解决连续优化问题。其基本思想是通过模拟自然界的进化过程,通过种群的演化来搜索最优解。 差分进化算法的核心是种群的演化。它首先初始化一定数量的个体作为种群,并通过随机生成的方式确定每个个体的初始解。接着,利用差分运算符对种群进行进化操作。差分运算符通过选择种群中的三个个体,与一个随机差分因子相乘,然后与当前个体进行加法运算,得到一个新的解。这个新的解将与当前个体进行比较,如果优于当前个体,则替换当前个体。如此反复进行迭代,直到达到停止条件。 差分进化算法与其他优化算法相比,具有以下优点。首先,它可以寻找全局最优解,不受局部最优解的限制。其次,算法具有较好的鲁棒性和收敛性,可以适应不同的问题,并且在迭代过程中,可以通过适应度函数来评估个体的适应性,实现对优化过程的控制。此外,差分进化算法还具有计算效率高的优点,适用于解决大规模优化问题。 总结来说,差分进化算法是一种基于种群演化的优化算法,通过模拟自然界的进化过程,通过种群的演化来搜索最优解。它具有全局寻优能力、鲁棒性和收敛性较好、计算效率高等特点,适用于解决连续优化问题。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值