Abstract
It is well known that many local graph problems, like Vertex Cover and Dominating Set, can be solved in time 2<sup>O(tw)</sup>|<sup>V|O(1)</sup> for graphs G=(V,E) with a given tree decomposition of width tw. However, for nonlocal problems, like the fundamental class of connectivity problems, for a long time we did not know how to do this faster than twO(<sup>tw)</sup>|<sup>V|O(1)</sup>. Recently, Cygan et al. (FOCS 2011) presented Monte Carlo algorithms for a wide range of connectivity problems running in time <sup>ctw</sup>|<sup>V|O(1)</sup> for a small constant c, e.g., for Hamiltonian Cycle and Steiner Tree. Naturally, this raises the question whether randomization is necessary to achieve this runtime; furthermore, it is desirable to also solve counting and weighted versions (the latter without incurring a pseudo-polynomial cost in the runtime in terms of the weights). We present two new approaches rooted in linear algebra, based on matrix rank and determinants, which provide deterministic <sup>ctw</sup>|<sup>V|O(1)</sup> time algorithms, also for weighted and counting versions. For example, in this time we can solve Traveling Salesman or count the number of Hamiltonian cycles. The rank based ideas provide a rather general approach for speeding up even straightforward dynamic programming formulations by identifying "small" sets of representative partial solutions; we focus on the case of expressing connectivity via sets of partitions, but the essential ideas should have further applications. The determinant-based approach uses the Matrix Tree Theorem for deriving closed formulas for counting versions of connectivity problems; we show how to evaluate those formulas via dynamic programming.
Original language | English |
---|---|
Pages (from-to) | 86-111 |
Number of pages | 26 |
Journal | Information and Computation |
Volume | 243 |
DOIs | |
Publication status | Published - 1 Aug 2015 |