1.简介
贝叶斯网络(BN)[1]也被称为概率信念网络或因果网络[2]是一种图形模型和知识表示工具。BNs可以有效地对一组随机变量之间的依赖或独立关系进行概率描述。BN由一个有向非循环图形结构和一组概率参数组成。有向无环图形结构表示各种变量之间的依赖关系,相应的概率参数指定了它们的依赖程度。最近,从数据集中学习BN结构受到了越来越多的关注[三],研究人员引入了各种学习算法来获得BN的结构。根据造型类型[三,4,5],这些结构学习算法可以分为基于检测条件独立性的方法[6,7]也称为基于约束的方法,即“分数+搜索”方法[1,2,8,9,10,11,12,13],以及结合上述两种方法的算法[14,15,16,17]. 对于分数+搜索方法,将BN结构学习建模为一个优化问题。评分指标用于评估候选网络结构的好坏[三]与数据集匹配。候选网络结构与数据集的匹配程度越高,得分越高。因此,可以使用优化技术来搜索得分最高的网络结构。然而,为BN搜索最佳网络是一个NP-hard问题[5,18]这意味着这些精确的方法变得不可行。因此,近似算法对于快速获得足够高质量的网络结构非常有用。贪婪搜索方法,包括K2算法和许多元神经方法,如遗传算法(GA)[12]进化编程(EP)[12]和粒子群优化(PSO)[14],常用于解决BN学习问题。 作为一种基于群体的元神经技术,蚁群优化(ACO)也被成功地引入到从数据集学习BN结构的问题中[1,2,8,14,15]. ACO最初是在真实蚂蚁系统集体行为的启发下提出的[19,20],已经应用于广泛的优化问题。Campos等人[2]首先将蚁群算法引入到BN结构学习问题中。他们描述了使用ACO解决BN学习问题所需的所有要素,对比实验表明,ACO的性能优于分布估计算法(EDA)和贪婪爬山算法(HC)。基于基于约束的局部发现算法,Pinto等人[1]提出了一种局部发现的ACO方法,该方法使用条件依赖检验max-min父母和子女的方法。Ji等人[15]提出了一种结合ACO、条件独立性检验和模拟退火(SA)策略的混合方法,其混合ACO方法在计算时间和搜索能力方面优于基本ACO。然而,上述基于ACO的混合算法存在两个缺点。首先,条件独立性测试会使计算更加复杂和不可靠[三]. 其次,当变量数量很大时,基于ACO的算法很容易陷入局部最优解,导致过早停滞。为了避免条件独立性测试带来的缺陷,有必要改进ACO算法的固有搜索机制。 本文提出了一种改进的蚁群算法,以提高基本蚁群算法在解决BN结构学习问题时的收敛性和准确性。改进后的蚁群算法将整个蚁群分为几个小的子蚁群,称为群。在每个蚂蚁群中,蚂蚁都会执行各自的动作,从而导致整个蚂蚁群根据其自身的信息向前进化。此外,同时,在不同的群体之间,信息也以合作变量的形式共享,所有的蚂蚁群体将通过合作操作一起进化。协同进化过程中的协同操作基于差分进化(DE)算法[21,22],这导致了所有蚂蚁群体的协同进化过程。提出的改进ACO表示为协同进化ACO(coACO)。coACO算法有两个有趣的特点:(1)分组算子将整个蚁群划分为不同的蚁群,因此,该算法不仅可以实现蚂蚁个体之间的社会合作,还可以实现蚁群之间的合作交互和信息共享;(2) DE算法用于调整协作信息,并引导所有蚁群以协作方式向最优方向进化。 在本文的其余部分中,给出了BN结构学习的问题描述以及ACO算法的介绍第2节中描述了所提出的coACO算法和详细的BN结构学习方法第3节.第4节显示了测试结果。第5节本文得出结论。 2.准备工作
2.1. BN结构学习问题
BN是表示n个-维概率分布。它可以用有向无环图(DAG)来描述G公司≤X(X),A类, Θ>. 在G公司,每个节点X(X)我X(X)表示感兴趣的随机变量,而每个弧一伊吉A类表示变量之间的直接依赖关系X(X)我和X(X)j。此外,参数θ我=P(P)(X(X)我|π我),其中θ={θ我},表示的条件概率分布X(X)我给定其父集合π我。根据条件分布,联合概率可以由
提供培训数据库D类=========================================================={x个1,x个2,…,x个米}由米案例,每个案例包含n个变量,其中x个我是域变量的实例X(X),BN结构学习的问题是找到与数据集最匹配的BN拓扑结构D类.
如前所述,从数据中学习BN结构的算法主要包括基于约束的方法和分数+搜索方法。基于依赖性分析,现有方法接近BN的语义,实现相对简单[8]. 然而,很难保证获得的结构的精度。此外,高阶测试的计算是复杂和不可靠的。因此,大多数已开发的结构学习算法都属于后者,即分数+搜索方法[三,5]将BN结构学习问题视为一个组合优化问题。 基于score+搜索方法的BN结构学习首先使用评分指标来评估候选BN结构与给定数据集的匹配程度,然后找到得分最大的网络结构。流行的评分指标包括Akaike的信息标准(AIC)、贝叶斯信息标准(BIC)、最小描述长度(MDL)得分和贝叶斯-狄利克雷等价性(BDe)指标(通常称为K2指标)[三]. 这里,BIC评分量度来自惩罚最大似然,用作确定数据集匹配度的结构,如下所示:其中,B类S公司是候选BN结构; 第页我是变量的可能值的数目X(X)我;
q个我是其父级可能的配置实例化数π我;
N个ijk公司是中的案例数D类在哪个变量中X(X)我有它的k个-第th个值,π我实例化为j-th值,以及;
是BN的尺寸(指定模型所需的参数数量);和(f)(米)是非负惩罚函数,取决于数据集的大小,可以计算为(f)(米)=0.5·log米.
使用(f)(B类S公司,D类)而不是P(P)(B类S公司|D类),BIC评分指标[三]定义为:哪里 评分指标的一个理想且重要的特征是,在存在完整数据的情况下可以分解,并且(3)表明此处使用的BIC指标是可分解的。使用可分解度量,每次移动改变一个弧的局部搜索过程可以有效评估此更改所获得的改进[2,三],因为它可以重用在前面的阶段中进行的大多数计算。此外,BN的得分可以计算为较小因子得分的组合。 2.2. ACO公司
作为一种具有代表性的生物启发元神经算法,ACO是由Dorigo在20世纪90年代首次提出的[19]解决旅行商问题(TSP)。到目前为止,ACO已被证明是一种在广泛领域中解决各种优化问题的更通用框架[23,24,25]例如job-shop调度、数据挖掘、路由问题等复杂的优化问题。研究人员在观察真正的蚂蚁群落的觅食行为时发现,真正的蚂蚁在行走时会沉积一种叫做信息素的化学物质。信息素可以积累和蒸发,通过这些信息素,蚁群可以进行间接通信,最终达到合作的目的。蚂蚁可以闻到信息素并根据信息素的数量以概率的方式选择自己的方式。在一条路线上沉积的信息素越多,蚂蚁选择该路线的可能性就越大。同时,在蚂蚁旅行的较短路线上,信息素的积累速度比在较长路线上更快。因此,在较短的路线上,信息素的数量增加得越快,蚂蚁沿着这条路线旅行的可能性就越大。在信息素缺失的初始阶段,蚂蚁完全随机地选择它们的路径,但经过一段短暂的时间后,最短的路径将越来越频繁地被访问,信息素在它们身上的积累将越来越快,这反过来将吸引越来越多的蚂蚁选择这些路径。 ACO的数学模型描述如下。让M(M)蚂蚁是蚂蚁的数量,和矩阵τ(t吨) = {τ伊吉(t吨)}是信息素,其中的元素τ伊吉(t吨)是节点弧上沉积的信息素水平我到节点j,时间t吨每个有向弧上信息素的初始水平是一个常量,即。,τ伊吉(0)=τ0每个蚂蚁通过有限的相邻节点序列来构建问题的可能解决方案,这些移动由蚂蚁的内部状态、特定于问题的局部信息以及信息素的共享信息来指导[19]. 对于k个-th ant位于我-第个节点,它将移动到下一个节点j-转移概率为的第个节点:哪里η伊吉表示有关问题的启发式信息,允许k个表示的可行域k个-第个蚂蚁在我-第个节点,和α和β是决定信息素相对于启发式信息的相对重要性的参数。 此外,为了在开采和勘探之间取得平衡[2],引入了不同的转换规则,并且下一个节点选择为:哪里q个是均匀分布在;q个0[0,1]是决定开采与勘探相对重要性的参数;和J型是根据(1)中的转移概率随机选择的节点α= 1. 当蚂蚁移动并构建可能的解决方案时,信息素矩阵会根据全局更新和局部更新过程进行更新[20]. 至于构建解决方案时的本地更新过程,如果蚂蚁离开节点我到节点j,然后对应弧上的信息素水平伊吉更新如下:哪里τ0是所有弧上的初始信息素级别,并且ψ(0,1]表示控制信息素蒸发的参数。在所有蚂蚁构造出一个解后,只有获得最佳解的蚂蚁才能在弧上增强信息素水平,这就是最佳解,S公司+,目前为止由蚁群获得。全局更新规则可以表示为哪里ρ(0,1]是可以控制信息素蒸发的参数,并且(f)(S公司+)是与最佳解决方案相关的成本S公司+以下算法1显示了应用于优化问题的ACO完整算法[19].算法1:ACO算法。 |
| /*初始化*/ |
1 | 设置迭代计数器克= 0; |
2 | 生成M(M)蚂蚁蚂蚁,并初始化信息素矩阵; |
| /*迭代搜索*/ |
三 | 虽然不满足终止标准做 |
4 | 迭代计数器克=克+1个 |
5 | 对于 我=1:M(M)蚂蚁 做 |
| /*构建可能的解决方案*/ |
6 | 虽然解决方案尚未完成做 |
7 | 根据概率转移规则随机选择状态/节点; |
8 | 根据局部更新规则更新信息素; |
9 | 结束while |
10 | 结束 |
| /*信息素更新*/ |
11 | 选择最佳解决方案并执行全局更新过程; |
12 | 结束while |
13 | 返回最佳解决方案S公司+. |
2.3. 适用于BN的ACO
使用基本的ACO算法,可以在基于分数+搜索框架的可能网络空间中找到最佳网络[1,2]. 从一个空白网络开始,蚁群逐步搜索好的单步变化,以构建一个完整的BN。每个蚂蚁随机连接两个变量,并确定是否应将弧包含在BN结构中。如施工过程所示图1[2,14,15],蚂蚁使用从空白网络开始的解决方案的增量构造G公司0通过连接弧一伊吉=========================================================={X(X)我→X(X)j}然后将其添加到当前网络,即。,G公司小时+1=G公司小时∪一伊吉当无法添加弧以获得更高的BN结构分数时,蚂蚁的建造过程将停止,并获得最终解决方案G公司克在所有候选弧上放置的信息素和启发式信息用于指导网络构建过程。蚂蚁的随机规则k个选择圆弧一伊吉从当前可选弧开始哪里A类伊吉是根据以下概率随机选择的弧:哪里允许k个是由所有候选弧组成的集合,这些候选弧不创建有向循环,并且具有正向启发式信息。q个0是用户设置的阈值。 ACO的最大目标函数是(3)中的BIC评分指标。因此,启发式信息η伊吉弧线的一伊吉时间t吨定义为
信息素水平τ伊吉在弧上一伊吉根据(7)和(8)中描述的本地和全局更新规则进行更改,而增量由哪里G公司+是迄今为止所有蚂蚁发现的最好的BN结构。算法2中介绍了用于学习BN结构的基本ACO算法[2]. 算法2:基于ACO的基本BN学习。 |
| /*初始化*/ |
1 | 设置迭代计数器t吨= 0; |
2 | 生成M(M)蚂蚁蚂蚁; |
三 | 初始化信息素矩阵τ(0):对于所有弧一伊吉,套τ伊吉(0) =τ0; |
4 | 设置G公司+是一个空图; |
| /*迭代搜索*/ |
5 | 虽然不满足终止标准做 |
6 | 迭代计数器t吨=t吨+1个 |
7 | 对于 k个= 1:M(M)蚂蚁 做 |
8 | 生成空网络G公司k个:对于 我= 1到 n个,做 π我=ϕ; |
9 | 计算启发式信息:对于 我,j= 1到 n个(我≠j)做 η伊吉=(f)银行识别码(X(X)我,X(X)j) −(f)银行识别码(X(X)我,ϕ); |
10 | 虽然 η伊吉> 0做 |
| /*添加圆弧*/ |
11 | 选择圆弧一伊吉从可行域允许根据(9)和(10); |
12 | 如果 η伊吉> 0然后 π我=π我∪{X(X)j}并构建网络G公司k个=G公司k个∪一吉; |
13 | 设置η伊吉=-∞; |
| /*避免定向循环*/ |
14 | 对于 单位,v(v)= 1到 n个 做 |
15 | 如果 G公司k个∪一紫外线包括定向循环,然后 η紫外线= −∞; |
16 | 结束 |
| /*计算启发式信息*/ |
17 | 对于 单位= 1到 n个 做 |
18 | 如果 η国际单位> −∞然后 η国际单位=(f)银行识别码(X(X)我, π我∪{X(X)单位}) −(f)银行识别码(X(X)我, π我); |
19 | 结束 |
| /*本地更新*/ |
20 | 更新信息素:τ伊吉= (1 −ψ)·τ伊吉+ψ·τ0; |
| /*本地更新*/ |
21 | 更新信息素:τ伊吉= (1 −ψ)·τ伊吉+ψ·τ0; |
22 | 结束while |
23 | 结束 |
24 | /*信息素更新*/ |
26 | 选择G公司t吨=arg最大值(f)银行识别码(G公司k个,D类) |
27 | 如果 (f)银行识别码(G公司t吨,D类)≥f银行识别码(G公司+,D类),然后 G公司+=G公司t吨 |
28 | 根据(8)和(12)更新信息素矩阵,使用(f)银行识别码(G公司+,D类) |
29 | 结束while |
30 | 返回最佳BN结构G公司+. |
3.方法
本文介绍了一种新的改进算法coACO来解决BN结构学习问题。coACO结合了几个共同进化算子,以提高基本ACO的性能。首先,将整个蚁群划分为S公司独立的ant组,组数设置为n个秒,秒= 1, …,S公司,如所示图2.DE是解决第一届国际进化优化竞赛(第一届ICEO)实值测试函数集的最佳进化算法之一[22]. 因此,DE策略[26,27]用于指导所有蚂蚁群的共同进化过程。如上一节所述,信息素在探索和开发蚁群以构建解决方案方面发挥着重要作用。信息素的合理分布可以直接影响蚂蚁探索解决方案。因此,选择信息素水平作为coACO中所有蚂蚁群共享的合作对象。 对于每个蚂蚁群,信息素水平表示为矩阵τ秒(t吨) = {τ伊吉秒(t吨)},秒= 1, …,S公司每个蚂蚁群与其他蚂蚁群进行通信,并使用信息素作为合作变量来协调其进化过程。coACO引入了基于DE的协调操作来影响信息素,从而实现了信息素在每个蚂蚁群中的更合理分布。
基于DE的协调操作包含变异、交叉和选择操作符[21]. 第一个是变异算子,具体实现如下:哪里单位秒(t吨) = {单位伊吉秒(t吨)},秒= 1, …,S公司,是供体信息素矩阵。,、和是从蚂蚁群中随机选择的三种不同的信息素矩阵,即第页1≠第页2≠第页三≠秒.实数F类是[0,2]之间的一个正参数,称为突变因子,它控制差异变化的放大. 第二个是交叉算子,其执行如下:哪里第页伊吉是为每个弧生成的随机值一伊吉按照[0,1]上的均匀分布,铬是(0,1)内的给定交叉率v(v)秒(t吨) = {v(v)伊吉秒(t吨)}是试验信息素矩阵。图3描述了信息素矩阵的交叉过程。 第三个操作符是贪婪选择,执行如下:哪里τ秒(t吨+1)是秒-第个蚂蚁群(t吨+1)-第次迭代。每组蚂蚁使用信息素矩阵,根据算法2中第8行到第12行的代码构建网络τ秒(t吨)或v(v)秒(t吨). 信息素矩阵的适应度(f)(τ秒(t吨))或(f)(v(v)秒(t吨))定义为蚂蚁组基于相应的信息素矩阵获得的BN的最大BIC得分τ秒(t吨)或v(v)秒(t吨). 在选择操作之后,所有蚂蚁组使用最佳BN执行信息素全局更新过程G公司+直到当前迭代获得。 我们提出的coACO算法在解决BN结构学习问题中的详细过程可以描述如下:
- 步骤1。
参数初始化:最大迭代次数为吨最大值,初始迭代计数器t吨=0,蚂蚁数量M(M)蚂蚁,蚂蚁群的数量S公司、和其他参数α,β,ρ,F类,铬,q个0.
- 第2步。
蚂蚁初始化:将整个蚁群划分为不同的蚁群;将每组蚂蚁的数量记录为n个1,n个2、…和n个S公司; 设置初始信息素矩阵τ伊吉秒(0) =τ0,秒= 1,2, …,n个S公司对于所有弧一伊吉; 设置G公司+成为一个空图。
- 步骤3。
t吨=t吨+ 1;秒= 1.
- 步骤4。
对初始信息素矩阵执行变异和交叉操作τ秒(t吨)使用等式(13)和(14)计算每个蚂蚁组的信息素,并生成试验信息素矩阵v(v)秒(t吨).
- 步骤5。
秒=秒+ 1; 如果秒≤S公司,返回步骤4。
- 步骤6。
秒= 1,k个= 1.
- 第7步。
这个k个-蚂蚁建造了BNG公司k个(τ秒)使用信息素矩阵τ秒根据算法2中第8行到第12行的代码。
- 第8步。
这个k个-蚂蚁建造了BNG公司k个(v(v)秒)使用信息素矩阵v(v)秒根据算法2中第8行到第12行的代码。
- 步骤9。
k个=k个+ 1; 如果k个≤n个秒,返回步骤7。
- 第10步。
计算BIC得分G公司k个(τ秒),k个= 1, 2, …,n个秒,选择得分最高的最佳BN,并将得分最高设置为适合度(f)(τ秒(t吨))的τ秒.
- 第11步。
计算的BIC分数G公司k个(v(v)秒),k个= 1, 2, …,n个秒,选择得分最高的最佳BN,并将得分最高设置为适合度(f)(v(v)秒(t吨))的v(v)秒.
- 步骤12。
比较(f)(τ秒(t吨))和(f)(v(v)秒(t吨)),根据(15)选择更好的信息素矩阵,并为蚂蚁组选择相应的BN。
- 第13步。
秒=秒+ 1; 如果秒≤S公司,k个=k个+1并返回步骤7。
- 第14步。
从所有蚂蚁组中选择得分最高的BN,记录为G公司t吨.
- 第15步。
如果G公司t吨BIC得分大于G公司+,然后G公司+=G公司t吨.
- 第16步。
更新信息素矩阵τ秒,秒= 1, 2, …,S公司,对于每个蚂蚁组,根据(8)和(12)基于G公司+.
- 第17步。
返回步骤3,直到t吨>吨最大值.
- 第18步。
终止并输出最佳BN结构,即G公司+.
用于学习BN结构的coACO算法的上述步骤也可以在算法3中表示为伪码。
算法3:coACO算法学习BN。 |
| /*初始化*/ |
1 | 设置迭代计数器t吨= 0; |
2 | 生成M(M)蚂蚁蚂蚁并将其分为n个S公司组; |
三 | 初始化信息素矩阵τ秒(0)中,秒= 1,2, …,n个S公司:对于所有弧一伊吉,套τ伊吉(0) =τ0; |
4 | 设置G公司+是一个空图; |
| /*迭代搜索*/ |
5 | 虽然不满足终止标准做 |
6 | 迭代计数器t吨=t吨+1个 |
7 | 对于 秒= 1:S公司 做 |
| /*突变*/ |
8 | 选择第页1,第页2,第页三从[1,2…,S公司]科学技术。第页1≠第页2≠第页三≠秒,并生成施主信息素矩阵单位秒通过(13)。 |
| /*渡线*/ |
9 | 对于 我,j= 1:n个 做 |
10 | 生成试验向量v(v)秒=========================================================={v(v)秒伊吉}根据(14) |
11 | 结束 |
12 | 结束 |
13 | 对于 秒= 1:S公司 做 |
| /*信息素矩阵的适应度评价*/ |
14 | 对于每只蚂蚁k个在中秒-第th组做 |
15 | 构建BN结构G公司k个(v(v)秒)使用信息素矩阵v(v)秒根据算法1中第8行到第12行的代码; |
16 | 构建BN结构G公司k个(τ秒)使用信息素矩阵τ秒根据算法1中第8行到第12行的代码; |
17 | 结束 |
18 | 计算每个BN结构的BIC得分G公司k个(v(v)秒),选择最佳结构并将最大分数分配给(f)(v(v)秒); |
19 | 计算每个BN结构的BIC得分G公司k个(τ秒),选择最佳结构并将最大分数分配给(f)(τ秒); |
| /*选择*/ |
20 | 比较(f)(τ秒)和(f)(v(v)秒)根据(14)选择较好的一个作为新的信息素矩阵; |
21 | 结束 |
| /*信息素更新*/ |
22 | 选择最佳结构G公司t吨由不同群体的所有蚂蚁获得; |
23 | 如果 (f)银行识别码(G公司t吨,D类)≥f银行识别码(G公司+,D类),然后 G公司+=G公司t吨 |
24 | 更新每个信息素矩阵τ秒根据(8)和(12)使用(f)银行识别码(G公司+,D类) |
25 | 结束while |
26 | 返回最佳BN结构G公司+. |
4.结果和讨论
为了评估coACO算法在解决BN结构学习问题中的性能,进行了一系列测试实验,并将提出的coACO与基本ACO进行了比较。所有测试的算法都是使用Matlab-2009a和Murphy开发的贝叶斯网络工具箱(BNT)实现的[28]用于评估BIC分数。实验平台是一台个人电脑,配有Intel(R)Core(TM)i3、3.07GHz CPU、4GB内存和Windows 7。两种ACO算法的参数设置为α= 1,β= 2,q个0= 0.8,ρ=ψ= 0.4,M(M)蚂蚁= 10,n个秒= 5,铬= 0.9,F类设为[0.2,0.9]中均匀分布的随机值,最大迭代次数设为吨最大值= 100. 每个弧上的初始信息素水平为,其中是变量的数量G公司K2(K2)是K2算法使用BNT获得的网络。此外,基于分数+搜索框架的两种传统算法K2和B[2],也进行了比较测试。与基于ACO的方法不同,K2和B算法都不是基于人口的。 学习数据集由BN的著名基准生成,包括ASIA和ALARM网络。ASIA网络由8个节点和8个弧组成,而ALARM网络由37个节点和46个弧组成。使用BNT,我们为ASIA网络生成了10000个案例的数据集,为ALARM网络生成了5000个案例。对于ASIA网络,考虑了由前1000、3000、5000、8000和10000个案例组成的子集。对于报警网络,考虑由前1000和5000个案例组成的子集。表1列出了此处使用的数据集的摘要。 我们对每个数据集分别运行20次随机算法,包括ACO、coACO和K2。多个独立实验的统计结果列于表2为了进行比较,使用了六个指标来评估四种算法的性能,包括每次运行中获得的最佳网络的BIC得分的最大/最佳、平均值、中值和标准偏差。最后一列,成功率(SR公司),被定义为表示获得BIC分数的所有20次跑步的百分比,该分数不小于中列出的相应原始分数表1。可以从中看到表2coACO总能为每个数据集找到更好的BIC分数。这意味着在学习BN结构时,coACO可以比基本ACO算法实现更高效、更鲁棒的性能。每个数据集上20个独立测试的平均演化曲线如所示图4,图5,图6,图7,图8,图9和图10这表明了所提出的coACO算法的有效性和快速收敛性。 表3还显示了实验中测试的各种方法的统计结果摘要,其中μ±σ表示独立运行的平均值和标准偏差以及内部值(最好的)是相应的最佳值。指示器它。是算法找到最佳网络结构时的最小迭代次数。指标答:。,D。、和一、。用于表示学习网络和原始网络之间的结构差异,即意外添加的弧数(答:。),已删除(D。)、和反转(一、。)与原始网络相比。 从实验结果可以看出,使用基于DE的协同进化策略,所提出的coACO可以大大提高ACO在解决BN结构学习问题中的性能。就算法的准确性而言,对于所有测试用例,coACO都优于ACO。这种改进不仅适用于BIC分数(参见表2)以及迭代次数和结构差异(请参见表3). 关于效率,进化曲线如图4,图5,图6,图7,图8,图9和图10表明coACO比基本ACO需要更少的计算迭代。就稳健性而言,coACO也优于基本ACO,这可以从独立运行的标准偏差中推导出来,如表2和表3信息素在溶液构建过程中起着重要作用。DE操作提高了蚂蚁在弧上以最佳结构积累信息素的能力。由于协同进化的特点,coACO可以在几次迭代中将信息素轨迹的分布调整到最佳状态,从而更快地获得最优网络结构。尽管coACO使用了一些额外的运算符,但它的收敛速度要快得多。因此,coACO可以在给定的少量迭代中获得最佳解。 5.结论
本文提出了coACO来改进基本ACO在解决BN结构学习问题中的性能。coACO将整个蚁群划分为几个小的蚁群,并使用信息素作为共享信息和协作因子。蚂蚁群体通过协作交互的协作进化过程,包括信息素信息的传递和群体间最优网络的共享,可以大大提高效率和准确性。基于DE的协同进化机制用于引导所有蚂蚁群的协同进化过程。DE算子可以有效地调整协作信息,引导所有蚂蚁群以协作的方式向最优方向进化。与广泛使用的将ACO与基于约束的技术相结合的方法不同,我们的工作主要集中在改进ACO的固有搜索能力。我们的算法使用BIC度量作为评分函数;然而,它也适用于其他评分指标,如K2和MDL。对比测试结果表明,我们提出的coACO算法在重构BN的质量方面优于ACO、K2和B算法。由于协同进化的特点,coACO可以在几次迭代中将信息素分布调整到最佳状态,从而更快地生成最优网络结构。总之,我们开发的基于coACO的BN结构学习算法有效、准确、高效且易于实现。我们未来的工作将把coACO应用于一个数据不完整的真实项目中更复杂的BN结构学习问题。