02.01.2015 Views

Combinatorial Algorithms for Inverse Network Flow ... - ResearchGate

Combinatorial Algorithms for Inverse Network Flow ... - ResearchGate

Combinatorial Algorithms for Inverse Network Flow ... - ResearchGate

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Combinatorial</strong> <strong>Algorithms</strong> <strong>for</strong> <strong>Inverse</strong> <strong>Network</strong> <strong>Flow</strong> Problems<br />

Ravindra K. Ahuja<br />

Department of Industrial and Systems Engineering<br />

University of Florida,<br />

Gainesville, FL 32611, USA<br />

ahuja@ufl.edu<br />

James B. Orlin<br />

Sloan School of Management<br />

Massachusetts Institute of Technology<br />

Cambridge, MA 02139, USA<br />

jorlin@mit.edu<br />

January, 1998<br />

(Revised June 8, 2000)


<strong>Combinatorial</strong> <strong>Algorithms</strong> <strong>for</strong> <strong>Inverse</strong> <strong>Network</strong> <strong>Flow</strong> Problems<br />

Ravindra K. Ahuja and James B. Orlin<br />

ABSTRACT<br />

An inverse optimization problem is defined as follows: Let S denote the set of feasible solutions<br />

of an optimization problem P, let c be a specified cost vector, and x 0 ∈ S. We want to perturb the cost<br />

vector c to d so that x 0 is an optimal solution of P with respect to the cost vector d, and ||d – c|| p is<br />

minimum, where ||.|| p denotes some selected L p norm. In this paper, we consider inverse minimum cut<br />

and minimum cost flow problems under the L 1 norm (where the objective is to minimize Σ j∈J w j |d j – c j |<br />

<strong>for</strong> some index set J of variables), and under the L ∞ norm (where the objective is to minimize max{w j |d j –<br />

c j |: j ∈ J}). We show that the unit weight (that is, w j = 1 <strong>for</strong> all j ∈ J) inverse minimum cut problem<br />

under the L 1 norm reduces to solving a maximum flow problem, and under the L ∞ norm it requires<br />

solving a polynomial sequence of minimum cut problems. The unit weight inverse minimum cost flow<br />

problem under the L 1 norm reduces to solving a unit capacity minimum cost flow problem, and under the<br />

L ∞ norm it reduces to solving a minimum mean cycle problem. We also consider the non-unit weight<br />

versions of inverse minimum cut and minimum cost flow problems under the L ∞ norm.<br />

1. INTRODUCTION<br />

Let P denote the following optimization problem: min{cx : x ∈ S}, where S is the set of feasible<br />

solutions. Let J denote the index set of the vector x. Let x 0 ∈ S denote a feasible solution of P that we<br />

wish to make optimal <strong>for</strong> P by perturbing the cost vector c. We call a cost vector d inverse feasible <strong>for</strong> P<br />

with respect to the solution x 0 if x 0 is an optimal solution of P when the cost vector c is replaced by the<br />

cost vector d. The inverse problem under the L 1 norm is to find an inverse feasible cost vector d * of P <strong>for</strong><br />

which ||d * – c|| 1 = Σ j∈J | d* j - c j | is minimum among all inverse feasible cost vectors d. The inverse<br />

problem under the L ∞ norm is to find an inverse feasible cost vector d * of P <strong>for</strong> which ||d * – c|| ∞ =<br />

max{| d* j - c j | : j ∈ J} is minimum. We refer to d * an optimal cost vector <strong>for</strong> the inverse problem. In this<br />

paper, we refer to the inverse problem under the L 1 norm as the inverse problem, and the inverse problem<br />

under the L ∞ norm as the minimax inverse problem.<br />

In this paper, we study inverse and minimax inverse minimum cut and minimum cost flow<br />

problems. We consider a directed network G = (N, A) with N as the node set and A as the arc set. Let n =<br />

|N| and m = |A|. Each arc (i, j) ∈ A has an associated cost c ij , an associated capacity u ij > 0, and an<br />

associated weight w ij > 0. Let C = max{|c ij |: (i, j) ∈ A}, let U = max{u ij : (i, j) ∈ A}, and let W =<br />

max{w ij : (i, j) ∈ A}. Table 1 gives a list of problems considered in this paper and the problem to which<br />

1


the considered inverse problem reduces. In the table, whenever the running time involves C, U, or W, we<br />

assume that arc costs, arc capacities, or arc weights are integer, respectively.<br />

<strong>Inverse</strong> network flow problems under the L 1 norm have been studied in the past by several<br />

researchers. Zang and Liu [1996] studied inverse minimum cost flow problems; Yang, Zhang and Ma<br />

[1997], and Zhang and Cai [1998] have studied the inverse minimum cut problems. Ahuja and Orlin<br />

[1998] develop a unified framework <strong>for</strong> inverse linear programming problems under both L 1 and L ∞<br />

norms from which several inverse network flow problems are derived as special cases. In this paper, we<br />

present combinatorial algorithms <strong>for</strong> solving inverse network flow problems as well as combinatorial<br />

justifications <strong>for</strong> the algorithms. This contrasts with the linear programming based approaches suggested<br />

in the literature. We believe that the combinatorial arguments provide additional insight and<br />

understanding of inverse network flow problems.<br />

<strong>Inverse</strong> problem considered:<br />

Unit weight inverse minimum cut problem<br />

under the L 1 norm<br />

Unit weight inverse minimum cut problem<br />

under the L ∞ norm<br />

General weight inverse minimum cut problem<br />

under the L ∞ norm<br />

Unit weight inverse minimum cost flow problem<br />

