An algebraic decision diagram (ADD) or a multi-terminal binary decision diagram (MTBDD), is a data structure that is used to symbolically represent a Boolean function whose codomain is an arbitrary finite set S. An ADD is an extension of a reduced ordered binary decision diagram, or commonly named binary decision diagram (BDD) in the literature, which terminal nodes are not restricted to the Boolean values 0 (FALSE) and 1 (TRUE).[1] [2] The terminal nodes may take any value from a set of constants S.
An ADD represents a Boolean function from
\{0,1\}n
An ADD can also be seen as a Boolean function, or a vectorial Boolean function, by extending the codomain of the function, such that
f:\{0,1\}n\toQ
S\subseteqQ
card(Q)=2n
Each node of is labeled by a Boolean variable and has two outgoing edges: a 1-edge which represents the evaluation of the variable to the value TRUE, and a 0-edge for its evaluation to FALSE.
An ADD employs the same reduction rules as a BDD (or Reduced Ordered BDD):
ADDs are canonical according to a particular variable ordering.
An ADD can be represented by a matrix according to its cofactors.
ADDs were first implemented for sparse matrix multiplication and shortest path algorithms (Bellman-Ford, Repeated Squaring, and Floyd-Warshall procedures).