二分決定図 (BDD / ZDD)

論理関数を表現する DAG 型データ構造。変数を順に分岐させ、同型な部分木を共有することで論理関数を圧縮表現する。

ZDD

Zero-suppressed BDD。集合族(組合せ集合)を表すバリアント。

  • 圧縮表現のまま union / intersection / difference といった集合演算を計算できる
  • ただし演算が正しく行えるには 簡約化 されている必要がある(冗長な節点が無く、表現が一意であること)

簡約化と並列化

トップダウンに構築した BDD は冗長性が生じやすく、演算ごとに簡約化が必要。

  • Knuth09 の簡約化アルゴリズムは
  • これをさらに高速化したい → ハードウェアによる高速化、本研究では 並列準簡約化と追駆簡約化 による新しい並列化(先行研究の並列化手法と直交=因果関係のない別軸の手法)

SAT と同じく論理関数を扱うが、BDD は関数全体を一意な正規形として保持する点が異なる。

関連: boolean-satisfiability-sat / parallel-computing / _moc-algorithm