• Aucun résultat trouvé

Routing of a Single Commodity

Graphs and Algorithms in Communication Networks on Seven League Boots

1.5.2 Network Routing Problems

1.5.2.1 Routing of a Single Commodity

The most elementary problem in network routing optimization is the choice of a routing for a single commodity, e.g., one source-destination pair. This problem can

occur at the planning stage (e.g., simultaneous planning of communication paths) or at the operational stage (e.g., online call admission). The problem also has to be solved in many multi-commodity network optimization problems where dynamic column generation is used (cf. Section 1.5.3).

Shortest Path Problem

Application 1.4 Consider the operation of an optical fiber network. The call admis-sion officer is asked to set up a new 10 Gbit/s connection between two core nodes.

To avoid re-sorting of the packets at the receiving end of the connection, a single 10 Gbit/s lightpath has to be used. To limit the packet delay to a minimum, the path should be as short as possible.

If no further routing restrictions apply, this problem can be described as follows.

Given a digraph D= (V,A)(e.g., arc a∈A exists if and only if enough spare capacity exists), a weight function w : A→Q(e.g., the delay) and a source-destination pair s,t ∈V , find a path p from s to t such thata∈pwa is minimized. In general the weight function w can represent any relevant metric, e.g., length of the network links, delay, spare capacity, etc..

The above problem is well-known as the shortest path problem. If all weights are nonnegative, the problem can be solved in polynomial time by a wide variety of algorithms, the most famous one being Dijkstra’sO(|V|2)algorithm [39]; see Algorithm 1.2. An excellent source for faster implementations of Dijkstra’s algo-rithm and other faster algoalgo-rithms for the shortest path problem is [83, Chapter 7];

see also [7].

Algorithm 1.2 Dijkstra’s algorithm to determine the shortest path p between s∈V and t∈V in a weighted digraph D= (V,A,w).

Define d : VQ+by d(i):=0 if is and d(i):=otherwise Define p : VV by p(i):=i for all iV

Let S :=/0 while tS do

Let i=arg min{d(j)|jV\S} for jN+(i)do

if d(i) +wi j<d(j)then d(j):=d(i) +wi j

p(j):=i S :=S∪ {i} if d(t)then

return No path from s to t exists

Let path p be(i0,a1,i1, . . . ,ak,ik)such that ij=p(ij+1)and i0=s, ik=t.

return p and d(t)

The function d : V→Q+keeps the shortest distance known from s to any vertex, whereas p(i)records the previous vertex on the shortest path from s to i. Dijkstra’s

algorithm repeatedly selects vertices i∈V for which the distance d(i)to the source vertex s cannot be improved anymore and updates the distance of vertices that can be reached in a single step from this vertex. Since all arc weights are nonnegative, the distance to none of the vertices in S can be decreased this way, and hence as soon as t∈S, the distance d(t)is final.

In case some arc weights are negative, the above algorithm cannot guarantee an optimal solution anymore (i.e., if negatively weighted cycles exist) and the problem can be proved to beNP-complete [50, 66]. This result is of particular importance for optimization approaches that exploit dynamic column generation since in particular cases negative arc weights might appear. Shortest path algorithms are used in many situations; see, e.g., Chapters 4, 5, and 8.

Suurballe’s Problem

Application 1.5 Reconsider the situation of Application 1.4. To guarantee high availability of the connection, two vertex-disjoint paths with minimum total delay have to be installed. All packets are transmitted by both lightpaths. At the receiv-ing end, the packets that arrive earliest are processed, whereas the other ones (if arriving) are discarded.

This closely related and widely studied problem in communication networks is known as Suurballe’s problem [86], often wrongly referred to as Suurballe’s algo-rithm. Instead of a shortest path between s and t, a shortest cycle containing s and t is searched for. Stated differently, and more generally, we have to find K paths p1, . . . ,pK between s and t such thatKj=1a∈pjwais minimized. The paths must be either arc-disjoint or vertex-disjoint (except for source and destination), depend-ing on the settdepend-ing. For K=2 and vertex-disjoint paths, the problem reduces to the shortest cycle problem.

