Binary Decision Diagram
A Binary Decision Diagram (BDD) is a rooted, directed, acyclic graph, which consists of several decision nodes and terminal nodes and uses the concept of Shannon Expansion to represent and encode complex Boolean Formulas.
Each node of the diagram represents a single boolean entry with variable value and part of a Boolean function. T is the type with which a variable is represented. In the context of a formula, variables for which the compareTo method returns 0 indicate the same Boolean variable.
Each BDD node has a directed edge to two sub-BDDs: the "high" BDD that leads to a true Terminal, and the "low" BDD that leads to a false Terminal.
Author
Jason Dellaluce
Inheritors
Types
Properties
Functions
Accepts an instance of BinaryDecisionDiagramVisitor as for the visitor pattern. This is the method of preference for exploring the inner structure of the diagram.
Performs the "And" unary boolean operation over two BinaryDecisionDiagrams. The result is a Reduced Ordered Binary Decision Diagram (ROBDD).
Performs the "And" unary boolean operation over two BinaryDecisionDiagrams and computes a value using the Shannon Expansion over the result. The result is an instance of Pair of which Pair.first is the Reduced Ordered Binary Decision Diagram (ROBDD) produced by the operation, and Pair.second is the value of type T computed with the Shannon Expansion.
Returns true if the BinaryDecisionDiagram has at least one variable element.
Returns true if the BinaryDecisionDiagram has at least one variable element matching the given predicate.
Applies the "Apply" construction algorithm over BinaryDecisionDiagrams using a given boolean operator. The result is a Reduced Ordered Binary Decision Diagram (ROBDD).
Applies the "Apply" construction algorithm over two BinaryDecisionDiagrams using a given boolean operator. The result is a Reduced Ordered Binary Decision Diagram (ROBDD).
Applies the "Apply" construction algorithm over BinaryDecisionDiagrams using a given boolean operator, and computes a value using the Shannon Expansion over the result. The result is an instance of Pair of which Pair.first is the Reduced Ordered Binary Decision Diagram (ROBDD) produced by the operation, and Pair.second is the value of type T computed with the Shannon Expansion.
Applies the "Apply" construction algorithm over two BinaryDecisionDiagrams using a given boolean operator, and computes a value using the Shannon Expansion over the result. The result is an instance of Pair of which Pair.first is the Reduced Ordered Binary Decision Diagram (ROBDD) produced by the operation, and Pair.second is the value of type T computed with the Shannon Expansion.
Returns the number of variable nodes contained in a BinaryDecisionDiagram.
Applies a given operation over a BinaryDecisionDiagram using the Shannon Expansion. The result is a reduction of a given diagram, determined by applying an operation recursively over a BDD with bottom-up order.
Returns a BinaryDecisionDiagram containing nodes of applying the given transform function to each element in the original BinaryDecisionDiagram. The internal structure of the diagram is maintained.
Performs the "Not" unary boolean operation over a BinaryDecisionDiagram. The result is a Reduced Ordered Binary Decision Diagram (ROBDD).
Performs the "Not" unary boolean operation over a BinaryDecisionDiagram and computes a value using the Shannon Expansion over the result. The result is an instance of Pair of which Pair.first is the Reduced Ordered Binary Decision Diagram (ROBDD) produced by the operation, and Pair.second is the value of type T computed with the Shannon Expansion.
Performs the "Or" unary boolean operation over two BinaryDecisionDiagrams. The result is a Reduced Ordered Binary Decision Diagram (ROBDD).
Performs the "Or" unary boolean operation over two BinaryDecisionDiagrams and computes a value using the Shannon Expansion over the result. The result is an instance of Pair of which Pair.first is the Reduced Ordered Binary Decision Diagram (ROBDD) produced by the operation, and Pair.second is the value of type T computed with the Shannon Expansion.
Formats a BinaryDecisionDiagram using Graphviz DOT notation (https://graphviz.org/). This provides a fast and widely supported solution to visualize the contents of a BDD.