Boolean functions are one of the most basic objects in computer science, with countless applications demanding their efficient representation, manipulation, and querying. However, the succinctness of a representation is usually in tension with its tractability for manipulation and querying. The tractable circuit zoo catalogs known representation languages together with their relations in terms of succinctness and tractability. While research in the area spans many decades, lots of progress has been made just recently, and much work remains. We hope the zoo may serve as an open source survey of the area that grows as our understanding does.
Zoo Features
In addition to the manually maintained database of representation languages and their succinctness and tractability relations, the zoo performs automated reasoning using simple inference rules. For example, succinctness is transitive: if A compiles to B and B compiles to C, then A compiles to C. Throughout the zoo, zebra cells—i.e., cells with a striped background—denote results which were derived automatically in this way.
This makes it easy to check consistency of the database, and reduces the number of relations that need to be manually entered. It also makes it fun to consider “possible worlds”. By entering “sandbox mode” the user can enter hypothetical (yet unproven) relations and immediately visualize what other relations follow from their hypotheses. The zoo is open source and will soon have a user interface for contributing directly through the website.
Central Concepts
We give informal descriptions of some central concepts, leaving formal definitions to the literature (see, e.g., [, ]).
Representation Language: A representation language is a method of expressing Boolean functions, such as a truth table or a class of Boolean circuits. Slightly more formally, a representation language is a pair where is a set of strings (over some fixed alphabet) and is an interpretation function that maps each to the Boolean function that represents. The size of a representation is its length (number of symbols) denoted .
Succinctness: Let and be representation languages. We say and are equivalent if they represent the same function. We say is at least as succinct as , denoted , if for every there is an equivalent and not too much larger , specifically, .
Tractability: We say a query (such as "is satisfiable?") is tractable for a representation language if there exists an algorithm which given any answers the query in polynomial time (in the input length ). Similarly, a transformation (such as "negate " or "conjoin and ") is tractable for representation language if there exists an algorithm which given input representation(s) in computes a correct output representation in in polynomial time (in the length of the input).
Some Technical Notes
Non-Strings: For representation languages not directly defined as strings, e.g. circuits or decision diagrams, one may freely take a reasonable encoding of the object into a string, and the theory will be unaffected (since it does not distinguish between polynomial changes in size). Equivalently, one may think of a separate size measure defined directly on such objects (e.g, the number of nodes) which is polynomially related to the length of reasonable encodings.
Families of Representation Languages: We’d like to include representation languages like , which contains all OBDDs respecting a specific variable order . However, there are infinitely many different languages, one for every choice of . Therefore we include families of representation languages in the zoo. For example, . We extend the definition of succinctness to families as follows. We say family is at least as succinct as family , denoted , if for every there exists a such that . In the special case of singleton families (families containing a single representation language), this recovers the behavior of the usual definition of succinctness. For larger families, it behaves in the intuitive way. For example but , and but . Such a definition allows us to consider representation languages and families of representation languages in a common way. To avoid excessive braces throughout the zoo, we just write to mean the family (and similar for families involving vtrees).
Quasipolynomial Succinctness: Actually, we further distinguish between polynomial and quasipolynomial size since some central languages are known to support quasipolynomial compilations, whereas others have exponential separations. See the succinctness table for notation. Recall that functions with polynomial growth are in whereas functions with quasipolynomial growth are in .
References (full bibliography)
- [24] H. Fargier and P. Marquis and A. Niveau, "Towards a knowledge compilation map for heterogeneous representation languages", Proceedings of the Twenty-Third International Joint Conference on Artificial Intelligence, pp. 877–883, 2013.
- [42] D. Kahdian and O. Broadrick and R. Geh and G. Van den Broeck, "A Tractable Circuit Zoo", forthcoming.