under the L 1 norm<br />

Unit weight inverse minimum cost flow problem<br />

under the L ∞ norm<br />

General weight inverse minimum cost flow problem<br />

under the L ∞ norm<br />

Reduces to solving the following problem:<br />

A maximum flow problem<br />

O(log(nU)) minimum cut problems<br />

O(log(nUW)) minimum cut problems<br />

A unit capacity circulation problem<br />

A minimum mean cycle problem<br />

A minimum cost-to-weight ratio problem<br />

(also known as the tramp steamer problem)<br />

Table 1. Summary of problems considered in this paper and the results obtained.<br />

2. THE INVERSE MINIMUM CUT PROBLEM<br />

In this section, we study the inverse minimum cut problem. Consider a network G = (N, A) where<br />

u ij ’s denote arc capacities, and s and t are two specified nodes, called the source and sink nodes,<br />

respectively. In the network G, we define a cut as a set of arcs whose deletion disconnects the network<br />

into two or more components, and such that no subset of arcs in it has this property. An s-t cut is a cut<br />

that partitions the node set into exactly two parts of which one part, say S, contains the node s and another<br />

part, S = N – S, contains node t. An alternate method to represent the s-t cut is by the node partition it<br />

creates and we represent it as [S,S]. Let (S,S) denote the set of <strong>for</strong>ward arcs in the cut, that is, (S,S) =<br />

{(i, j) ∈ A : i ∈ S and j ∈ S }, and ( SS , ) denote the set of backward arcs in the cut, that is, ( SS , ) = {(i,<br />

j) ∈ A : i ∈ S and j ∈ S}. We define the capacity of the s-t cut [S,S] as the sum of the capacities of the<br />

<strong>for</strong>ward arcs in the cut. We denote it by u[S,S] , that is, u[S,S] = ∑ u<br />

{( ij , ) ∈( SS , )} ij . The minimum cut<br />

problem is to determine an s-t cut of minimum capacity. The inverse minimum cut problem is to modify<br />

2


the arc capacity vector u to d * 0 0<br />

so that the cut [ S , S ] is a minimum cut with respect to the capacity<br />

vector d * and ||d * - u|| 1 = Σ (i,j)∈A | d* ij - u ij | is minimum.<br />

In this section, we will consider the network G with varying arc capacity vectors. We<br />

subsequently refer to the network G with capacity vector z as G(z). We will use the following variant of<br />

the max-flow min-cut theorem (see, <strong>for</strong> example, Ahuja, Magnanti and Orlin [1993]) in our analysis in<br />

this section:<br />

0 0<br />

Property 1. An s-t cut [ S , S ] is a minimum cut in G(d) if and only if there exists a feasible flow x<br />

from node s to node t in G(d) that “saturates” the cut<br />

0 0<br />

[ S , S ] , that is, xij = d ij <strong>for</strong> each arc (i, j) ∈<br />

( S<br />

0 , S<br />

0 ) and xij = 0 <strong>for</strong> each arc (i, j) ∈ ( S , S )<br />

0 0 .<br />

Let the network G′ = (N, A′) be obtained from G = (N, A) by deleting the backward arcs in the<br />

cut [ S<br />

0 , S<br />

0 ] . In other words, A ′ = A\( 0<br />

S , 0<br />

S ) . Let the capacity vector u′ <strong>for</strong> arcs in A ′ be defined as u' ij<br />

= u ij .<br />

0 0<br />

0 0<br />

Lemma 1. The cut [ S , S ] is a minimum cut in G(d) if and only if [ S , S ]<br />

G′(d′), where<br />

d ' ij = d ij <strong>for</strong> each arc (i, j) ∈ A′.<br />

is a minimum cut in<br />

Proof. Suppose that x saturates the cut [ S<br />

0 , S<br />

0 ] in G(d) and there<strong>for</strong>e [ S<br />

0 , S<br />

0 ] is a minimum cut in<br />

G(d). Let x′ be a feasible flow in G′(d′) obtained by setting ' 0 0<br />

x ij = x ij <strong>for</strong> each arc (i, j) ∈ A\ ( S , S ) .<br />

Then the flow x′ saturates the cut [ S<br />

0 , S<br />

0 ] in G ′ (d ′) and hence [ 0<br />

S , 0<br />

S ] is a minimum cut in G ′ (d ′).<br />

0 0<br />

Now suppose that [ S , S ] is a minimum cut in G ′ (d ′) and the flow x′ saturates it. Let x be the flow in<br />

the network G(d) obtained from x′ by setting x ij = x ' ij <strong>for</strong> each arc (i, j) ∈ A\<br />

0 0<br />

( S , S ) and xij = 0 <strong>for</strong> each<br />

(i, j) ∈ ( S<br />

0 , S<br />

0 ) . It is easy to see that the flow x saturates the cut [ S<br />

0 , S<br />

0 ] in G(d) and there<strong>for</strong>e [ S<br />

0 , S<br />

0 ]<br />

is a minimum cut in G(d).<br />

Theorem 1. If the capacity vector d′ is an optimal solution <strong>for</strong> the inverse problem <strong>for</strong> G′, then the<br />

capacity vector d * is an optimal solution <strong>for</strong> the inverse problem <strong>for</strong> G, where d * ij =<br />

0 0<br />

0 0<br />

∈ A| ( S , S ) and d * ij = u ij <strong>for</strong> each arc (i, j) ∈ ( S , S ).<br />

♦<br />

d ' ij <strong>for</strong> each arc (i, j)<br />

