1 Graphs and Algorithms in Communication Networks on Seven League Boots 27
added to L. Further, let i
j
∈L
be a second edge on the cycle with i
∈S
∗
, j
∈V \S
∗
.
Then, (V,L
∪{e
∗
}\{i
j
}) also is a spanning tree, but
κ
(L
∪{e
∗
}\{i
j
}) ≤
κ
(L
).
Hence, either T
was not optimal or
|
L ∩L
|
was not maximal.
The time to compute a minimum cost spanning tree with the Dijkstra-Prim al-
gorithm is O(
|
E
|
+
|
V
|
log
|
V
|
) by using a data structure such as a Fibonacci heap
for sorting the potential spanning tree edges. Hence, the problem is in P. Further,
the Dijkstra-Prim algorithm is an example of a greedy algorithm; cf. Section 1.4.3.
Another greedy algorithm for the minimum cost spanning tree problem is Kruskal’s
algorithm [69]. It starts with the trivial forest (V,L), L = /0, and repeatedly adds the
edge of minimum cost such that the new subgraph (V, L) remains a forest. After
adding
|
V
|
−1 edges a minimum cost spanning tree is found (which can be proved
by a similar argument as above).
Recently, there has been renewed interest in the minimum spanning tree problem.
However, the tree is restricted to have a bounded degree at all vertices. In contrast to
the minimum cost spanning tree problem, no polynomial-time algorithm is known
for the bounded degree minimum cost spanning tree problem [10, 51]. NP-hardness
follows from the Degree-Constrained Spanning Tree problem, where one has to
minimize the maximum degree of the spanning tree [50, Problem ND1].
Minimum Steiner Tree Problem
Application 1.2 Reconsider the situation of Application 1.1. Instead of a new office
building, we consider an existing building with a wired LAN infrastructure in place.
The new backbone for the WLAN can use this infrastructure but is not required to
do so. A set of connection points at the wired LAN network have been identified, and
the costs to connect an AP to a connection point are again denoted by
κ
ij
.
In this case the set V consists of all APs and all connection point to the wired LAN
network. Since only the APs have to be connected to each other, S consists of the
APs only and H is complete. The connection cost between any two connection
points i, j ∈ V \S can be defined as
κ
i, j
= 0. This problem is known as the mini-
mum cost Steiner tree problem. The subset U ⊂V are the so-called terminals that
have to be connected, whereas the remaining vertices V \U can be used as hubs to
save connection costs.
The minimum cost Steiner tree problem cannot be solved in polynomial time,
unless P = NP [66]. Even for grid graphs the problem is NP-complete [49]. The
special case where
|
U
|
= 2 requires a path between the two end nodes and is better
known as the shortest path problem; see Section 1.5.2.1.
Among the many different approaches that have been developed to find optimal,
or at least very good, solutions for the Steiner tree problem, polyhedral methods
have been particularly successful. The problem can be formulated as an integer lin-
ear program in many different ways. We present here one formulation as a warm-up
and refer to the survey by Voß [89] for further formulations.
For every e ∈ E we introduce a binary variable x
e
indicating whether (x
e
= 1) or
not (x
e
= 0) the edge is part of the Steiner tree. The Steiner Tree Problem now reads