Fast Dynamic Programming on Graph Decompositions
In this paper, we consider tree decompositions, branch decompositions, and clique decompositions. We improve the running time of dynamic programming algorithms on these graph decompositions for a large number of problems as a function of the treewidth, branchwidth, or cliquewidth, respectively. On tree decompositions of width k, we improve the running time for Dominating Set to O(3^k). We generalise this result to [ρ,σ]-domination problems with finite or cofinite ρ and σ. For these problems, we give O(s^k)-time algorithms, where s is the number of `states' a vertex can have in a standard dynamic programming algorithm for such a problems. Furthermore, we give an O(2^k)-time algorithm for counting the number of perfect matchings in a graph, and generalise this to O(2^k)-time algorithms for many clique covering, packing, and partitioning problems. On branch decompositions of width k, we give an O(3^ω/2k)-time algorithm for Dominating Set, an O(2^ω/2k)-time algorithm for counting the number of perfect matchings, and O(s^ω/2k)-time algorithms for [ρ,σ]-domination problems involving s states with finite or cofinite ρ and σ. Finally, on clique decompositions of width k, we give O(4^k)-time algorithms for Dominating Set, Independent Dominating Set, and Total Dominating Set. The main techniques used in this paper are a generalisation of fast subset convolution, as introduced by Björklund et al., now applied in the setting of graph decompositions and augmented such that multiple states and multiple ranks can be used. Recently, Lokshtanov et al. have shown that some of the algorithms obtained in this paper have running times in which the base in the exponents is optimal, unless the Strong Exponential-Time Hypothesis fails.
READ FULL TEXT