低次元二分決定グラフの効率を推定するためのヒューリスティックス?


8

縮小順序付きバイナリ・ディシジョン・ダイアグラム(ROBDD)は、複数の変数の論理関数を表現するための効率的なデータ構造である。それらがどれほど効率的であるかを直感的に知りたいのです。f(x1,x2,...,xn)

たとえば、データ圧縮の場合、完全にランダムなデータは圧縮できないが、エントロピーの低いデータ(一部のシンボルは他のシンボルよりも頻繁に出現し、繰り返しが多い)は非常にうまく圧縮できることがわかっています。

ROBDDが特定のブール式をどれだけ効率的に表すことができるかを推定するための類似の直感はありますか?

たとえば、ビットの数値の乗算は効率的に表現できないと聞いたことがあります。ROBDDの最小サイズはnの指数関数です。これが事実である理由を説明する直感的な議論を知っていますか?nn

関連質問:数値を計算するBDDの効率に関する直感(複数端末BDDなど)

回答:


7

関数のためのOBDDの幅との関係がありとの変数の最良のパーティションの片方向通信プロトコルの通信複雑fが(参照E. KushilevitzとN.ニサンは。コミュニケーション複雑。ケンブリッジ大学は、プレス、1997年)。ff

これは、さまざまな関数の指数サイズのOBDDを証明するための強力なツールです(共著者と一緒に、この方法を使用して -bipartitenessがOBDD に対して難しいことを証明します。ここを参照してください)。基本的に、幅のOBDDが最大で存在する場合wをその解くfは次いで、κ BのE S T(F )≤ ログwは。これは、OBDDよりもコミュニケーションの複雑さの観点から考える方が直感的だと思います。ϵwfκbest(f)≤log⁡w


3
ああ、それでの入力を2つの部分f (x 1、… 、x k、y 1、… 、y l)に分割します。次に、アリスは単にBDDのブランチを入力→ xでたどり、最終ノードをボブに伝えます。ボブは→ yで計算を完了します。幅がwなので、最大でlog wが必要です。ff(x1,…,xk,y1,…,yl)x→y→wlog⁡wノードと通信するためのビット。いいね!これは、Raduによる「ブロック図」の回答と多少関係があります。そのようなブロック図の存在は、通信の複雑さが小さいことを意味します。(ただし、逆の「小さな通信の複雑さ=>小さな幅」は必ずしも成立するとは限りませんか?)
— Heinrich Apfelmus

軽微なリクエスト:リンクペーパーのバージョンが自由に利用できる、つまりペイウォールの背後にないバージョンを知っていますか?
— ハインリッヒアフェルムス

確かに、ここにリンクがあります:sylvain.berbiqui.org/llmpr-full.pdf
— Sylvain Peyronnet

「(しかし、逆の「通信の複雑さの小ささ=>幅の狭さ」は必ずしも成り立たないのではないでしょうか?)」確かに、必ずしも成り立たない。
— Sylvain Peyronnet、2010

6

f(x1,…,xn)b1,…,bnbkxkbk−1bk+1bnfこのようなすべての回路で多くの逆方向リンク( b kから b k − 1まで)が必要な場合、 fは大きくなければなりません。fbkbk−1

BDDを小さくするため言い換えると、に情報を要約するための方法が必要用の1 ≤ K ≤ N。BDDの幅は、直感的には圧縮が最も難しいkに対応します。x1,…,xk1≤k≤nk

(TAoCPでの1つの例は次のとおりです。長さサイクルとブール関数f (x 1、… 、x n)を想像してください。「隣接ノードの両方と同じ色のノードはありません。ここでx kはノードかどうかと言うkは黒または白であるあなたは、ノードを見たら次に、「要約」は。1 、2 、... 、kはの色保存する必要があります1、K - 1を、K。、およびすでに違反に気づいたかどうかをあなたはkが必要-nf(x1,…,xn)xkk1,2,…,k1k−1kと kです。k + 1が表示されたら、プロパティが kで違反しているかどうかを確認できます。最後に到達したら、プロパティが nで違反されているかどうかを確認できるように、 1が必要です。k−1kkk+11n

また、BDD 間の演算に関心がある場合は、とgの間のバイナリ演算を実行します。fはmノードのBDDで表され、gはnノードのBDDで表されますが、O (m n )時間かかりますが、実際に実際に見つかる関数については、O (m + n )時間しかかからない傾向があります。今言った内容の正確なバージョンはわかりませんが、ある場合は興味があります。fgfmgnO(mn)O(m+n)


fbi

2

数値を計算するには、(確率的)モデルチェックに使用されるデータ構造であるMTBDD(マルチターミナルBDD)を調べる必要があります。たとえば、離散関数の表現、笹尾、勉を参照してください 。藤田正平(編)、スプリンガー、1996、第4章、クラーク他 MTBDDとハイブリッド決定図についてです。


2

TAoCP 4分冊1、クヌースはまた、言及します

  • f(x1,x2,…,xn)nO(n2)fn+1x1+x2+⋯+xn∈{0,1,2,…n}2n
  • g(x1,x2):=f(x1,x2,x2)

f(x1,x2,x3):=(2x1+5x2+3x3≥7)f(x1+x2+⋯+x10≥7)


「厄介な」機能に関する部分もあります。
— Radu GRIGore
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.