This problem occurs in the context of 1+1 dedicated path protection, where a working or primary path and a disjoint backup path have to be selected. From a practical perspective there might be several reasons to balance the length of both paths, e.g., comparable delays, or avoidance of a capacity imbalance between pri-mary and backup capacity. In such situations we might apply a successive shortest path computation; i.e., we first compute the shortest path between s and t and next we compute a shortest path in the augmented digraph where all arcs (and nodes) on the shortest path are removed. However, such a second path might not exist, although there exists a shortest cycle; see Figure 1.9.

Specific algorithms have been developed for this problem, in particular using Dijkstra’s algorithm; cf. [17]. Alternatively, the problem can be solved as a minimum cost flow problem.

A D E H

B C

F G

Fig. 1.9 A digraph with arc weights wa=1 for all aA where the successive shortest path algo-rithm fails to find two vertex-disjoint paths between vertices A and H

Minimum Cost Flow Problem

Application 1.6 A world-wide operating investment bank needs access to 250 Gbit/s of bandwidth between its European and US headquarters. For this it can lease bandwidth from a number of network operators for sections of the connec-tion, represented by a directed graph. Bandwidth on a section can be leased with a modularity of 10 Gbit/s and is priced accordingly.

The minimum cost flow problem is defined by a digraph D= (V,A), a cost func-tion w : A→Q+, a capacity function c : A→Z+, and a supply/demand function d : V Z. A vertex i∈V is called a supply vertex if di>0, a demand vertex if di<0, and a transit vertex if di=0. A flow f : A→Q+is an assignment of val-ues to the arcs of the digraph. We call a flow proper with respect to d if the flow conservation constraints

a∈δ

+(i)

fa

a∈δ(i)

fa=di (1.8)

hold for all i∈V . We further call a flow proper with respect to c if the capacity constraints

fa≤ca (1.9)

hold for all a∈A. A minimum cost flow is a proper flow with respect to d and c that minimizes

a∈A

wafa.

The description of the minimum cost flow problem is more general than Appli-cation 1.6 requires: there is only one supply vertex and only one demand vertex.

Suurballe’s problem with arc-disjoint paths can be easily formulated as a minimum cost flow problem by setting ca=1 for all a∈A, and

di=

⎧⎪

⎪⎩

K if i=s,

−K if i=t, and 0 otherwise.

Every proper flow with respect to d and c can now be translated to a set of K arc-disjoint paths. For each path pjwe greedily select successive arcs for which fa=1, starting at the source s and ending at the destination t, setting fa=0 as soon as it is selected.

Because of the total unimodularity of the constraint matrix in the minimum cost flow problem, the solution is integer valued if all arc capacities caare integral. This property is, for example, relevant in the context of optical networks where we would like to route a number of lightpaths between a source vertex s∈V and a target vertex t∈V .

Maximum Flow Problem

Another problem closely related to the above problems is the maximum flow prob-lem. Here the input consists of a digraph D= (V,A), a capacity function c : AZ+, and two designated vertices, a source s∈V and a target t∈V . The objective is to maximize the flow between s and t.

This problem solves the feasibility version of Application 1.6: can we allocate 250 Gbit/s of bandwidth between the two headquarters? It also can be used to test whether K arc-disjoint paths between s and t exist, as requested by Suurballe’s prob-lem.

The problem is in particular known for the famous max-flow min-cut theorem. A cut C in a digraph D= (V,A)is a subset of the arcs such that(V,A\C)is discon-nected. A cut is called an s−t cut if s and t are not connected anymore.

Theorem 1.7 (Dantzig and Fulkerson [37]). Let D= (V,A) be a digraph with source node s∈V and target node t∈V . Let c : A→Z+. Then the maximum value of an s−t proper flow with respect to c is equal to the minimum capacity of an s−t cut.

Combinatorial algorithms to solve the minimum cost network flow problem or the maximum flow problem can be found in [7, 32] or any good textbook in combi-natorial optimization.