【学习笔记】Multi-Objective Differential Evolution Algorithm --MODEA
正文
差分进化算法在处理多目标问题(MOP)会遇到很多问题。例如:如何生成新的点,从而更快地收敛到最优帕累托前沿,以及如何替换这些点,以获得尽可能多样的解集?
**MODEA算法是对MDE算法(一种解决单目标问题优化的算法)的扩展。**在MODEA算法中,从算法开始就注意保持种群的多样性和产生潜在的候选解。除了使用反向学习机制生成潜在的初始点,我们还在变异阶段使用了锦标赛最佳过程(或随机定位过程),以防止搜索变成纯随机搜索或纯贪婪搜索。
(一)算法关键点
- Opposition Based-Learning(反向学习机制)
- Randomized localization(随机定位)
- 引入新的选择机制----为了产生良好的pareto Font(帕累托前沿)
(二).概念定义
1.Opposition Based-Learning(反向学习机制)
反向学习机制(OBL)背后的主要思想是同时考虑一个估计及其相应的相反估计(即猜测和相反猜测),以便获取更好的当前候选解。
假设X = (x1,x2,…xn)是n维空间中的一个点,
定义点X的相反点X’=(x1’,x2’,…xn’)根据公式
根据相反点(对立点)的定义,我们可以利用反向学习进行优化操作;具体步骤:
- 生成N维空间的一个点X和相反点X’
- 对两点的函数适应的进行评估,即计算F(X) AND F(X’)
- 进行贪婪选择,比较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,计算:
- ni(被支配计数):支配当前可行解i的解的个数,即可行解i被多少个解支配
- 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)的平均距离。
- 根据每个目标函数的函数值对种群中的每个个体进行排序(升序)
- 对于每个目标函数,边界解(具有最小和最大函数值的解)被分配一个无限距离值。所有其他中间解被赋予一个距离值,该距离值等于两个相邻解的函数值的绝对归一化差。
- 继续计算其他的目标函数
- 每个个体的总拥挤距离值为各个目标函数的拥挤距离值相加(在计算拥挤距离之前,对每个目标函数进行归一化操作。)
算法流程
step1. 种群初始化
- 在MODEA中,初始种群的生成方式与MDE相似。
- 使用均匀随机分布生成NP个个体,然后利用反向学习机制生成它们的相反解,共生成2NP解的总体
- 从中选择NP最佳(精英)解。(基于非支配秩和拥挤距离秩来选择NP解)
**PS.**反向学习机制的意义就是能够生成更好的初始候选解,通常来说算法的计算时间与这些初始解距离最优解的距离有关。我们可以通过同时检查相反的解来提高从更接近最优解的解开始的机会。事实上,根据概率论,50%的时候一个猜想比它的反面猜想离解更远。
step2. 变异操作
利用随机定位来进行变异操作。这有助于提高产生的变异向量的勘探和开发能力,确保快速收敛和平衡多样性。
例如: DE/best/1/
这种策略可以在初始阶段提供快速收敛。然而,随着搜索过程的进行,它可能会导致种群多样性的损失,因为它的贪婪性质导致早熟收敛。
DE/rand/1/
这种策略,由于其随机性,有助于保持多样性,但可能会导致较慢的收敛。
现在,如果我们看一下随机定位方法,我们会看到,虽然突变的三个点是随机选择的,但基本向量总是被选为具有最佳适应度的向量。这使得它在本质上既不是纯粹的贪婪,也不是纯粹的随机,而是提供了一种局部化的效果,这有助于探索潜在候选人周围的搜索空间的不同区域。
step3. 选择操作
这可能是最重要的阶段,因为仔细选择候选解有助于产生良好的帕累托最优前沿。
MODEA结合了PDEA 和 DEMO;父代个体(目标向量)存在的种群为current population (当前种群)具体步骤为:
- 将目标向量和试验向量进行比较,如果试验向量支配目标向量,试验向量直接替换目标向量,并且将原目标向量放入另一个种群advanced population(高级种群);
- 如果试验向量不支配目标向量直接将试验向量放入高级种群;
- 在每个个体比较完了之后,对于高级种群以及当前种群共2NP个个体,从中选择NP最佳(精英)解。(基于非支配秩和拥挤距离秩来选择NP解)
算法伪代码、算法流程图
算法C++伪代码如图1:
流程图如图2: