The Maximum Concurrent Flow Problem



Similar documents
Approximation Algorithms

SHARP BOUNDS FOR THE SUM OF THE SQUARES OF THE DEGREES OF A GRAPH

! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. #-approximation algorithm.

Nan Kong, Andrew J. Schaefer. Department of Industrial Engineering, Univeristy of Pittsburgh, PA 15261, USA

Chapter Load Balancing. Approximation Algorithms. Load Balancing. Load Balancing on 2 Machines. Load Balancing: Greedy Scheduling

3. Linear Programming and Polyhedral Combinatorics

Determination of the normalization level of database schemas through equivalence classes of attributes

Cycles in a Graph Whose Lengths Differ by One or Two

! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. !-approximation algorithm.

ARTICLE IN PRESS. European Journal of Operational Research xxx (2004) xxx xxx. Discrete Optimization. Nan Kong, Andrew J.

Fairness in Routing and Load Balancing

Applied Algorithm Design Lecture 5

1 if 1 x 0 1 if 0 x 1

Labeling outerplanar graphs with maximum degree three

Definition Given a graph G on n vertices, we define the following quantities:

2.3 Convex Constrained Optimization Problems

Lecture 15 An Arithmetic Circuit Lowerbound and Flows in Graphs

On Integer Additive Set-Indexers of Graphs

Why? A central concept in Computer Science. Algorithms are ubiquitous.

A simpler and better derandomization of an approximation algorithm for Single Source Rent-or-Buy

Large induced subgraphs with all degrees odd

CS 598CSC: Combinatorial Optimization Lecture date: 2/4/2010

Stationary random graphs on Z with prescribed iid degrees and finite mean connections

A Network Flow Approach in Cloud Computing

On the k-path cover problem for cacti

Permutation Betting Markets: Singleton Betting with Extra Information

Linear Programming. Widget Factory Example. Linear Programming: Standard Form. Widget Factory Example: Continued.

Mathematics Course 111: Algebra I Part IV: Vector Spaces

Every tree contains a large induced subgraph with all degrees odd

Ph.D. Thesis. Judit Nagy-György. Supervisor: Péter Hajnal Associate Professor

Finding and counting given length cycles

FIND ALL LONGER AND SHORTER BOUNDARY DURATION VECTORS UNDER PROJECT TIME AND BUDGET CONSTRAINTS

Bicolored Shortest Paths in Graphs with Applications to Network Overlay Design

Mean Ramsey-Turán numbers

A simple criterion on degree sequences of graphs

All trees contain a large induced subgraph having all degrees 1 (mod k)

Adaptive Online Gradient Descent

A Sublinear Bipartiteness Tester for Bounded Degree Graphs

High degree graphs contain large-star factors

Analysis of Approximation Algorithms for k-set Cover using Factor-Revealing Linear Programs

24. The Branch and Bound Method

No: Bilkent University. Monotonic Extension. Farhad Husseinov. Discussion Papers. Department of Economics

Best Monotone Degree Bounds for Various Graph Parameters

Semi-Matchings for Bipartite Graphs and Load Balancing

A REMARK ON ALMOST MOORE DIGRAPHS OF DEGREE THREE. 1. Introduction and Preliminaries

Breaking The Code. Ryan Lowe. Ryan Lowe is currently a Ball State senior with a double major in Computer Science and Mathematics and

COMBINATORIAL PROPERTIES OF THE HIGMAN-SIMS GRAPH. 1. Introduction

Energy Benefit of Network Coding for Multiple Unicast in Wireless Networks

Network (Tree) Topology Inference Based on Prüfer Sequence

Practical Guide to the Simplex Method of Linear Programming

The Binary Blocking Flow Algorithm. Andrew V. Goldberg Microsoft Research Silicon Valley goldberg/

ON INDUCED SUBGRAPHS WITH ALL DEGREES ODD. 1. Introduction

A Turán Type Problem Concerning the Powers of the Degrees of a Graph

Graph Classification and Easy Reliability Polynomials

Duplicating and its Applications in Batch Scheduling

4.6 Linear Programming duality

MATHEMATICAL ENGINEERING TECHNICAL REPORTS. An Improved Approximation Algorithm for the Traveling Tournament Problem

Degree Hypergroupoids Associated with Hypergraphs

Proximal mapping via network optimization

The Goldberg Rao Algorithm for the Maximum Flow Problem

Competitive Analysis of On line Randomized Call Control in Cellular Networks

Stiffie's On Line Scheduling Algorithm

DATA ANALYSIS II. Matrix Algorithms

Graphs without proper subgraphs of minimum degree 3 and short cycles

Analysis of Algorithms, I

The Open University s repository of research publications and other research outputs

1 Introduction. Dr. T. Srinivas Department of Mathematics Kakatiya University Warangal , AP, INDIA

5.1 Bipartite Matching

IRREDUCIBLE OPERATOR SEMIGROUPS SUCH THAT AB AND BA ARE PROPORTIONAL. 1. Introduction

Irreducibility criteria for compositions and multiplicative convolutions of polynomials with integer coefficients

CSC2420 Fall 2012: Algorithm Design, Analysis and Theory

Decentralized Utility-based Sensor Network Design

How To Find An Optimal Search Protocol For An Oblivious Cell

A Study of Sufficient Conditions for Hamiltonian Cycles

Modern Optimization Methods for Big Data Problems MATH11146 The University of Edinburgh

Single machine parallel batch scheduling with unbounded capacity

[2], [3], which realize a time bound of O(n. e(c + 1)).

Factoring & Primality

Duality of linear conic problems

A Branch and Bound Algorithm for Solving the Binary Bi-level Linear Programming Problem

Steiner Tree Approximation via IRR. Randomized Rounding

Graphical degree sequences and realizations

COUNTING INDEPENDENT SETS IN SOME CLASSES OF (ALMOST) REGULAR GRAPHS

Small Maximal Independent Sets and Faster Exact Graph Coloring

Minimum cost maximum flow, Minimum cost circulation, Cost/Capacity scaling

Permutation Betting Markets: Singleton Betting with Extra Information

Offline sorting buffers on Line

International Journal of Information Technology, Modeling and Computing (IJITMC) Vol.1, No.3,August 2013

On the independence number of graphs with maximum degree 3

The Characteristic Polynomial

6.852: Distributed Algorithms Fall, Class 2

THE SCHEDULING OF MAINTENANCE SERVICE

CMSC 858T: Randomized Algorithms Spring 2003 Handout 8: The Local Lemma

Optimal Bandwidth Reservation in Hose-Model VPNs with Multi-Path Routing

Lecture 3: Finding integer solutions to systems of linear equations

4. Expanding dynamical systems

IE 680 Special Topics in Production Systems: Networks, Routing and Logistics*

