当前位置:文档之家› 分布估计算法的模型分析与研究

分布估计算法的模型分析与研究

分布估计算法的模型分析与研究毕丽红 刘 渊 张 静 (石家庄铁路职业技术学院 河北石家庄 050041)摘要:分布估计算法是在遗传算法基础上发展起来的一类新型进化优化算法。

分布估计算法采用概率图模型表示基因变量之间的连锁关系,以构建优良解集的概率分布模型和采样分布模型来实现迭代优化。

详细分析分布估计算法的基本原理,对采用不同概率图模型的分布估计算法进行总结和分析,并针对分布估计算法领域的研究现状,提出仍需解决的主要问题。

 关键词:分布估计算法 遗传算法 概率图模型 中图分类号:TP301 文献标识码:A 文章编号:1673-1816(2008)01-0030-05遗传算法(Genetic Algorithms,GA)[1]是一种借鉴生物界自然遗传机制的高度并行和自适应的全局优化随机搜索算法,具有功能强、鲁棒性好、计算简单、对搜索空间无限制等特点。

已经成功应用于函数优化、机器学习、数据挖掘和图像识别等领域,然而,遗传算法本身还存在一些问题。

首先,遗传算法的关键是处理进化过程中的积木块(building block)[2],然而交叉算子和变异算子不具有学习和识别基因之间连锁关系的能力,所以实际的重组操作经常造成积木块的破坏,从而导致算法逼近局部最优解或早熟;另外,遗传算法中操作参数的选择依赖性强,甚至参数选择本身就是一个优化问题[3];第三,遗传算法的理论基础还比较薄弱。

为了解决遗传算法的这些问题,更好地解决各种难解优化问题,各种改进遗传算法不断出现。

至今,探索和设计能够快速、可靠、准确求解各种复杂优化问题的可胜任的遗传算法(competent GA)[2]一直是进化计算领域的一项重要课题。

1 分布估计算法的基本原理 针对积木块被破坏的问题,对传统遗传算法有代表性的改进方法主要有两类:一类是改变算法中解的表示,通过基因级而不是染色体一级的重组操作来改善遗传算法的性能。

如连锁学习遗传算法(LLGA)、基因表达混乱遗传算法(GEMGA)等,然而最近一些研究表明,此类算法所具有的连锁学习(linkage learning)能力不足以解决复杂的优化问题。

另一类算法则是改变重组操作的基本原理,将遗传算法中基因的交叉和变异操作改进为学习优良解集中基因的概率分布,其基本思想是从当前种群中选取部分优良解,并利用这些优良解估计和学习染色体中基因的分布模型,然后采样该分布模型产生新的染色体和种群。

逐次迭代,最后逼近最优解。

基于这种由分布模型改进进化算法的思想形成的一类新型优化算法称为分布估计算法(Estimation of Distribution Algorithms, EDAs)或基于概率模型的遗传算法(Probabilistic Model-Building Genetic Algorithms, PMBGAs)。

收稿日期:2007-11-09 作者简介:毕丽红(1970-),女,汉,河北石家庄人,硕士,副教授,研究方向智能控制。

 基金项目:河北省科学技术研究与发展基金项目(072135134) 第1期 毕丽红,等 分布估计算法的模型分析与研究 分布估计算法最早是由Mühlenbein, H. & Paaß于1996年提出的。

作为一类在遗传算法基础上发展起来的新型进化优化算法,分布估计算法也采用了“选择+繁殖”的群体进化策略,但由于利用构建概率图模型和采样概率图模型的进化方法,由优良解集的概率分布来引导进化搜索的前进方向,避免了传统遗传算法中交叉算子和变异算子带来的盲目性和随机性,有效地提高了进化搜索效率。

分布估计算法的流程如图1所示。

根据基因变量之间的依赖关系的不同,分布估计算法可以分为基于变量独立模型的分布估计算法、基于双变量依赖模型的分布估计算法和基于多变量依赖模型的分布估计算法。

2 基于变量独立模型的分布估计算法 最初的分布估计算法都假设n 维向量中所有随机变量都是相互独立的,也就是假设候选解中所有基因之间没有连锁关系,因此,n 维联合概率分布可以分解成n 个独立单变量概率分布的乘积。

在这种情况下,模型的结构是固定的,只需要对模型的参数进行学习。

2.1 基于群体的增量学习算法 在基于群体的增量学习算法(Population Based Incremental Learning ,PBIL )中,第l 代种群由一个n 维概率向量12()((),(),......())l l l l n p x p x p x p x =表示。

其中()p x l i 表示向量中第i 个分量取1的概率,也就是二进制表示的解集中第i 位取1的概率。

在PBIL 算法运行时,概率向量初始值为(0.5,0.5……0.5)。

在每一代,利用概率向量产生M 个个体,然后从这M 个个体中选择N (N =M )个最优解,这N 个最优解代表了种群的进化方向,因 此可由这N 个最优个体产生新一代种群。

新种群产生的方法是更新概率向量:11()(1)()(1)l l i p x a p x a m X N +=−+=。

 其中a 为学习率,取值范围为(]0,1a ∈, (1)m X i =表示种群中N 个最优个体中1X i =的个数。

