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)