Proof. Suppose that the arc capacity vector d′ is optimal <strong>for</strong> the inverse problem <strong>for</strong> G′. Let d * ij = d' ij<br />

<strong>for</strong> each arc (i, j) ∈ A\<br />

0 0<br />

( S , S ) and d * ij = u ij <strong>for</strong> each arc (i, j) ∈<br />

0 0<br />

( S , S ) . Observe that ||d* – u||1 = ||d′ –<br />

u′|| 1 . Hence the optimal objective function value of the inverse problem <strong>for</strong> G is at most the optimal<br />

objective function value <strong>for</strong> the inverse problem <strong>for</strong> G′. Now suppose that d* is optimal <strong>for</strong> the inverse<br />

3


problem <strong>for</strong> G. Let d ' ij = d * ij <strong>for</strong> each arc (i, j) ∈ A\<br />

0 0<br />

( S , S ) . Then by Lemma 1, d ′ is inverse feasible<br />

<strong>for</strong> G′. Moreover, ||d′ – u′|| 1 ≤ ||d* – u|| 1 and so the optimal objective function value <strong>for</strong> the inverse<br />

problem <strong>for</strong> G is at least the optimal objective value <strong>for</strong> the inverse problem <strong>for</strong> G′.<br />

♦<br />

Theorem 1 allows us to solve the inverse problem <strong>for</strong> G by solving the inverse problem <strong>for</strong> G′.<br />

Be<strong>for</strong>e explaining how to solve the inverse problem <strong>for</strong> G′, we introduce a new term and establish one<br />

more lemma. Let Excess(S, d′) be the capacity of the cut [S, S] in G′ with respect to capacity vector d′<br />

minus the maximum s-t flow in G′ with respect to d′. Thus d′ is inverse feasible <strong>for</strong> G′ if and only if<br />

Excess(S 0 , d′) = 0.<br />

Lemma 2. The optimal objective function value to the inverse minimum cut problem <strong>for</strong> G′ is at least<br />

Excess(S 0 , u′).<br />

Proof. Let<br />

[S', S '] be a minimum cut in G′(u′). Then, Excess(S 0 , u′) is the capacity of the cut [S, S]<br />

minus the capacity of the cut [S,S]. Alternatively,<br />

'<br />

'<br />

∑ - ∑ ' ' 0 0 = Excess(S 0 , u′) (1)<br />

0 0 ' ' '<br />

(i,j) ∈(S , S )\(S , S ) u ij<br />

(i,j) (S , S )\(S , S ) u '<br />

∈<br />

ij<br />

Let d′ be an optimal solution to the inverse problem <strong>for</strong> G′. Then, the cut<br />

cut in G′(d′). Consequently,<br />

0 0<br />

(S , S ) is a minimum<br />

∑ - 0 0 ' ' '<br />

∑ ij ≥ 0. (2)<br />

' ' 0 0<br />

'<br />

(i,j) ∈(S , S )\(S , S ) d ij<br />

(i,j) ∈(S , S )\(S , S ) d<br />

Adding (1) and (2) yields<br />

0 0 ' ' ' '<br />

∑ (i,j) (S , S )\(S , S ) (u ij − d ij ) + ' ' 0 0<br />

'<br />

∑<br />

'<br />

(i,j) (S , S )\(S , S ) (d ij − u ij ) ≥ Excess(S 0 , u′), (3)<br />

∈<br />

∈<br />

or, alternatively,<br />

∑ || d −u || 1 + ∑ ' ' 0 0 || d'<br />

− u ' || 1 ≥ Excess(S0 , u′). (4)<br />

0 0 ' ' ' '<br />

(i,j) ∈(S , S )\(S , S ) ij ij<br />

(i,j) ∈(S , S )\(S , S )<br />

It follows from (4) that ||d′ – u′|| 1 ≥ Excess(S 0 , u′), thereby establishing the lemma.<br />

ij<br />

ij<br />

Theorem 2. The optimal value to the inverse minimum cut problem <strong>for</strong> G′ is Excess(S 0 , u′).<br />

Proof. Let x′ be a maximum s-t flow in G′(u′). Let d ' ij = ' 0 0<br />

x ij <strong>for</strong> each arc (i, j) ∈ [ S , S ] , and d ' ij = u ij<br />

<strong>for</strong> each arc (i, j) ∈ A\[ S<br />

0 , S<br />

0 ] . Note that the flow x′ saturates the cut [ S<br />

0 , S<br />

0 ] in G(d ′), and hence d′ is<br />

4


inverse feasible. Also note that ||d′ – u′|| = Excess(S 0 , u′), and so by Lemma 2, the capacity vector d′ is<br />

optimal <strong>for</strong> the inverse problem.<br />

♦<br />

We have explained in Theorem 1 how can we obtain an optimal solution d′ <strong>for</strong> the inverse<br />

problem <strong>for</strong> G′ into an optimal solution d * <strong>for</strong> G. We have thus shown that the inverse minimum cut<br />

problem reduces to solving a maximum flow problem. Currently, the fastest strongly polynomial bound to<br />

solve the maximum flow problem is O(nm log(n 2 /m)) and is due to Goldberg and Tarjan [1986]. The<br />

best weakly polynomial bound to solve the maximum flow problem is O(min{n 2/3 , m 1/2 }m log(n 2 /m) log<br />

U) and is due to Goldberg and Rao [1997].<br />

Our algorithm developed in this section is the same as obtained by Zhang and Cai [1998] and<br />

Ahuja and Orlin [1998]; however, our proof is based on arguments involving combinatorial properties of<br />

the max flow and min cut. We point out that the weighted version of the inverse minimum cut problem<br />

