In the
Steiner Forest
problem, we are given a graph and a collection of source-sink
pairs, and the
goal is to find a subgraph of minimum total length such that all
pairs are connected. The problem is
APX-Hard and can be
2
-approximated by, e.g., the elegant primal-dual algorithm
of Agrawal, Klein, and
Ravi from 1995.
We give a local-search-based constant-factor approximati
on for the problem. Local search brings in
new techniques to an area that has for long not seen any improv
ements and might be a step towards
a combinatorial algorithm for the more general survivable n
etwork design problem. Moreover, local
search was an essential tool to tackle the dynamic MST/Stein
er Tree problem, whereas dynamic Steiner
Forest is still wide open.
It is easy to see that any constant factor local search algori
thm requires steps that add/drop many edges
together. We propose natural local moves which, at each step
, either (a) add a shortest path in the current
graph and then drop a bunch of inessential edges, or (b) add a s
et of edges to the current solution. This
second type of moves is motivated by the potential function w
e use to measure progress, combining the
cost of the solution with a penalty for each connected compon
ent. Our carefully-chosen local moves and
potential function work in tandem to eliminate bad local min
ima that arise when using more traditional
local moves.
Our analysis first considers the case where the local optimum
is a single tree, and shows optimality w.r.t.
moves that add a single edge (and drop a set of edges) is enough
to bound the locality gap. For the
general case, we show how to “project” the optimal solution o
nto the different trees of the local optimum
without incurring too much cost (and this argument uses opti
mality w.r.t. both kinds of moves), followed
by a tree-by-tree argument. We hope both the potential funct
ion, and our analysis techniques will be
useful to develop and analyze local-search algorithms in ot
her contexts.