23,875 research outputs found
Hitting and Harvesting Pumpkins
The "c-pumpkin" is the graph with two vertices linked by c>0 parallel edges.
A c-pumpkin-model in a graph G is a pair A,B of disjoint subsets of vertices of
G, each inducing a connected subgraph of G, such that there are at least c
edges in G between A and B. We focus on covering and packing c-pumpkin-models
in a given graph: On the one hand, we provide an FPT algorithm running in time
2^O(k) n^O(1) deciding, for any fixed c>0, whether all c-pumpkin-models can be
covered by at most k vertices. This generalizes known single-exponential FPT
algorithms for Vertex Cover and Feedback Vertex Set, which correspond to the
cases c=1,2 respectively. On the other hand, we present a O(log
n)-approximation algorithm for both the problems of covering all
c-pumpkin-models with a smallest number of vertices, and packing a maximum
number of vertex-disjoint c-pumpkin-models.Comment: v2: several minor change
Solving weighted and counting variants of connectivity problems parameterized by treewidth deterministically in single exponential time
It is well known that many local graph problems, like Vertex Cover and
Dominating Set, can be solved in 2^{O(tw)}|V|^{O(1)} time 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 tw^{O(tw)}|V|^{O(1)}. Recently, Cygan et al.
(FOCS 2011) presented Monte Carlo algorithms for a wide range of connectivity
problems running in time $c^{tw}|V|^{O(1)} 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 terms of the weights).
We present two new approaches rooted in linear algebra, based on matrix rank
and determinants, which provide deterministic c^{tw}|V|^{O(1)} time algorithms,
also for weighted and counting versions. For example, in this time we can solve
the traveling salesman problem 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.Comment: 36 page
- …