1

小さなベイジアン ネットワーク (DAG で表される) でノードを削除するための最も効率的な順序を見つけるアルゴリズムを作成しようとしています。すべてのノードはブール値であり、2 つの可能な状態を取ることができます。

私の最初の計画は、先行変数が残っていない残りの変数を再帰的に選択し、その可能な状態ごとに、グラフを介して値を伝播することでした。これにより、考えられるすべてのトポロジー順序が得られます。

位相的な順序付けを考慮して、疎外することのコストを見つけたいと思いました。

たとえば、このグラフ:

U --> V --> W --> X --> Y --> Z

にはそのような順序 (U、V、W、X、Y、Z) が 1 つだけあります。

結合密度を因数分解できます 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 には状態が 1 つしかないため)。

これが私の質問です。この順序でこの合計を計算できる最速のステップ数を決定するにはどうすればよいですか?

助けてくれてどうもありがとう!

4

1 に答える 1

0

与えられた消去順序で周辺化するステップの数は、その順序によって生成される最大のクリークでおおよそ指数関数的になります (ノード数を掛けます)。したがって、最小のステップ数は、すべての可能な順序付けによって生成される最大のクリーク サイズの指数関数の最小値になります。これは、グラフのツリー幅に相当します。

問題のパス グラフのツリー幅は 1 です。

http://www.cs.berkeley.edu/~jordan/papers/statsci.ps

于 2010-11-04T22:51:15.513 に答える