Technical Communications of ICLP 2015. Copyright with the Authors. 1 Dynamic Programming on Tree Decompositions using Binary Decision Diagrams: Research Summary GÜNTHER CHARWAT TU Wien, Institute of Information Systems Favoritenstraße 9, 1040 Wien, Austria (e-mail: gcharwat@dbai.tuwien.ac.at) submitted 29 April 2015; accepted 5 June 2015 Abstract Dynamic programming (DP) on tree decompositions is a well studied approach for solving hard problems efficiently. State-of-the-art implementations usually rely on tables for stor- ing information, and algorithms specify how the tuples are manipulated during traversal of the decomposition. However, a major bottleneck of such table-based algorithms is rel- atively high memory consumption. The goal of the doctoral thesis herein discussed is to mitigate performance and memory shortcomings of such algorithms. The idea is to replace tables with an efficient data structure that no longer requires to enumerate intermediate results explicitly during the computation. To this end, Binary Decision Diagrams (BDDs) and related concepts are studied with respect to their applicability in this setting. Besides native support for efficient storage, from a conceptual point of view BDDs give rise to an alternative approach of how DP algorithms are specified. Instead of tuple-based manipu- lation operations, the algorithms are specified on a logical level, where sets of models can be conjointly updated. The goal of the thesis is to provide a general tool-set for problems that can be solved efficiently via DP on tree decompositions. KEYWORDS: Logic, Dynamic Programming, Fixed Parameter Tractability, Binary De- cision Diagram, Algorithm Design 1 Introduction and Problem Description For problems that are known to be intractable, one approach is to exploit structural properties of the given input. An important parameter of graph-based instances is “tree-width”, which, roughly speaking, measures the tree-likeness of the input. Tree- width is defined on so-called tree decompositions (Robertson and Seymour 1984), where the instance is split into smaller parts, thereby taking into account its struc- ture. The problem at hand can then be solved by dynamic programming (DP). Many problems are fixed-parameter tractable (fpt) with respect to tree-width, that is, they are solvable in time f (k) · nO(1) where k is the tree-width, n is the input size and f is some computable function. Note that here the explosion in run-time is confined to k instead of the input size. Courcelle showed that every problem that 2 G. Charwat is definable in monadic second-order logic (MSO) is fixed-parameter tractable with respect to tree-width (Courcelle 1990). There, the problem is solved via translation to a finite tree automaton (FTA). However, the algorithms resulting from such an “MSO-to-FTA” translation are oftentimes impractical due to large constants (Nie- dermeier 2006). One approach to overcome this problem is to develop dedicated DP algorithms (see, e.g., (Groër et al. 2012; Chimani et al. 2012; Charwat et al. 2015)). Such algorithms typically rely on tables for storing information. However, in practice such implementations usually impose a large memory footprint. Problem Statement: Although there has been a lot of effort to put Courcelle’s Theo- rem into practice, there is still a gap between problems that are fpt w.r.t. tree-width and implementations that can exploit these results sufficiently in a practical set- ting. In my doctoral thesis, the challenge is to develop an alternative approach for dynamic programming on tree decompositions. To this end, the idea is to replace tables with a data structure that has undergone decades of research and that was developed in particular to be memory efficient, namely Binary Decision Diagrams (BDDs) (Bryant 1986). A BDD is a data structure where Boolean functions are represented compactly in form of a directed acyclic graph. Using BDDs gives rise to a new way of specifying DP algorithms where it is no longer required to manipu- late single tuples (i.e., intermediate solutions) of the tables directly, but, instead, to apply Boolean function manipulations where sets of models are changed conjointly. One question that arises is how this can be done efficiently, and another one is whether and how all MSO-definable problems can be specified using this paradigm. Overall, the challenges to be tackled are to 1) develop a general approach for logic-based formalizations of DP algorithms, and to 2) put these theoretical results into practice by providing a BDD-based DP software framework that mitigates large memory requirements oftentimes observed in state-of-the-art implementations. 2 Background In this section we introduce tree decompositions, give a short review on dynamic programming (DP) on this data structure and introduce a special format of Binary Decision Diagrams (BDDs), namely Reduced Ordered BDDs (ROBDDs). 2.1 Tree Decompositions Tree decompositions form the underlying basis for our dynamic programming algo- rithms. Definition 1 ((Robertson and Seymour 1984)) A tree decomposition of a graph G = (V, E) is a pair (T , X ) where T = (VT , ET ) is a (rooted) tree and X : VT → 2V is a function that assigns to each node t ∈ VT S a bag Xt ⊆ V such that: 1) t∈VT Xt = V ; 2) {x, y} ∈ E ⇒ ∃t ∈ VT : {x, y} ⊆ Xt ; and 3) x ∈ Xt0 ∧ x ∈ Xt00 ∧ t000 ∈ path(t0 , t00 ) ⇒ x ∈ Xt000 . The width w of the decomposition is max t∈VT |Xt | − 1. The tree-width k of a graph is the minimum width over all its tree decompositions. DP on Tree Decompositions using BDDs 3 G: a b c T: b, c a, b b, c, d d e c, d, e Fig. 1. Example graph G and a possible tree decomposition T of G. The first condition states that every vertex of the original graph has to appear in at least one bag of the tree decomposition, the second condition guarantees that adjacent vertices appear together in some bag, and finally nodes whose bags contain the same vertex are connected. Figure 1 depicts an example graph G and a possible tree decomposition T of width 2. This tree decomposition is optimal w.r.t. width, i.e., the width corresponds to the tree-width of G. 2.2 Dynamic Programming on Tree Decompositions Dynamic programming (DP) on tree decompositions follows a general pattern of how the solution is constructed: 1. For an input graph G, construct a tree decomposition T . It is well-known that obtaining an optimal decomposition (with respect to width) is NP-hard (Arn- borg et al. 1987), but there are heuristics that provide a “good” decomposition in polynomial time (Dermaku et al. 2008; Bodlaender and Koster 2010). 2. Traverse T in post-order and at each node t ∈ VT compute partial solutions to the problem. Here, only information computed in the child node(s) of t and the subgraph of G induced by the vertices contained in bag Xt are to be considered. 3. At the root node of T , due to the properties of tree decompositions, we know that the whole instances was taken into account. Typically, for decision problems (e.g., satisfiability, credulous, or skeptical reasoning) the result is directly available at the root node. For enumeration tasks the tree is traversed a second time (now in pre-order) and the partial solutions are combined in order to obtain the complete solutions. Usually, intermediate results (obtained in step 2 of the algorithm) are stored in tables where each row explicitly represents a single partial solution. In case the problem at hand is fpt w.r.t. tree-width k, the size of each table is bounded by a polynomial of k. 2.3 Binary Decision Diagrams Herein, we elaborate on an approach where the memory required for storing partial solutions is reduced by using an implicit representation. In our approach, a special type of Binary Decision Diagrams (introduced by (Lee 1959) and refined by (Akers 1978)), so called Reduced Ordered Binary Decision Diagrams (ROBDDs) (Bryant 1986), serve as the data structure. 4 G. Charwat B: a Bred : a b1 b2 b c1 c2 c3 c4 c > ⊥ > ⊥ Fig. 2. OBBD and ROBBD of formula (a ∧ b ∧ c) ∨ (a ∧ ¬b ∧ c) ∨ (¬a ∧ b ∧ c). Definition 2 An Ordered Binary Decision Diagram (OBDD) is a rooted, connected, directed acyclic graph B = (VB , AB ) where VB = VT ∪ VN and AB = A> ∪ A⊥ . We have: 1. Terminal nodes > and/or ⊥ in VT . 2. Nonterminal nodes v ∈ VN where v is a Boolean variable. 3. Each v ∈ VN has exactly one outgoing arc in A> and one in A⊥ . 4. For every path from the root to a terminal node, each variable occurs at most once and in the same order (i.e., we have a strict total order over the variables). In Reduced OBDDs (ROBDDs) the following reduction rules are applied: • Isomorphic nodes are merged into a single node with several incoming edges. • Nodes v ∈ VN where both outgoing arcs reach the same node v 0 ∈ VB are removed. Given an OBDD B, propositional variables VN and an assignment A to VN , the corresponding path in B is the unique path from the root node to a terminal node, such that for every v ∈ VN it includes the outgoing arc in A> (A⊥ ) iff A gets assigned true (false) for v. A is a satisfying assignment of the function represented by B iff the path ends in >. In the following we specify BDDs by giving the function in form of a logic formula. Figure 2 shows an OBBD B and the corresponding ROBBD Bred for the Boolean formula (a ∧ b ∧ c) ∨ (a ∧ ¬b ∧ c) ∨ (¬a ∧ b ∧ c). Nodes c1 , c2 and c3 represent the same variable c and have arcs to the same terminal nodes. Hence, these isomorphic nodes are merged to a single node c. Then, both outgoing arcs of b1 reach c, and b1 is removed. Furthermore c4 is removed, resulting in Bred . BDDs support standard logic operators (e.g., ∧, ∨, ¬, ↔, . . . ), existential quan- tification (∃V B for V ⊆ VN ) as well as restriction and renaming of variables (B[v/·] where · ∈ {>, ⊥, v 0 } for v ∈ VN ). The size of ROBDDs is, in the worst case, expo- nential, i.e., bounded by O(2|VB | ) and heavily depends on the variable ordering. It was shown that finding an optimal ordering is NP-complete (Bollig and Wegener 1996). However, there are good heuristics available (e.g., (Rudell 1993)) and, in practice, BDDs are oftentimes exponentially smaller (Friedman and Supowit 1987). 3 Literature Review Dynamic programming on tree decompositions has been studied in many prob- lem domains such as belief revision (Pichler et al. 2009), answer-set program- ming (Morak et al. 2011) or abstract argumentation (Dvořák et al. 2012) (for a general overview, see, e.g., (Niedermeier 2006)). DP on Tree Decompositions using BDDs 5 There exist several tools that put these theoretical results into practice. The D- FLAT system (Abseher et al. 2014) combines DP with answer-set programming (ASP). Here, the user specifies the DP algorithm in form of an answer-set program which is executed at each node of the decomposition, thereby defining the DP algo- rithm explicitly. Furthermore, the tool SEQUOIA (Kneis et al. 2011) implements a game-theoretic approach where the problem is represented as a monadic second- order (MSO) formula. The instance is decomposed and the DP algorithm automati- cally generated and executed. Additionally, some problem-specific implementations like dynASP (Morak et al. 2011) (for ASP solving) and dynPARTIX (Charwat and Dvořák 2012) (for the area of abstract argumentation) are available. However, these systems are either designed as tools for prototypical DP implementations, are not easily extensible to new application areas or suffer from high memory demands for storing partial solutions during the computation. The latter problem has been ad- dressed, e.g., by proposing heuristics (Betzler et al. 2006) or reducing the number of simultaneously stored tables (Aspvall et al. 2000). BDDs are a well-established concept used, e.g., in model-checking (Mȩski et al. 2014), planning (Kissmann and Hoffmann 2014) and software verification (Beyer and Stahlbauer 2014). In recent research the effectiveness of exploiting tree-width by applying decomposition techniques in combination with decision diagrams is stud- ied. In the area of knowledge compilation, so-called “Tree-of-BDDs” (Subbarayan 2005; Fargier and Marquis 2009) are constructed in an offline phase from a given CNF, and queried in the online phase to answer questions on this data structure in linear time. Furthermore, Algebraic Decision Diagrams (ADDs) (Bahar et al. 1997), a concept closely related to BDDs, are used for compiling Bayesian net- works in such a way that the structure of the network can be exploited in order to compute inference efficiently (Chavira and Darwiche 2007). Combining DP and decision diagrams has been proven well-suited also for Constraint Optimization Problems (COPs) (Sachenbacher and Williams 2005). The key idea is to employ ADDs to store the set of possible solutions, and the branch-and-bound algorithm is executed on a decomposition of the COP instance. In (Boutaleb et al. 2006), this idea was shown to be superior to earlier approaches by additionally applying (no)good recording during computation. Furthermore, in (Hooker 2013) “classical” (i.e., without tree decompositions) serial as well as non-serial dynamic programming in combination with decision diagrams is studied for optimization problems. 4 Goal and Current Status of Research 4.1 Goal of the Research The goal of the thesis is to develop a new methodology for DP on tree decomposi- tions. The following tasks are to be considered: 1. Sets-of-models based DP algorithms: One goal is to develop a general approach where DP algorithms on tree decompositions can be specified on a logical level in form of Boolean formula manipulations, such that they can be handled 6 G. Charwat efficiently and transparently by the underlying BDD data structure. Based on this, alternative algorithm design patterns shall be developed and analyzed. 2. Study of expressiveness: An important question to answer is whether and how different types of problems (e.g., decision or optimization problems) can be addressed. Furthermore, it shall be elaborated how problems of different (classical) complexity can be handled, in particular NP-complete problems and problems that are hard for the second level of the polynomial hierarchy. Ultimately, it would be desirable to prove whether all MSO-definable problems can be modeled using our approach such that the resulting algorithms run in fpt time (w.r.t. tree-width). 3. Implementation: From a practical perspective, the goal is to develop a system that combines BDDs with DP on tree decompositions. This tool should rely on existing software (HTDECOMP (Dermaku et al. 2008) for obtaining the decomposition, D-FLAT (Abseher et al. 2014) for handling the program flow and CUDD (Somenzi 2012) for BDD management). 4. Empirical evaluation: It is expected that the new approach of combining BDDs with DP results in much lower memory requirements than previous attempts. Within the thesis, the memory demands as well as the run-time performance is compared to existing decomposition-based systems, and also to “direct” implementations that are not based on such decompositions. Of particular interest is a comparison on real-world instances that exhibit small tree-width (such as, e.g., provided in (Batagelj and Mrvar 2006; Langer 2012; Bliem 2012)). Furthermore, the influence of the variable ordering within the BDDs on the run-time performance shall be studied. Overall, the goal is to develop a method that combines DP on tree decompositions with BDDs and to give a clear picture on the applicability of this approach in practice. 4.2 Status of Research In recent work (see (Charwat and Woltran 2015)) we accomplished to formalize our approach for NP-complete decision problems. The applied methodology is feasible for problems that are fpt w.r.t. tree-width k, but can also be applied to problems that are not fpt. However, there the run-time complexity is no longer polynomial in the size of the input (for a fixed k). We studied several problems that impose different challenges on our algorithm design, namely 3-Colorability, Boolean Satisfiability, Directed Dominating Set and Hamiltonian Cycle. Here, we briefly illustrate how the simplest problem, 3-Colorability (“Given a graph G, is G 3-colorable?”), can be solved using our approach. We assume that the tree decomposition T = (VT , ET ) of G = (V, E) is normalized, meaning that each node t ∈ VT is of one of the following types: (l) leaf node: t has no children; (i) introduction node: t has exactly one child node t0 with Xt0 ∪ {u} = Xt where u is the introduced vertex; (r) removal node: t has exactly one child node t0 with Xt0 = Xt ∪ {u} where u is the removed vertex; and (j) join node: t has exactly two child nodes t0 and t00 with Xt = Xt0 = Xt00 . DP on Tree Decompositions using BDDs 7 3-Colorability 250 5000 10 Solved Memory Timeout 4000 Time 8 200 Memout Memory (GB) Time (sec) Error 3000 D-FLAT EDM 6 Instances 150 dynBDD EDM 2000 4 100 1000 2 50 0 0 0 20 40 60 80 100 130 160 0 dynBDD EDM D-FLAT EDM dynBDD LDM SEQUOIA D-FLAT LDM Instances solved Fig. 3. 3-Colorability: Benchmark comparison with available TD-based systems. Let the set of colors C = {r, g, b}. For all c ∈ C and x ∈ V , the truth value of variable cx denotes whether vertex x gets assigned color c. The algorithm now works as follows. We traverse T in post-order. At each node t ∈ VT we compute the BDD Bt∗ based on the node type ∗ ∈ {l, i, r, j}. Additionally, we take into account the BDDs Bt0 and Bt00 of the child nodes (if any), and the subgraph of G that is induced by the vertices in Xt . Here, we denote by Et the edges contained in the induced subgraph. The BDD manipulation operations are given as follows: ^ ^ ^ Btl = ¬(cx ∧ cy ) ∧ (rx ∨ gx ∨ bx )∧ c∈C {x,y}∈Et x∈Xt ^   ¬(rx ∧ gx ) ∧ ¬(rx ∧ bx ) ∧ ¬(gx ∧ bx ) x∈Xt ^ ^ Bti =Bt0 ∧ ¬(cx ∧ cu ) ∧ (ru ∨ gu ∨ bu )∧ c∈C {x,u}∈Et ¬(ru ∧ gu ) ∧ ¬(ru ∧ bu ) ∧ ¬(gu ∧ bu ) Btr =∃ru gu bu [Bt0 ] Btj = Bt0 ∧ Bt00 For a graph to be 3-colorable we have to guarantee that adjacent vertices do not have the same color and that every vertex gets assigned exactly one color. Intuitively, Btl and Bti are constructed by adding the respective constraints for in- troduced vertices. In Btr , due to the definition of tree decompositions, we know that all constraints related to removed vertex u were already taken into account. Hence, we can abstract away the variables associated with u, thereby keeping the size of the BDD bound by the width of the decomposition. In join nodes, Btj combines the intermediate results obtained in the child nodes of the decomposition. At the root node r of T (where we impose Xr = ∅) we have that either Br = > or Br = ⊥, representing the solution to our problem. We call the approach illustrated above early decision method (EDM), meaning that information is incorporated into the BDD as soon as it becomes available (i.e., during introduction of vertices). In (Charwat and Woltran 2015) we developed an alternative algorithm design pattern, called late decision method (LDM). In contrast to EDM, here the BDDs are updated just before a vertex is removed from a bag. All problems mentioned above were implemented in both the EDM and LDM variants, and compared to TD-based systems in a preliminary empirical evaluation. 8 G. Charwat Results for 3-Colorability are shown in Figure 3 (for details and further results, see (Charwat and Woltran 2015)). The benchmark set contained 252 (randomly generated) instances consisting of 10 up to 1000 vertices. The obtained tree decom- positions exhibited a width between 1 and 944. The figure on the left illustrates the number of solved instances, as well as the overall number of observed time- outs (limited to 10 minutes) and memouts (limited to 4GB). SEQUOIA reports “error” whenever the system-internal pre-check determines that the given instance is not solvable. The accumulated runtime and memory requirements over all in- stances that were solved by the two best-performing systems is given in the right figure. In total, dynBDD (using EDM) required approximately 18% less time and 47% less memory than D-FLAT (EDM). Our experiments suggest that EDM is better-suited for unsatisfiable instances since conflicts can be detected earlier dur- ing the computation. However, LDM usually yields smaller BDDs and results in less computational effort. Furthermore, from a developer’s perspective, we obtain more concise algorithm specifications. Overall, benchmark results are very promising for all problems considered so far, both with respect to reduced memory requirements and run-time. 5 Open Issues and Expected Achievements The performance of BDDs heavily depends on the applied variable ordering. An open question is how this ordering can be optimized in our context, e.g., by taking the ordering of the vertices in the tree decomposition into account. Furthermore, from a practical perspective, also debugging and visualization possibilities that may support an algorithm developer are under investigation. It is desirable to develop further algorithm design pattern (besides EDM and LDM) and to study their impli- cations on the run-time performance. Additionally, our approach natively supports parallel problem solving (over decomposition branches), which would be a comple- mentary approach to recent developments on parallel BDD implementations (van Dijk et al. 2013; Lovato et al. 2014). Additionally, it would be interesting to de- velop problem-specific optimizations for our TD-based algorithms and compare their performance to standard (non-DP) implementations (e.g., for Hamiltonian Cycle (Gebser et al. 2014; Soh et al. 2014)). Regarding expressiveness, we are interested in optimization problems. Here, al- ternative types of decision diagrams (DDs), such as Algebraic DDs (Bahar et al. 1997), Edge-valued BDDs (Lai and Sastry 1992) and Multi-valued DDs (Kam et al. 1998) may be appropriate. Most importantly, we want to study our approach in the context of problems that are hard for the second level of the polynomial hierarchy. Here, a challenge to be faced is that each partial solution get associated with a set of so-called counter candidates, that witness whether a partial solution is valid (see, e.g., (Dvořák et al. 2012)). Here, an open issue is how such sets of counter candi- dates can be represented in BDDs. Ultimately we want to provide a BDD-based tool-set for various intractable problems, such that they can be solved in fpt time within our approach. DP on Tree Decompositions using BDDs 9 References Abseher, M., Bliem, B., Charwat, G., Dusberger, F., Hecher, M., and Woltran, S. 2014. The D-FLAT system for dynamic programming on tree decompositions. In Proc. JELIA. LNCS, vol. 8761. Springer, 558–572. Akers, S. B. 1978. Binary decision diagrams. IEEE Transactions on Computers 100, 6, 509–516. Arnborg, S., Corneil, D. G., and Proskurowski, A. 1987. Complexity of finding embeddings in a k-tree. SIAM J. Algebraic Discrete Methods 8, 277–284. Aspvall, B., Telle, J. A., and Proskurowski, A. 2000. Memory requirements for table computations in partial k-tree algorithms. Algorithmica 27, 3, 382–394. Bahar, R., Frohm, E., Gaona, C., Hachtel, G., Macii, E., Pardo, A., and Somenzi, F. 1997. Algebric decision diagrams and their applications. Formal Methods in System Design 10, 2-3, 171–206. Batagelj, V. and Mrvar, A. 2006. Pajek datasets. http://vlado.fmf.uni-lj.si/ pub/networks/data/. Betzler, N., Niedermeier, R., and Uhlmann, J. 2006. Tree decompositions of graphs: Saving memory in dynamic programming. Discrete Optimization 3, 3, 220–229. Beyer, D. and Stahlbauer, A. 2014. BDD-based software verification - Applications to event-condition-action systems. STTT 16, 5, 507–518. Bliem, B. 2012. D-FLAT: Collection of instances with small tree-width. http://dbai. tuwien.ac.at/proj/dflat/system/examples/instances.tar.gz. Bodlaender, H. L. and Koster, A. M. C. A. 2010. Treewidth computations I. Upper bounds. Inf. Comput. 208, 3, 259–275. Bollig, B. and Wegener, I. 1996. Improving the variable ordering of OBDDs is NP- complete. IEEE Trans. Comp. 45, 9 (Sep), 993–1002. Boutaleb, K., Jégou, P., and Terrioux, C. 2006. (No)good recording and ROBDDs for solving structured (V)CSPs. In Proc. ICTAI. IEEE Computer Society, 297–304. Bryant, R. E. 1986. Graph-based algorithms for boolean function manipulation. IEEE Transactions on Computers 100, 8, 677–691. Charwat, G. and Dvořák, W. 2012. dynPARTIX 2.0 - Dynamic programming argu- mentation reasoning tool. In Proc. COMMA. FAIA, vol. 245. IOS Press, 507–508. Charwat, G., Dvořák, W., Gaggl, S. A., Wallner, J. P., and Woltran, S. 2015. Methods for solving reasoning problems in abstract argumentation - A survey. Artif. Intell. 220, 28–63. Charwat, G. and Woltran, S. 2015. Efficient problem solving on tree decomposi- tions using binary decision diagrams. In Proc. LPNMR. LNCS. Springer. Accepted for publication. Chavira, M. and Darwiche, A. 2007. Compiling Bayesian networks using variable elimination. In Proc. IJCAI. 2443–2449. Chimani, M., Mutzel, P., and Zey, B. 2012. Improved Steiner tree algorithms for bounded treewidth. J. Discrete Algorithms 16, 67–78. Courcelle, B. 1990. The monadic second-order logic of graphs. I. Recognizable sets of finite graphs. Inf. Comput. 85, 1, 12–75. Dermaku, A., Ganzow, T., Gottlob, G., McMahan, B. J., Musliu, N., and Samer, M. 2008. Heuristic methods for hypertree decomposition. In Proc. MICAI. LNCS, vol. 5317. Springer, 1–11. Dvořák, W., Pichler, R., and Woltran, S. 2012. Towards fixed-parameter tractable algorithms for abstract argumentation. Artif. Intell. 186, 1–37. 10 G. Charwat Fargier, H. and Marquis, P. 2009. Knowledge compilation properties of Trees-of-BDDs, revisited. In Proc. IJCAI. 772–777. Friedman, S. J. and Supowit, K. J. 1987. Finding the optimal variable ordering for binary decision diagrams. In Proc. IEEE Design Automation Conf. ACM, 348–356. Gebser, M., Janhunen, T., and Rintanen, J. 2014. SAT modulo graphs: Acyclicity. In Proc. JELIA. LNCS, vol. 8761. Springer, 137–151. Groër, C., Sullivan, B. D., and Weerapurage, D. 2012. INDDGO: Integrated network decomposition & dynamic programming for graph optimization. Tech. Rep. ORNL/TM-2012/176. Hooker, J. N. 2013. Decision diagrams and dynamic programming. In Proc. CPAIOR. LNCS, vol. 7874. Springer, 94–110. Kam, T., Villa, T., Brayton, R., and Sangiovanni-Vincentelli, A. 1998. Multi- valued decision diagrams: Theory and applications. Multiple-Valued Logic 4, 9–62. Kissmann, P. and Hoffmann, J. 2014. BDD ordering heuristics for classical planning. J. Artif. Intell. Res. (JAIR) 51, 779–804. Kneis, J., Langer, A., and Rossmanith, P. 2011. Courcelle’s theorem - A game- theoretic approach. Discrete Optimization 8, 4, 568–594. Lai, Y.-T. and Sastry, S. 1992. Edge-valued binary decision diagrams for multi-level hierarchical verification. In Proc. DAC. IEEE CSP, 608–613. Langer, A. 2012. SEQUOIA library and tests. https://github.com/sequoia-mso. Lee, C. 1959. Representation of switching circuits by binary-decision programs. Bell System Technical Journal 38, 985–999. Lovato, A., Macedonio, D., and Spoto, F. 2014. A thread-safe library for binary decision diagrams. In Proc. SEFM. LNCS, vol. 8702. Springer, 35–49. Mȩski, A., Penczek, W., Szreter, M., Woiźna-Szcześniak, B., and Zbrzezny, A. 2014. BDD-versus SAT-based bounded model checking for the existential fragment of linear temporal logic with knowledge: Algorithms and their performance. Autonomous Agents and Multi-Agent Systems 28, 4, 558–604. Morak, M., Musliu, N., Pichler, R., Rümmele, S., and Woltran, S. 2011. A new tree-decomposition based algorithm for answer set programming. In ICTAI. IEEE, 916–918. Niedermeier, R. 2006. Invitation to fixed-parameter algorithms. Oxford Lecture Series in Mathematics and its Applications, vol. 31. OUP, Oxford. Pichler, R., Rümmele, S., and Woltran, S. 2009. Belief revision with bounded treewidth. In Proc. LPNMR. LNCS, vol. 5753. Springer, 250–263. Robertson, N. and Seymour, P. D. 1984. Graph minors. III. Planar tree-width. J. Comb. Theory, Ser. B 36, 1, 49–64. Rudell, R. 1993. Dynamic variable ordering for ordered binary decision diagrams. In Proc. ICCAD. IEEE CSP, 42–47. Sachenbacher, M. and Williams, B. C. 2005. Bounded search and symbolic inference for constraint optimization. In Proc. IJCAI. PBC, 286–291. Soh, T., Berre, D. L., Roussel, S., Banbara, M., and Tamura, N. 2014. Incremental sat-based method with native boolean cardinality handling for the Hamiltonian cycle problem. In Proc. JELIA. LNCS, vol. 8761. Springer, 684–693. Somenzi, F. 2012. CU Decision Diagram package release 2.5.0. Department of Electrical and Computer Engineering, University of Colorado at Boulder. Subbarayan, S. 2005. Integrating CSP decomposition techniques and BDDs for compiling configuration problems. In Proc. CPAIOR. LNCS, vol. 3524. Springer, 351–365. van Dijk, T., Laarman, A., and van de Pol, J. 2013. Multi-core BDD operations for symbolic reachability. Electr. Notes Theor. Comput. Sci. 296, 127–143.