ASC2015MaOP 论文笔记
The paper
A clustering-ranking method for many-objective optimization
Highlights
- A new strategy that consists of clustering and ranking is proposed.
- The procedure of clustering can maintain the diversity.
- The convergence relies on the ranking mechanism.
- The incorporation of two procedures led to a better result.
Abstract
In evolutionary multi-objective optimization, balancing convergence and diversity remains a challenge and especially for many-objective (three or more objectives) optimization problems (MaOPs). To improve convergence and diversity for MaOPs, we propose a new approach: clustering-ranking evolutionary algorithm (crEA), where the two procedures (clustering and ranking) are implemented sequentially. Clustering incorporates the recently proposed non-dominated sorting genetic algorithm III (NSGA-III), using a series of reference lines as the cluster centroid. The solutions are ranked according to the fitness value, which is considered to be the degree of closeness to the true Pareto front. An environmental selection operation is performed on every cluster to promote both convergence and diversity. The proposed algorithm has been tested extensively on nine widely used benchmark problems from the walking fish group (WFG) as well as combinatorial travelling salesman problem (TSP). An extensive comparison with six state-of-the-art algorithms indicates that the proposed crEA is capable of finding a better approximated and distributed solution set.
1 算法框架
1.1 主体框架
- 框架
- 算法理解
R e q u i r e : H ( 划 分 的 数 量 ) 1 : Λ 参 考 点 集 合 ( H ) 2 : P 0 初 始 化 种 群 3 : z ∗ 初 始 化 理 想 点 ( p 0 ) 4 : t = 1 迭 代 计 数 变 量 5 : w h i l e 终 止 条 件 未 满 足 d o 6 : P t 重 组 ( p 0 ) 7 : Q t 交 叉 ( p t ) 8 : R t P t ∪ Q t 9 : Z ∗ 更 新 理 想 点 10 : R t 自 适 应 归 一 化 11 : ( C ^ , N f ) 聚 合 12 : F ^ 排 序 ( C ^ , N f ) 13 : P t + 1 选 择 ( F ^ ) 14 : t ← t + 1 迭 代 次 数 加 1 15 : e n d w h i l e \begin{aligned} &Require: H (划分的数量) \\ &1: \Lambda \ \ 参考点集合(H) \\ &2: P_0 \ \ 初始化种群 \\ &3: z^* \ \ 初始化理想点(p_0) \\ &4: t = 1 \ \ 迭代计数变量\\ &5: while 终止条件未满足 do \\ &\ \ 6: \ P_t \ \ 重组(p_0) \\ &\ \ 7: \ Q_t \ \ 交叉(p_t) \\ &\ \ 8: \ R_t \ \ P_t \cup Q_t \\ &\ \ 9: \ Z^* \ \ 更新理想点 \\ &\ \ 10: \ R_t \ \ 自适应归一化 \\ &\ \ 11: \ (\hat{C},N_f) \ \ 聚合 \ \ \\ &\ \ 12: \ \hat{\mathcal{F}} \ \ 排序(\hat{C},N_f) \\ &\ \ 13: \ \ P_{t+1} \ \ 选择(\hat{\mathcal{F}}) \\ &\ \ 14: \ t \gets t+1 \ \ 迭代次数加1 \\ &\ \ 15: end while \\ \end{aligned} Require:H(划分的数量)1:Λ 参考点集合(H)2:P0 初始化种群3:z∗ 初始化理想点(p0)4:t=1 迭代计数变量5:while终止条件未满足do 6: Pt 重组(p0) 7: Qt 交叉(pt) 8: Rt Pt∪Qt 9: Z∗ 更新理想点 10: Rt 自适应归一化 11: (C^,Nf) 聚合 12: F^ 排序(C^,Nf) 13: Pt+1 选择(F^) 14: t←t+1 迭代次数加1 15:endwhile
1.2 参考点生成
1.2.1 变量说明
-
H H H 是用户自定义的整数, 用于控制每个轴上(约束函数)的划分个数。一般来说约束函数有多少个, H H H的就为多少。三个约束函数则 H = 3 H=3 H=3。
计算公式如下 :
∑ i = 1 m x i = H , x i ∈ N \sum_{i=1}^m{x_i = H},x_i \in \mathcal{N} i=1∑mxi=H,xi∈N -
N N N 超平面, 参考点所组成的参考平面的个数
N = C H + m − 1 m − 1 , x i ∈ N N = C_{H+m-1}^{m-1} , x_i\in N N=CH+m−1m−1,xi∈N -
$\lambda $ 参考点
λ k = x k H , k = 1 , 2 , 3... m s . t . ∑ i = 1 m λ i = 1 \lambda_k = \frac{x_k}{H},k=1,2,3...m\\ s.t. \ \ \sum_{i=1}^m{\lambda_i = 1} λk=Hxk,k=1,2,3...ms.t. i=1∑mλi=1
举例, 对于3维问题上。有 H = 3 H = 3 H=3 故 N = C 5 2 = 10 N = C_5^2 = 10 N=C52=10。
1.2.2 参考点生成算法
- 框架
- 图解
- 理解
H 划 分 数 字 N r ← C h + m − 1 m − 1 λ 1 , λ 2 , . . . , λ N r ← { ∅ , . . . , ∅ } f o r i = 1 : N r d o f o r j = 1 : m d o λ i [ j ] ← 参 考 点 生 成 e n d f o r e n d f o r \begin{aligned} &H \ \ 划分数字 \\ &N_r \gets C_{h+m-1}^m-1 \\ &{\lambda_1,\lambda_2,...,\lambda_{N_r}} \gets \{∅,...,∅\} \\ & for \ i = 1:N_r \ do \\ & \ \ \ for \ j=1:m \ do \\ & \ \ \ \ \ \ \ \ \lambda_i[j] \gets 参考点生成 \\ & \ \ \ end \ for \\ & end for \end{aligned} H 划分数字Nr←Ch+m−1m−1λ1,λ2,...,λNr←{∅,...,∅}for i=1:Nr do for j=1:m do λi[j]←参考点生成 end forendfor
1.3 自适应归一化
1.3.1 自适应归一化算法
-
计算公式
f ^ j ( x ) = f j ( x ) − z ∗ z j m a x − z j ∗ j = 1 , 2 , . . . , m \hat{f}_j(x) = \frac{f_j(x)-z^*}{z_j^{max}-z_j^*} \ j = 1,2,...,m f^j(x)=zjmax−zj∗fj(x)−z∗ j=1,2,...,m -
算法
-
理解
step 1: 对求出不同个体参考点的 z j m a x z_j^{max} zjmax
strp2: 按照公式求得 f ^ j ( x ) \hat{f}_j(x) f^j(x) , 也即进行归一化处理
1.4 聚类算子
1.4.1 聚类算法
-
计算公式
d r , 2 = ∣ ∣ f ^ ( x ) − d r , 1 ( x ) λ i ∣ ∣ λ i ∣ ∣ ∣ ∣ d_r,2 = ||\hat{f}(x) - d_{r,1}(x) \frac{\lambda_i}{||\lambda_i||} || dr,2=∣∣f^(x)−dr,1(x)∣∣λi∣∣λi∣∣ -
图解
- 理解
对于解 E 而言, 距离参考线 λ 1 与 λ 2 ( ) \lambda_1 与 \lambda_2() λ1与λ2() 的距离分别是0.0894 和 0.4919, 显然距离 λ 1 \lambda_1 λ1 的距离更近, 因此我们使得 E 与 λ 1 \lambda_1 λ1 建立联系。 聚类算子的意义也在于找到解 E 距离最近的 λ \lambda λ 点。
算法 STEP
step 1: 计算参考点与解之间的距离, 获取距离解最近的参考点和距离, 并入 index 集合
step 2: 更新 N f w h e n N f < ∣ C i n d e x ∣ N_f \ \ when \ N_f < |C_{index}| Nf when Nf<∣Cindex∣
1.5 排序算子
1.5.1 排序算法
-
计算公式
F T ( x ) = m a x k = 1 m { 1 λ k ( f k ^ ( x ) ) } FT(x)=max_{k=1}^m \{{\frac{1}{\lambda_k}(\hat{f_k}(x))}\} FT(x)=maxk=1m{λk1(fk^(x))} -
演示与图解
对于上图中的 A 与 B 、E 三点而言, 其计算方式如下
F
T
A
=
m
a
x
{
0.3
0.5
,
0.8
1
}
=
0.8
F
T
B
=
m
a
x
{
0.4
0.5
,
0.6
1
}
=
0.8
F
T
E
=
m
a
x
{
0.4
0.5
,
0.8
1
}
=
1
FT_A = max\{\frac{0.3}{0.5} ,\frac{0.8}{1} \} = 0.8 \\ FT_B = max\{\frac{0.4}{0.5} ,\frac{0.6}{1} \} = 0.8 \\ FT_E = max\{\frac{0.4}{0.5} ,\frac{0.8}{1} \} = 1
FTA=max{0.50.3,10.8}=0.8FTB=max{0.50.4,10.6}=0.8FTE=max{0.50.4,10.8}=1
显然有
F
T
A
=
F
T
B
<
F
T
E
FT_A = FT_B \lt FT_E
FTA=FTB<FTE , 因此我们可以得出
解
A
与
解
B
位
于
同
一
条
曲
线
,
E
位
于
不
同
的
曲
线
解A与解B位于同一条曲线, E位于不同的曲线
解A与解B位于同一条曲线,E位于不同的曲线
并且对于 F T i FT_i FTi 的值越小越靠近 P F PF PF , 如下图所示:
-
理解
算法 STEP
step1: 计算适应度值 F T ( x ) = m a x k = 1 m { 1 λ k ( f k ^ ( x ) ) } FT(x)=max_{k=1}^m \{{\frac{1}{\lambda_k}(\hat{f_k}(x))}\} FT(x)=maxk=1m{λk1(fk^(x))} , 对所有种群个体进行适应度值升序排序并放入集合。
step2: 将集合 ∑ i N C j \sum_i^N C_j ∑iNCj 中已经排序好的序列, 按照 1 − N 1 - N 1−N 的顺序遍历。 依次将其排序为 1 , 2 , . . . N 1,2,...N 1,2,...N 的个体取出放入到不同的 F j \mathcal F_j Fj 中。
简言之, 也即取每个集合中第 j 大的个体加入第 j 层 Pareto 面 :
{1,4,7},{2,3,7},{1,6,9}
j = 1 {1,2,1}
j = 2 {4,3,6}
j = 3 {7,7,9}
1.6 选择算子
1.6.1 选择算法
-
演示与图解
如图所示, 我们给出了 参 考 点 λ 1 、 λ 2 参考点 \lambda_1、\lambda_2 参考点λ1、λ2 与 U = { a 、 b 、 c 、 d 、 e 、 f } 等 6 个 解 U = \{a、b、c、d、e、f\}等6个解 U={a、b、c、d、e、f}等6个解。 我们根据 聚类算子 依照不同的 d ( λ , i ) i ∈ U d_{(\lambda,i)} \ i \in U d(λ,i) i∈U 将其进行划分, 划分为 C 1 = { a , b , c } C 2 = { d , e , f } C_1 = \{a,b,c\} \ \ C_2 =\{d,e,f\} C1={a,b,c} C2={d,e,f} 。 然后依照 排序算子 对其进行排序, 排序结果为 { a , d } , { b , e } , { c , f } \{a,d\},\{b,e\},\{c,f\} {a,d},{b,e},{c,f} 。 由于 较低的 T F TF TF 更贴近 P F PF PF, 我们将 { a , d } \{a,d\} {a,d} 并入新种群 P t + 1 P_{t+1} Pt+1 直到其大小等于种群大小 N1。
- 算法
step: 不断选取适应度最优的个体加入种群 P t + 1 P_{t+1} Pt+1 直到 P t + 1 = N P_{t+1} = N Pt+1=N。
1.7 总结
总的来说, 该论文借鉴了 MOEA/D 与 NSGA-III 的思想, 也即 分解 和 支配的思想, 提炼出来得到了 聚类算子 与 排序算子。
聚类的意义在于 依照解距离参考向量的距离建立解 A A A 与 参考线/参考向量(0点与参考点的连线) λ \lambda λ 的联系 m i n d ( A , λ ) 为 所 取 联 系 min \ d_{(A,\lambda)} 为所取联系 min d(A,λ)为所取联系
排序的意义在于 依照聚类的结果根据适应度计算公式 F T ( x ) = m a x k = 1 m { 1 λ k ( f k ^ ( x ) ) } FT(x)=max_{k=1}^m \{{\frac{1}{\lambda_k}(\hat{f_k}(x))}\} FT(x)=maxk=1m{λk1(fk^(x))} 得出的适应度进行聚类集合内排序, 再从已排序好的聚类集合中根据适应度值的优越性(这个是排序好的)进行选取并加入到对应的前沿面 F \mathcal F F 。实质上也即从每个不同的聚类排序结果上选取第 i 个点加入到第 i 层前沿面。