<- Back to Zoo

Welcome to the Tractable Circuit Zoo

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 (R,I)(R,I) where RR is a set of strings (over some fixed alphabet) and II is an interpretation function that maps each rRr\in R to the Boolean function that rr represents. The size of a representation rRr\in R is its length (number of symbols) denoted r|r|.

Succinctness: Let AA and BB be representation languages. We say aAa\in A and bBb\in B are equivalent if they represent the same function. We say AA is at least as succinct as BB, denoted ABA\le B, if for every bBb\in B there is an equivalent and not too much larger aAa\in A, specifically, abO(1)|a|\le |b|^{O(1)}.

Tractability: We say a query (such as "is ff satisfiable?") is tractable for a representation language AA if there exists an algorithm which given any aAa\in A answers the query in polynomial time (in the input length a|a|). Similarly, a transformation (such as "negate ff" or "conjoin ff and gg") is tractable for representation language AA if there exists an algorithm which given input representation(s) in AA computes a correct output representation in AA 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 OBDD<OBDD_<, which contains all OBDDs respecting a specific variable order <<. However, there are infinitely many different OBDD<OBDD_< languages, one for every choice of <<. Therefore we include families of representation languages in the zoo. For example, {OBDD<}orders<\{OBDD_<\}_{orders <}. We extend the definition of succinctness to families as follows. We say family B\mathcal{B} is at least as succinct as family A\mathcal{A}, denoted BA\mathcal{B}\le \mathcal{A}, if for every AAA\in \mathcal{A} there exists a BBB\in \mathcal{B} such that BAB\le A. 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 OBDD{OBDD<}OBDD\le \{OBDD_<\} but {OBDD<}≰OBDD\{OBDD_<\}\not\le OBDD, and {SDNNFT}{OBDD<}\{SDNNF_T\}\le \{OBDD_<\} but {OBDD<}≰{SDNNFT}\{OBDD_<\}\not\le\{SDNNF_T\}. 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 OBDD<OBDD_< to mean the family {OBDD<}\{OBDD_<\} (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 nO(1)n^{O(1)} whereas functions with quasipolynomial growth are in nlogO(1)nn^{\log^{O(1)} n}.

References (full bibliography)

  1. [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.
  2. [42] D. Kahdian and O. Broadrick and R. Geh and G. Van den Broeck, "A Tractable Circuit Zoo", forthcoming.