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 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.
Classes 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 classes of representation languages in the zoo. For example, . We extend the definition of succinctness to classes as follows. We say class is at least as succinct as class , denoted , if for every there exists a such that . In the special case of singleton classes (classes containing a single representation language), this recovers the behavior of the usual definition of succinctness. For larger classes, it behaves in the intuitive way. For example but , and but . Such a definition allows us to consider representation languages and classes of representation languages in a common way. To avoid excessive braces throughout the zoo, we just write to mean the class (and similar for classes 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)
- [bib] H. Fargier, 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.
- [bib] anonymous, "A Tractable Circuit Zoo," forthcoming.