On Parameterized Multiroute Flows: an efficient

advertisement
On Parameterized Multiroute Flows: an efficient tool to manage
failures resistance in a network
Jean-françois Baffier∗
Hiroshi Imai†
Abdel Lisser‡
Version: December 11, 2011
Abstract
A K-route channel is a communication path that goes through K edge-disjoint paths, providing a resistance up to K − 1 edge failures. A K-route-flow (a multiroute flow of K routes) is
a sum of K-route channels according to the network capacities constraint. It provides a lower
bound of the max-flow value in a case of K − 1 edge failures. A max-flow/min-cut theorem in
the K-route context has been proven by Kishimoto and Takeuchi. This result can be easily
extended to include node failures.
Given a network with one variable edge, we study the impact of this edge’s capacity variation
on the multiroute flow in a general case (previous work has already treated the case of 1-routeflow and 2-route-flow). For any integer K, we show that a max-K-flow solution is a piecewise
linear function (with at most K + 1 changes of slope that we call critical points). We provide a
polynomial algorithm which gives us all the critical points for a given source/sink pair. We also
extend the function analysis to the case with any number of variable edges.
Keywords: multiroute flow, polynomial-time algorithm, parameterized flow.
∗
Imai’s Laboratory, Department of Computer Science, Graduate School of Information Science and Technology
(IST), University of Tokyo, baffier@lager.is.s.u-tokyo.ac.jp
†
Imai’s Laboratory, Department of Computer Science, Graduate School of Information Science and Technology
(IST), University of Tokyo, imai@is.s.u-tokyo.ac.jp
‡
Graph Theory and Combinatorial Optimization, Laboratoire de Recherche en Informatique (LRI), University
Paris-Sud, abdel.lisser@lri.fr
1
1
Introduction
Since its introduction by Ford and Fulkerson[6], the Maximum Flow Problem have been
considered by many authors due to its wide theoretical and practical applications. A flow is a
value that can be routed from a source to a sink while according to the edges capacity constraints.
A cut is a partition of the graph vertices in two subsets. In a network, the capacity of a cut is
defined by the sum of the weights of the edges crossing this cut. From there, given a source vertex
and a sink vertex, the Maximum Flow Problem (max-flow) is to find a maximum flow from the
source to the sink; the Minimum Cut Problem (min-cut) is to find a cut separating the source
from the sink with the minimum capacity. Ford and Fulkerson proved the max-flow/min-cut
duality, and since, several strongly polynomial-time algorithms have been provided.
We consider a network G = (V, E, c) (either directed or undirected) such that V is the set of
vertices, E is the set of edges and c is the edges capacity function. As per in graph theory, we
name n = |V | and m = |E|. The edges capacities are non-negative integers1 . We call source a
vertex that produces flow, and sink a vertex that consumes flow.
The classical case will refer to the standard max-flow/min-cut problem. We consider that
g(n, m, c) is the complexity of computing a solution to the classical min-cut problem.
1.1
Multiroute flow
The intensive use of networks through the world motivates research of realistic networks,
which should be as close as possible to real systems (water distribution, electric network, Internet, transportation, ...). The answer to the problem of max-flow/min-cut in a network is not
reliable in the case of network failures. Because we are not able to predict where and when
the failures will happen, and because the number of failures configuration is huge, we cannot
run preventive max-flow algorithms. An easy solution, but very expensive, is mostly used in
current networks: oversizing. With the increasing use of embedded systems, and the will to
limit the consumption of resources(energy, water, money, time, ...), networks need more precise
and efficient ways to manage or prevent the failures.
The multiroute flow solution was given by Kishimoto and Takeuchi[9][8] and can be easily
introduced: Given a network and an integer K, a K-flow between two nodes is a lower-bound
of the max-flow value in the case of K − 1 edge failures2 . It also contains additional failures
resistance information. We can naturally extend this notion to a max-K-flow.
Related works
The Kishimoto and Takeuchi theorem extends the max-flow/min-cut duality property to
the multiroute flow context. Additionally, Kishimoto and Takeuchi provided an algorithm
to compute a max-K-flow in polynomial time. It is based on at most K iterations of a classical
max-flow algorithm. Hence the complexity is O (Kg(n, m, c)).
After showing that an augmenting path approach of the max-K-flow problem does not work,
Aggarwal and Orlin[1] provided a better algorithm, for the directed case with integer capacities, based on a binary tree search. If U is the maximum capacity on all the edges of G, then
the complexity is O (min {log(nU ), K}g(n, m, c)). They also provided some applications to this
algorithm.
Both previous algorithms can be viewed as variants of another algorithm based on Newton’s
method, given by Du and Chandrasekarana[5]. In particular it gives new simpler proves of
correctness and complexity. The authors also gave an augmenting path algorithm for a directed
1
2
by an easy transformation on the edges capacities, the results can be extended to non-negative rational numbers
it can be extended to include node failures, see Appendix A
2
graph that can solve max-2-flow problem in O(nm2 + n2 m log n).
Chandrasekarana et al.[3] apply some multiroute flow results to the synthesis of an undirected network, with minimum sum of edge-capacities, for meeting, specified non-simultaneous
K-route flow between every pair of vertices.
In an undirected network with one variable edge, Diallo et al.[4] proposed a polynomial
algorithm that requires two 2-cut-trees computations to produce the max-2-flow for each pairs of
vertices. A 2-cut-tree[2] is an extension of the Gomory-Hu tree[7] to the 2-route flow context.
Unfortunately, such a tree cannot be always found for a network in a K-route flow context with
K > 3.
Definitions
Based on [8][3], we give several formal definitions that lead to the extended version of the
max-flow/min-cut duality property (Kishimoto and Takeuchi theorem). By a small transformation of the network[8], the results of Kishimoto and Takeuchi hold for both directed and
undirected networks.
For any non-empty set of vertices X ( V , we will use X, X as the cut separating X and
its complementary X. Let {e0 , e1 , . . . , ep } be the cut’s edges in a decreasing capacity order. We
will use the notation ci (X) for the value c(ei ) in X.
Definition 1.1 (K-flow[8]). A K-route channel from s to t is a channel composed of K edgedisjoint paths from s to t with the same flow value.
A K-flow from s to t is a set of K-route channels from s to t. A max-K-flow from s to t is a
set of K-route channels from s to t such that the sum of the flow of those K-route channels is
maximum (while respecting the capacity and the flow conservation constraints).
1
1
3
2
s
3
4
2
2
t
2
s
3
3
2
2
t
2
2
5
6
3
3
3
This is an example of a max-2-flow of value 3 + 2 = 5.
Definition 1.2 (Partial sum[3]). For a given cut X, X such that {c0 (X), c1 (X), . . . , cp (X)}
define its capacities in a decreasing order. We define partial sums as follows:
∀j ∈ J0; pK, αj (X) =
p
X
ci (X).
i=j
Definition 1.3 (K-capacity[3]). The K-capacity of a cut X, X is given by:
1
βK (X) = min
αi (X) .
06i6K−1 K − i
3
A min-K-cut of G is a cut minimizing the K-capacities over all the cuts of G. We are now
in a position to state Kishimoto and Takeuchi’s theorem.
Theorem 1.1 (Kishimoto and Takeuchi[8]). For any given pair of distinct vertices (s, t) of
V , the max-K-flow is equal to a min-K-cut.
Otherwise, if we note f K (s, t) the max-K-flow between s and t,
f K (s, t) =
min
X⊂V \{t},
s∈X
βK (X).
It is easy to recognize the classical max-flow/min-cut problem for K = 1 in the previous
definitions and results.
This duality property can be formulated in linear programming.
Networks transformations
Property 1.1 ([8]). By applying the following transformation on a network G, the Kishimoto
and Takeuchi algorithm gives the max-K-flow value for vertices and edges instead of the edgemax-K-flow value. The transformation is given for a directed network. For every vertex v ∈ V :
1. Let cv be the minimum between the sum of the capacities of the incident edges out of v and
the sum of the capacities of the edges incident into v. Delete v.
2. All edges that were incident out of v are now incident out of a new vertex vout .
3. All edges that were incident into v are now incident into a new vertex vin .
4. Connect the vertex vin and vout by an edge incident out of vin and incident into vout . Set
this edge capacity to cv .
1.2
Parameterized networks
We consider that G possesses an edge e with a variable capacity λ. By considering the
following network – and the function plot associated –, we can easily understand the general
case for classical parameterized max-flow problem.
fs,t (λ)
s
5
1
λ
6
5
4
3
2
1
0
t
1
λ∗
0 1 2 3 4 5 6 7 8
1.3
λ
Outline
In this paper, we consider the max-K-flow problem in a parameterized network. First we
treat the one variable edge case, providing analytical results on the max-K-flow function. We
show that a max-K-flow solution is a piecewise linear function (with at most K + 1 changes of
slope that we call critical points). Then we consider the case with several variable edges and
extend the analytical results.
We also provide a polynomial-time algorithm to compute the critical points based on at most
K + 1 iteration steps of a max-K-flow algorithm.
Finally, we give some conclusion perspectives and talk about related future works.
4
2
Analysis
The proofs of the following results on the 1 parameter case can be found here, the proofs involved
in the multiparameter case can be found in Appendices A and B.
2.1
Analysis of function with 1 parameter
Lemma 2.1. For any cut X, X ∈ Cλ ,
0
αiλ (X) = min(αi−1
(X), αi0 (X) + λ).
Proof. Clearly the expression of α0λ (X) is:
α0λ (X) = α00 (X) + λ.
Assuming i ∈ J1, K − 1K, we have αiλ (X) = αi0 (X) + cλi (X). There are two cases left:
0
- If λ > c0i−1 then cλi (X) = c0i−1 (X) ⇒ αiλ (X) = αi0 (X) + c0i−1 (X) = αi−1
(X),
- If λ 6 c0i−1 then ∃j > i | cλj (X) = λ ⇒ αiλ (X) = αi0 (X) + λ.
Lemma 2.2. For any λ and any K, the minimum of the capacities of the K-cuts in Cλ is given
by the following formula,
!
1 1 MβK
min
.
Mα0i (Cλ ) + λ
, min
Mα0i−1 (Cλ )
λ (Cλ ) = min
06i6K−1 K − i
16i6K−1 K − i
Proof. By definition,
MβK
λ (Cλ ) =
min
06i6K−1
1
Mαλi (Cλ ) ,
K −i
so that the result follows readily from Lemma 2.1.
Theorem 2.1. For any source–sink pair (s, t) of V , the max-K-flow function is piecewise linear
and continuous.
Proof. We study the K-cut capacities from two families, Cλ and Cλ :
• We recall that,
Mβ K
λ (Cλ ) = Mβ 0 (Cλ )
K
then follow immediately this relation,
MβK
λ (Cλ ) =
min
06i6K−1
1
Mα0i (Cλ ) .
K −i
• We got the wanted relation from Lemma 2.2.
If we put them together, we got the max-K-flow formula:
K
fs,t
(λ) = min
1 Mα0i (Cλ ) + λ
,
06i6K−1 K − i
1 min
Mα0i−1 (Cλ ) ,
16i6K−1 K − i
!
1
min
Mα0i (Cλ )
.
06i6K−1 K − i
min
K
Since this function is a minimum of several linear (so continuous) functions, fs,t
is piecewise
linear and continuous.
5
K
Property 2.1. The K-max-flow function fs,t
is piecewise linear with at most K + 1 parts. Its
derivative function is decreasing – at each changing point of the slope, the value of this one
decreases.
K
Proof. Since we have only K + 1 different possible slopes, we can rewrite fs,t
as a minimum of
(at most) K + 1 linear functions with distinct slopes. By contradiction, the result is easy to
find.
2.2
Critical Points
Definition 2.1. For any cut X, X , we call critical points of
X, X the points where the slope
λ
0
of λ 7→ βK
(X) changes. If we include the point 0, βK
(X) , there are at most K + 1 critical
points.
Let λ0 (X), . . . , λK (X) be the critical points of X, X such that for any i, j ∈ J0; KK, i 6 j =⇒
λi (X) > λj (X) – the choice of this lexicographical order is done to facilitate the formulation of
the critical points later and the use of the degree notion.
λ (X)
Without any loss of precision, we can merge the value λi (X) and the point λi (X), βKi (X) .
Proposition 2.1. From the previous definition, we can deduce that, on a given cut X, X ,
• λK (X) = 0,
• λ0 (X) = min
16i<K
K
0
K−i αi−1 (X)
0
(X),
− αK
• λj (X) = (K − j)c0j−1 − αj0 (X), for any j, such that 1 6 j < K.
Proof.
• By definition, we have λK (X) = 0,
• λ0 (X) is given by solving
1
0
K (αK (X)
1
0
αi−1
(X),
16i<K K−i
+ λ0 (X)) = min
• for any i, such that 1 6 i < K, λi (X) is given by solving 1i (αK−i (X) + λi (X)) =
1
i+1 (αK−(i+1) (X) + λi (X)) – a variable substitution is recommended.
K
K
is changing. Let
the points where the slope of fs,t
Definition 2.2. We call critical points of fs,t
(λ∗0 , . . . , λ∗K ) be the critical points such that for any i, j ∈ J0; KK, i < j =⇒ λ∗i > λ∗j .
Hence, obtaining the full max-K-flow function is equivalent to getting those K + 1 critical
points. To facilitate the implementation of a critical points algorithm, we introduce the following
notion of degree and auxiliary points.
Definition 2.3. We define the degree of a cut S as follows, for a given λ, and for µ the
K-capacity of S:
• If S ∈ Cλ , then the degree of S is 0.
• Else, S ∈ Cλ . The degree of S is the index value of the critical point preceding the value
λ.
In both cases, if S is a min-K-cut of degree d, the point (λ, µ) is said to be an auxiliary point
of degree d. We can naturally extend it to the degree of a line.
Since a critical point may have several degrees, we choose to consider only its lowest degree.
6
fs,t (λ)
1
λ
2
s
5
4
2
λ∗0
4
2
t
λ∗1
3
2
4
4
λ∗2
1
3
0
λ
0
1
2
3
4
5
This is an example of a max-2-flow with one parameter λ.
2.3
Multi-parameters
In this section, we extend the analytic results on the K-flow with one parameter to several
parameters by induction on the number of parameters.
We introduce a notation to manipulate the weights of parameterized edges. Let p be the
number of parameters (written λ1 , . . . , λp ), we call real indexing-array a vector λ of Rp+ equal
to (λ1 , . . . , λp ). For any real a and two indexing-arrays v, w we define
• the addition with a scalar: a + v = a + kvk1 ,
• the length of the indexing-array: |v| = card {vi 6= 0} (i.e. the number of non-zero components of v or in other words, the cardinal of the support),
• the inclusion relation: we say that v ⊂ w if, for i between 1 and p, vi 6= 0 ⇒ vi = wi .
Algebraically, v ⊂ w if a flag exists, suitable to the canonical base Rp , such that v is the
projection of w on one of its elements.
Let v be an indexing-array, we note C (v) the cut set including exactly the edges corresponding
to the non-zero components of v and i be an integer, we define
 [

C (w)
if |v| 6 i 6 p,


 |w|=i
v⊂w
C i (v) =




∅
otherwise.
Lemma 2.3. For a network with p parameters λ1 , . . . , λp (we set λ = (λ1 , . . . , λp )) the K-flow
formula is given by
 



1 

K
j+l
.
 + λ̃
M 0Rn
fs,t
(λ) = min 
min
C
(
λ̃)




α(K−i−l)
16i6K
i 06l6min(K−i,p−j)
06|λ̃|=j6p
λ̃⊂λ
Proof. We prove this lemma by induction on p, the number of variable edges. We first consider
the case p = 0.
The fact that p equals zero – in the formula – implies j = 0, so it implies l = 0, whatever are
the values of the other variables. The formula becomes
1
K
0
fs,t (λ) = min
Mα0 C (0) ,
16i6K
i
which is nothing but the formula for a network without parameters (see Theorem 2.1 ).
7
First Development
First, we look at the terms appearing when p becomes p + 1:
K
K
fs,t
([λ; µ])\fs,t
([λ])
We can see additional terms occurring from two origins,
1. [λ; µ] = p + 1 induces terms on cuts including p + 1 parameterized edges (not necessarily
with an indexing-array of size p + 1),
2. Incrementing p might increase the interval of variation of l 0 6 l 6 min(K − i, p − j) .
The first term is evaluated as

t1 =
min
16i6K
06|λ̃|=j6p+1
λ̃⊂λ
1

i
min
06l6min(K−i,p+1−j)
Mα0Rn
(K−i−l)

!

C j+l=p+1 (λ̃)
+ λ̃  ,
but the existence of αq implies that q is non-negative. We deduce that a condition on the
variation of j:
j + l = p + 1 ⇔ l = p + 1 − j, we can get ride of the variable l as the associated minimum.
Moreover, K − i − l > 0 hence i 6 K + j − p − 1, so


!
1

t1 =
min
Mα0Rn
C p+1 (λ̃) + λ̃  .

(K−i−+j−p−1)
i
06|λ̃|=j6p+1
16i6K+j−p−1
λ̃⊂λ
The second term implies min(K − i, p + 1 − j) > min(K − i, p − j) (in this case, only the
terms that appear impose l = p + 1 − j),
and finally equals


!
1

t2 =
min
min
Mα0Rn
C p+1 (λ̃)
+ λ̃  ,

l=k+1−j
(K−i−(p+1)+j)
i
06|λ̃|=j6p+1
16i6K+j−p−1
λ̃⊂λ

=
min
06|λ̃|=j6p+1
16i6K+j−p−1
λ̃⊂λ
1

i
Mα0Rn
(K−i−(p+1)+j)

!

C p+1 (λ̃) + λ̃  .
We find that t1 is equal to t2 . It is unnecessary to study two types of terms, since they all
reduce to one type (namely terms coming from C p+1 ).
Second Development
We start from the formula of the K-flow with one parameterized edge. Then we extend this
formula to a parameterized network (which we’ll explain the shape later based on the induction’s
hypothesis) where we consider only the last parameter µ as a variable3 :

K
fs,t
([λ; µ])





1
1
1

= min  min q Mα0K−q (Cµ ) + µ , min
Mα0(K−q−1) (Cµ ) , min q Mα0(K−q) (Cµ ) 
q
.
16q6K−1
16q6K
16q6K
|
{z
} |
{z
} |
{z
}
1
3
2
for a formal justification see Appendix B.
8
3
By induction hypothesis, the term 3 is in the formula of rank p. Recall the formula of rank p:


!
1

min 
min
Mα0Rn
C j+l (λ̃) + λ̃
.
16i6K
(K−i−l)
i 06l6min(K−i,p−j)
06|λ̃|=j6p
λ̃⊂λ
Now, we consider the term 1 , in which the cut set Cµ is independent of µ because the edge
parameterized by µ has been put “out” of the cut.
We recall the expression of the max-K-flow
1
λ
λ
αi (X) .
βK (X) = min
06i6K−1 K − i
So we obtain in 1 and 2 that the fraction depending on the terms coming from the rank p
formula and the variable µ coincide.

1 =
min
16i6K
06|λ̃|=j6p
λ̃⊂λ
1

i
min
Mα0Rn
06l6min(K−i,p−j)
(K−i−l)
C j+l (λ̃)
\
C 1 (µ)

!

+ λ̃ + µ 
Every term verifying j + l + 1 < p + 1 appears in the rank p formula, then stay only those
leading to the cut set C p+1 :


!
1

1 = min 
min
Mα0Rn
C p+1 ([λ̃, µ])
+ λ̃ + µ 

16i6K
(K−i−l)
i 06l6min(K−i,p−j)
06|λ̃|=j6p
λ̃⊂λ
hence j + l = p + 1, so we have one more condition on i, and l disappears, as in the previous
t2 ’s case:


!
1

1 =
min
Mα0Rn
C p+1 ([λ̃, µ]) + λ̃ + µ  ,

16i6K+j−p−1
(K−i+j−p−1)
i
06|λ̃|=j6p
λ̃⊂λ

=
min
16i6K+j−p−1
06|[λ̃,µ]|=j6p+1
1

i
Mα0Rn
(K−i+j−p−1)

!

C p+1 ([λ̃, µ]) + [λ̃, µ] 
λ̃⊂λ
we recognize the expression of t2 .
Now we expend the term 2 :

2 =
min
16i6K
06|λ̃|=j6p
λ̃⊂λ
1

i
min
06l6min(K−i,p−j)
Mα0Rn
(K−i−l−1+1)
C j+l (λ̃)
\
C 1 (µ)
!


+ λ̃ 
We remark some ”+1” occurring as index of the α function. This results of the fact we consider
the case where µ is not counted in the flow, this is equivalent to increment the index of α.
N.B.: By injecting the rank p formula, we introduce an additional term related to the case
9
i = K, but this has no incidence because we proved that t1 = t2 = 1 , hence the following
inclusion 2 ⊂ t1 is sufficient.


!
\
1

2 = min 
min
Mα0Rn
C j+l (λ̃) C 1 (µ)
+ λ̃ 

16i6K
(K−i−l−1+1)
i 06l6min(K−i,p−j)
06|λ̃|=j6p
λ̃⊂λ
Here again, the terms verifying j + l + 1 < p + 1 are included in the formula of rank p, only stay
the terms leading to the cut set C p+1 :

2 =
min
16i6K
06|[λ̃,µ]|=j6p+1
λ̃⊂λ
1

i
min
l=p+1−j
Mα0Rn
(K−i+j−(p+1))

!

C p+1 ([λ̃, µ])
+ [λ̃, µ] 
as in the previous cases, l disappears and we obtain the same variation’s condition on i.


!
1

2 =
min
Mα0Rn
C p+1 ([λ̃, µ]) + [λ̃, µ]  = t2

16i6K+j−p−1
(K−i+j−p−1)
i
06|[λ̃,µ]|=j6p+1
λ̃⊂λ
Theorem 2.2. Given a network, for any number of variable edges, the K-flow function is
piecewise linear and continuous on all the variables.
Proof. See Appendix A.
2.4
Some 3D plots for the 2 parameters case
The plane of degree 2 are in red, those of degree 1 in blue, and the plane of degree 0 in green.
The first plot is a classical max-flow, and the following two are max-2-flow.
2
fs,t
(λ, µ)
2
(λ, µ)
fs,t
1
(λ, µ)
fs,t
µ
µ
µ
λ
λ
Conjecture: Based on some examples of max-K-flow for K 6 3 (including the ones below),
we can see appears some kind of critical points. They correspond to the sum of all the combinations of the p parameters, for which we apply a critical points algorithm. So, roughly, this
approach leads up to 2p − 1 critical points algorithm iterations.
We can extend naturally the degree notion to the hyperplanes composing the function (the
colored faces on the examples). So we can define the critical hyperplanes such that they get
the same line as their orthogonal supplement (that is the max-K-flow function axis). On the
following examples, the critical hyperplanes would be the planes Pi of the form z = constant
such that Pi separates the faces of degree i and i − 1.
10
λ
3
Algorithms
Here we will cover the different algorithms involved in the computation of a network’s critical
points, in particular those involved in the worst case complexity. The complete list of algorithm
studied (and some of them detailed) can be found in Appendix B.
Min-cut Algorithm
Since a suitable min-cut algorithm depends on several parameters, we let the reader choose
a convenient version. However, we need specific information on the cut composition, and not
only the cut capacity value.
Remind that g(n, m, c) is the complexity function for the chosen min-cut algorithm.
Kishimoto and Takeuchi’s Algorithm (KT).
The main idea of the Kishimoto and Takeuchi algorithm is to limit the edges’ capacities
of the network, then increase the bounds till they reach a value such that the classical max-flow
(or min-cut) is K times proportional to the bound.
This algorithm consists of at most K iterations of a max-flow/min-cut algorithm. So its
complexity is O(Kg(n, m, c)) (K n). For more precision about the original algorithm and its
complexity, please refer to Kishimoto[8].
We define, for any network G = (V, E, c) and any non negative integer p, Gp = (V, E, cp )
such that cp (i, j) = min(c(i, j), p).
Algorithm 1 KT: Calculate the min-K-cut of G = (V, E, c)
Require: s, t ∈ V and K > 0
v
Ensure: S is a min-K-cut of G and K
its value.
i := 0
(v, S) := minCut(G)
v
p := K
while v < K × p do
p := v−i×p
K−i
(v, S) := minCut(Gp )
end while
Sorting capacities Algorithm
To use the analytic results from previous chapter, we need to sort the capacities. In a general
case, a sorting algorithm is O(m2 ).
Critical points algorithm
This is the main part of the algorithm. It regroups a recursive algorithm step that compute
the auxiliary points and the main 4 algorithm that launch the recursive iteration and extract
the critical points from the auxiliary points. Following is the main idea:
• Analyze two min-K-cuts for two key values of λ: 0 and σ the sum of the edges capacities.
We obtain two distincts points aK and a0 . Then we can compute both lines passing by
aK and a0 .
4
Please refer to Appendix B
11
• Find the intersection (λ0 , µ0 ). Analyze the min-K-cut for λ0 . We obtain a point ai and
its associated line.
• Repeat on aK , ai and ai , a0 . And so on.
At the end compute all the critical points from the {a0 , . . . , aK } auxiliary points family.
Algorithm 2 step: Recursive auxiliary function to calculate one auxiliary points for each degree
of a max-K-flow on a network G = (V, E, c).
Require: K an integer. G = (V, E, c) a network and e its parameterized edge. d1 , d2 two integers.
aux the container for the auxiliary points.
Ensure: At the end of the recursive iteration of step, aux is completed.
λ, µ := intersection(aux[d1 ], aux[d2] , d1 , d2 )
(µ, S) := KT (Gλ )
d := getDegree(S)
aux[d] := (λ, µ)
if aux[d] = aux[d1 ] then
for i = d1 → d do
aux[i] := (λ, µ)
end for
else
step(K, G, e, d1 , d, aux)
end if
if aux[d] = aux[d2 ] then
for i = d → d2 do
aux[i] := (λ, µ)
end for
else
step(K, G, e, d, d2 , aux)
end if
Example of a max-3-flow algortihm
On the f igure1 the full line is the 3-max-flow value on a graph and the dashed lines are the
3-capacities of the yellow, red, blue and green cuts.
We suppose that σ, the sum of all capacities, is 16 . The algorithm on this example does the
following steps:
1. Compute KT for λ = 0. The min-3-cut is blue of value 1 and degree 3. So we have
a3 = (0, 1).
Compute KT for λ = σ = 16. The min-3-cut is yellow of value 8 and degree 0. So we have
a0 = (8, 16).
2. Then we call step(a3 , a0 , 3, 0). The intersection gives us the point (7, 8). So we compute
KT for λ = 7. The min-3-cut is red of value 6.5 and degree 1. So we have a2 = (7, 6.5).
3. Then we call step(a2 , a1 , 2, 1). The intersection gives us the point (10, 8). So we compute
23
KT for λ = 10. The min-3-cut is green of value 23
3 and degree 1. So we have a1 = (10, 3 ).
4. Now that we got one auxiliary point for each degree, we compute: λ∗3 = a3 , λ∗2 =
intersection(a3 , a2 , 3, 2), λ∗1 = intersection(a2 , a1 , 2, 1) and λ∗0 = intersection(a1 , a0 , 1, 0).
12
3 (λ)
fs,t
8
λ0
λ1,0
10
λ1
λ3,2,1,0
λ2
6
λ∗1
a2
λ3,2,1
λ0
a1
λ∗0
a0
λ∗2
4
λ3,2
2
∗
0 λ3 ,λ3 ,a3
0
2
4
6
8
10
12
14
16
λ
Figure 1: Critical points Algorithm
Complexity
In the previous algorithms, we gave some complexity results on the different steps. One step
iteration include one call to each of KT and sorting algorithms, so the complexity of one step
is O(Kg(n, m, c) + m2 ).
Finally, in the worst case, because the main algorithm
may run K + 1 times5 the KT algorithm,
2
the total complexity is O K(Kg(n, m, c) + m ) .
4
Conclusion and perspectives
In practice, it is hard to find networks such that all the critical points are distinct for K > 3.
It might be useful to look why having K + 1 distinct critical points is so difficult. The averagecase time complexity might be much lower than we could expect. We could also, using the
techniques developed in this paper, to synthesize a network with specific properties, such as the
fact to possess only one min-K-cut for all the values of λ.
Let δ be the difference between the classical max-flow after K − 1 failures and the max-Kflow. Studying the variation of δ and its consequences on failure resistance can lead to useful
properties for some pratical problems: e.g. emergency services (police, fire-fighters, officials, ...).
We found that, for a network with an arbitrary number of variable edges, the max-K-flow
function has nice regularity properties (it is continuous and piecewise linear). But getting the
critical hyperplanes is more complicated, and the time complexity is much more important. An
approach could be to consider the polytope generated by the max-K-flow function.
On further research, we will also consider the case where several variables edges depend on the
same parameter.
5
including the computation of a0 and aK
13
References
[1] C. Aggarwal and J. B. Orlin. On multi-route maximums flows in networks. Networks,
39(1):43–52, 2002.
[2] R. Chandrasekaran, S. Kabadi, and K. Nair. Multiroute flows: Cut-trees and realizability.
Discrete Optimization, 2:229–240, 2005.
[3] R. Chandrasekarana, K. Nair, Y. Anejac, and S. Kabadib. Multi-terminal multipath flows:
synthesis. Discrete Applied Mathematics, 143:182–193, 2004.
[4] M. Diallo, S. Gueye, and P. Berthomé. Impact of a varying capacity on the all pairs 2-route
network flows. Electronic Notes in Discrete Mathematics, 35(3):59–64, dec 2009.
[5] D. Du and R. Chandrasekarana. The multiroute maximum flow problem revisited. Networks,
47(2):81–92, 2006.
[6] L. R. Ford and D. R. Fulkerson. Flows in Networks. Princeton University Press, 1955.
[7] R. Gomory and T. Hu. Multi-terminal network flows. SIAM Journal of Computing, 9:551–
570, 1961.
[8] W. Kishimoto. A method for obtaining maximum multi-route flows in a network. Networks,
27(4):279–291, 1996.
[9] W. Kishimoto and M. Takeuchi. On m-route flows in a network. IEICE Trans., J-76-A:1185–
1200, 1993.
14
A
Analytical Justification
A.1
Elementary Analysis
A.1.1
Fubini’s Theorem
We will use the interval version of Fubini’s theorem: let f ∈ C 0 ([a, b] × [c, d], R), we have
!
!
Z
Z
Z
Z
Z
f (x, y)d(x, y) =
f (x, y)d(y) d(x) =
f (x, y)d(x) d(y).
[a,b]×[c,d]
[a,b]
[c,d]
[c,d]
[a,b]
A complete proof of this result can be found in a lot of undergraduate mathematics manuals.
0
(I)
Extension to the case Cm
A.2
We extend this result to the case that f (x, y) is only piecewise continuous for any of its variables
and bounded:
Let f be s.t. f : [a, b] × [c, d] → R whose partial applications are piecewise continuous on their
interval, we have
!
!
Z
Z
Z
Z
Z
f (x, y)d(x, y) =
f (x, y)d(y) d(x) =
[a,b]×[c,d]
[a,b]
[c,d]
f (x, y)d(x) d(y).
[c,d]
[a,b]
Proof: the functions f (., y) and f (x, .) are piecewise continuous, there is l ∈ N (resp. m ∈ N)
and a subdivision (αi )i∈J1,lK of [a, b] (resp. a subdivision (βi )i∈J1,mK of [c, d]) such that
[a, b] = [a = α1 , α2 ] ∪ [α2 , α3 ] ∪ . . . ∪ [αl−1 , αl = b]
[c, d] = [c = β1 , β2 ] ∪ [β2 , β3 ] ∪ . . . ∪ [βm−1 , βm = d]
with ∀ i ∈ J1, l − 1K, f (., y) ∈ C 0 (]αi , αi+1 [, R)
with ∀ i ∈ J1, m − 1K, f (x, .) ∈ C 0 (]βi , βi+1 [, R).
Using the fact6 that kf (., y)k∞ < ∞ and kf (x, .)k∞ < ∞, it leads to
Z
Z
 
 f (x, y)d(x, y)
f (x, y)d(x, y) = l−1
m−1
[
[
[a,b]×[c,d]

 


]αi , αi+1 [×
]βj , βj+1 [


i=1
j=1
Z
= lim

n→∞



 
m−1
1  [
1
1
1
[βj + , βj+1 − ]
[αi + , αi+1 − ]

×
n
n
n
n
j=1
i=1
l−1
[

f (x, y)d(x, y).
Applying Chasles identity,
Z
f (x, y)d(x, y) =
[a,b]×[c,d]
6
m−1
l−1
XX
i=1 j=1
Z
f (x, y)d(x, y).
lim
n→∞
1
1
1
1
,αi+1 − n
]×[βj + n
,βj+1 − n
]
[αi + n
N.B. k.k∞ means here the inducted norm by the infinite norm of R on [a, b], [c, d].
15
All the hypothesis to apply the Fubini’s theorem on each couple of intervals are present,
Z
f (x, y)d(x, y) =
[a,b]×[c,d]
m−1
l−1
XX
i=1 j=1
Z
n→∞
1
1
1
1
,αi+1 − n
]×[βj + n
,βj+1 − n
]
[αi + n
m−1
l−1 Z
XX
= lim
n→∞
i=1 j=1
f (x, y)d(x, y)
1
1
1
1
,αi+1 − n
]×[βj + n
,βj+1 − n
]
[αi + n
m−1
l−1 Z βj+1 − 1
XX
n
= lim
n→∞
i=1 j=1
= lim
l−1 Z
X
n→∞
j=1
= lim
n→∞
f (x, y)d(x) d(y)
1
βj + n
i=1 j=1
1
αi + n
1
αi + n
1
βj+1 − n
1
βj + n
f (x, y)d(y) d(x)
1
βj + n
i=1
1
αi + n
!
1
βj+1 − n
Z
m−1
X Z αi+1 − n1
m−1
X Z αi+1 − n1
i=1
!
1
αi+1 − n
Z
l−1 Z αi+1 − 1
m−1
XX
n
n→∞
= lim
f (x, y)d(x, y)
lim
!
f (x, y)d(x) d(y)
1
αi + n

l−1 Z
X

j=1
The two inequalities
!
l−1 Z βj+1 − 1 m−1 Z αi+1 − 1
Z
X
n
n
X
f (x, y)d(x) d(y) −
1
[c,d]
j=1 βj + n1
i=1 αi + n
Z
and


m−1 Z αi+1 − 1 l−1 Z βj+1 − 1
Z
X
n
n
X

 d(x) −
f
(x,
y)d(y)
1
[a,b]
i=1 αi + n1
j=1 βj + n
Z

1
βj+1 − n
f (x, y)d(y) d(x).
1
βj + n
!
1
f (x, y)d(x) < ×m×l×kf2 k∞ ×kf1 k∞
[a,b]
n
!
1
f (x, y)d(y) < ×m×l×kf2 k∞ ×kf1 k∞
[c,d]
n
allow to pass to the limit:
Z
Z
f (x, y)d(x, y) =
[a,b]×[c,d]
!
Z
Z
Z
f (x, y)d(y) d(x) =
[a,b]
[c,d]
f (x, y)d(x) d(y).
[c,d]
Hence, we can announce the following lemma.
16
!
[a,b]
A.2.1
Swapping lemma of the integration intervals:
Let λ = (λ1 , . . . , λn ) ∈ Rn and φ be a piecewise continuous and continuously derivable function
from Rn to R. for all i from 1 to n, we get:
Z
∂φ(x)
φ(λ) = O
dxj
n
∂xj
[0; λj ]
j=1
Z
= O
n
[0; λj ]
∂φ(x1 , . . . , xn )
dxj
∂xj
j=1

λi
Z
=
0



Z



∂φ(x1 , . . . , xn )
∂φ 

dx
n
j  dxi .

O
∂xi 
∂xj

[0; λi ]


j=1
i6=j
Proof: we only need to apply Fubini’s theorem n − i − 1 times.
For all k between 1 and n, we define φk as the following
Z
∂φk (x1 , . . . , xn )
φk (λ1 , . . . , λn ) = k
dxj .
O
∂xj
[0; λj ]
j=1
Therefore,
Z
φ(λ) =
n
O
[0; λj ]
∂φ (φi (x1 , . . . , xn ))
dxj .
∂xj
j=i+1
To obtain the required result, we just need to apply Fubini’s n − i − 1 times to the previous
expression and expend φj :


λi
Z
φ(λ) =
0


Z



∂φ(x1 , . . . , xn )
∂φ 

dx
n
j  dxi .

O
∂xi 
∂xj

[0; λi ]


j=1
i6=j
A.3
A.3.1
Link with the real indexing-arrays
K-flow is continuous
Let X, X be a cut and v, w two indexing-arrays. For all i lesser than the number of edges of
X, X , the expression of αiv (X) implies that
∀ ε > 0,
kv − wk < ε
|αiv (X) − αiw (X)| < ε.
⇒
The expression of the K-capacity of a cut
v
βK
(X)
=
min
06i6K−1
17
1
αv (X)
K −i i
gives is continuity as a function of v because of being a minimum (on a finite set) of continuous
functions.
Finally, the same argument leads to the continuity of the K-flow on a network.
A.3.2
Piecewise continuity of the K-flow partial derivatives
Let X, X be a cut and v = (v1 , . . . , vn ) a multi-index. For all ε > 0 and for all j between 1
and n, we define vεj = (v1 , . . . , vj + ε, . . . , vn ).
For all i lesser than the number of edges in X, the expression of λ 7→ αiλ (X) implies that

if vj + ε 6 cvi (X),
 ε
j
vε
v
v
vj + ε − ci if vj < cvi (X) 6 vj + ε,
αi (X) − αi (X) =

0
otherwise.
So the partial derivatives of a cut value are stairs functions. The partial derivatives of the
K-flow value are stairs too as a minimum of stairs functions on a finite set, and, therefore the
partial derivatives of the max-K-flow.
K
(λ) on the compact
For a multi-real index λ = (λ1 , . . . , λk ), the continuity of fs,t
has been proved, the conclusion that it is bounded is trivial.
Nk
i=1 [0, λi ]
K
([λ; µ]) and thus choose
We then have all the hypothesis to apply the swapping lemma to fs,t
to evaluate its variation on µ by a formal consideration of the real indexing-array λ formally.
B
Algorithms
Algorithm 3 minCut: Calculate the min-cut on G = (V, E, c)
Require: G = (V, E, c) a network.
Ensure: S is a min-cut of G. v is the capacity of S.
Algorithm 4 sortCapacities: Sort the capacities of a cut S in a decreasing order, without the
parameterized edge.
Require: G = (V, E, c) a network, S a cut.
Ensure: lst is the list of S capacities in a decreasing order.
Algorithm 5 partialSum: Give the partial sum of a K-cut S, without the parameterized edge.
Require: K is an integer. lst is a list of decreasing integers.
Ensure: sum lst is the list of the K partial sum of lst elements such that for any i, sum lst[i] =
P|lst|−1
lst[j].
j=i
18
Algorithm 6 cutCritical: Gives the critical points of a cut S.
Require: K is an integer. S is a cut.
Ensure: criticalLst contains the critical points of S.
capacitiesLst := sortCapacities(S)
sumLst := partialSum(capacitiesLst)
criticalLst[K] = 0
i=K −1
while i > 1 do
criticalLst[i] = (K − i) × capacitiesLst[j − 1] − sumLst[i]
i←i−1
end while
K
criticalLst[0] = min K−i
× sumLst[i − 1] − sumLst[K]
16i<K
Algorithm 7 getDegree: Gives the degree of a cut S using cutCritical.
Require: K is an integer. S is a cut. criticalLst a list of K + 1 points.
Ensure: d is the degree of S.
Algorithm 8 intersection: Give the intersection between two lines generated each one by a pointdegree pair.
Require: (x1 , y1 ), (x2 , y2 ) are two points. a1 , a2 two integers.
Ensure: (x, y) is the intersection of both lines generated by (x1 , y1 ), a1 and (x2 , y2 ), a2 .
Algorithm 9 main: Main algorithm that gives the critical points of a graph.
Require: K an integer. G = (V, E, c) a network and e its parameterized edge.
Ensure: lst contains the K + 1 critical points.
lst is a list of K + 1 points initialized at (−1, −1)
(µ, S) := KT (G0 )
d := getDegree(S)
for i = d → K do
lst[K] := (0, µ)
end P
for
σ = a∈E c(a)
(µ, S) := KT (Gσ )
d := getDegree(S)
lst[0] := (σ, µ)
if d > 2 then
step(K, G, e, d, 0, lst)
end if
for i = 1 → K do
lst[i] := intersection (lst[i − 1], lst[i], i − 1, i)
end for
19
Download