在前面《遗传算法(二)——编码》中我们提到了,二进制编码的优点之一是可以利用模式定理对算法进行理论分析。本文就来简单介绍一下模式定理是什么东西。
模式(Schema)
我们将个体基因串中的相似样板称为模式(Schema),用 H H H来表示。在二进制编码的串中,模式是基于三个字符集(0,1,*)的字符串,符号*称作是通配符,代表任意字符,即0或1。
模式 H H H中确定字符(0和1)的个数称为模式 H H H的模式阶(Schema Order),记作 O ( H ) O(H) O(H)。模式阶用来反映不同模式之间确定性的差异,模式阶越高,表示模式的确定性就越高,所匹配的样本个数就越少。
模式 H H H中第一个确定字符的位置和最后一个确定字符的位置之间的距离称为模式 H H H的定义距(Defining Length),记为 δ ( H ) \delta(H) δ(H)。阶数相同的模式会有不同的性质,定义距就反映了这种性质的差异。
如,模式*1*描述了一个四个元的子集{010,011,110,111}
模式阶 O ( 011 ∗ 1 ∗ ∗ ) = 4 O(011*1**)=4 O(011∗1∗∗)=4
定义距 δ ( 011 ∗ 1 ∗ ∗ ) = 4 \delta(011*1**)=4 δ(011∗1∗∗)=4
模式定理(Schema Theorem)
模式定理: 在遗传算子选择、交叉、变异的作用下,具有低阶、短定义距以及平均适应度高于种群平均适应度的模式在子代中呈指数级增长。
可以理解为,模式定理告诉我们有一些特定的个体种类(比较优秀的),在代代遗传的过程中,会向着全局最优解越来越快地收敛。
上述“具有低阶、短定义距以及平均适应度高于种群平均适应度的模式”被定义为积木块。(因为它们又短、又零星散乱)
积木块假设(building block hypothesis):遗传算法通过“积木块”,在遗传操作作用下相互结合,最终会接近全局最优解。
模式定理证明过程
在一个给定的时间代
t
t
t中,一个特定的模式
H
H
H有
m
m
m个代表串包含在种群
A
(
t
)
A(t)
A(t)中,记为
m
=
m
(
H
,
t
)
m=m(H,t)
m=m(H,t),称之为模式的选择生长方程,在遗传操作阶段,一个串
A
i
A_i
Ai的再生概率为:
P
i
=
f
i
∑
i
=
1
n
f
i
P_i=\frac{f_i}{\sum_{i=1}^n f_i}
Pi=∑i=1nfifi
当采用非重叠的n个串的种群代替
A
(
t
)
A(t)
A(t),可以得到
m
(
H
,
t
+
1
)
=
m
(
H
,
t
)
⋅
n
⋅
f
(
H
)
∑
i
=
1
n
f
i
m(H,t+1)=m(H,t)\cdot n \cdot\frac{f(H)}{\sum_{i=1}^n f_i}
m(H,t+1)=m(H,t)⋅n⋅∑i=1nfif(H)
其中
f
(
H
)
f(H)
f(H)是在时间
t
t
t,模式
H
H
H的串的平均适应度;而此时整个种群的适应度为:
f
‾
=
∑
i
=
1
n
f
i
n
\overline{f}=\frac{\sum_{i=1}^n f_i}{n}
f=n∑i=1nfi
因此可以得出:
m
(
H
,
t
+
1
)
=
m
(
H
,
t
)
⋅
n
⋅
f
(
H
)
∑
i
=
1
n
f
i
=
m
(
H
,
t
)
f
(
H
)
f
‾
m(H,t+1)=m(H,t)\cdot n \cdot\frac{f(H)}{\sum_{i=1}^n f_i}=m(H,t)\frac{f(H)}{\overline{f}}
m(H,t+1)=m(H,t)⋅n⋅∑i=1nfif(H)=m(H,t)ff(H)
假设从
t
=
0
t=0
t=0开始,某一个特定模式适应度值保持在种群平均适应度以上并且超出了
c
f
‾
c\overline{f}
cf(
c
c
c是一个常数),则模式的选择生长方程为:
m
(
H
,
t
+
1
)
=
m
(
H
,
t
)
⋅
n
⋅
(
1
+
c
)
f
‾
f
‾
=
(
1
+
c
)
t
⋅
m
(
H
,
0
)
m(H,t+1)=m(H,t)\cdot n \cdot\frac{(1+c)\overline{f}}{\overline{f}}=(1+c)^t\cdot m(H,0)
m(H,t+1)=m(H,t)⋅n⋅f(1+c)f=(1+c)t⋅m(H,0)
因此,我们可以得出结论:在种群平均值以上(以下)的模式将按指数增长(衰减)的方式复制。
若我们考虑交叉操作,模式
H
H
H被破坏的概率为
δ
(
H
)
l
−
1
\frac{\delta(H)}{l-1}
l−1δ(H)(
l
l
l为串长),模式
H
H
H生存的概率即为
1
−
δ
(
H
)
l
−
1
1-\frac{\delta(H)}{l-1}
1−l−1δ(H),若发生交叉操作的概率为
p
c
p_c
pc,那么模式
H
H
H的生存概率计算为:
p
s
(
H
)
≥
1
−
p
c
δ
(
H
)
l
−
1
p_s(H)\geq1-p_c\frac{\delta(H)}{l-1}
ps(H)≥1−pcl−1δ(H)
同时考虑选择、交叉操作对模式的影响,那么我们可以得到:
m
(
H
,
t
+
1
)
≥
m
(
H
,
t
)
⋅
f
(
H
)
f
‾
⋅
[
1
−
p
c
δ
(
H
)
l
−
1
]
m(H,t+1)\geq m(H,t)\cdot \frac{f(H)}{\overline{f}}\cdot [1-p_c\frac{\delta(H)}{l-1}]
m(H,t+1)≥m(H,t)⋅ff(H)⋅[1−pcl−1δ(H)]
考虑变异操作时,单个等为基因存活的概率为
1
−
p
m
1-p_m
1−pm,当模式
H
H
H中
O
(
H
)
O(H)
O(H)个确定位都存活时,模式
H
H
H才被保留,存活概率为:
p
s
(
H
)
=
(
1
−
p
m
)
O
(
H
)
≈
1
−
O
(
H
)
⋅
p
m
p_s(H)=(1-p_m)^{O(H)}\approx1-O(H)\cdot p_m
ps(H)=(1−pm)O(H)≈1−O(H)⋅pm
( p m < < 1 ) (p_m\lt\lt1) (pm<<1)
那么我们同时考虑选择、交叉和变异操作对模式的影响时,可以得出:
m
(
H
,
t
+
1
)
≥
m
(
H
,
t
)
⋅
f
(
H
)
f
‾
⋅
[
1
−
p
c
δ
(
H
)
l
−
1
−
O
(
H
)
p
m
]
m(H,t+1)\geq m(H,t)\cdot \frac{f(H)}{\overline{f}}\cdot [1-p_c\frac{\delta(H)}{l-1}-O(H)p_m]
m(H,t+1)≥m(H,t)⋅ff(H)⋅[1−pcl−1δ(H)−O(H)pm]
由上面的不等式可以看出,在后代复制的过程中,低阶( O ( H ) O(H) O(H)较小)、短定义距( δ ( H ) \delta(H) δ(H)较小)、以及平均适应度高于种群平均适应度( f ( H ) f ‾ \frac{f(H)}{\overline{f}} ff(H)较大)的模式,会每一代都增长,因此呈指数级增长。