分布估计算法, 又称为基于概率模型的遗传算法,是20世纪90年代初提出的一种新型的启发式算法,其思想起源于遗传算法,但却有着与遗传算法不同的进化模式,结合了统计学习理论和遗传算法的实现原理,通过构建概率模型、采样和更新概率模型等操作实现群体的进化。
分布估计算法提出了一种新的进化模式,在分布估计算法张,没有传统的交叉、变异等遗传算法的操作,取而代之的是概率模型的学习和采样,分布估计算法通过一个概率模型描述候选解在空间中的分布,采用统计学习手段,从群体的宏观特征建立一个描述解分布的概率模型,然后对该概率模型随机采样获得新的种群,从而实现种群的迭代进化。下图是分布估计算法与遗传算法的对比:
通过一个概率模型描述候选解在空间中的分布,再用统计学习的手段,从群体宏观的角度建立一个描述解分布的 概率模型,然后对概率模型产生新的种群,接着反复进行
EDA有很多不同的变体,包括下面的一些:
由德国学者 Muhlenbein 在 1996 年提出,算法描述:
由美国卡耐基梅隆大学的 Baluja 在 1994 年提出,算法描述:
通用算法流程为:
使用分布估计算法求解 0-1 背包问题,计算步骤如下:
当下分布式估计算法主要的几个经典的概率模型的构造如下所示:
最早的变量相关分布估计算法是 Bonet 1997 年提出的 基于最大互信息的分布估计算法 (Mutual Information Maximization for Input Clustering, C)
其计算流程如下:
第一步: 计算所有
h
^
(
X
j
)
\hat{h}\left(X_j\right)
h^(Xj), 将值最小的变量标号为
i
n
i_n
in, 即
i
n
=
arg
min
j
h
^
(
X
j
)
i_n=\arg \min _j \hat{h}\left(X_j\right)
in=argminjh^(Xj); 令
k
=
n
−
1
k=n-1
k=n−1 。
第8章 分布估计算法 163
第二步:对所有
j
(
j
≠
i
k
+
1
⋯
i
n
)
j\left(j \neq i_{k+1} \cdots i_n\right)
j(j=ik+1⋯in) 计算
h
^
(
X
j
∣
X
i
k
+
1
)
\hat{h}\left(X_j \mid X_{i_{k+1}}\right)
h^(Xj∣Xik+1) 并将值最小的变量标号为
i
k
i_k
ik, 即
i
k
=
arg
min
j
h
^
(
X
j
∣
X
i
k
+
1
)
,
j
≠
i
k
+
1
⋯
i
n
;
i_k=\arg \min _j \hat{h}\left(X_j \mid X_{i_{k+1}}\right), \quad j \neq i_{k+1} \cdots i_n ; \quad
ik=argminjh^(Xj∣Xik+1),j=ik+1⋯in; 令
k
=
k
−
1
k=k-1
k=k−1
第三步: 若
k
=
0
k=0
k=0 则结束, 否则执行第二步。
当概率分布被确定好后, MIMIC 按如下流程从链尼到链首依次产生一个新样本
第一步:根据概率密度函数
p
^
(
X
i
n
)
\hat{p}\left(X_{i_n}\right)
p^(Xin), 产生
X
i
n
X_{i_n}
Xin
第二步: 对所有的
k
=
n
−
1
,
n
−
2
,
⋯
,
2
,
1
k=n-1, n-2, \cdots, 2,1
k=n−1,n−2,⋯,2,1, 根据
p
^
(
X
i
k
∣
X
i
k
+
1
)
\hat{p}\left(X_{i_k} \mid X_{i_{k+1}}\right)
p^(Xik∣Xik+1) 产生
X
i
k
X_{i_k}
Xik
COMIT(Combining Optimizers with Mutual Information Trees)是Baluja在1997年提出的另一种变量相关分布估计算法 COMIT和MIMIC 都是解决双变相关的分布估计算法,但与 MIMIC 不同的是COMIT采用一种树状结构来描述变之间的关系。其结构关系如下所示:
贝叶斯网络是描述变量之间概率依赖关系的数学模型, 其拓扑结构是一个有向无环图 (DAG), 如下图所示, 其中每个节点代表一个变量, 而每条边则表示变量之间的概率依赖关系。
高斯分布又称为正态分布, 通常记为 N ( μ , σ 2 ) N\left(\mu, \sigma^2\right) N(μ,σ2), 其中 μ \mu μ 为分布的均值, σ \sigma σ 为分布的方差, 其函数图像如下图所示。高斯概率模型是实数编码分布估计算法的经典概率模型。 PBIL 和 UMDA 对应的实数编码分布估计算法 PBILc 和 UMDAc 所采用的概率模型都 是高斯概率模型 。此外, 多元高斯模型也是解决多变量相关的实数编码分布估计算 法常采用的概率模型。
分布估计算法与遗传算法都是基于种群的进化算法,它们的不同之处在生成种群的机制不同。为了验证哪 种算法的性能更优, Larraga 和 Lozano等学者曾设计了多种问题来进行测试。
在GA-EDA 中,新的种群由 GA EDA 共同生成 具体地说, GA和EDA 是在同种群的基础 按照各自的机制分别产 子种群,然后再将这两个子种群组合成新的种群,如此完成迭代的进化过程。
差分进化算法 (differential Evolution), 也是一种基于种群的 机搜索算法, 它利用当前种群之间的差异信息来引导搜索。 随着 进化代数的增加,个体之间的差异性将越来越小,而简单的差分进化算法缺乏有效的机制利用和产生搜索空间中的全局的信息,因而常常会收敛于局部最优解。
简单地说,该类 法通常将种群分成多个子种群,每个子种群在不同的机器上运行,然后各个子种群通过迁移等机制进行通信,达到综合信息的目的。
下图就是dEDA 中每个岛屿运行不同的示意图
适应度评估通常是算法中最耗时的部分,而采用多台机器并行计算种群中的适应度是提高进化算法搜索速度最直接有效的方法之 一。
各位看官,都看到这里了,麻烦动动手指头给博主来个点赞8,您的支持作者最大的创作动力哟!
才疏学浅,若有纰漏,恳请斧正
本文章仅用于各位作为学习交流之用,不作任何商业用途,若涉及版权问题请速与作者联系,望悉知