2.2 单变量边缘分布算法 在单变量边缘分布算法(Univariate Marginal Distribution Algorithm ,UMDA )[11]中,种群由M 个个体组成。

在每一代,从M 个个体中选择N 个优良解,然后计算优良解集中每一位取1的频率,并由此产生概率分布模型,进而采样该分布模型产生新一代种群。

在UMDA 中,每个单变量边缘分 布由优良解集中每一位取1的频率来估算,即:(1)(1)m X ip x i N ===。

(1)m X i=表示被选择的N 个优良解中的第i 位取1的个数。

在PBIL 中,如果a =1,则与UMDA 相同,因此可以把UMDA 看作PBIL 的一个特例。

2.3 压缩遗传算法 与PBIL 类似,在压缩遗传算法(compact Genetic Algorithm ,cGA )[3]中种群由一个概率向量表示。

每一代由概率分布采样产生两个相互竞争的个体winner x 和loser x ,算法根据优胜解winner x 等位基因上的值来更新概率向量。

如果winner x 和loser x 第i 个等位基因的值不同,则概率向量相应分量()l i p x 根据winner x 在该位置上的值是1或0而相应增加或减少1/s ,其中s 为种群规模。

图1 分布估计算法的流程图石家庄铁路职业技术学院学报 2008年第1期在PBIL 、UMDA 和cGA 中,都假设各变量是相互独立的,在概率图模型中各节点之间没有边或弧相连,其概率图模型如图2所示。

3 基于双变量依赖模型的分布估计算法 各变量相互独立是一个非常苛刻的条件假设,能够满足这一条件的优化问题非常少。

在绝大多数实际问题中,各变量之间都存在一定的相互联系。

本节中的几种算法就假设两个变量之间存在相互依赖关系。

此时,在算法中除了需要确定参数以外,还要对模型的结构进行学习。

3.1 输入聚类最大互信息算法 输入聚类最大互信息算法(Mutual Information Maximization for Input Clustering ,MIMIC )[4]把所有的随机变量之间的相互关系假设成了一个链连接关系,在n 个随机变量组成的链中,只有相邻节点之间存在相互联系。

在每一代,MIMIC 搜索一个变量之间的最优排列()l px π,使被选择优良解集的概率分布()l p x 与该排列定义的概率分布()l px π最接近。

其中:12231()()()......()()n n n l l i i l i i l i i l i p x p x x p x x p x x p x π−=g g g 。

12(,,......)n i i i π=表示序号1,2,……n 的一个排列。

两个概率分布()l p x 与()l px π之间的接近程度Kullback-Liebler 度量来表示。

在求得排列()l p x π后,采样该排列产生下一代种群。

3.2 双变量边缘分布算法 双变量边缘分布算法(Bivariate Marginal Distribution Algorithm ,BMDA )假设待求解问题的概率模型是一组树结构(或称为森林结构)。

这一组树组成的模型可以定义为一个三元组G ={V ,E ,R },其中V 是节点的集合;E V V ⊂×是边的集合;而R 则是所有树的根节点的集合。

在每一代,BMDA 算法的概率分布为:\()()(())r i i r R i V R p x p x p x p a x ∈∈=∏∏。

其中,R 表示根节点的集合,V 表示n 个变量的集合,概率分布()r p x 和(())i i p x pa x 由被选择的优良解集来进行估计。

在BMDA 中,节点之间是否存在依赖关系采用Peason 的2χ统计,对于两个随机变量的2χ统计量,如果2χ<3.84,则认为它们之间是相互独立的(显著性水平95 %)。

MIMIC 、COMIT 和BMDA 都假设基因变量之间两两相关,并分别采用了链形、树形和森林结构,其概率图模型如图3所示。

4 基于多变量依赖模型的分布估计算法 假设三个及三个以上随机变量之间存在相互依赖关系的算法属于多变量分布估计算法,许多复杂优化问题都属于多变量依赖的问题。

假设多个随机变量之间存在相互依赖关系,概率模型非常复杂,构建概率模型的计算量很大,因此一般采用贪婪算法寻找次优解。

4.1 扩展压缩遗传算法 扩展压缩遗传算法(Extended Compact Genetic Algorithm ,ECGA )的基本思想是利用聚类分析的方法把所有变量划分成彼此独立的变量组,每一组变量的边缘分布作为其联合分布,并在每一组内使用cGA 算法。

此时,全部变量的联合概率分布就是所有各组变量的边缘分布的乘积。

ECGA 使用的这种概率模型称为边缘乘积模型。

图2 PBIL 、UMDA 和cGA的变量独立模型(a )链模型 (b )树模型 (c )森林模型图3 MIMIC 、COMIT 和BMDA 算法的概率图模型第1期 毕丽红,等 分布估计算法的模型分析与研究 在划分变量组时,ECGA采用了最小描述长度准则(MDL),算法利用模型复杂度C m和压缩群体的复杂度C p之和来定义边缘乘积模型的组合复杂度C c。

为了减少计算量,ECGA采用了贪婪算法进行变量组的划分。

首先假设每个变量作为一组,然后算法将变量组两两组合,并选取使模型组合复杂度最小的一种组合方式进行合并,构成一个新组,算法一直进行这种合并,直到没有变量组可以合并为止。

相关主题