关于“采样参考点方法”的阅读整理——自用
文献名称《Sampling Reference Points on the Pareto Fronts of Benchmark Multi-Objective Optimization Problems》
方法一:Das and Dennis’s Method
Das and Dennis’s Method是单位单纯形上均匀分布参考点采样最常用的系统方法,其在单位形状上定义的参考点形式如下:
S
j
∈
{
0
H
,
1
H
,
⋯
,
H
H
}
,
∑
j
=
1
M
S
j
=
1
{S_j} \in \left\{ {\frac{0}{H},\frac{1}{H}, \cdots ,\frac{H}{H}} \right\},\sum\limits_{j = 1}^M {{S_j} = 1}
Sj∈{H0,H1,⋯,HH},j=1∑MSj=1其中,
H
H
H是目标的切分数量。
上图
H
H
H为5,目标函数M为3的参考点坐标计算实例。在这里,我需要强调一下为什么取a,b而不是abcd四个,以及其他参数的取值原因。
首先,说明图中0.2是因为在单位中将目标划分为5部分,所以每一小部分的取值为0.2;其次,若目标函数M为4的话,则将五部分均匀分配给M,其划分方式为1,1,1,2,则上图就变成了 S 1 , a , S 2 , b , S 3 , c , S 4 S_1,a,S_2,b,S_3,c,S_4 S1,a,S2,b,S3,c,S4,这里需要仔细推敲。然后最左边一列 x 1 x_1 x1其取值是有规律的,首先需要明白的是参考点的数量计算方式是 H = { M + P − 1 P } = C M + P − 1 P H = \left\{ \begin{array}{l} M + P - 1\\ P \end{array} \right\} = C_{M + P - 1}^P H={M+P−1P}=CM+P−1P共计21个参考点,即所有X(M-1维)的组合方式=6+5+4+3+2+1(高中排列组合没学好的童鞋自己补补),所以对应6个0,5个0.2,4个0.4以此类推。
令
S
1
=
a
−
0
,
S
2
=
b
−
a
,
S
3
=
1
−
b
S_1=a-0,S_2=b-a,S_3=1-b
S1=a−0,S2=b−a,S3=1−b,这样
S
1
+
S
2
+
S
3
S_1+S_2+S_3
S1+S2+S3就满足了算法要求的
∑
j
=
1
M
S
j
=
1
\sum\limits_{j = 1}^M {{S_j} = 1}
j=1∑MSj=1,所以在M,P取其他值时,计算方式一样,只需要保持
∑
j
=
1
M
S
j
=
1
\sum\limits_{j = 1}^M {{S_j} = 1}
j=1∑MSj=1即可。Das and Dennis‘s Method的过程步骤如下:
1) 设X是所有
{
0
H
,
1
H
,
⋯
H
+
M
−
2
H
}
\left\{ {\frac{0}{H},\frac{1}{H}, \cdots \frac{{H + M - 2}}{H}} \right\}
{H0,H1,⋯HH+M−2}的(M-1)组合
2) x i j ∈ X , x i j = x i j − j − 1 H {x_{ij}} \in X,{x_{ij}} = {x_{ij}} - \frac{{j - 1}}{H} xij∈X,xij=xij−Hj−1,这里这个公式很迷,我看了半天才理解明白。举个栗子,上图中 a = x 1 − 1 − 1 5 , b = x 2 − 2 − 1 5 a = {x_1} - \frac{{1 - 1}}{5},b = {x_2} - \frac{{2 - 1}}{5} a=x1−51−1,b=x2−52−1
3) { s i j = x i j − 0 , j = 1 s i j = x i j − x i ( j − 1 ) , 1 < j < M s i j = 1 − x i ( j − 1 ) , j = M \left\{ \begin{array}{l} {s_{ij}} = {x_{ij}} - 0,\quad \quad j = 1\\ {s_{ij}} = {x_{ij}} - {x_{i(j - 1)}},\,\,1 < j < M\\ {s_{ij}} = 1 - {x_{i(j - 1)}},\quad j = M \end{array} \right. ⎩⎨⎧sij=xij−0,j=1sij=xij−xi(j−1),1<j<Msij=1−xi(j−1),j=M
方法二:Deb and Jain’s method
Deb and Jain’s Method这个采样方法其实是在Das and Dennis’s Method的基础上进行的改良,在文献中田野老师说当H<M的时候,没有中间点产生。因为,本人还没有去阅读Deb and Jain’s Method的文献,因此,对这个中间点的说法不是很理解、作者强调的是在此前况下,在das的基础上,增加内层的参考点,但是参考点的数量会翻倍,计算效率也会上升,博主在下周阅读结束Deb and Jain‘s Method后会将这部分补充完整(2021.09.23)。
Deb and Jain’s Method的过程步骤如下:
1)按照Das and Jain’s Method产生边界层的参考点
2)按照公式产生内层参考点
s
i
j
′
=
1
2
s
i
j
+
1
2
M
{s'_{ij}} = \frac{1}{2}{s_{ij}} + \frac{1}{{2M}}
sij′=21sij+2M1
在实践中,当m≤5时,采用Das and Dennis方法,其他情况采用Deb和Jain方法。
方法三:Mixture Uniform Design
上述两种采样方法的缺点是参考点的数量受参数M和h的限制。相比之下,混合均匀设计提供了更灵活的采样方法,其中参考点的数量可以是任意的数字。简而言之,它生成均匀分布在(M−1)维超立方体上的n个点,然后将其转换为M维单位单纯形。具体来说,混合均匀设计过程包括以下四个步骤:
1)设
W
1
W_1
W1是所有小于等于N的正整数且与N互为质数的行向量,
W
2
=
(
1
,
2
,
,
.
.
.
,
N
)
W_2=(1,2,,...,N)
W2=(1,2,,...,N)
2)设
W
=
m
o
d
(
W
2
T
W
1
−
1
,
N
)
+
1
W=mod(W_2^TW_1-1,N)+1
W=mod(W2TW1−1,N)+1
3)设X是一个M-1列的矩阵,
X
=
W
(
:
,
1
:
M
−
1
)
X=W(:,1:M-1)
X=W(:,1:M−1),通过计算中心-
L
2
L_2
L2-偏差(
C
D
2
CD_2
CD2)得到最大值的X的取值
4)
{
s
i
j
=
1
N
[
1
−
(
x
i
j
)
1
M
−
j
]
∏
k
=
1
j
−
1
(
x
i
k
)
1
M
−
k
,
1
≤
j
<
M
s
i
j
=
1
N
∏
k
=
1
j
−
1
(
x
i
k
)
(
1
M
−
k
)
,
j
=
M
\left\{ \begin{array}{l} {s_{ij}} = \frac{1}{N}\left[ {1 - {{\left( {{x_{ij}}} \right)}^{\frac{1}{{M - j}}}}} \right]\prod\limits_{k = 1}^{j - 1} {{{\left( {{x_{ik}}} \right)}^{\frac{1}{{M - k}}}}} ,1 \le j < M\\ {s_{ij}} = \frac{1}{N}\prod\limits_{k = 1}^{j - 1} {{{\left( {{x_{ik}}} \right)}^{\left( {\frac{1}{{M - k}}} \right)}}} \quad \quad \quad \quad \quad \quad ,j = M \end{array} \right.
⎩⎪⎪⎨⎪⎪⎧sij=N1[1−(xij)M−j1]k=1∏j−1(xik)M−k1,1≤j<Msij=N1k=1∏j−1(xik)(M−k1),j=M
其中,
C
D
2
CD_2
CD2用来测量N个点填充超立方体的点集X的多样性,其公式为:
C
D
2
(
X
)
=
[
(
13
12
)
M
−
1
−
2
2
−
M
N
∑
i
=
1
N
∏
j
=
1
M
−
1
(
2
+
∣
x
i
j
−
0.5
∣
−
∣
x
i
j
−
0.5
∣
2
)
+
1
N
2
∑
i
,
k
=
1
N
∏
j
=
1
M
−
1
(
1
+
0.5
∣
x
i
j
−
0.5
∣
+
0.5
∣
x
k
j
−
0.5
∣
−
0.5
∣
x
i
j
−
x
k
j
∣
)
]
1
2
C{D_2}\left( X \right) = {\left[ {{{\left( {\frac{{13}}{{12}}} \right)}^{M - 1}} - \frac{{{2^{2 - M}}}}{N}\sum\nolimits_{i = 1}^N {\prod\nolimits_{j = 1}^{M - 1} {\left( {2 + \left| {{x_{ij}} - 0.5} \right| - {{\left| {{x_{ij}} - 0.5} \right|}^2}} \right) + \frac{1}{{{N^2}}}\sum\nolimits_{i,k = 1}^N {\prod\nolimits_{j = 1}^{M - 1} {\left( {1 + 0.5\left| {{x_{ij}} - 0.5} \right| + 0.5\left| {{x_{kj}} - 0.5} \right| - 0.5\left| {{x_{ij}} - {x_{kj}}} \right|} \right)} } } } } \right]^{\frac{1}{2}}}
CD2(X)=[(1213)M−1−N22−M∑i=1N∏j=1M−1(2+∣xij−0.5∣−∣xij−0.5∣2)+N21∑i,k=1N∏j=1M−1(1+0.5∣xij−0.5∣+0.5∣xkj−0.5∣−0.5∣xij−xkj∣)]21