Years and Authors of Summarized Original Work
1986; Bryant
Problem Definition
Boolean Functions
The concept of a Boolean function – a function whose domain is {0, 1}n and range is {0, 1} – is central to computing. Boolean functions are used in foundational studies of complexity [7, 9] as well as the design and analysis of logic circuits [4, 13], A Boolean function can be represented using a truth table – an enumeration of the values taken by the function on each element of {0, 1}n. Since the truth table representation requires memory exponential in n, it is impractical for most applications. Consequently, there is a need for data structures and associated algorithms for efficiently representing and manipulating Boolean functions.
Boolean Circuits
Boolean functions can be represented in many ways. One natural representation is a Boolean combinational circuit, or circuit for short [6, Chapter 34]. A circuit consists of Boolean combinational elements connected by wires. The Boolean...
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Recommended Reading
Aziz A, Tasiran S, Brayton R (1994) BDD variable ordering for interacting finite state machines. In: ACM design automation conference, San Diego, pp 283–288
Berman CL (1989) Ordered binary decision diagrams and circuit structure. In: IEEE international conference on computer design, Cambridge
Brace K, Rudell R, Bryant R (1990) Efficient implementation of a BDD package. In: ACM design automation conference, Orlando
Brayton R, Hachtel G, McMullen C, Sangiovanni-Vincentelli A (1984) Logic minimization algorithms for VLSI synthesis. Kluwer Academic, Boston
Bryant R (1986) Graph-based algorithms for Boolean function manipulation. IEEE Trans Comput C-35:677–691
Cormen TH, Leiserson CE, Rivest RH, Stein C (2001) Introduction to algorithms. MIT, Cambridge
Garey MR, Johnson DS (1979) Computers and intractability. W.H. Freeman and Co, New York
Gupta A (1993) Formal hardware verification methods: a survey. Formal Method Syst Des 1:151–238
Karchmer M (1989) Communication complexity: a new approach to circuit depth. MIT, Cambridge
Kuehlmann A, Krohm F (1997) Equivalence checking using cuts and heaps. In: ACM design automation conference, Anaheim
Malik S, Wang AR, Brayton RK, Sangiovanni-Vincentelli A (1988) Logic verification using binary decision diagrams in a logic synthesis environment. In: IEEE international conference on computer-aided design, Santa Clara, pp 6–9
McMillan KL (1993) Symbolic model checking. Kluwer Academic, Boston
De Micheli G (1994) Synthesis and optimization of digital circuits. McGraw Hill, New York
Schoning U, Pruim R (1998) Gems of theoretical computer science. Springer, Berlin/New York
Sipser M (2005) Introduction to the theory of computation, 2nd edn. Course Technology, Boston
Somenzi F (2012) Colorado University Decision Diagram package. http://vlsi.colorado.edu/~fabio/CUDD
Wegener I (2000) Branching programs and binary decision diagrams. SIAM, Philadelphia
Yuan J, Pixley C, Aziz A (2006) Constraint-based verification. Springer, New York
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer Science+Business Media New York
About this entry
Cite this entry
Aziz, A., Prakash, A. (2016). Binary Decision Graph. In: Kao, MY. (eds) Encyclopedia of Algorithms. Springer, New York, NY. https://doi.org/10.1007/978-1-4939-2864-4_48
Download citation
DOI: https://doi.org/10.1007/978-1-4939-2864-4_48
Published:
Publisher Name: Springer, New York, NY
Print ISBN: 978-1-4939-2863-7
Online ISBN: 978-1-4939-2864-4
eBook Packages: Computer ScienceReference Module Computer Science and Engineering