代数的決定図 (ADD)または多端子二値決定図 (MTBDD) は、任意の有限集合 S を終域とするブール関数を記号的に表現するために使用されるデータ構造です。ADD は、縮小順序二値決定図、または文献で一般的に二値決定図 (BDD)と呼ばれるものの拡張であり、その終端ノードはブール値 0 (FALSE) と 1 (TRUE) に限定されません。[ 1 ] [ 2 ]終端ノードは、定数集合 S から任意の値を取ることができます。
意味
ADD はブール関数を表します
ADDは、定数の有限集合S、または代数構造の担体です。ADDは、BDDと同様に複数のノードを持つ、根付き有向非巡回グラフです。ただし、ADDはBDDとは異なり、集合Sの要素である終端ノードを2つ以上持つことができます。
ADD は、関数の終域を拡張することにより、ブール関数またはベクトルブール関数と見なすこともできます。
と
そして
ある整数 n に対して、 ADD にはブール代数の定理、特にブールの展開定理が適用されます。[ 1 ]
各ノードはブール変数でラベル付けされ、2つの出力エッジを持ちます。1つは変数の評価がTRUEであることを表す1エッジ、もう1つはFALSEであることを表す0エッジです。
ADDは、BDD(または縮小順序付きBDD)と同じ削減ルールを採用します。
- 同型な部分グラフをマージし、
- 2つの子ノードが同型であるノードをすべて削除する。
ADDは、特定の変数順序に従って正規化されます。
行列分割
ADDは、その余因子に応じて行列で表すことができます。[ 2 ] [ 1 ]例えば、関数を考えてみましょう。
ブール変数について
そして
値を取る
定義: 
この関数は行列として表すことができる
行は
列は以下に対応します
。
ADD表現では、ルートノードは次のようにラベル付けされます。
、そしてその出力エッジは補因子に対応します
そして
は、それぞれ低(0)エッジと高(1)エッジと呼ばれ、行列の1行目と2行目で表される。各補因子は、さらに に関して分解される。
これにより、行列の要素に対応する終端ノードが得られます。したがって、 ADDで使用されるシャノン分解は、行列を再帰的に部分行列に分割することに対応します。
参考文献
- 1 2 3 4 Bahar, RI; Frohm, EA; Gaona, CM; Hachtel, GD; Macii, E.; Pardo, A.; Somenzi, F. (1993). "代数的決定図とその応用" . 1993年国際コンピュータ支援設計会議(ICCAD)議事録. IEEE Comput. Soc. Press. pp. 188–191 . doi : 10.1109/iccad.1993.580054 . ISBN 0-8186-4490-7. S2CID 43177472 .
- 1 2 Fujita, M.; McGeer, PC; Yang, JC-Y. (1997-04-01). "Multi-Terminal Binary Decision Diagrams: An Efficient Data Structure for Matrix Representation" . Formal Methods in System Design . 10 (2): 149– 169. doi : 10.1023/A:1008647823331 . ISSN 1572-8102 . S2CID 30494217 .