cannot be trans<strong>for</strong>med to a maximum flow problem; in fact, it is a minimum cost flow problem (Zhang<br />

and Cai [1998] and Ahuja and Orlin [1998]).<br />

3. THE MINIMAX INVERSE MINIMUM CUT PROBLEM<br />

In this section, we study the unit weight minimax inverse minimum cut problem. In this problem,<br />

0 0<br />

the objective is to modify the capacity vector u to d* so that the s-t cut [ S , S ] becomes a minimum cut<br />

in the network G and max{| d* ij – u ij |: (i, j) ∈ A} is minimum. We will show that if all arc capacities are<br />

integer, then we can solve the minimax inverse minimum cut problem as a sequence of O(log(nU))<br />

minimum cut problems. We will use the same notation in this section as used in Section 2.<br />

0 0<br />

To solve the inverse problem, we first delete the backward arcs in the cut [ S , S ] and denote the<br />

resulting network by G ′ . Theorem 1 allows us to solve the inverse problem <strong>for</strong> G by solving it <strong>for</strong> G ′ . We<br />

* *<br />

next obtain a minimum cut [ S , S ] in G′ by solving a maximum flow problem. If<br />

0 0<br />

u′[ S , S ] =<br />

* * 0 0<br />

u′[ S , S ], then [ S , S ] is also a minimum cut in G ′ and d * = c; otherwise, arc capacities must be<br />

modified.<br />

Suppose that the optimal objective function value of the minimax inverse minimum cut problem<br />

is δ′, that is, ||d′ - u|| ∞ = δ′. Observe that there exists an optimal solution of the inverse problem where the<br />

modified capacity d ij<br />

' of each arc (i, j) ∈<br />

0 0<br />

(S , S ) satisfies d ij<br />

' = max{0, u ij - δ′} and the modified<br />

capacity d ' ij of each arc (i, j) ∉<br />

0 0<br />

(S , S ) satisfies d ' ij = u ij + δ ′. To see this, notice that (i) if d ' ij > max{0,<br />

0 0<br />

u ij - δ′} <strong>for</strong> some arc (i, j) ∈ (S , S ) , then we can decrease d ij<br />

' to (u ij - δ′) and<br />

0 0<br />

[ S , S ] remains a<br />

minimum cut in G ′ , and (ii) if d ' ij < u ij + δ′ <strong>for</strong> some arc (i, j) ∉<br />

0 0<br />

(S , S ) , then we can increase d ' ij to (u ij<br />

0 0<br />

+ δ′) and (S , S ) remains a minimum cut in G ′ ; in either case the objective function value of the inverse<br />

problem, ||d′ - u|| ∞ , does not increase. Let G ′ (δ) denote the network obtained from G ′ by defining the arc<br />

capacities in the following manner:<br />

5


dij( δ)<br />

=<br />

R<br />

S|<br />

T|<br />

max{ 0, uij<br />

−δ} 0 0<br />

<strong>for</strong> each arc ( i, j) ∈(S , S ),<br />

uij<br />

+ δ<br />

0 0<br />

<strong>for</strong> each arc (, i j) ∉(S , S ).<br />

Each value of δ <strong>for</strong> which<br />

0 0<br />

[ S , S ] is a minimum cut in G′(δ) gives an inverse feasible capacity<br />

vector d(δ). Let F(δ) be the capacity of the cut<br />

0 0<br />

[ S , S ] in G′(δ) minus the capacity of the minimum cut.<br />

The minimax inverse problem is to find the minimum value of δ, say δ′, <strong>for</strong> which F(δ) = 0. It is easy to<br />

see that F(δ) > 0 <strong>for</strong> all δ < δ′, and F(δ) = 0 <strong>for</strong> all δ ≥ δ′. Accordingly, one may use binary search in the<br />

interval [0, U] to determine the value of δ′. We now claim that δ′ is a rational number whose denominator<br />

is at most 2m. If the claim is true, we may terminate the binary search when the search interval is of<br />

length at most 1/(4m 2 ) since such a search interval can contain at most one rational number with<br />

denominator at most 2m. This implies that the number of iterations of the binary search is O(log m 2 U).<br />

We now prove the claim. At the minimum value λ′ where F(δ′) = 0, there are two cuts<br />

0 0<br />

[ S , S ]<br />

* *<br />

and [ S , S ] that are both minimum cuts. As a function of δ, the capacity of these two cuts are a 1 + s 1 δ<br />

and a 2 + s 2 δ, where s 1 ≠ s 2 , and s 1 ≥ - m, s 2 ≤ m, and all coefficients are integral. Thus a 1 + s 1 δ′ = a 2 +<br />

s 2 δ′. Solving <strong>for</strong> δ′, we obtain a rational number with denominator at most 2m.<br />

To summarize, we obtain a bound of log(4m 2 U) = O(log(nU)) on the number of iterations<br />

per<strong>for</strong>med by the binary search algorithm. At each search point, we need to solve a minimum cut problem<br />

on a network with n nodes, m arcs, and where arc capacities can be non-integer (but can be made integer<br />

by multiplying arc capacities by a number no larger than 4m 2 ). This gives an overall bound of O(T(n, m,<br />

m 2 U) log(nU)) on the running time of the algorithm, where T(n, m, α) is the time needed to solve a<br />

minimum cut problem on a network with n nodes, m arcs, and maximum (integer) arc capacity α.<br />

Currently, T(n, m, α) = O(nm log(n 2 /m)), due to Goldberg and Tarjan [1986], is the best strongly<br />

