【发布时间】:2011-05-03 06:12:15
【问题描述】:
我正在尝试制定一种算法,该算法将找到消除小型贝叶斯网络(由 DAG 表示)中节点的最有效排序。所有节点都是布尔值,可以采用两种可能的状态,但没有后继节点的节点除外(这些节点必须有一个观察值;否则将它们边缘化与移除它们相同)。
我最初的计划是递归地选择一个没有剩余前任的剩余变量,并针对其每个可能的状态,通过图形传播该值。这将导致所有可能的拓扑排序。
给定一个拓扑排序,我想找出边缘化的成本。
例如,这张图:
U --> V --> W --> X --> Y --> Z
只有一个这样的排序(U,V,W,X,Y,Z)。
我们可以分解关节密度 g(U,V,W,X,Y,Z) = f1(U) f2(V,U) f3(W,V) f4(X,W) f5(Y, X) f6(Z,Y)
所以这个排序对应的边缘化将是
∑(∑(∑(∑(∑(∑(g(W,X,Y,Z),Z),Y),X),W),V),U) =
∑(∑(∑(∑(∑(∑(f1(U) f2(V,U) f3(W,V) f4(X,W) f5(Y,X) f6(Z,Y),Z), Y),X),W),V),U) =
∑(f1(U)
∑(f2(V,U)
∑(f3(W,V)
∑(f4(X,W)
∑(f5(Y,X)
∑(f6(Z,Y),Z)
,Y)
,X)
,W)
,V)
,U)
对于该图,U --> V 可以分 4 步转换为 V 的符号函数(所有 U x 所有 V。鉴于此,V --> W 同样可以转换为符号函数4 步。所以总的来说,需要 18 步(4+4+4+4+2,因为 Z 只有一个状态)。
这是我的问题:如何确定可以为此排序计算此总和的最快步数?
非常感谢您的帮助!
【问题讨论】:
标签: combinatorics bayesian-networks