我正在尝试制作一种算法,该算法将找到最有效的排序,用于消除小型贝叶斯网络中的节点(由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只有一个状态)。
这是我的问题:如何确定可以为此排序计算此总和的最快步数?
非常感谢你的帮助!
答案 0 :(得分:0)
使用给定的排序顺序边缘化的步骤数在该排序产生的最大集团中大致呈指数(乘以节点数);因此,最少步数将是所有可能排序产生的最大团体大小的指数的最小值。这相当于图的树宽。
问题中路径图的树宽为1.