分布估计算法及其性能研究
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(5) (5) 式中的 h 表示熵 , 由于式中第 1 项与排列 P 无 关 ,最优的 P 是分布 P ( X) 中序偶熵之和最小的排 列. 基于这一原理 , M IM IC 通过简单的贪婪算法寻 找最佳的排列 P , 然后依据此排列的分布产生新的 样点 ,如此重复 ,直到满足终止条件.
M IM IC 的实现过程可以用一个链式有向图表 示排列顺序 ,注意这种图除首结点和尾结点外 ,其他 结点的入度和出度都为 1. 图中每一结点表示一个 变量 ,对应一个染色体的一个基因位. 产生新样点 时 ,首先利用单变量统计频度产生它的第 1 个基因 , 所有其它的基因则通过计算其上一基因的条件概率 依次生成 ,实际上这是从 (5) 式中最后一项开始往前 计算. M IM IC 的特点是基于双变量边缘分布和贪婪 搜索的连锁学习算法.
二次边缘分布算法 ( bivariate marginal dist ri2 butio n algorit hm ,BMDA) 采用森林结构表示分布 , 为了确定变量 (结点) 的连接 ,算法采用计算双变量 边缘分布 Pear so n[ 26 ] X 平方统计计算方法 , 这种 计算方法也用于辨识其余变量的相关关系. 算法采 用最大生成树类似的搜索算法构造并搜索最后的模 型. 由于链 、树都属于森林的特殊情况 ,BMDA 具有 更一般的意义和更好的精确度.
思路和 PB IL 类似 ,用一个概率向量 P (长度为染色
体长度 L ) 模拟群体的性质 ,采用基于基因位的交叉
模拟染色体的交叉. 概率向量各元素 P[ i ] ( 1 ≤i ≤
L) 的初值为 0. 5 ,表示当前群体中染色体包含的二
进制位“0”和“1”的比例服从均匀分配 ,若采用淘汰
选择 ,则依据概率向量选择两个个体 A 和 B ,评价
} 算法中的参数 M 表示排序后的前 M 个解用于
修改概率向量 ; а表示学习速率 , 它决定完成搜索过 程的速率. 显然 a 越小 ,算法搜索过程越长.
Harik[3] 等 人 提 出 了 压 缩 遗 传 算 法 ( co mpact
genetic algo rit hm ,C GA) 的概念. C GA 算法的基本
EDA s 算法的概念最早可以追溯到 Ackley 于 1987 年提出的一个学习算法[1] ,在此算法中他引入 了一个具有重要意义的数据结构即基因向量 ,通过 来自群体的正负反馈信息操作此向量. 文中有一个 直观的比拟 ,即把长度为 L 的基因向量比做由 L 个 成员组成的政府 ,群体数据比做选民的投票结果 ,依 据此结果评判群体 (选民) 对向量 (政府) 的满意程 度. 这一算法的意义是首次应用了群体中基因的概 率分布分析和评价解的质量.
A 和 B 的适应度 ,分辨出其中适应度较大者 winner
和较小者 lo ser ,然后将 winner 按基因位和当前的
概率向量元素进行交叉.
以 PB IL 为代表的上述算法实际上是抽取优选
解的整体信息 ,然后评价它们的分布 ,再利用这种分
布产生新的群体. 但这种评价的前提是假定变量 (基
因) 间 相互 独立. 因此 , 它们 在求 解 线 性 问 题 ( 如
1 连锁学习问题
由 Holland 首先提出的基本遗传算法 ( GA) ,是 基于人工选择和交叉 、变异 、重组等操作构成的一种 优化 方 法. 其 基 本 依 据 是 模 式 定 理 和“构 造 块” ( building block) 假设理论 ,构造块指的是群体中高 于平均适应度 、低阶 、短距离的模式 ,也就是构成问 题解的基本部分. GA 通过对大量的构造块进行选 择和重组操作 ,再生和混合更多好的构造块 ,最后逼 近解. 但由于实际的重组操作常导致构造块破坏 ,导 致算法或者逼近局部最优或者早熟. 构造块破坏问 题一般称为连锁 (linkage) 问题 ,具有识别构造块的 算法称为连锁学习 (linkage learning) 算法.
fit ness) ; / / 3 修改概率向量
for ( i = M ; i > = 1 ; i - - )
for ( j = 1 ; j < = L ; j + + ) P[ j ] = P[ j ] 3 (1. 0 - а) + Best - solutio n2vec2 to r s[ i ][ j ] 3 ( а) ; } ret urn (best2solutio n2vector s)
关 键 词 : 分布估计算法 ; 概率模型 ; 组合优化问题 中图分类号 : TP 301 文献标识码 :A
一些研究者从概率统计的观点出发 ,将构造性 模型引入进化算法的研究 ,形成一类基于概率分布 的进化算法 ,称为分布估计算法 ( Estimatio n of Dis2 t ributio n Algorit hms) ,简称为 EDA s. 本文介绍分 布估计算法的研究概况 ,分析其产生的背景和基本 思想. 在此基础上 ,按照算法模型的复杂度将其归纳 成几种类型. 分别分析了它们的实现方法和求解问 题的能力和效率.
不具备连锁学习的 GA 将引导解朝向局部最优 进化 ,实际应用中也普遍存在连锁问题 ,如背包问 题 、图划分问题 、计算机网络的路由等问题. 因此需 要研究具有能识别构造块的连锁学习算法 ,有效地 求解上述具有普遍意义的连锁问题. 然而. 这是一个
具有挑战性的难题 ,对于一定规模的问题 ,此组合数 将是一个天文数字.
2 分布估计算法
2. 1 一阶分布估计算法 为了克服 GA 因交叉重组导致的连锁问题 ,人
们提出是否可以不使用重组操作 ,而是通过从优选 的解集合中提取信息 ,然后利用这种信息的分布概 率产生新的解 ,由此实现算法的连锁学习. 这种将构 造性概率模型引入进化算法的思想形成概率分析进 化算法的理论依据.
第 51 卷 第 S2 期 2005 年 12 月
武汉大学学报 (理学版) J . Wuhan U niv. (Nat . Sci. Ed. )
文章编号 :167128836 (2005) S220125204
分布估计算法及其性能研究
丁才昌 , 方 勃 , 鲁小平
(武汉大学 计算机学院 ,湖北 武汉 430072)
for ( i = 1 ; i < = L ; i + + ) P[ i ] = 0. 5 ; while (NO T T ERM INA TION COND I TION ) { / / 3 利用概率向量产生 N 个样点 , 计算样点的 适应度 ;
for ( i = 1 ; i < = N ; i + + ) { solutio n - vector s [ i ] = generate wit h p ro ba2 bilities ( P) ; fit ness [ i ] = Evaluate2Solutio n ( solutio n vec2 tors[ i]) ; } / / 3 按照适应度值排序样点 best2solutio n2vector s = sort2solutio ns2best2to2wo rst ( solutio n2vecto rs ,
P′π ( X nm - 1 | X nm ) P′π ( X nm )
(4)
(4) 式中的 P = ( m1 , m2 , …, mn ) 是集合 ( 1 , 2 , …, n)
上的一个排列. 为使 Pπ′( X) 和分布 P ( X) 最为接近 ,
只需保证 Kullback2Liebler 散度 D ( P( X) ∣ Pπ′( X) )
Syswerda 在文献 [ 2 ] 中提出了“基于基因位的 模拟交叉”( bit2based simulated cro ss ,BSC) 操作来 产生新群体的思想. BSC 操作利用群体级的统计方 法替代 GA 的交叉重组 ,其基本思想描述如下 :对于 当前群体 ,统计染色体中第 i 个基因位为 1 的个体 数量 ;同样也统计第 i 个基因位为 0 的个体数量. 对
最小 ,不难得到 :
第 S2 期
丁才昌 等 :分布估计算法及其性能研究
127
D ( P( X) ∣ P′π( X) ) = - h ( P( X) ) + h ( X m1 | X m2 )
+ h ( X m2 | X m3 ) + h ( X nm - 1 | X nm ) + h ( X nm )
Vol. 51 No . S2 Dec. 2005 ,125~128
摘 要 : 在传统的遗传算法中 ,不合适的的参数设置会降低解的质量 ,于是在解决一些优化问题时传统的遗 传算法被分布估计算法所取代. 将分布估计算法按其复杂性归纳成几种模型 ,分别描述了它们的实现方法和求解 问题的能力和效率.
…, X n) P ( X n- 1 | X n) P ( X n)
(3)
若式 (3) 中只考虑序偶条件概率 P ( X I | X i ) 和无条
件概率 P( X I ) ,则可定义 Pπ′( X) = Pπ′( X m1 , X m2 , …,
X nm ) 的分布为
P′π( X) = P′π( X m1 | X m2 ) P′πX m2 | X m3 ) …
和 M IM IC 类似的另一个基于双变量边缘分布 的 EDA s 算法是用树结构表示分布的算法 ; 这种称 为相关树 (dependency t ree) 的结构使得树中父子结 点的相关信息最大. 树中根结点的值首先利用单变 量边缘分布产生 ,树中其它的叶结点的值则依据其 父结点的条件概率产生. 事实上 ,链是一种特殊的 树 ,因此比较 M IM IC 的链式分布 ,树型结构分布的 精确度更高. 此外 ,这种算法可以使用一种多项式 复杂性的最大分支算法搜索最好的相关树.
收稿日期 : 2005209220 作者简介 : 丁才昌 (19802) ,男 ,硕士生 ,现从事信息获取与处理研究. E2mail : hamigua_ping @163. com
126
武汉大学学报 (理学版)
第 51 卷
这些数据和适应度函数值加权统计 ,作为产生后代 的依据 ,即按照统计值概率分配新个体的基因位值 为 1 或 0. BSC 实际上把 GA 的选择和交叉结合成 一个操作 ,其创新意义是利用样点边缘概率分布计 算取代 GA 的重组操作来产生新的群体.
One2Max 问题) 或一阶构造块. 块问题上具有和 GA
相当甚至更好的性能 ,且易于实现. 但对于变量间具
有相互影响 (一种连锁关系) 的高阶构造块问题 ,这
Baidu Nhomakorabea
些算法由于不具备连锁学习的功能 ,求解效果较差.
基于这些原因 ,本文将其归纳为一阶概率分析进化
算法. 由于一阶 EDA s 不能处理连锁问题 ,因此需要
寻找更好的分布评价方法达到连锁学习的目的.
2. 2 二阶分布估计算法
EDA s 算法中的一个重要问题是连锁学习即如
何识别和混合高阶的构造块 ,这一问题引出 EDA s
中建立分布和学习分布的两个基本问题. 首先研究
并提出高阶连锁学习的 EDA s 算法是称为“相互信
息最大输入聚合”的算法 ( mut ual informatio n maxi2
Baluia 巧妙地结合上述两者的思想 ,构思了利 用一个概率向量表示群体的染色体 ,并用它记录群 体在结构中每一基因位置为“1”或为“0”的比例 ,初 始概率向量的每一位值为 0. 5 (表示该基因位为 0 和 1 的概率均等) ,通过搜索过程逐步朝向 0 或 1 逼 近. 并利用此向量产生新的个体 ,再依据这些新个体 的适应度值修改概率向量 ,使之最后逼近最优解. 这 种称为“基于群体的增量学习”(pop ulatio n - based increased learning ,PB IL) 的算法 ,一般被认为是概 率分析算法的原型 ,它对 EDA s 的研究和发展具有 重要意义. 为此本文作者用 C 伪代码给出基本的 PB IL 算法如下 : {/ / 3 初始化概率向量 P
mizing inp ut clustering ,M IM IC 算法) [4] . 该算法的
基本思想如下 :设
P( X) = P( X1 , X2 , …, X n)
(1)
是随机变量集合
X = ( X1 , X2 , …, X n)
(2)
上的联合概率分布 ,即有 :
P( X) = P( X1 | X2 , …, X n) P( X2 | X3 ,
M IM IC 的实现过程可以用一个链式有向图表 示排列顺序 ,注意这种图除首结点和尾结点外 ,其他 结点的入度和出度都为 1. 图中每一结点表示一个 变量 ,对应一个染色体的一个基因位. 产生新样点 时 ,首先利用单变量统计频度产生它的第 1 个基因 , 所有其它的基因则通过计算其上一基因的条件概率 依次生成 ,实际上这是从 (5) 式中最后一项开始往前 计算. M IM IC 的特点是基于双变量边缘分布和贪婪 搜索的连锁学习算法.
二次边缘分布算法 ( bivariate marginal dist ri2 butio n algorit hm ,BMDA) 采用森林结构表示分布 , 为了确定变量 (结点) 的连接 ,算法采用计算双变量 边缘分布 Pear so n[ 26 ] X 平方统计计算方法 , 这种 计算方法也用于辨识其余变量的相关关系. 算法采 用最大生成树类似的搜索算法构造并搜索最后的模 型. 由于链 、树都属于森林的特殊情况 ,BMDA 具有 更一般的意义和更好的精确度.
思路和 PB IL 类似 ,用一个概率向量 P (长度为染色
体长度 L ) 模拟群体的性质 ,采用基于基因位的交叉
模拟染色体的交叉. 概率向量各元素 P[ i ] ( 1 ≤i ≤
L) 的初值为 0. 5 ,表示当前群体中染色体包含的二
进制位“0”和“1”的比例服从均匀分配 ,若采用淘汰
选择 ,则依据概率向量选择两个个体 A 和 B ,评价
} 算法中的参数 M 表示排序后的前 M 个解用于
修改概率向量 ; а表示学习速率 , 它决定完成搜索过 程的速率. 显然 a 越小 ,算法搜索过程越长.
Harik[3] 等 人 提 出 了 压 缩 遗 传 算 法 ( co mpact
genetic algo rit hm ,C GA) 的概念. C GA 算法的基本
EDA s 算法的概念最早可以追溯到 Ackley 于 1987 年提出的一个学习算法[1] ,在此算法中他引入 了一个具有重要意义的数据结构即基因向量 ,通过 来自群体的正负反馈信息操作此向量. 文中有一个 直观的比拟 ,即把长度为 L 的基因向量比做由 L 个 成员组成的政府 ,群体数据比做选民的投票结果 ,依 据此结果评判群体 (选民) 对向量 (政府) 的满意程 度. 这一算法的意义是首次应用了群体中基因的概 率分布分析和评价解的质量.
A 和 B 的适应度 ,分辨出其中适应度较大者 winner
和较小者 lo ser ,然后将 winner 按基因位和当前的
概率向量元素进行交叉.
以 PB IL 为代表的上述算法实际上是抽取优选
解的整体信息 ,然后评价它们的分布 ,再利用这种分
布产生新的群体. 但这种评价的前提是假定变量 (基
因) 间 相互 独立. 因此 , 它们 在求 解 线 性 问 题 ( 如
1 连锁学习问题
由 Holland 首先提出的基本遗传算法 ( GA) ,是 基于人工选择和交叉 、变异 、重组等操作构成的一种 优化 方 法. 其 基 本 依 据 是 模 式 定 理 和“构 造 块” ( building block) 假设理论 ,构造块指的是群体中高 于平均适应度 、低阶 、短距离的模式 ,也就是构成问 题解的基本部分. GA 通过对大量的构造块进行选 择和重组操作 ,再生和混合更多好的构造块 ,最后逼 近解. 但由于实际的重组操作常导致构造块破坏 ,导 致算法或者逼近局部最优或者早熟. 构造块破坏问 题一般称为连锁 (linkage) 问题 ,具有识别构造块的 算法称为连锁学习 (linkage learning) 算法.
fit ness) ; / / 3 修改概率向量
for ( i = M ; i > = 1 ; i - - )
for ( j = 1 ; j < = L ; j + + ) P[ j ] = P[ j ] 3 (1. 0 - а) + Best - solutio n2vec2 to r s[ i ][ j ] 3 ( а) ; } ret urn (best2solutio n2vector s)
关 键 词 : 分布估计算法 ; 概率模型 ; 组合优化问题 中图分类号 : TP 301 文献标识码 :A
一些研究者从概率统计的观点出发 ,将构造性 模型引入进化算法的研究 ,形成一类基于概率分布 的进化算法 ,称为分布估计算法 ( Estimatio n of Dis2 t ributio n Algorit hms) ,简称为 EDA s. 本文介绍分 布估计算法的研究概况 ,分析其产生的背景和基本 思想. 在此基础上 ,按照算法模型的复杂度将其归纳 成几种类型. 分别分析了它们的实现方法和求解问 题的能力和效率.
不具备连锁学习的 GA 将引导解朝向局部最优 进化 ,实际应用中也普遍存在连锁问题 ,如背包问 题 、图划分问题 、计算机网络的路由等问题. 因此需 要研究具有能识别构造块的连锁学习算法 ,有效地 求解上述具有普遍意义的连锁问题. 然而. 这是一个
具有挑战性的难题 ,对于一定规模的问题 ,此组合数 将是一个天文数字.
2 分布估计算法
2. 1 一阶分布估计算法 为了克服 GA 因交叉重组导致的连锁问题 ,人
们提出是否可以不使用重组操作 ,而是通过从优选 的解集合中提取信息 ,然后利用这种信息的分布概 率产生新的解 ,由此实现算法的连锁学习. 这种将构 造性概率模型引入进化算法的思想形成概率分析进 化算法的理论依据.
第 51 卷 第 S2 期 2005 年 12 月
武汉大学学报 (理学版) J . Wuhan U niv. (Nat . Sci. Ed. )
文章编号 :167128836 (2005) S220125204
分布估计算法及其性能研究
丁才昌 , 方 勃 , 鲁小平
(武汉大学 计算机学院 ,湖北 武汉 430072)
for ( i = 1 ; i < = L ; i + + ) P[ i ] = 0. 5 ; while (NO T T ERM INA TION COND I TION ) { / / 3 利用概率向量产生 N 个样点 , 计算样点的 适应度 ;
for ( i = 1 ; i < = N ; i + + ) { solutio n - vector s [ i ] = generate wit h p ro ba2 bilities ( P) ; fit ness [ i ] = Evaluate2Solutio n ( solutio n vec2 tors[ i]) ; } / / 3 按照适应度值排序样点 best2solutio n2vector s = sort2solutio ns2best2to2wo rst ( solutio n2vecto rs ,
P′π ( X nm - 1 | X nm ) P′π ( X nm )
(4)
(4) 式中的 P = ( m1 , m2 , …, mn ) 是集合 ( 1 , 2 , …, n)
上的一个排列. 为使 Pπ′( X) 和分布 P ( X) 最为接近 ,
只需保证 Kullback2Liebler 散度 D ( P( X) ∣ Pπ′( X) )
Syswerda 在文献 [ 2 ] 中提出了“基于基因位的 模拟交叉”( bit2based simulated cro ss ,BSC) 操作来 产生新群体的思想. BSC 操作利用群体级的统计方 法替代 GA 的交叉重组 ,其基本思想描述如下 :对于 当前群体 ,统计染色体中第 i 个基因位为 1 的个体 数量 ;同样也统计第 i 个基因位为 0 的个体数量. 对
最小 ,不难得到 :
第 S2 期
丁才昌 等 :分布估计算法及其性能研究
127
D ( P( X) ∣ P′π( X) ) = - h ( P( X) ) + h ( X m1 | X m2 )
+ h ( X m2 | X m3 ) + h ( X nm - 1 | X nm ) + h ( X nm )
Vol. 51 No . S2 Dec. 2005 ,125~128
摘 要 : 在传统的遗传算法中 ,不合适的的参数设置会降低解的质量 ,于是在解决一些优化问题时传统的遗 传算法被分布估计算法所取代. 将分布估计算法按其复杂性归纳成几种模型 ,分别描述了它们的实现方法和求解 问题的能力和效率.
…, X n) P ( X n- 1 | X n) P ( X n)
(3)
若式 (3) 中只考虑序偶条件概率 P ( X I | X i ) 和无条
件概率 P( X I ) ,则可定义 Pπ′( X) = Pπ′( X m1 , X m2 , …,
X nm ) 的分布为
P′π( X) = P′π( X m1 | X m2 ) P′πX m2 | X m3 ) …
和 M IM IC 类似的另一个基于双变量边缘分布 的 EDA s 算法是用树结构表示分布的算法 ; 这种称 为相关树 (dependency t ree) 的结构使得树中父子结 点的相关信息最大. 树中根结点的值首先利用单变 量边缘分布产生 ,树中其它的叶结点的值则依据其 父结点的条件概率产生. 事实上 ,链是一种特殊的 树 ,因此比较 M IM IC 的链式分布 ,树型结构分布的 精确度更高. 此外 ,这种算法可以使用一种多项式 复杂性的最大分支算法搜索最好的相关树.
收稿日期 : 2005209220 作者简介 : 丁才昌 (19802) ,男 ,硕士生 ,现从事信息获取与处理研究. E2mail : hamigua_ping @163. com
126
武汉大学学报 (理学版)
第 51 卷
这些数据和适应度函数值加权统计 ,作为产生后代 的依据 ,即按照统计值概率分配新个体的基因位值 为 1 或 0. BSC 实际上把 GA 的选择和交叉结合成 一个操作 ,其创新意义是利用样点边缘概率分布计 算取代 GA 的重组操作来产生新的群体.
One2Max 问题) 或一阶构造块. 块问题上具有和 GA
相当甚至更好的性能 ,且易于实现. 但对于变量间具
有相互影响 (一种连锁关系) 的高阶构造块问题 ,这
Baidu Nhomakorabea
些算法由于不具备连锁学习的功能 ,求解效果较差.
基于这些原因 ,本文将其归纳为一阶概率分析进化
算法. 由于一阶 EDA s 不能处理连锁问题 ,因此需要
寻找更好的分布评价方法达到连锁学习的目的.
2. 2 二阶分布估计算法
EDA s 算法中的一个重要问题是连锁学习即如
何识别和混合高阶的构造块 ,这一问题引出 EDA s
中建立分布和学习分布的两个基本问题. 首先研究
并提出高阶连锁学习的 EDA s 算法是称为“相互信
息最大输入聚合”的算法 ( mut ual informatio n maxi2
Baluia 巧妙地结合上述两者的思想 ,构思了利 用一个概率向量表示群体的染色体 ,并用它记录群 体在结构中每一基因位置为“1”或为“0”的比例 ,初 始概率向量的每一位值为 0. 5 (表示该基因位为 0 和 1 的概率均等) ,通过搜索过程逐步朝向 0 或 1 逼 近. 并利用此向量产生新的个体 ,再依据这些新个体 的适应度值修改概率向量 ,使之最后逼近最优解. 这 种称为“基于群体的增量学习”(pop ulatio n - based increased learning ,PB IL) 的算法 ,一般被认为是概 率分析算法的原型 ,它对 EDA s 的研究和发展具有 重要意义. 为此本文作者用 C 伪代码给出基本的 PB IL 算法如下 : {/ / 3 初始化概率向量 P
mizing inp ut clustering ,M IM IC 算法) [4] . 该算法的
基本思想如下 :设
P( X) = P( X1 , X2 , …, X n)
(1)
是随机变量集合
X = ( X1 , X2 , …, X n)
(2)
上的联合概率分布 ,即有 :
P( X) = P( X1 | X2 , …, X n) P( X2 | X3 ,