polynomial bound, and T(n, m, α) = O(min{n 2/3 , m 1/2 }m log(n 2 /m) log α), due to Goldberg and Rao<br />

[1997], is the best available weakly polynomial bound.<br />

The running time of our algorithm is not strongly polynomial. However, we can use the<br />

techniques described in Radzik [1993] to show that we can solve the minimax inverse minimum cut<br />

problem by solving O(n) minimum cut problems. This gives a strongly polynomial algorithm to solve the<br />

minimax inverse minimum cut problem.<br />

Weighted Version<br />

We next study the weighted version of the minimax inverse minimum cut problem. In this<br />

problem, the objective function of the inverse problem is to minimize max{w ij | d ' ij – u ij |: (i, j) ∈ A} where<br />

0 0<br />

w ij > 0 <strong>for</strong> each arc (i, j) ∈ A. As in the unit weight case, we delete the backward arcs in [S ,S ] to<br />

obtain the network G′. Let δ′ denote the optimal objective function value of the inverse problem. Using<br />

arguments similar to the unit weight case, it can be shown that there exists an optimal solution of the<br />

6


inverse problem where d ' ij = max{0, u ij - δ′/w ij } <strong>for</strong> every arc (i, j) ∈<br />

every arc (i, j) ∉<br />

manner:<br />

dij( δ)<br />

=<br />

R<br />

S|<br />

T|<br />

0 0<br />

(S ,S ) and d ' ij = u ij + δ′/w ij <strong>for</strong><br />

0 0<br />

(S ,S ) . We define the network G′(δ) with arc capacities defined in the following<br />

max{ 0, uij<br />

−δ<br />

/ wij} <strong>for</strong> each arc ( i, j) ∈ 0 0<br />

(S , S ),<br />

uij<br />

+ δ / wij<br />

<strong>for</strong> each arc ( i, j) ∉ 0 0<br />

(S , S ).<br />

We next use the binary search <strong>for</strong> δ in the interval [0, UW] to determine the minimum value δ′ of<br />

0 0<br />

δ, <strong>for</strong> which [S , S ] is a minimum cut in G ′ and terminate the binary search when the length of the<br />

search interval is less than 1/4m 2 W 2 . At termination, d′ = d(δ′). The running time of this method is<br />

O(T(n, m, m 2 W 2 U) log(nUW)), where T(n, m, α) is the time needed to solve a minimum cut problem with<br />

n nodes, m arcs, and maximum arc capacity α. The running time of our algorithm is again not strongly<br />

polynomial. However, we can use the techniques described in Radzik [1993] to show that we can solve<br />

the minimax inverse minimum cut problem by solving O(m) minimum cut problems.<br />

4. THE INVERSE MINIMUM COST FLOW PROBLEM<br />

In this section, we study the inverse minimum cost flow problem. In the minimum cost flow<br />

problem on a network G = (N, A), each arc (i, j) ∈ A has an associated cost c ij and an associated capacity<br />

u ij , and each node i has an associated supply/demand b(i). We assume <strong>for</strong> notational convenience that <strong>for</strong><br />

any node pair i and j, both (i, j) and (j, i) do not belong to A. If b(i) ≥ 0, then node i is a supply node;<br />

otherwise it is a demand node. The problem concerns determining the least cost shipment that meets the<br />

demands at demand nodes of the network by the available supplies at the supply nodes by sending a flow<br />

that honors arc capacities. In the inverse minimum cost flow problem, we are given a feasible flow x 0<br />

which we wish to make an optimal flow by modifying the cost vector c to d * in a manner such that<br />

||c – d * || 1 is minimum.<br />

For the simplicity of presentation, we shall assume that x 0 = 0. There is no loss of generality in<br />

this assumption because we can always satisfy it through a trans<strong>for</strong>mation of variables. If x 0 ≠ 0, then we<br />

replace the flow x by y + x 0 . It is easy to see that in the trans<strong>for</strong>med problem, we want to make y 0 = 0 as<br />

an optimal solution of the minimum cost flow problem by perturbing the arc costs.<br />

Our approach relies on the concept of the residual network G(x 0 ) defined with respect to a given<br />

flow x 0 . To construct it, we consider each arc (i, j) ∈ A one by one, and add arcs to G(x 0 ) in the following<br />

0<br />

manner: (i) if x ij < uij , then we add the arc (i, j) of cost c ij to A(x 0 0<br />

); (ii) if x ij > 0, then we add the arc (j,<br />

0<br />

i) with cost –c ij ; and (iii) 0 < x ij < uij , then we add the arcs (i, j) and (j, i) with costs c ij and –c ij<br />

respectively. We also use the following well known result from the network flow theory.<br />

7


Property 2. The flow x 0 is an optimal flow of the minimum cost flow problem if and only if the residual<br />

network G(x 0 ) contains no negative cycles (that is, negative cost directed cycles).<br />

It is easy to see that <strong>for</strong> x 0 = 0, G(x 0 ) = G. We shall hence<strong>for</strong>th refer to G(x 0 ) by G. Property 2<br />

implies that x 0 is an optimal flow in G if and only if G contains no negative cost cycle. Let π be any<br />

vector of size n and c<br />

π<br />

ij<br />

denote the arc reduced costs defined as cij<br />

π = c ij - π i + π j . The following property<br />

follows from this definition.<br />

Property 3. For any directed cycle W in G, Σ (i,j)∈W cij<br />

π = Σ (i,j)∈W<br />

c ij . Consequently, if c π ij ≥ 0 <strong>for</strong> each<br />

arc (i, j) ∈ A, then G does not contain any negative cycle.<br />

Theorem 3. Let v* be the minimum cost of a collection of arc disjoint cycles in G. Then –v* is the<br />

optimal objective function value <strong>for</strong> the inverse minimum cut problem.<br />

Proof. Let W = {W 1 , W 2 , … , W K } denote any collection of arc-disjoint negative cycles in the network<br />

G. Let c(W K ) denote the cost of the cycle W k , that is, c(W K ) = Σ (i,j)∈Wk c ij , and c(W) denote the cost of<br />

K<br />

the collection, that is, c(W) = ∑ k=1 c(W k ) . Observe that in an optimal cost vector d * , the sum of the<br />

costs of arcs in any cycle W k must increase by at least -c(W K ) units in order to eliminate this negative<br />

cycle. Hence<br />

Σ (i,j)∈W k | d * ij - c ij | ≥ - c(W K ). (5)<br />

Since all the cycles W 1 , W 2 , … , W K are arc-disjoint, it follows from (5) that<br />

||d * - c|| 1 = Σ (i,j)∈A || d * ij - c ij || 1 ≥<br />

K * k= 1 (i,j) ∈W || d ij − c ij || 1<br />

k<br />

∑ ∑ ≥ - k<br />

K<br />

∑ k=1 c(W ) = -c(W), (6)<br />

establishing that - c(W) is a lower bound on || d * - c || 1 . Thus, – v* ≤ || d * - c || 1 . We will next establish<br />

that this lower bound is achievable, which will prove the theorem.<br />

* * *<br />

1 2 K<br />

Suppose that W* = { W,W,...,W } is a minimum cost collection of arc-disjoint cycles in G<br />

with total cost equal to v*. This collection defines a flow in a unit capacity network (that is, the network<br />

where each arc has capacity equal to 1) obtained by setting x ij = 1 <strong>for</strong> each arc (i, j) ∈ W* and x ij = 0 <strong>for</strong><br />

each arc (i, j) ∉ W*. By the duality theory <strong>for</strong> the minimum cost flow problem, there exists a vector π of<br />

optimal dual variables, and arc reduced costs<br />

cij<br />

π = c ij - π i + π j so that<br />

cij<br />

π ≤ 0 <strong>for</strong> all (i, j) ∈ W*, (7a)<br />

cij<br />

π ≥ 0 <strong>for</strong> all (i, j) ∉ W*. (7b)<br />

8


Let<br />

*<br />

d ij = c ij -c π ij <strong>for</strong> (i, j) ∈ W*, and let<br />

*<br />

d ij = c ij otherwise. Then, (i) <strong>for</strong> any arc (i, j) ∈ W*, d * ij -<br />

π(i) + π(j) = (c ij - cij<br />

π ) - π(i) + π(j) = cij<br />

π - cij<br />

π = 0, and (ii) <strong>for</strong> all any arc (i, j) ∉ W*, d * ij - π(i) + π(j) = c ij -<br />

π(i) + π(j) = c π ij ≥ 0 (from (7b). We thus observe that with respect to the arc cost vector d * , the reduced<br />

cost of each arc (i, j) ∈ A is nonnegative, and from Property 3, the flow x 0 = 0 is an optimal solution,<br />

establishing that d * is inverse feasible. Moreover,<br />

||d * - c|| 1 = -Σ (i,j)∈W * cij<br />

π =<br />

K<br />

k= 1 (i,j) ∈W* cπ ij k<br />

K<br />

− ∑ ∑ = − ∑k= 1 ∑ (i,j) ∈W* c ij = -c(W) = - v * , (8)<br />

k<br />

where the first equality follows from the manner we define d*, the second equality follows from the fact<br />

that W = { W,W,...,W }, the third equality follows from Property 3, and the fourth equality follows<br />

* * *<br />

1 2 K<br />

from the definition of W * , and the fourth equality follows from the fact that c(W * ) = v*. The fact |d * - c| =<br />

-c(W * ) in view of (6) implies that d * is an optimal cost vector <strong>for</strong> the inverse minimum cost flow problem.♦<br />

Recall that we assumed at the beginning of the section that <strong>for</strong> any pair of nodes i and j in G, both<br />

(i, j) and (j, i) are not present in A. We also assumed that x 0 = 0 and to satisfy this assumption, we needed<br />

to per<strong>for</strong>m a trans<strong>for</strong>mation of variables. This trans<strong>for</strong>mation would create some pairs of nodes i and j,<br />

both the arcs (i j) and (j, i). We need to ensure that in this case d ij = -d ji , since the pair (i, j) and (j, i) refers<br />

to same arc in G. Now notice that in our algorithm, we change arc costs of those arcs only that have cij<br />

π <<br />

0. Also notice that if c π ij < 0, then c π<br />

ji > 0. Consequently, we change only one arc cost in the pair, and<br />

count it just once in our objective. But when c ij changes then c ji must also change too by an equal and<br />

opposite amount. If an arc cost c ij changes, its modified reduced cost becomes zero, and so the modified<br />

reduced cost of the arc (j, i), and the solution continues to satisfy the optimality condition. This point also<br />

applies to the inverse minimum cost flow problem under the L ∞ norm considered in the next section.<br />

To summarize, we have reduced the inverse minimum cost flow problem into a minimum cost<br />

flow problem in a unit capacity network. This result was first established by Zhang and Liu [1996] and<br />

was also obtained by Ahuja and Orlin [1998]. We obtain a different proof of the same result. The<br />

minimum cost flow problem in a unit capacity network is in general easier to solve than the general<br />

minimum cost flow problem. Using the successive shortest path algorithm, this minimum cost circulation<br />

problem can be solved in O(m(m + n log n)) time (see, <strong>for</strong> example, Ahuja, Magnanti, and Orlin [1993]).<br />

Using the cost scaling algorithm, this minimum cost circulation problem can be solved in O(min{n 5/3 ,<br />

m 3/2 }log(nC)) time, using the algorithm due to Gabow and Tarjan [1989].<br />

5. THE INVERSE MINIMUM COST FLOW PROBLEM UNDER THE L ∞ NORM<br />

In this section, we study the minimax inverse minimum cost flow problem. In this problem, our<br />

objective is to modify the cost vector c to d * so that the given solution x 0 becomes a minimum cost flow<br />

in G and max{|<br />

*<br />

d ij – cij |: (i, j) ∈ A} is minimum. We will subsequently refer to the objective function of<br />

9


this inverse problem by ||d * - c|| ∞ . We will show that the minimax inverse minimum cost flow problem<br />

reduces to solving a minimum mean cycle problem in the residual network G(x 0 ) = (N, A(x 0 )).<br />

As in Section 4, we will assume that x 0 = 0, and if not the necessary trans<strong>for</strong>mation has been done<br />

to satisfy this assumption. Under this assumption, G(x 0 ) = G, and our objective is to change arc costs in G<br />

so that G does not contain any negative cost cycles. For any directed cycle W, we denote by c(W) the cost<br />

of this cycle; that is, c(W) =<br />

. Clearly, if G does not contain any negative cost cycle with c<br />

∑<br />

(i,j) ∈W c ij<br />

as the arc cost vector, then d * = c; otherwise, arc costs must be modified to eliminate such negative<br />

cycles. We will hence<strong>for</strong>th assume that G contains a negative cost cycle. Let W * be a minimum mean<br />

cycle in G, that is, a directed cycle in G <strong>for</strong> which the mean cost given by c(W)/|W| is minimum among<br />

all directed cycles W in the network. Let µ * = c(W * )/|W * |. By our assumption, µ * < 0. The following<br />

property is well known <strong>for</strong> the minimum mean cycle problem (Karp [1978] and Karp and Orlin [1981]):<br />

Property 4. Let W* be a minimum mean cycle in G, and µ* denote its mean cost. Then there exists a<br />

π<br />

vector π of node potentials so that c ij = µ * π<br />

<strong>for</strong> each arc (i, j) ∈ W, and c ij ≥ µ * <strong>for</strong> each arc (i, j) ∉ W.<br />

Theorem 4. Let µ* denote the mean cost of a minimum mean cycle in G. Then, the optimal objective<br />

function value <strong>for</strong> the inverse minimum cost flow problem under the L ∞ norm is max(0, -µ*),<br />

Proof. We solve the minimum mean cycle problem in G and choose π as in Property 4. If µ* ≥ 0, then<br />

x0 = 0 is an optimum flow in G and the theorem is true. Suppose instead that µ* < 0, and W* is the<br />

minimum mean cycle in G. Let λ* be the optimum solution to the minimax inverse problem. We first<br />

claim that λ* ≥ -µ*. For, if we reduce the cost of each arc by an amount greater than -µ*, then W would<br />

become a negative cycle and x0 = 0 would not be an optimal flow in G. Hence, λ* ≥ -µ*.<br />

We now claim that there exist a vector d* with ||d* – c|| ∞ = -µ* such that x* is optimal with respect<br />

to d*. Select d * ij = c ij - cij<br />

π if cij<br />

π < 0, and d * ij = c ij otherwise. Observe that we decrease costs of only those<br />

arcs that have negative reduced costs and by an amount equal to c π ij . Also observe from Property 4 that<br />

≤ -µ * <strong>for</strong> each arc (i, j) ∉ W*. It follows from these<br />

observations that ||d* – c|| ∞ = -µ*. Finally, using the same arguments as in Theorem 3, it can be shown that<br />

x0 is optimal with respect to d*. This establishes that d* is an optimal solution of the minimax inverse<br />

minimum cost flow problem.<br />

♦<br />

- c π<br />

ij<br />

= -µ * <strong>for</strong> each arc (i, j) ∈ W* and - c π<br />

ij<br />

To summarize, we have shown above that the minimax inverse minimum cost flow problem<br />

reduces to solving a minimum mean cycle problem. Currently, the best available strongly polynomial<br />

time algorithm to solve the minimum mean cycle problem is an O(nm) algorithm due to Karp [1978], and<br />

the best available weakly polynomial time algorithm is an O( n m log(nC)) algorithm due to Orlin and<br />

Ahuja [1992].<br />

10


Weighted Version<br />

We next study the weighted version of the minimax inverse minimum cost flow problem. In this<br />

problem, the objective function of the inverse problem is to minimize max{w ij | *<br />

d ij – c ij |: (i, j) ∈ A},<br />

where w ij > 0 <strong>for</strong> each (i, j) ∈ A. As earlier, we will assume that x0 = 0 and the graph G contains a<br />

negative cost directed cycle.<br />

Consider any negative cycle W in G. Let c(W) denote the cost of this cycle. Then, in an optimal<br />

cost vector d*, costs of the arcs in the cycle W must increase by at least –c(W) units in order to eliminate<br />

this negative cycle. Suppose that we increase the cost of an arc (i, j) ∈ W by α ij units. Then, Σ (i,j)∈W α ij<br />

≥ -c(W). The impact of this change on the objective function value will be max{w ij α ij : (i, j) ∈ W}. This<br />

impact will be minimum when each w ij α ij is the same <strong>for</strong> every arc (i, j) ∈ W, say, w ij α ij = T.<br />

Substituting this result in Σ (i,j)∈W α ij ≥ -c(W) yields Σ (i,j)∈W T/w ij<br />

≥ -c(W), which can be restated as T ≥<br />

-c(W)/τ(W), where τ(W) = Σ (i,j)∈W τ ij with τ ij = 1/w ij . We thus observe that each negative cycle W<br />

provides a lower bound of -c(W)/τ(W) on the optimal solution value of the inverse problem. Let W*<br />

denote a directed cycle in G with the smallest value of c(W)/τ(W); we call such a cycle the minimum costto-weight<br />

ratio cycle. Let µ* = c(W*)/τ(W*). Then, -µ* gives the greatest lower bound on the optimal<br />

objective function value of the inverse problem. While solving the minimum cost-to-weight ratio cycle in<br />

G(x0) with c ij 's as arc costs and τ ij 's as arc weights, we obtain both µ* and a vector π so that -c π ij /τ ij ≤ -µ*<br />

<strong>for</strong> every arc (i, j) ∈ A. We define the arc cost vector d* as d * ij = c ij - c π ij if c π ij < 0, and d * ij = c ij<br />

otherwise. Using similar arguments as in the unit weight case, it can be shown that d* is an optimal cost<br />

vector <strong>for</strong> the weighted minimax inverse minimum cost flow problem in G.<br />

Consequently, the weighted minimax inverse minimum cost flow problem can be solved by<br />

solving a minimum cost-to-weight ratio cycle problem. The minimum cost-to-weight ratio problem can<br />

be solved in O(nm log(nCW)) time using Lawler's algorithm, or in O(n4 log n) time using Meggido's<br />

[1979] algorithm, where C = max{|c ij | : (i, j) ∈ A} and W = max{|w ij | : (i, j) ∈ A}. It can also be solved<br />

in O(<br />

n m log2(CW)) time using Goldberg's [1995] shortest path algorithm.<br />

ACKNOWLEDGEMENTS<br />

We thank the referees and the Associate Editor <strong>for</strong> their detailed and insightful comments that<br />

helped to improve the presentation and to remove some subtle bugs. We also acknowledge the help of<br />

Don Wagner who raised some perceptive and fundamental questions that led to the pursuit of the research<br />

reported in this paper. The first author gratefully acknowledges the support from the National Science<br />

Foundation Grant DMI-9900087 and the second author acknowledges the support from the Office of<br />

Naval Research under contract ONR N00014-98-1-0317 as well as the National Science Foundation<br />

Grant DMI-9820998.<br />

11


REFERENCES<br />

Ahuja, R. K., T. L. Magnanti, and J. B. Orlin. 1993. <strong>Network</strong> <strong>Flow</strong>s: Theory, <strong>Algorithms</strong>, and<br />

Applications, Prentice Hall, NJ.<br />

Ahuja, R. K., and J. B. Orlin. 1998. <strong>Inverse</strong> optimization. Working Paper, Sloan School of Management,<br />

MIT, Cambridge, MA. To appear in Operations Research.<br />

Gabow, H. N., and R. E. Tarjan. 1989. Faster scaling algorithms <strong>for</strong> network problems. SIAM Journal on<br />

Computing 18, 1013-1036.<br />

Goldberg, A. V. 1995. Scaling algorithms <strong>for</strong> the shortest path problem. SIAM Journal on Computing 24,<br />

494-504.<br />

Goldberg, A. V., and S. Rao. 1997. Length function <strong>for</strong> flow computation. Technical Report # 97-055,<br />

NEC Research Institute, 4 Independence Way, Princeton, NJ.<br />

Goldberg, A. V., and R. E. Tarjan. 1986. A new approach to the maximum flow problem. Proceedings of<br />

the 18 th ACM Symposium on the theory of Computing, pp. 136-146. Full paper in Journal of ACM<br />

35(1990), 873-886.<br />

Karp, R. M. 1978. A characterization of the minimum cycle mean in a diagraph. Discrete Mathematics<br />

23, 309-311.<br />

Karp, R. M., and J. B. Orlin. 1981. Parametric shortest path algorithms with an application to cyclic<br />

staffing. Discrete Applied Mathematics 3, 37-45.<br />

Lawler, E. L. 1966. Optimal cycles in doubly weighted linear graphs. In Theory of Graphs: International<br />

Symposium, Dunod, Paris, and Gordon and Breach, New York, pp. 209-213.<br />

Meggido, N. 1979. <strong>Combinatorial</strong> optimization with rational objective functions. Mathematics of<br />

Operations Research 4, 414-424.<br />

Orlin, J. B., and R. K. Ahuja. 1992. New scaling algorithms <strong>for</strong> the assignment and minimum cycle mean<br />

problems. Mathematical Programming 54, 41-56.<br />

Radzik, T. 1993. Parametric flows, weighted means of cuts, and fractional combinatorial optimization. In<br />

Complexity in Numerical Optimization, edited by P. Pardalos, World Scientific, pp. 351-386.<br />

Yang, C., J. Zhang, and Z. Ma. 1997. <strong>Inverse</strong> maximum flow and minimum cut problem. Optimization<br />

40, 147-170.<br />

Zhang, J., and M. Cai. 1998. <strong>Inverse</strong> problem of minimum cuts. ZOR Mathematical Methods of<br />

Operations Research 48, 51-58.<br />

Zhang, J., and Z. Liu. 1996. Calculating some inverse linear programming problem. Journal of<br />

Computational and Applied Mathematics 72, 261-273.<br />

12

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!