分布估计算法的模型分析与研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分布估计算法的模型分析与研究
毕丽红 刘 渊 张 静
(石家庄铁路职业技术学院 河北石家庄 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 i
p 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 分布估计算法的流程图