By choosing to view this document, you agree to all provisions of the copyright laws protecting it.

Routing in Line Planning for Public Transport

Diversity Coloring for Distributed Data Storage in Networks 1

Transcription:

The Maximum Concurrent Flow Problem FARHAD SHAHROKHI University ofnorth Texas, Denton, Texas AND D. W. MATULA Southern Methodist University, Dallas, Texas Abstract. The maximum concurrent flow problem (MCFP) is a multicommodity flow problem in which every pair of entities can send and receive flow concurrently. The ratio of the flow supplied between a pair of entities to the predefined demand for that pair is called throughput and must be the same for all pairs of entities for a concurrent flow. The MCFP objective is to maximize the throughput, subject to the capacity constraints. We develop a fully polynomial-time approximation scheme for the MCFP for the case of arbitrary demands and uniform capacity. Computational results are presented. It is shown that the problem of associating costs (distances) to the edges so as to maximize the minimum-cost of routing the concurrent flow is the dual of the MCFP. A path-cut type duality theorem to expose the combinatorial structure of the MCFP is also derived. Our duality theorems are proved constructively for arbitrary demands and uniform capacity using the algorithm. Applications include packet-switched networks [ 1, 4, 81, and cluster analysis [ 161. Categories and Subject Descriptors: F.2.2 [Analysis of Algorithms and Problem Complexity]: Nonnumerical Algorithms and Problems-computations on discrete structures; routing; G.2.2 [Discrete Mathematics]: Graph Theory-graph algorithms; network problems; path and circuit problems General Terms: Algorithms, Experimentation, Theory Additional Key Words and Phrases: Concurrent network flow, cut saturation, duality theorems, multicommodity flow, network partitioning, polynomial-time approximation scheme, primal-dual algorithms, routing in networks, throughput I. Introduction The single commodity flow problem has a rich theory and many applications in operations research and combinatorics. The original flow-augmentation algorithm developed by Ford and Fulkerson [7] has all of the following features: (i) it identifies a maximum flow value and flow assignment achieving that value, (ii) it identifies a minimum capacity cut that contains edges saturated under any optimal solution, (iii) it provides a proof of the max-flow min-cut theorem. Authors addresses: F. Shahrokhi, Department of Computer Science, University of North Texas, Denton, TX 76203; D. W. Matula, Department of Computer Science, Southern Methodist University, Dallas, TX 75275. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. 0 1990 ACM 0004-541 l/90/0400-0318 $01.50 Journal of the Association for Computing Machinery. Vol. 37, No. 2, April 1990. pp. 318-334.

Maximum Concurrent Flow Problem 319 The elegance of this approach is in the understanding of the structure of the underlying flow problem provided by the interpretation of the dual problem (the min-cut problem) that is implicitly solved. The original labeling algorithm to solve the problem in [7] was not polynomially time bounded, but a series of progressively faster polynomial-time algorithms have been devised for the problem (see [25]). Unfortunately, not much of the structure attendant to the single commodity flow problem has been discovered for multicommodity flow problems. More specifically, no efficient labeling algorithm is known to solve any multicommodity flow problems except for the cases in which the number of commodities is two [lo] or in which certain strong planarity conditions exist on the underlying graph [ 5, 14, 231. Our results here describe a multicommodity flow problem that is shown to possess many features analogous to the single commodity flow problem. The maximum concurrent flow problem (MCFP) [ 151 is a multicommodity flow problem in which all pairs of entities can concurrently send or receive flow and is an optimization version of the feasibility problem in multicommodity flows [ 11, 181. The MCFP is best motivated by a variation of the routing problem in packet-switched telecommunication networks, for example, see [ 11, [4], and [8]. Informally, consider a network of entities (cities, computers, etc.) in which there exists a demand for flow between all pairs of entities. The flow is sustained through channels with certain capacities. For the MCFP, it is desired to assign flow to each route of the network, such that the ratio of the flow supplied between each pair of entities to the demand between that pair (termed the throughput) is the same for all pairs of entities. This flow assignment must respect the capacity constraints; that is, the total flow through a channel should not exceed its capacity. The MCFP is to assign flow to the routes such that the throughput is maximized. A flow rerouting approximation algorithm for the MCFP was introduced in [3] and also employed in [26]. An extension of this algorithm in [22] was shown computationally to provide for the solution of much larger problems than could be solved by specialized linear programming codes [ 131. No complexity results were presented in [2], [22], or [26]. The principle result of this paper is to prove that an appropriately modified version of the flow rerouting algorithm for the MCFP allowing arbitrary demands with uniform capacity is a fully polynomialtime approximation scheme. In this paper we also pursue the duality theory of the MCFP. The use of distance functions in the formulation of the dual of certain multicommodity flow problems was initially suggested by Ford and Fulkerson [6], and was a key feature of the supply consumption theorem for the feasibility problem [ 181. Our first duality theorem extends this dual distance relationship of multicommodity flow. We show that the maximum throughput of an MCFP can be alternatively obtained by minimizing (over all distance functions) a distance-derived upper bound on the throughput. As for a combinatorial dual for the MCFP, recall that Menger s theorem (see [9]) exhibits a fundamental path-cut duality for standard graph connectivity. Ford and Fulkerson extended this combinatorial path-cut duality to single-commodity network flow in their max-flow min-cut theorem [7]. Our effort to derive a natural combinatorial path-cut dual for the MCFP is embodied in a second duality theorem. We formalize the notion of the density of a k-partite cut, and then derive the following theorem: The maximum throughput of any concurrent flow equals the minimum density of any k-partite cut. Both of our duality theorems are proved constructively for the uniform-capacity MCFP case using our algorithm.

320 F.SHAHROKHIANDD.W.MATULA The MCFP is formally defined in Section 2. Two linear programming (LP) formulations of the MCFP are presented. From established LP theory, the MCFP is shown to be solvable in polynomially bounded time. Certain combinatorial properties of the MCFP are explored, and two convenient upper bounds on throughput are derived. In Section 3, we give our fully polynomial-time approximation scheme for the MCFP with arbitrary demands and uniform capacity. Computational results indicate that the algorithm is etlicient in practice. Finally, Section 4 is devoted to the duality theory of the MCFP. 2. The Maximum Concurrent Flow Problem (MCFP) We assume throughout this paper that graph G = ( V, E) is undirected and has vertex set I/= (1, 2,..., n 1. We denote by P, the set of all paths containing the edge e, for each edge e E E, and by Pij the set of all paths between end vertices i, j (called ij paths), for each distinct pair of vertices i, j E I. Also let P denote the set of all nontrivial paths in G. A capacity function on G is a function C: E * R+, where R+ is the set of nonnegative reals. A demand function D on G is a function D: V x V + R+, such that D(i, j) = D(j, i) and D(i, i) = 0 for all i, j E V, where D(i, j) > 0 for some i, j E V. A concurrent flow of throughput Z in G is a functionf: P ---, R+ such that (i) CPEPijf(p) = ZD(i, j) for all distinct pairs of vertices i, j E Vand (ii) Cpep,f(p) 1 C(e) for every edge e E E, where D and Care the given demand and capacity functions on G. For convenience of notation we extend the domain of a concurrent flowfto P U E using f(e) = Ep f(p) for all e E E. e A maximum concurreptflow is then a concurrent flow function having the largest attainable throughput Z. The maximum concurrent j7ow problem (MCFP) is to determine a maximum concurrent flow and the maximum throughput 2. For any particular concurrent flow functionf; we term the paths assigned nonzero flows active paths forf; and those edges e for whichf(e) = C(e) edges saturated by f: An edge of G is critical if it is saturated by every maximum concurrent flow. The established literature on linear programming and multicommodity network flow provides several immediate observations about the solution of an MCFP, and the active paths and saturated edges corresponding to particular maximum concurrent flows. First note that the MCFP can be formulated as a network linear program in either the edge-path form or the node-arc form. 2.1 EDGE-PATHFORMOFTHE MCFP. Maximize Z subject to LP,~~(P) - ZD(i, j) = 0 for all distinct i, j E V, (2.1) { C,H+J(P) 5 C(e), where D, C are the demand and capacity functions on G = ( V, E). 2.2 NODE-ARCFORMOFTHE MCFP Maximize Z subject to hf+(i(l) (.f;k - &> = Z Cj D(i, j) if I = i, -ZD(i >,) otherwise, for all edges e = lk in E, for all i, I E V, (2.2)

Maximum Concurrent Flow Problem 321 where fh, is the flow of the commodity i on the edge kl from k to 1 for all i, k, I E C/and N(I) is the set of vertices adjacent to 1, for all 1 E V. Observation 1. The MCFP is solvable in polynomially bounded time. Furthermore, the uniform demand MCFP is solvable by a strongly polynomial algorithm. Reason. The linear program (2.2) is solvable in polynomially bounded time by algorithms of either Khachiyan or Karmarkar [ 121. For uniform demand, the MCFP falls into a class of combinatorial linear programs for which Tardos exhibits a strongly polynomial-time solution [24]. Specifically, this latter case means the solution of (2.2) is obtained in polynomially bounded time where the number of arithmetic operations is polynomially bounded in ] V] + ] E ] and independent of the size of the numbers occurring as capacities. The node-arc solution of (2.2) is readily transformed in (strongly) polynomial time to an edge-path solution of (2.1) yielding at most ] T/J ] E ] active paths, so both the maximum throughput and a maximum concurrent flow are obtainable in polynomial time. Observation 2. For any MCFP there is a maximum concurrent flow with at most ( 2 ) + ] E ] active paths, that is, an average of at most two active paths per pair of vertices. Reason. Clearly an optimal basic solution to (2.1) provides a solution where at most ( 2 ) + ] E ] paths are active. Note that since any routing table requires at least one route per vertex pair, this observation affirms the existence of a solution to the MCFP with reasonably practical size in the resulting routing table. Two convenient upper bounds on throughput are given in the following lemma. One bound derives from determining flow across the most constraining cut. Notationally, the cut (A, 2) is the set of edges between A and 2 = V - A, where CM 3 = L(A,Z) C(e) and WA, 2) = CieA,jez D(i, j) denote, respectively, the capacity and demand across the cut. Another bound on throughput is obtained from relating the total available capacity to the total demand. The most restrictive form of this latter constraint is obtained by weighting the capacities and demands by a distance function, with the distance defined on the edges, vertex pairs, and paths as follows. A distance function on G = (V, E) is a function d: E + RC such that d(e) > 0 for at least one edge e, where the domain of d is extended to E U V X I/ U P by d(p) = C 44 for all p E P, eep d(i, j) = $;W(P)l for all i, j E V. A shortest distance ij path p E Pij has d(p) = d(i, j). We denote by Z, the distance ratio of capacity to demand for distance d, as given by zd = LE d(ek (e) J&j d(i, jp(i, j) LEMMA 2.1. Let G, D, and C be an instance ofthe MCFP. Then the throughput Z of any concurrent flow f satisfies (i) [Cut Upper Bound]. For any cut (A, 2) in G with C;EA,jEz D(i, j) > 0, (2.3) z I C(A, = CeE64,.z~ C(e) D(A, A) C;EA,jEZ D(i,j) (2.4)

322 F.SHAHROKHIANDD.W.MATULA (ii) [Distance Upper Bound]. For any distance don G with C;<j d(i, j)d(i, j) > 0, zrz,= LEE d(ejc(ej C;<, 46 jjd(i, jj PROOF OF (i). The total flow supplied between A and 2 is Z C;EA,jEz D(i, jj, while the total capacity available between A and 2 is CeEcA,z) C(e); therefore, (2.5) or Z5 c &A,.? C(e) CiEA,jEx DO, jj. PROOF OF (ii). Consider the expression CpEP d( p)f( p j. Then, C d(pjf(p) 2 C 46 j) E,,f(p) = Z C d(i, j)d(i, j). PEP i<j i<j Furthermore, It follows that C d(pjf(p) = & 44.Ecp f(p) 5.& d(e)c(e). PEP e z ( &E d(e)c(ej = z Ci<j d(i, j)d(i, j) d Q.E.D. Gerla [8] observed and employed the cut upper bound of Lemma 2.1 in his development of the cut saturation algorithm for packet-switched network routing (see also [4]). Unfortunately, the cut upper bound is subject to an inherent gap [ 15, 171. Specifically, the MCFP for the graph & with unit capacities on the edges and unit demands between all vertex pairs is readily seen (by employing d(e) = 1 on each edge in (2.5)) to have an optimal throughput of 3/7 with a lowest minimum-cut upper bound (over all cuts) of l/2. The possibility that an inherent gap can exist in (2.4) and that removal of the saturated (critical) edges may yield a partition into more than two parts means that less than complete solutions to the MCFP are obtainable by methods (e.g., [2, 81) focusing on a saturated-edges partition into two parts. Our methods derive from the more general Distance Upper Bound (2.5). We call d an optimal distancefunction for the MCFP whenever the corresponding distance ratio Zd equals the maximum throughput Z. Our results in Sections 3 and 4 are specific to MCFPs with uniform capacity and are sufficient to prove that an optimal distance function always exists for these instances. A further aspect of the duality between maximum concurrent flows and optimal distances valid for all MCFPs is given in the following lemma. LEMMA 2.2. f is a maximum concurrent flow and d is an optimal distance function for a given MCFP ifand only ifboth (i) all active paths for f are shortest paths under d, and (ii) edges assigned nonzero distance by d are saturated byf:

Maximum Concurrent Flow Problem PROOF. Assuming (i) and (ii) we have 323 Z C d(i,jp(i, j> = C 4kj) C f(p) i<j icj p-t, so then = C d(p)f(~) = C d(e) C f(p) = C d(e)c(e), PEP &E PEP, FGE z = LEE d(ek(e) Ci<j d(i, j)d(i, j) = zd confirming Z to be the maximum throughput, f to be a maximum concurrent flow, and d to be an optimal distance function. On the contrary, if(i) is false, then and if (ii) is false, then C 4L j).ecp f(p) < pzp d(~)f(p), i<j u C 44.Fp f(p) < EE 4dC(d, CEE e so if either (i) or (ii) is false, the throughput Z forfis strictly less than the distance ratio Zd for d. If 2 is the maximum throughput, then either Z < 2 and f is not a maximum concurrent flow, or Z < Zd and d is not an optimal distance function. Q.E.D. COROLLARY 2.3. Any optimal distancefunction dfor an MCFP assigns nonzero distances only on critical edges. PROOF. Assume the optimal distance function d assigns nonzero distance to some noncritical edge e. There must exist some maximum concurrent flow fe that does not saturate e since e is not critical. But these properties forfe and d contradict Lemma 2.2, verifying the corollary. Q.E.D. It is sometimes more convenient to treat maximizing the throughput of the concurrent flow as minimizing the utilized capacity to realize the demands. For a given G, D and C, a concurrent flow f: P -+ R+ of capacity utilization u in G satisfies Cpgp,j f(p) = D(i, j) for all i, j E Vand Cpsp, f(p) 5 UC(e) for all e E E. The minimum capacity utilization problem (MCUP) is to find the smallest capacity utilization u* achieved by a concurrent flowf: Observe that iff is a solution to the MCUP with the capacity utilization u *, then jdefmed by j (p) = f(p)/u* for all p E P is a maximum concurrent flow of throughput 2 = l/u*. 3. An Approximation Algorithm for the Uniform Capacity MCFP Although the linear programming technique for the MCFP (in Section 2) is polynomially bounded, it is practically ineffective on all but very small problems. The edge-path formulation of the MCFP can be solved using linear programming techniques that use special network structures [ 131. Such methods store the LP matrix implicitly. However, ( I 2 I ) + 1 E ] rows and at least as many columns must be explicitly stored. Thus, LP techniques are typically limited to problems of at most 40-odd vertices [20].

324 F. SHAHROKHI AND D. W. MATULA We now present an c-approximate algorithm [ 191 to solve the MCFP with uniform capacity for any t > 0. In this algorithm, there is an implicit need for very high precision computation. We give Algorithm R for analysis of the complexity, assuming sufficient precision. We have introduced in our implementation slight refinements to Algorithm R for finite precision computation. Regarding approximate solutions to the MCFP, we shall term fan t-optimal concurrent flow if its throughput 2 satisfies (Z - 2)/Z 5 t. We shall further term d an t-optimal distance function if its distance ratio & satisfies (Z, - 2)/Z, 5 t. Algorithm R [Reroute]. The input to the algorithm is a nontrivial connected graph G, a demand matrix D, constant capacity function C: E + c and 0 < t I 1. The output is an c-optimal concurrent flow 7 of throughput z and an e-optimal distance function d with distance ratio Z, such that (Z - 2)/Z I 6 and (Z, - z)/z, 5 E where 2 is the optimal throughput. Without loss of generality, we assume that C;<j D(i, j) = 1 and c = 1. The reader will note that these assumptions implyz2 1. Rl. [Determine the initial feasible solution.] Set d(e) = l/] E I for all edges e E E. For each pair of distinct vertices i, j E V, set f(p) = D(i, j) for one shortest distance ij path p. Setf(e) = CpEP,f(p) for all e E E. Set P = (p If(p) > 0). Set u. = e2/32 ] E I 3. (Here and in subsequent steps, we shall maintain CrEE d(e) = 1 and f(p) = 1. We further maintain for p E P that either f(p) 2 go or izp= D(i, j) < go for p an ij path.} R2. [Compute new distance function and find shortest paths.] Set d(e) = ewk2 I E I l4fcen L-Z exp((2 I E I */4f(e >) for all e E E. For each pair of distinct vertices i, j find a shortest distance ij path and the distance d(i, 3. R3. [Compute the throughput, distance upper bound, and check for termination.] Set f* = max{f(e) 1 e E El, 2 = l/f*, and Zd = l/xi<, d(i, j)d(i, j). If (Zd - z)/zd 5 6, then compute the concurrent flow 7 with the throughput z using Y(p) J$.$) for all paths p with f(p) > 0. Output 7, Z, d, and Zd and halt. {Note then that (Z - 2)/Z = 1 - z/z 5 1 - z/z, = (Zd - Z)/Z, 5 E. 1 R4. [Reroute flow.] For each i, j E V, denote by pi a particular active path between i and j whose length d(pij) computed using the edge distances d(e) is at least as great as any of the active paths (i.e., those currently assigned nonzero flow) between vertices i and j. Then determine a particular vertex pair k, 1 E Vsuch that d(pk ) - d(k, 1) = max(d(p j) - d(i, j) I i, j E V, D(i, j) 1 ao]. For this vertex pair k, 1 E V, denote by p * a particular shortest path between k and 1 (thus, d(p,) = d(k, I)), and let the notation pk - p.+ indicate those edges in pk and not in p,. Then set d* = &p~~--p. d(e) and d, = CeEp,+ d(e). Set d* fj = qg 1% d, *

Maximum Concurrent Flow Problem 325 Iff(pk ) 2 u + uo, then reroute u units of flow from pk to p* and set P = P U (p, ); otherwise, reroute all the flow on pk to p* and set P = P U (p, 1 - {p ). Update the flow valuesf(pk ),f(p*), andf(e) for edges in p*, pk. Go to R2. (Note that d* gives the sum of distances on edges whose flows are to be lowered and d, gives the sum of distances on edges whose flows must be raised.) The relationship between the MCFP and the MCUP is used by Algorithm R. In fact, Algorithm R solves the MCUP by supplying the demand between all pairs (step R 1) and assigning much larger distances to the edges hosting larger flows (step R2). This will make the paths containing highly utilized edges less attractive for future flow assignments, since rerouted flow is always sent on a shortest distance path. Step R3 computes a concurrent flow and its throughput using the current utilization factor which isf*. Step R4 is the most important part of the algorithm. In this step, the algorithm generally reduces the flow on highly utilized edges and increases the flow on poorly utilized edges. More important, it is not claimed that the computedf* should monotonically decrease with each cycle through steps R2-R4. Rather the result that Algorithm R eventually (and efficiently) achieves an acceptably low utilization factor without the possibility of cycling is proved in Theorem 3.3. We first obtain two lemmas. LEMMA 3.1. Let f and d be the existing flow and distance functions at R2. Then P - p~pfb)4p) = f - ezefcev(e) 5 &, wheref* = max(f(e) I e E El. PROOF. Observe that CpEP f(p)d(p) therefore = CeEE f(e)d(e) and CCE~ d(e) = 1, The nonzero terms of the right-hand side of (3.1) must correspond to e E E with f(e) c f*, for which Thus d(e) = ew((2 I E I /4f(e>) LTE w-%(2 I E I */4f(e )> 1 5 ew(@ I E I MP - f(e)>) I 5 (2 I E I */t)(f* - f(e)) * f* -f(e) CEE ' (p - f(e))d(e) 5 ee~,&=~* ((2 I E I */W* - f(e)>) implyingf* - CpEPf(p)d(p) I 42 1 E 1, which proves the lemma. QED.

326 F. SHAHROKHI AND D. W. MATULA LEMMA 3.2. Assume R has not terminated at R3. Then in R4 for pk, d*, d,, k, I, U, we have (i) d* - d, = d(pk ) - d(k, I) > c/31 E 1 and (ii) (T -z 2ao, where u. is defined as in R 1. PROOF. Assume that R has not terminated and that d* - d, = d(pk ) - d(k, I) 5 t/3 1 E I. We show that, for Zd and z as computed in R3 of the current iteration, we have (Zd - z)/z, 5 6. This will, however, contradict the assumption that R has not halted. We proceed as follows: p;pf 04r4 = r<i c p&f(p)d(p) + i;j P;ptjf(p)d(p)* D(l.jkq W,i)<e3 But d(pk ) - d(k,,) 5 c/3 1 E 1 implies that d(p) - d(i, j) 5 e/3 I E I for any active z j path p with D(i, j) I uo. Thus, icj D(i,j)BBrJ C p~ijf04a) = E icj D(i,j) O,J 5 izj d(i, jw, j> + C W, 3 - i<j 3l El = C d(i,jpg,j) + 3,cEl. i<j (3.2) Note that for any i, j E V with D(i, j) < u. the rerouting procedure in R4 guarantees that there is exactly one active jj path and that this path hosts D(i, j) < u. units of flow. Also, d(p) zs- 1 for all p E P. Therefore C pz,,jfw(p) 5 C, &f(p) 5 i-cj i<j 8, D(i,iFq D(i.Wo0 (3.3) Using (3.2) and (3.3), we get c2 C f(p)d(p) 5 C 44 jp(i, PEP i<j j) + fq + ~ 3w1 < ++d 2 IA (3.4) Also, by Lemma 3.1, p~pfw(p) rf* -& Combining this and (3.4) we have L+z.f*=& zd IEI Z (3.5) However, CeEE d(e) = 1 for any distance function constructed by R. Therefore, using the distance ratio in Lemma 2.1, we have l/z 2 l/z& Thus, (3.5) implies L+ E 1 1 1 1 & - z -z=z- (3.6) & IEl z.& Or?-z,=z &

Maximum Concurrent Flow Problem 327 Note that assigning a distance of 1 to all edges and applying Lemma 2.1 will yield a distance ratio which is at most ] E 1. Thus, Z I Z I I E) and (3.6) implies (Z, - Z)/Zd 5 t, which is the desired contradiction for part (i). To prove (ii), note that 0 < d, 5 1 and by part (i) d* - d, 2 c/3 I E I. Thus, d*/d, = 1 + (d* - d, )/d, 1 1 f 43 I E 1, implying c a=qp -&)z 16;El,=2q,. Q.E.D. An t-approximate algorithm with computing time polynomially bounded both in problem size and 1 /E is called a fully polynomial-time approximation scheme. THEOREM 3.3. Algorithm R is a fully polynomial-time approximation scheme and terminates with an e-optimal concurrent flow and an t-optimal distance function. Furthermore, the concurrent flow constructed at any iteration of R does not utilize more than 0( I E I 3/e2) active paths. PROOF. Lemma 3.2 implies that in R4 u 2 coo; therefore, the rerouting procedure in R4 guarantees that in any iteration of the algorithm each active ij path has at least u. units of flow on it, unless D(i, j) < co. Since the sum of demands for all pairs is unity, it follows that there are at most (l/go) + ( 2 ) = 0( ] E ( 3/c2) active paths at any iteration of R. We now show that R terminates. Let Si denote J&E exp((2 I E I /c) f(e)) in iteration i of R, where f is the concurrent flow function as in step R2. The idea underlying the proof is to show that Si+r/Si is always less than some fixed positive constant (which is less than unity), yielding convergence (as we will show) in polynomially bounded time. Consider pki, p *, d*, d, as they are defined in R4. We consider two cases derived from whether part or all of the flow is rerouted from pk to p*, and obtain a general upper bound on Si+,/Sj. Case 1. [Partial rerouting from pk to p *.] This corresponds to f(pk ) z g + uo, so that u units of flow are rerouted from pk to p*. This then increases the flow on the edges of p * - pk by u and decreases the flow on the edges of pk - p* by u, all other edge flows remaining the same. Hence, employing functionsj; d as existing from step R2, si - s,,, = ILw-~, si ew((2 I E I 2/c)f(e)) si + CrEp,-~k/ w((:! I E I 2/t)f(e)) CrEpk~-p, wu C1jEp,--pk~ ww si I E I 2/c)(f(e) - a)) si I E I 2/E)(f(e) + a)) si = d* + d, - exp(-2 f 2u)d* - exp(f)d,. (3.7)

328 F. SHAHROKHI AND D. W. MATULA However, exp((2 ] E ] /t)o) = m. Therefore, (3.7) implies si - si+k Si =d*+d*+yi*-(~yd* = d* + d, - 2@& But @ + < 5 2 and since R has not halted, by Lemma 3.2, d* - d, > 43 ] E 1. Thus, (3.8) implies (3.8) simsi+,, E2 Si - 36IEl* Case 2. the flow on pk is rerouted to p *. As in case 1, we have Si - Si+l Si (3.9) [Total rerouting from pk to p*.] In this case f(pk ) < u + u. and all = d* + d, - exp -2 1 E;I/(Pk ))d* _ exp(2 1 EI;f(Pk ))d,. c3.10j Treat the right-hand side of (3.10) as a function of the flow to be rerouted and observe that for any fixed d*, d, the function F(x) = d* + d, - exp (- Iflix)d* _ exp(??)& is monotonically increasing for x E [0, ~1 and monotonically decreasing for x E [a, 2~1; furthermore, for all x E [0, a], F(u + x) = F(u - x). Also, the rerouting procedure in R4 implies that u. 5 f(pk ) < u. + u. Thus, F(f(pk )) I min(f(uo), F(uo + u)). But by Lemma 3.2, u 2 2uo, implying that u - u. 1 uo, which implies that F(uo + u) = F(a - uo) 2 F(uo). Therefore, Si - Si+l Si = W(Pk >) 2 Rue) Considering u > uo, we have (d* - (d* - m = m(@ J* - d,)/2, sz by Lemma 3.2 = exp(2 I E I *UO/C) - 1 )(d* - exp( ] t 2uo)d,). (3.11) exp(2 I E I *uo/~ d* - exp (3.12) Also, exp(2 1 E I *uo/t) - 1 )= 1 -exp(-21f12uo) exp(2 I E I *u0/4 = 1 -exp -2IEl* t* t 32lE( = 1 -exp(*)zk(l-$&). (3.13)

Maximum Concurrent Flow Problem 329 It follows from (3.12) and (3.13) that Si-Sj+l 1 C * si Tic0 JEl. (4 Note that (3.14) and (3.9) indicate that in either case 1 or case 2, si+l -<I-- 1 - C2 100 IEl si i ) for all i I 1. Now assume that R did not halt after m iterations. Then (3.14) (3.15) For any concurrent flow f existing in any iteration of R, 0 I f(e) P 1, for all e E E. Thus, S, 5 ( E I exp(2 I E I /t) and S m+-l L I E I. Therefore, (3.15) implies and -2IEl* m 5 t log(1 - (l/loo)(~/l E I) 21E12 < t(l/loo)(t/l E I)* = 200lEl t3. (3.16) Note that R2 and R4 are the most expensive steps of R. At any iteration, R2 and R4 require 0( I 1/l ) and 0( I VI I P I ) time, respectively, where P is the set of all active paths in this iteration. But I P I = O() E) /t ) and R halts after at most 0( 1 E I /e3) iterations. Thus, Algorithm R has time complexity O( 1 I 1 ) E I /c ). Q.E.D. Observe in the proof of Theorem 3.3 that it is the quantity which experiences a guaranteed monotonically decreasing behavior through successive cycles of steps R2-R4 of Algorithm R. This fact confirms that successive flow functions cannot be identical even though some successive values off* may be identical. According to our analysis the worst case behavior of Algorithm R, although polynomially time bounded, does not look too promising. We feel that a better upper bound on the worst-case complexity probably exists. But of greater practical significance is the improved efficiency observed for our implementation over a wide selection of applications. PERFORMANCE OF ALGORITHM R. A slightly modified version of R was implemented using the Pascal language on a VAX 1 l/780 with the UNIX 4.2 operating system. In order to avoid overflow, the distance function was computed using d(e) = ew(df(e) - P>) LTE ew(4f(e ) - YV where f* = max( f(e) I e E EJ. In theory, for any CY 1 2 I E I */t, the algorithm

330 F. SHAHROKHI AND D. W. MATUL.A Graph 1 2 3 4 5 6 7 8 K4.6 K 8.12 K 16.24 K32,48 KSO.50 Q3 Q4 ii random random random TABLE I. PERFORMANCEOFTHEFLOWREROUTINGALGORITHMS No. of vertices No. of edges Avg no. of active Avg length CPU paths of active time Upper per pair paths set z bound 5 7 1.16 1.70 2.8.4993.5000 8 14 1.11 1.62 0.5.1999.2000 8 15 1.50 1.88 2.3.3120.3125 15 26 1.49 2.77 11.7.0799.0800 12 31 1.50 1.79 7.0.2590.2592 15 49 1.66 1.80 21.7.2776.2777 20 33 1.25 3.80 13.4.0290.0312 31 188 1.88 2.45 67.0.1997.2000 10 24 1.87 1.I2 4.6.3635.3636 20 96 2.17 1.77 23.9.3379.3380 40 384 2.30 1.79 96.0.3245.3265 80 1536 2.17 1.78 819.6.3209.3210 100 2500 2.16 1.77 1490.0.3376.3378 8 12 1.58 1.94 2.3.2499.2500 16 32 1.53 2.37 9.2.1249.1250 32 80 1.54 2.76 36.3.0624.0625 64 192 1.32 3.13 148.0.0312.0312 60 895 2.10 1.I5 334.0.2840.2844 100 2446 2.13 1.77 885.8.3278.3281 120 3598 2.23 1.77 1296.0.3345.3368 converges to a desirable t-optimal solution, but large values of LY will cause underflow in finite precision computation. Our test results, however, indicate that small values of (Y(which do not cause underflow) will also result in convergence to reasonably good approximations. In our implementation the value of a is initially selected such that d(e) > 0.00001 for all e E E. If the convergence rate is slow, however, the value of (Y is increased. The values for (Y were observed to be in the range of 0.5 to 50 for all test cases in Table I. We ran our implementation on a wide range of data and the results summarized in Table I are selected from those described in [22]. Graphs 1 through 8 are from the current literature [3, 261. Since these benchmark cases did not go beyond graphs of 31 vertices, we supplemented them with sequences of bipartite and random graphs, and cubes. The capacity and demand are both unit functions for all cases in Table I. Our results in Table I show a significant improvement in the size of the problem solved compared to [3], [20], and [26], which only solve problems of size at most 40 vertices. Note that the random graph on 120 vertices and 3598 edges in Table I would yield a formidable linear program (node-arc or edge-path) of some 10,000 rows and at least 10,000 columns. Algorithm R took only 20 minutes of VAX time to solve this case. The upper bounds given in Table I are each the better of the computed distance upper bound 2, and a determined cut upper bound when available as per Lemma 2.1. As a final remark in this section, we compare the results summarized in Table I to the statement of Observation 2 in Section 2, by observing that the average number of active paths per pair of vertices is in all cases at most 2.3. 4. Duality Theory for the MCFP Various extensions of the max-flow min-cut theorem to multicommodity flow problems have been discussed by previous researchers. Ford and Fulkerson

Maximum Concurrent Flow Problem 331 employed a dual distance function for a multicommodity flow problem in an early application of this technique [6]. A duality result analogous to that of the single commodity flow problem for the 2-commodity flow problem was presented in [lo]. Regarding duality in the feasibility problem for multicommodity flow, an initial significant result was the supply consumption theorem of Onaga [ 181: Given the source-sink pairs (Si, ti), positive demands D(s,, ti) i E Q, and capacity function C, the demands are realizable iff for any distance function d on G, CeGE C(e)d(e) 2 CiEo D(si, ti)d(si, ti). hi [ 1 I] gave a concise proof of this theorem using the duality theory of linear programming. He also showed that it is sufficient to consider a finite number of inequalities involving only bounded integral values for distances. We now shall give two duality theorems for the MCFP. The first continues the development of associated distance functions and may be considered a natural generalization of Onaga s realizability result to the arena of dual optimization. For the case of uniform capacity, our result is shown constructively (in the limit) using our approximation algorithm. THEOREM 4.1 [Max-flow Min-distance ratio Theorem]. Let G, D, represent an instance of the MCFP with uniform capacity c on each edge and pn optimal throughput 2. Then where 2 = mini& 1 d is a distance function on G), Zd = c CeEE d(e) Ci<j d(i, j)d(i, j) PROOF. For simplicity and with no loss of generality assume that c = 1, Ci<j D(i, j) = 1, and CpEE d(e) = 1 for all distance functions d. Let S be the set of all distance ratios. By Lemma 2.1, Z is a lower bound of S. The correctness of Algorithm R implies that, for any e > 0, there exist concurrent flow and distance functions 7 and d, respectively, such that Z 2 Z 2 Z,-( 1 - t). Thus, Z = inf S. To complete the proof we show that inf S E S. Denote the edges in E by el, q,..., elel and let X be the subset of the Euclidean space RIEl with CXi = 1 for all (Xl, x2, **a, xl El ) E X, Xi z 0 for all i. Consider the function f: X + R by fh, x2,..., xl El ) = Ci<j d(i, j)d(i, j), where d is the distance function identified by assigning distance xi to the edge ei, i = 1, 2,..., ] E ]. It is readily seen that f is a continuous function from the compact metric space X to the metric space R+. Thus sup f(x) E f(x), implying that inf S = l/sup(f(x)) and that inf S E S. Q.E.D. Our second duality theorem is more revealing and exposes the combinatorial structure of the MCFP. Recall that the dual for the single commodity flow problem is characterized by a cut, in particular by the max flow-min cut theorem [7]. We now exhibit the cut structure of the MCFP through its dual relation to a unique partition into k 2 2 parts, where the value of k is determined by the instance of the MCFP. Let G = ( V, E) be a graph; denote by (A,, AZ,..., Ak) for k 2 2, the set of all edges in G whose end vertices are in distinct elements of the partition (A,, AZ,..., Ak) of V. We call (A,, AZ,..., Ak) a k-partite cut in G. The following theorem is an extension of [ 151 and explores the structure of the critical edges, that is, those edges that are necessarily saturated by any maximum concurrent flow. We point out that the following result holds for arbitrary capacities and demands.

332 F.SHAHROKHI AND D.W.MATUL,A THEOREM 4.2. Let G, D, C be an instance of the MCFP. Denote by fa maximum concurrent flow, by E,, the set of all saturated edges under f, andfinally by E,, the set oj critical edges. Then (i) G - E, is disconnected and (ii) E, is a k-partite cut, for some k 2 2. PROOF. Assume, to the contrary that G - E, is connected. Then there is a spanning tree T of G such that none of the edges in T are saturated under f We can increase the flow on some path p E Pij by ED(i, j) for all i, j E I/ and some c > 0, concurrently. This contradicts the optimality of 7 and proves (i). To prove (ii) note that if E = E,, then the result is trivially true. Assume that E # E,, then for every e E E - E, there must be a maximum concurrent flow function fe such that f,(e) < C(e) (i.e., fe does not saturate e, since e is not critical). Define 7: P + R+ by yyp) = LEE-E, fp(p) IEI - IEcl * Then 7 is a maximum concurrent flow in G only saturating the edges in E,. By part (i), G - E, is disconnected. Let A,, AZ,..., Ak denote the vertex sets of the components of G - E,. We have (A,, AZ,..., Ak) G E,. Assume that (A,, AZ,..., Ak) # E,; let e = tl E E, - (A,, AS,..., Ak). Then vertices t, 1 are in Aj for some j, 1 I j % k. Since Aj is connected, there is a tf path D (in A,) containing only unsaturated edges. Let c = mine,5 (C(e) - J (e)). Then t > 0. Let p E P, be an active mn path, m, n E V. There exists an mn path q such that q does not contain e, and every edge in q is either in p or p. Reroute min(c, f(p)] units of flow from p to q, maintaining the optimality of the new concurrent flow and contradicting the criticality of e, which proves part (ii). Q.E.D. From Theorems 4.1 and 4.2, we can now fashion a combinatorial duality relation between concurrent flow and k-partite cuts. Let G, D, and C represent an instance of the MCFP and let (A,, AZ,..., Ak) denote any k-partite cut of G. For 1 I i, j 5 k, let C(Ai, A,) denote the total capacity of all edges between Ai and A,, and let D(Ai, Aj) denote the total demand between vertices of Ai and Aj. Let den(a,, AZ,..., Ak) denote the density of the k-partite cut (A,, AZ,..., Ak) as defined by Clsi<jck WijC(Ai, Aj) den(a,, AZ,..., Ak) = min w Cisi<jsk wijd(a;, Aj) (4.1) where the minimum is over all symmetric distance functions w satisfying the triangle inequality Wij + Wj/ I Wi/ for all 1 5 i, j, 1~ k, where Crci<j5k w;jd(ai, Aj) # 0. Note that for any 2-partite cut (A, A) of G, the density is simply which is the expression for the cut upper bound in Lemma 2.1. Formula (4.1) generalizes the notion of density to k-partite cuts in a manner allowing us to formulate the following combinatorial duality theorem. In order to be consistent with Theorem 4.1, our proof here again is restricted to the case of uniform capacity. THEOREM 4.3 [Max-concurrent flow Min k-partite cut Theorem]. For any untform capacity MCFP, the maximum throughput of any concurrent jlow equals

Maximum Concurrent Flow Problem 333 TABLE II. ANALOGOU RESULTS IN THE THEORIES OF THE SINGLE COMMODITY NETWORK FLOW [7] AND THE CONCURRENT FLOW Objective Cut Inequality Properties Critical Saturated Edges Duality Theorem Proof/Algorithm Paradigm Single Commodity (Source-Sink) Flow Maximize value of sourceto-sink flow Plow value less than or equal to capacity of any cut Edges saturated by every maximum flow contain a minimum cut The maximum value of any flow equals the minimum capacity of any cut Plow augmentation proves duality and provides an efftcient algorithm Flow Type Concurrent (All Pairs) Flow Maximize throughput of concurrent flow Throughput less than or equal to density of any cut Edges saturated by every maximum concurrent flow constitute a k-partite cut The maximum throughput of any concurrent flow equals the minimum density of any k-partite cut Plow rerouting proves duality and provides an efticient algorithm the minimum density of any k-partite cut, and in particular, equals the density of the k-partite cut of critical edges. PROOF. Let G, D, and constant capacity C be an instance of the MCFP. By Corollary 2.3 any optimal distance function d assigns nonzero distance values only to critical edges, which by Theorem 4.2 compose the k-partite cut E, = (A,, A2, * *., Ak). Furthermore, an optimal distance function must clearly then ascribe the same distance d(u, v) for any u E A;, v E Aj for parts A;, Aj of E,. So we may set wij = d(u, v), and so determine W;j for all 1 I i, j 5 k, i # j, and from Theorem 4.1, then obtain den(a,, AZ,..., Ak) 5 2. Conversely, for any j-partite cut (A,, AZ,..., Aj), 2 I j P n, let w be a weight function minimizing (4.1). Now we may construct a distance function by setting d (e) = w (i, j) whenever the end vertices of e are in different parts Ai, Aj, i # j and d (e) = 0, otherwise. The shortest distance function extension of d in G to V X I/ yields d (u, v) 2 WQ for u E Ai, v E Aj, i # j, since w satisfies the triangle inequality. Furthermore, d (u, v) = wl: if some edge e E E joins a vertex Of Ai to a vertex of AI. If there are no edges between Ai and Aj, then C(Ai, Aj) = 0; hence, &GE d (e)c(e) = Cix;<jsk wbc(ai, Aj). Recalling d (u, V) 2 w,$ for u E Ai, v E Aj, i # j, we obtain w$ = d (u, v) since w minimizes the right-hand side of (4.1). Thus, den(ar, AZ,..., Aj) 2 & 1 2, and the theorem follows. Q.E.D. The form of Theorem 4.3 in our mind properly identifies the inherent path-cut duality in the MCFP, and illustrates the particular significance of distance as pertinent only between parts of the uniquely determined critical k-partite cut. We note that Theorem 4.3 can be readily extended by suitable linear programming arguments and shown to hold for arbitrary capacity and demand functions. Table II as extended from [ 151, summarizes the results for duality of the MCFP analogous to the important aspects of single commodity flow theory.

334 F. SHAHROKHI AND D. W. MATULA REFERENCES 1. AI-TAR, R. A Distributive Adaptive Multi-path Routing-Consistent and Conflicting Decision Making, 80/ 8 1, Aiken Computation Laboratory, Harvard Univ., Cambridge, Mass. 2. BIANCHINI, R. P., AND SHEN, J. P. Interprocessor traffic scheduling algorithms for multipleprocessor networks. IEEE Trans. Comput. C-36 (1987), 396-409. 3. BISWAS, J., AND MATULA, D. W. Two-flow routing algorithms for the maximum concurrent flow problem. In Proceedings of the ACM Fall Joint Conference. ACM, New York, 1986, pp. 629-635. 4. BOORSTYN, R. R., AND FRANK, H. Large-scale network topological optimization. IEEE Communications (Jan. 1977), 29-47. 5. DIAZ, H., AND GHELLINK, G. Multicommodity maximum flow in planar networks (D-algorithm approach). CORE Discussion Paper No. 72 12. Center for Operations Research and Econometrics, Louvain-la-Neuve, Belgium, 1972. 6. FORD, L. R., AND FULKERSON, D. R. A suggested computation for maximal multicommodity network flows. Manage. Sci. 5 (1958), 97-101. 7. FORD, L. R., AND FULKERSON, D. R. Flows in Networks. Princeton University Press, Princeton, N.J., 1962. 8. GERLA, M. A cut saturation algorithm for topological design of packet-switched communication networks. In Proceedings of the National Telecommunication Conference. Dec. 1974, pp. 1074-1085. 9. HARARY, F. Graph Theory. Addison-Wesley, Reading, Mass., 1969. 10. Hu, T. C. Integer Programming and Network Flows. Addison-Wesley, Reading, Mass., 1969. 11. IRI, M. On an extension of the maximum-flow minimum-cut theorem to multicommodity flows. J. Oper. Res. SOC. Japan 5,4 (Dec. 1967), 691-703. 12. KARMARKAR, N. A new polynomial time algorithm for linear programming. Combinatorics 4, 4 (1984), 373-395. 13. KENNINGTON, J. L., AND HELGASON, R. V. Algorithms for Network Programming. Wiley, New York, 1980. 14. MATSUMOTO, K., NISHIZEKI, T., AND SAITO, N. Planar multicommodity flows, maximum matchings and negative cycles. SIAM J. Comput. 15,2 (May 1986), 495-5 10. 15. MATULA, D. W. Concurrent flow and concurrent connectivity in graphs. In Graph Theory and Its Applications to Algorithms and Computer Science, Alavi, Y., Chartrand, G., Lesniak, L., Lick, D., and Wall, C. E., eds. Wiley, New York, 1985, pp. 543-559. 16. MATULA, D. W. Divisive vs. agglomerative average linkage hierarchical clustering. In Classification as a Tool of Research. Gaul, W., and Schader, M., eds. North-Holland, Amsterdam, 1986, pp. 289-301. 17. OKAMURA, H., AND SEMOUR, P. D. Multicommodity flows in planar graphs. J. Comput. Theory, Ser. B 31 (1981), 75-81. 18. ONAGA, K. A multicommodity flow theorem. Trans. ZECE, Japan, 53-A, 7 (1970), 350-356. 19. PAPADIMITRIOU, H., AND STIEGLITZ, K. Combinatorial Optimization: Algorithms and Complexity. Prentice-Hall, Englewood Cliffs, N.J., 1982. 20. PATTY, B. W. The basis suppression method for linear programs with special structure excluded by an objective side column. Ph.D. dissertation, Dept. of Operations Research and Engineering Management. Southern Methodist Univ., Dallas, Tex., 1984. 2 1. SHAHROKHI, F. Approximation algorithms for the maximum concurrent flow problem. ORSA J. Comput. 1, 2 (1989), 62-69. 22. SHAHROKHI, F., AND MATULA, D. W. On solving large maximum concurrent flow problems. In Proceedings of the ACM Computer Conference. ACM, New York, 1987, 205-209. 23. TANG, D. T. Bi-path networks and multicommodity flows. IEEE Trans. Circuit Theory CT-1 1 (1964), 468-474. 24. TARDOS, E. A strongly polynomial algorithm to solve combinatorial linear programs. J. Oper. Res. 34 (1986), 250-256. 25. TARJAN, R. E. Data Structures and Network Algorithms. Society for Industrial and Applied Mathematics, Philadelphia, Pa., 1983. 26. THOMPSON, B., AND MATULA, D. W. A flow rerouting algorithm for the maximum concurrent flow problem with variable capacities and demands, and its applications to cluster analysis. Tech. Rep. 86-CSE-12. Dept. of Computer Science and Engineering. Southern Methodist Univ., 1986. RECEIVED MARCH 1987; REVISED FEBRUARY 1988 AND APRIL 1989; ACCEPTED JUNE 1989 Journal of the Association for Computing Machinery, Vol. 37, No. 2, April 1990