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