#### Date of Original Version

6-2010

#### Type

Article

#### Rights Management

This is the author’s version of a work that was accepted for publication. Changes resulting from the publishing process, such as peer review, editing, corrections, structural formatting, and other quality control mechanisms may not be reflected in this document. Changes may have been made to this work since it was submitted for publication. A definitive version is available at http://dx.doi.org/10.1016/j.sorms.2010.06.001

#### Abstract or Description

In a typical instance of a network design problem, we are given a directed or undirected graph G = (V,E), non-negative edge-costs ce for all e ∈ E, and our goal is to find a minimum-cost subgraph H of G that satisfies some design criteria. For example, we may wish to find a minimum-cost set of edges that induces a connected graph (this is the minimum-cost spanning tree problem), or we might want to find a minimum-cost set of arcs in a directed graph such that every vertex can reach every other vertex (this is the minimum-cost strongly connected subgraph problem). This abstract model for network design problems has a large number of practical applications; the design process of telecommunication and traffic networks, and VLSI chip design are just two examples.

Many practically relevant instances of network design problems are NP-hard, and thus likely intractable. This survey focuses on approximation algorithms as one possible way of circumventing this impasse. Approximation algorithms are efficient (i.e., they run in polynomial-time), and they compute solutions to a given instance of an optimization problem whose objective values are close to those of the respective optimum solutions. More concretely, most of the problems discussed in this survey are minimization problems. We then say that an algorithm is an α-approximation for a given problem if the ratio of the cost of an approximate solution computed by the algorithm to that of an optimum solution is at most α over all instances. In the following we will also sometimes refer to α as the performance guarantee of the respective approximation algorithm.

The last 30 years have seen a tremendous amount of research on approximation algorithms for network design problems. And over this period, several technical themes have emerged, and have been explored and exploited to give algorithms and analyze their performance. Our aim in this survey is to provide an overview over these techniques. Each of the following sections focuses on one technique and has two main parts: first, we present an introductory application to the well-known classical minimum-spanning tree problem. The second part of each section demonstrates more sophisticated recent example applications of the respective technique. Throughout we assume that the reader is familiar with fundamental concepts of graph theory, combinatorial optimization, and approximation algorithms. While we may recap certain key definitions, we rely on the reader to be familiar with others. We refer to the excellent text books [45, 160, 163] for background reading.

The minimum spanning tree problem has been studied for at least a century, and it is clearly one of the most prominent network design problems. The input to an instance of this problem consists of an undirected graph G = (V,E) each of whose edges e ∈ E is endowed by an arbitrary cost ce, and the goal is to compute a spanning tree of smallest cost. The earliest known algorithm for this problem was developed by Boruvka [ ˙ 21], and since then a vast number of techniques have been developed and subsequently used in order to devise increasingly sophisticated algorithms.

#### DOI

10.1016/j.sorms.2010.06.001

#### Published In

Surveys in Operations Research and Management Science, 16, 1, 3-20.