Combinatorial Algorithms for Inverse Network Flow Problems
Ravindra K. Ahuja Department of Industrial and Systems Engineering University of Florida, Gainesville, FL 32611, USA
[email protected]
James B. Orlin Sloan School of Management Massachusetts Institute of Technology Cambridge, MA 02139, USA
[email protected]
January, 1998 (Revised June 8, 2000)
Combinatorial Algorithms for Inverse Network Flow Problems
Ravindra K. Ahuja and James B. Orlin
ABSTRACT An inverse optimization problem is defined as follows: Let S denote the set of feasible solutions of an optimization problem P, let c be a specified cost vector, and x0 ∈ S. We want to perturb the cost vector c to d so that x0 is an optimal solution of P with respect to the cost vector d, and ||d – c||p is minimum, where ||.||p denotes some selected Lp norm. In this paper, we consider inverse minimum cut and minimum cost flow problems under the L1 norm (where the objective is to minimize
Σj∈J wj|dj – cj|
for some index set J of variables), and under the L∞ norm (where the objective is to minimize max{wj|dj – cj|: j ∈ J}). We show that the unit weight (that is, wj = 1 for all j ∈ J) inverse minimum cut problem under the L1 norm reduces to solving a maximum flow problem, and under the L∞ norm it requires solving a polynomial sequence of minimum cut problems. The unit weight inverse minimum cost flow problem under the L1 norm reduces to solving a unit capacity minimum cost flow problem, and under the L∞ norm it reduces to solving a minimum mean cycle problem. We also consider the non-unit weight versions of inverse minimum cut and minimum cost flow problems under the L∞ norm.
1. INTRODUCTION Let P denote the following optimization problem: min{cx : x ∈ S}, where S is the set of feasible solutions. Let J denote the index set of the vector x. Let x0 ∈ S denote a feasible solution of P that we wish to make optimal for P by perturbing the cost vector c. We call a cost vector d inverse feasible for P with respect to the solution x0 if x0 is an optimal solution of P when the cost vector c is replaced by the cost vector d. The inverse problem under the L1 norm is to find an inverse feasible cost vector d* of P for which ||d* – c||1 =
Σj∈J| d*j -
cj| is minimum among all inverse feasible cost vectors d. The inverse
problem under the L∞ norm is to find an inverse feasible cost vector d* of P for which ||d* – c||∞ = max{| d*j - cj| : j ∈ J} is minimum. We refer to d* an optimal cost vector for the inverse problem. In this paper, we refer to the inverse problem under the L1 norm as the inverse problem, and the inverse problem under the L∞ norm as the minimax inverse problem. In this paper, we study inverse and minimax inverse minimum cut and minimum cost flow problems. We consider a directed network G = (N, A) with N as the node set and A as the arc set. Let n = |N| and m = |A|. Each arc (i, j) ∈ A has an associated cost cij, an associated capacity uij > 0, and an associated weight wij > 0. Let C = max{|cij|: (i, j) ∈ A}, let U = max{uij: (i, j) ∈ A}, and let W = max{wij: (i, j) ∈ A}. Table 1 gives a list of problems considered in this paper and the problem to which
1
the considered inverse problem reduces. In the table, whenever the running time involves C, U, or W, we assume that arc costs, arc capacities, or arc weights are integer, respectively. Inverse network flow problems under the L1 norm have been studied in the past by several researchers. Zang and Liu [1996] studied inverse minimum cost flow problems; Yang, Zhang and Ma [1997], and Zhang and Cai [1998] have studied the inverse minimum cut problems. Ahuja and Orlin [1998] develop a unified framework for inverse linear programming problems under both L1 and L∞ norms from which several inverse network flow problems are derived as special cases. In this paper, we present combinatorial algorithms for solving inverse network flow problems as well as combinatorial justifications for the algorithms. This contrasts with the linear programming based approaches suggested in the literature. We believe that the combinatorial arguments provide additional insight and understanding of inverse network flow problems. Inverse problem considered: Unit weight inverse minimum cut problem under the L1 norm
Reduces to solving the following problem: A maximum flow problem
Unit weight inverse minimum cut problem under the L∞ norm
O(log(nU)) minimum cut problems
General weight inverse minimum cut problem under the L∞ norm
O(log(nUW)) minimum cut problems
Unit weight inverse minimum cost flow problem under the L1 norm
A unit capacity circulation problem
Unit weight inverse minimum cost flow problem under the L∞ norm
A minimum mean cycle problem
General weight inverse minimum cost flow problem under the L∞ norm
A minimum cost-to-weight ratio problem (also known as the tramp steamer problem)
Table 1. Summary of problems considered in this paper and the results obtained.
2. THE INVERSE MINIMUM CUT PROBLEM In this section, we study the inverse minimum cut problem. Consider a network G = (N, A) where uij’s denote arc capacities, and s and t are two specified nodes, called the source and sink nodes, respectively. In the network G, we define a cut as a set of arcs whose deletion disconnects the network into two or more components, and such that no subset of arcs in it has this property. An s-t cut is a cut that partitions the node set into exactly two parts of which one part, say S, contains the node s and another part, S = N – S, contains node t. An alternate method to represent the s-t cut is by the node partition it creates and we represent it as [S,S] . Let (S,S) denote the set of forward arcs in the cut, that is, (S,S) = {(i, j) ∈ A : i ∈ S and j ∈ S }, and ( S , S) denote the set of backward arcs in the cut, that is, ( S , S) = {(i, 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 forward arcs in the cut. We denote it by u[S,S] , that is, u[S,S] =
∑{(i, j)∈(S,S )} uij .
The minimum cut
problem is to determine an s-t cut of minimum capacity. The inverse minimum cut problem is to modify
2
the arc capacity vector u to d* so that the cut [S0 , S 0] is a minimum cut with respect to the capacity vector d* and ||d* - u||1 = Σ(i,j)∈A| d*ij - uij| is minimum. In this section, we will consider the network G with varying arc capacity vectors. We subsequently refer to the network G with capacity vector z as G(z). We will use the following variant of the max-flow min-cut theorem (see, for example, Ahuja, Magnanti and Orlin [1993]) in our analysis in this section: Property 1. An s-t cut [ S 0 , S 0 ] is a minimum cut in G(d) if and only if there exists a feasible flow x from node s to node t in G(d) that “saturates” the cut [ S 0 , S 0 ] , that is, xij = dij for each arc (i, j) ∈
( S 0 , S 0 ) and xij = 0 for each arc (i, j) ∈ ( S 0 , S 0 ) . Let the network G′ = (N, A′) be obtained from G = (N, A) by deleting the backward arcs in the cut [S0 , S 0] . In other words, A′ = A\ ( S 0 , S0) . Let the capacity vector u′ for arcs in A′ be defined as u ij' = uij. Lemma 1. The cut [ S 0 , S 0 ] is a minimum cut in G(d) if and only if [ S 0 , S 0 ] is a minimum cut in G′(d′), where dij' = dij for each arc (i, j) ∈ A′. Proof. Suppose that x saturates the cut [S0 , S 0] in G(d) and therefore [S0 , S 0] is a minimum cut in G(d). Let x′ be a feasible flow in G′(d′) obtained by setting x ij' = xij for each arc (i, j) ∈ A\ ( S 0 , S0) . Then the flow x′ saturates the cut [S0 , S 0] in G′(d′) and hence [S0 , S 0] is a minimum cut in G′(d′). Now suppose that [S0 , S 0] is a minimum cut in G′(d′) and the flow x′ saturates it. Let x be the flow in the network G(d) obtained from x′ by setting xij = x ij' for each arc (i, j) ∈ A\ ( S 0 , S0) and xij = 0 for each (i, j) ∈ ( S 0 , S0) . It is easy to see that the flow x saturates the cut [S0 , S 0] in G(d) and therefore [S0 , S 0] ♦
is a minimum cut in G(d). Theorem 1.
If the capacity vector d′ is an optimal solution for the inverse problem for G′, then the
capacity vector d* is an optimal solution for the inverse problem for G, where d*ij = dij' for each arc (i, j)
∈ A| ( S 0 , S 0 ) and d*ij = uij for each arc (i, j) ∈ ( S 0 , S 0 ) . Proof. Suppose that the arc capacity vector d′ is optimal for the inverse problem for G′. Let d*ij = dij' for each arc (i, j) ∈ A\ ( S 0 , S0) and d*ij = uij for each arc (i, j) ∈ ( S 0 , S0) . Observe that ||d* – u||1 = ||d′ – u′||1. Hence the optimal objective function value of the inverse problem for G is at most the optimal objective function value for the inverse problem for G′. Now suppose that d* is optimal for the inverse
3
problem for G. Let dij' = d*ij for each arc (i, j) ∈ A\ ( S 0 , S0) . Then by Lemma 1, d′ is inverse feasible for G′. Moreover, ||d′ – u′||1 ≤ ||d* – u||1 and so the optimal objective function value for the inverse problem for G is at least the optimal objective value for the inverse problem for G′. ♦ Theorem 1 allows us to solve the inverse problem for G by solving the inverse problem for G′. Before explaining how to solve the inverse problem for G′, we introduce a new term and establish one more lemma. Let Excess(S, d′) be the capacity of the cut [S, S] in G′ with respect to capacity vector d′ minus the maximum s-t flow in G′ with respect to d′. Thus d′ is inverse feasible for G′ if and only if Excess(S0, d′) = 0. Lemma 2. The optimal objective function value to the inverse minimum cut problem for G′ is at least Excess(S0, u′). Proof. Let [S' , S'] be a minimum cut in G′(u′). Then, Excess(S0, u′) is the capacity of the cut [S, S] minus the capacity of the cut [S' , S' ] . Alternatively,
∑ (i, j)∈(S0 , S0)\(S' , S')
u'ij -
∑ (i, j)∈(S' , S')\(S0 , S0)
u'ij = Excess(S0, u′)
(1)
Let d′ be an optimal solution to the inverse problem for G′. Then, the cut (S0 , S0) is a minimum cut in G′(d′). Consequently,
∑ (i, j)∈(S' , S')\(S0 , S0)
d ij' -
∑ (i, j)∈(S0 , S0)\(S' , S')
d ij' ≥ 0.
(2)
Adding (1) and (2) yields
∑ (i, j)∈(S0 , S0)\(S' , S')
(u'ij − dij' ) +
∑ (i, j)∈(S' , S')\(S0 , S0)
(d ij' − u ij' ) ≥ Excess(S0, u′),
(3)
or, alternatively,
∑ (i, j)∈(S0 , S0)\(S' , S')
|| dij' − u'ij || 1 +
∑ (i, j)∈(S' , S')\(S0 , S0)
|| dij' − u'ij || 1 ≥ Excess(S0, u′).
(4)
It follows from (4) that ||d′ – u′||1 ≥ Excess(S0, u′), thereby establishing the lemma. Theorem 2. The optimal value to the inverse minimum cut problem for G′ is Excess(S0, u′). Proof. Let x′ be a maximum s-t flow in G′(u′). Let dij' = x ij' for each arc (i, j) ∈ [S0 , S 0] , and dij' = uij for each arc (i, j) ∈ A\ [S0 , S 0] . Note that the flow x′ saturates the cut [S0 , S 0] in G(d′), and hence d′ is
4
inverse feasible. Also note that ||d′ – u′|| = Excess(S0, u′), and so by Lemma 2, the capacity vector d′ is optimal for the inverse problem. ♦ We have explained in Theorem 1 how can we obtain an optimal solution d′ for the inverse problem for G′ into an optimal solution d* for G. We have thus shown that the inverse minimum cut problem reduces to solving a maximum flow problem. Currently, the fastest strongly polynomial bound to solve the maximum flow problem is O(nm log(n2/m)) and is due to Goldberg and Tarjan [1986]. The best weakly polynomial bound to solve the maximum flow problem is O(min{n2/3, m1/2}m log(n2/m) log U) and is due to Goldberg and Rao [1997]. Our algorithm developed in this section is the same as obtained by Zhang and Cai [1998] and Ahuja and Orlin [1998]; however, our proof is based on arguments involving combinatorial properties of the max flow and min cut. We point out that the weighted version of the inverse minimum cut problem cannot be transformed to a maximum flow problem; in fact, it is a minimum cost flow problem (Zhang and Cai [1998] and Ahuja and Orlin [1998]).
3. THE MINIMAX INVERSE MINIMUM CUT PROBLEM In this section, we study the unit weight minimax inverse minimum cut problem. In this problem, the objective is to modify the capacity vector u to d* so that the s-t cut [S0 , S 0] becomes a minimum cut in the network G and max{| d *ij – uij|: (i, j) ∈ A} is minimum. We will show that if all arc capacities are
integer, then we can solve the minimax inverse minimum cut problem as a sequence of O(log(nU)) minimum cut problems. We will use the same notation in this section as used in Section 2. To solve the inverse problem, we first delete the backward arcs in the cut [S0 , S 0] and denote the resulting network by G′. Theorem 1 allows us to solve the inverse problem for G by solving it for G′. We next obtain a minimum cut [S* , S *] in G′ by solving a maximum flow problem. If u′ [S0 , S 0] = u′ [S* , S *] , then [S0 , S 0] is also a minimum cut in G′ and d* = c; otherwise, arc capacities must be modified. Suppose that the optimal objective function value of the minimax inverse minimum cut problem is δ′, that is, ||d′ - u||∞ = δ′. Observe that there exists an optimal solution of the inverse problem where the modified capacity dij' of each arc (i, j) ∈ (S0 , S 0) satisfies dij' = max{0, uij - δ′} and the modified capacity dij' of each arc (i, j) ∉ (S0 , S 0) satisfies dij' = uij + δ′. To see this, notice that (i) if dij' > max{0, uij - δ′} for some arc (i, j) ∈ (S0 , S 0) , then we can decrease dij' to (uij - δ′) and [S0 , S 0] remains a minimum cut in G′, and (ii) if dij' < uij + δ′ for some arc (i, j) ∉ (S0 , S 0) , then we can increase dij' to (uij + δ′) and (S0 , S 0) remains a minimum cut in G′; in either case the objective function value of the inverse problem, ||d′ - u||∞, does not increase. Let G′(δ) denote the network obtained from G′ by defining the arc capacities in the following manner: 5
d ij (δ ) =
R|max{0, uij − δ} S|u + δ T ij
for each arc ( i, j) ∈ (S0 , S 0 ), for each arc (i, j) ∉ (S0 , S 0 ).
Each value of δ for which [S0 , S 0] is a minimum cut in G′(δ) gives an inverse feasible capacity vector d(δ). Let F(δ) be the capacity of the cut [S0 , S 0] in G′(δ) minus the capacity of the minimum cut. The minimax inverse problem is to find the minimum value of δ, say δ′, for which F(δ) = 0. It is easy to see that F(δ) > 0 for all δ < δ′, and F(δ) = 0 for all δ ≥ δ′. Accordingly, one may use binary search in the interval [0, U] to determine the value of δ′. We now claim that δ′ is a rational number whose denominator is at most 2m. If the claim is true, we may terminate the binary search when the search interval is of length at most 1/(4m2) since such a search interval can contain at most one rational number with denominator at most 2m. This implies that the number of iterations of the binary search is O(log m2U). We now prove the claim. At the minimum value λ′ where F(δ′) = 0, there are two cuts [S0 , S 0] and [S* , S *] that are both minimum cuts. As a function of δ, the capacity of these two cuts are a1 + s1δ and a2 + s2δ, where s1 ≠ s2, and s1 ≥ - m, s2 ≤ m, and all coefficients are integral. Thus a1 + s1δ′ = a2 + s2δ′. Solving for δ′, we obtain a rational number with denominator at most 2m. To summarize, we obtain a bound of log(4m2U) = O(log(nU)) on the number of iterations performed by the binary search algorithm. At each search point, we need to solve a minimum cut problem on a network with n nodes, m arcs, and where arc capacities can be non-integer (but can be made integer by multiplying arc capacities by a number no larger than 4m2). This gives an overall bound of O(T(n, m, m2U) log(nU)) on the running time of the algorithm, where T(n, m, α) is the time needed to solve a minimum cut problem on a network with n nodes, m arcs, and maximum (integer) arc capacity α. Currently, T(n, m, α) = O(nm log(n2/m)), due to Goldberg and Tarjan [1986], is the best strongly polynomial bound, and T(n, m, α) = O(min{n2/3, m1/2}m log(n2/m) log α), α) due to Goldberg and Rao [1997], is the best available weakly polynomial bound. The running time of our algorithm is not strongly polynomial. However, we can use the techniques described in Radzik [1993] to show that we can solve the minimax inverse minimum cut problem by solving O(n) minimum cut problems. This gives a strongly polynomial algorithm to solve the minimax inverse minimum cut problem. Weighted Version
We next study the weighted version of the minimax inverse minimum cut problem. In this problem, the objective function of the inverse problem is to minimize max{wij| dij' – uij|: (i, j) ∈ A} where wij > 0 for each arc (i, j) ∈ A. As in the unit weight case, we delete the backward arcs in [S0 , S0 ] to obtain the network G′. Let δ′ denote the optimal objective function value of the inverse problem. Using arguments similar to the unit weight case, it can be shown that there exists an optimal solution of the
6
inverse problem where dij' = max{0, uij - δ′/wij} for every arc (i, j) ∈ (S0 , S0 ) and dij' = uij + δ′/wij for every arc (i, j) ∉ (S0 , S0 ) . We define the network G′(δ) with arc capacities defined in the following manner:
d ij (δ) =
R|max{0, uij − δ /w ij} S|u + δ /w T ij ij
for each arc (i, j) ∈ (S0 , S 0 ), for each arc (i, j) ∉ (S0 , S 0 ).
We next use the binary search for δ in the interval [0, UW] to determine the minimum value δ′ of δ, for which [S0 , S0 ] is a minimum cut in G′ and terminate the binary search when the length of the search interval is less than 1/4m2W2. At termination, d′ = d(δ′). The running time of this method is O(T(n, m, m2W2U) log(nUW)), where T(n, m, α) is the time needed to solve a minimum cut problem with n nodes, m arcs, and maximum arc capacity α. The running time of our algorithm is again not strongly polynomial. However, we can use the techniques described in Radzik [1993] to show that we can solve the minimax inverse minimum cut problem by solving O(m) minimum cut problems.
4. THE INVERSE MINIMUM COST FLOW PROBLEM In this section, we study the inverse minimum cost flow problem. In the minimum cost flow problem on a network G = (N, A), each arc (i, j) ∈ A has an associated cost cij and an associated capacity uij, and each node i has an associated supply/demand b(i). We assume for notational convenience that for 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; otherwise it is a demand node. The problem concerns determining the least cost shipment that meets the demands at demand nodes of the network by the available supplies at the supply nodes by sending a flow that honors arc capacities. In the inverse minimum cost flow problem, we are given a feasible flow x0 which we wish to make an optimal flow by modifying the cost vector c to d* in a manner such that ||c – d*||1 is minimum. For the simplicity of presentation, we shall assume that x0 = 0. There is no loss of generality in this assumption because we can always satisfy it through a transformation of variables. If x0 ≠ 0, then we replace the flow x by y + x0. It is easy to see that in the transformed problem, we want to make y0 = 0 as an optimal solution of the minimum cost flow problem by perturbing the arc costs. Our approach relies on the concept of the residual network G(x0) defined with respect to a given flow x0. To construct it, we consider each arc (i, j) ∈ A one by one, and add arcs to G(x0) in the following manner: (i) if x 0ij < uij, then we add the arc (i, j) of cost cij to A(x0); (ii) if x 0ij > 0, then we add the arc (j, i) with cost –cij; and (iii) 0 < x 0ij < uij, then we add the arcs (i, j) and (j, i) with costs cij and –cij respectively. We also use the following well known result from the network flow theory.
7
Property 2. The flow x0 is an optimal flow of the minimum cost flow problem if and only if the residual network G(x0) contains no negative cycles (that is, negative cost directed cycles).
It is easy to see that for x0 = 0, G(x0) = G. We shall henceforth refer to G(x0) by G. Property 2 implies that x0 is an optimal flow in G if and only if G contains no negative cost cycle. Let π be any vector of size n and cijπ denote the arc reduced costs defined as cijπ = cij - πi + πj. The following property follows from this definition. Property 3. For any directed cycle W in G, Σ(i,j)∈W cijπ = Σ(i,j)∈W cij. Consequently, if cijπ ≥ 0 for each arc (i, j) ∈ A, then G does not contain any negative cycle. Theorem 3. Let v* be the minimum cost of a collection of arc disjoint cycles in G. Then –v* is the optimal objective function value for the inverse minimum cut problem. Proof. Let W = {W1, W2, … , WK} denote any collection of arc-disjoint negative cycles in the network
G. Let c(WK) denote the cost of the cycle Wk, that is, c(WK) = the collection, that is, c(W) =
∑K k=1c(Wk ) .
Σ(i,j)∈Wk cij, and c(W) denote the cost of
Observe that in an optimal cost vector d*, the sum of the
costs of arcs in any cycle Wk must increase by at least -c(WK) units in order to eliminate this negative cycle. Hence
Σ(i,j)∈Wk | d*ij
- cij| ≥ - c(WK).
(5)
Since all the cycles W1, W2, … , WK are arc-disjoint, it follows from (5) that ||d* - c||1= Σ(i,j)∈A || d*ij - cij||1 ≥
∑ kK=1∑ (i, j)∈Wk || d*ij − cij ||1
K
≥ - ∑ k=1c(Wk ) = -c(W),
(6)
establishing that - c(W) is a lower bound on || d* - c ||1. Thus, – v* ≤ || d* - c ||1. We will next establish that this lower bound is achievable, which will prove the theorem. * Suppose that W* = { W1* , W2* , ... , WK } is a minimum cost collection of arc-disjoint cycles in G with total cost equal to v*. This collection defines a flow in a unit capacity network (that is, the network where each arc has capacity equal to 1) obtained by setting xij = 1 for each arc (i, j) ∈ W* and xij = 0 for
each arc (i, j) ∉ W*. By the duality theory for the minimum cost flow problem, there exists a vector π of optimal dual variables, and arc reduced costs cijπ = cij - πi + πj so that cijπ ≤ 0
for all (i, j) ∈ W*,
(7a)
cijπ ≥ 0
for all (i, j) ∉ W*.
(7b)
8
Let d*ij = cij - cijπ for (i, j) ∈ W*, and let d*ij = cij otherwise. Then, (i) for any arc (i, j) ∈ W*, d*ij -
π(i) + π(j) = (cij - cijπ ) - π(i) + π(j) = cijπ - cijπ = 0, and (ii) for all any arc (i, j) ∉ W*, d*ij - π(i) + π(j) = cij π(i) + π(j) = cijπ ≥ 0 (from (7b). We thus observe that with respect to the arc cost vector d*, the reduced cost of each arc (i, j) ∈ A is nonnegative, and from Property 3, the flow x0 = 0 is an optimal solution, establishing that d* is inverse feasible. Moreover, ||d* - c||1 = -Σ(i,j)∈W* cijπ = −
K
∑ k =1 ∑ (i,j)∈Wk*
cijπ = −
K
∑ k =1 ∑ (i,j)∈Wk*
cij = -c(W) = - v*,
(8)
where the first equality follows from the manner we define d*, the second equality follows from the fact * that W = { W1* , W2* , ... , WK }, the third equality follows from Property 3, and the fourth equality follows
from the definition of W*, and the fourth equality follows from the fact that c(W*) = v*. The fact |d* - c| = -c(W*) in view of (6) implies that d* is an optimal cost vector for the inverse minimum cost flow problem.♦ Recall that we assumed at the beginning of the section that for any pair of nodes i and j in G, both (i, j) and (j, i) are not present in A. We also assumed that x0 = 0 and to satisfy this assumption, we needed to perform a transformation of variables. This transformation would create some pairs of nodes i and j, both the arcs (i j) and (j, i). We need to ensure that in this case dij = -dji, since the pair (i, j) and (j, i) refers to same arc in G. Now notice that in our algorithm, we change arc costs of those arcs only that have cijπ < 0. Also notice that if cijπ < 0, then cπji > 0. Consequently, we change only one arc cost in the pair, and count it just once in our objective. But when cij changes then cji must also change too by an equal and opposite amount. If an arc cost cij changes, its modified reduced cost becomes zero, and so the modified reduced cost of the arc (j, i), and the solution continues to satisfy the optimality condition. This point also applies to the inverse minimum cost flow problem under the L∞ norm considered in the next section. To summarize, we have reduced the inverse minimum cost flow problem into a minimum cost flow problem in a unit capacity network. This result was first established by Zhang and Liu [1996] and was also obtained by Ahuja and Orlin [1998]. We obtain a different proof of the same result. The minimum cost flow problem in a unit capacity network is in general easier to solve than the general minimum cost flow problem. Using the successive shortest path algorithm, this minimum cost circulation problem can be solved in O(m(m + n log n)) time (see, for example, Ahuja, Magnanti, and Orlin [1993]). Using the cost scaling algorithm, this minimum cost circulation problem can be solved in O(min{n5/3, m3/2}log(nC)) time, using the algorithm due to Gabow and Tarjan [1989].
5. THE INVERSE MINIMUM COST FLOW PROBLEM UNDER THE L∞ NORM In this section, we study the minimax inverse minimum cost flow problem. In this problem, our objective is to modify the cost vector c to d* so that the given solution x0 becomes a minimum cost flow in G and max{| dij* – cij|: (i, j) ∈ A} is minimum. We will subsequently refer to the objective function of
9
this inverse problem by ||d* - c||∞. We will show that the minimax inverse minimum cost flow problem reduces to solving a minimum mean cycle problem in the residual network G(x0) = (N, A(x0)). As in Section 4, we will assume that x0 = 0, and if not the necessary transformation has been done to satisfy this assumption. Under this assumption, G(x0) = G, and our objective is to change arc costs in G so that G does not contain any negative cost cycles. For any directed cycle W, we denote by c(W) the cost of this cycle; that is, c(W) = ∑ (i, j)∈W cij . Clearly, if G does not contain any negative cost cycle with c as the arc cost vector, then d* = c; otherwise, arc costs must be modified to eliminate such negative cycles. We will henceforth assume that G contains a negative cost cycle. Let W* be a minimum mean cycle in G, that is, a directed cycle in G for which the mean cost given by c(W)/|W| is minimum among all directed cycles W in the network. Let µ* = c(W*)/|W*|. By our assumption, µ* < 0. The following property is well known for the minimum mean cycle problem (Karp [1978] and Karp and Orlin [1981]): Property 4. Let W* be a minimum mean cycle in G, and µ* denote its mean cost. Then there exists a vector π of node potentials so that cijπ = µ* for each arc (i, j) ∈ W, and cijπ ≥ µ* for each arc (i, j) ∉ W. Theorem 4. Let µ* denote the mean cost of a minimum mean cycle in G. Then, the optimal objective function value for the inverse minimum cost flow problem under the L∞ norm is max(0, -µ*), Proof. We solve the minimum mean cycle problem in G and choose π as in Property 4. If µ* ≥ 0, then x0 = 0 is an optimum flow in G and the theorem is true. Suppose instead that µ* < 0, and W* is the minimum mean cycle in G. Let λ* be the optimum solution to the minimax inverse problem. We first claim that λ* ≥ -µ*. For, if we reduce the cost of each arc by an amount greater than -µ*, then W would become a negative cycle and x0 = 0 would not be an optimal flow in G. Hence, λ* ≥ -µ*.
We now claim that there exist a vector d* with ||d* – c||∞ = -µ* such that x* is optimal with respect to d*. Select d*ij = cij - cijπ if cijπ < 0, and d*ij = cij otherwise. Observe that we decrease costs of only those arcs that have negative reduced costs and by an amount equal to cijπ . Also observe from Property 4 that - cijπ = -µ* for each arc (i, j) ∈ W* and - cijπ ≤ -µ* for each arc (i, j) ∉ W*. It follows from these observations that ||d* – c||∞ = -µ*. Finally, using the same arguments as in Theorem 3, it can be shown that x0 is optimal with respect to d*. This establishes that d* is an optimal solution of the minimax inverse minimum cost flow problem. ♦ To summarize, we have shown above that the minimax inverse minimum cost flow problem reduces to solving a minimum mean cycle problem. Currently, the best available strongly polynomial time algorithm to solve the minimum mean cycle problem is an O(nm) algorithm due to Karp [1978], and the best available weakly polynomial time algorithm is an O( n m log(nC)) algorithm due to Orlin and Ahuja [1992].
10
Weighted Version
We next study the weighted version of the minimax inverse minimum cost flow problem. In this problem, the objective function of the inverse problem is to minimize max{wij| dij* – cij|: (i, j) ∈ A},
where wij > 0 for each (i, j) ∈ A. As earlier, we will assume that x0 = 0 and the graph G contains a negative cost directed cycle. Consider any negative cycle W in G. Let c(W) denote the cost of this cycle. Then, in an optimal cost vector d*, costs of the arcs in the cycle W must increase by at least –c(W) units in order to eliminate this negative cycle. Suppose that we increase the cost of an arc (i, j) ∈ W by αij units. Then, Σ(i,j)∈W αij ≥ -c(W). The impact of this change on the objective function value will be max{wijαij: (i, j) ∈ W}. This
impact will be minimum when each wijαij is the same for every arc (i, j) ∈ W, say, wijαij = T. Substituting this result in Σ(i,j)∈W αij ≥ -c(W) yields Σ(i,j)∈W T/wij ≥ -c(W), which can be restated as T ≥ -c(W)/τ(W), where τ(W) =
Σ(i,j)∈W τij with τij = 1/wij.
We thus observe that each negative cycle W
provides a lower bound of -c(W)/τ(W) on the optimal solution value of the inverse problem. Let W* denote a directed cycle in G with the smallest value of c(W)/τ(W); we call such a cycle the minimum costto-weight ratio cycle. Let µ* = c(W*)/τ(W*). Then, -µ* gives the greatest lower bound on the optimal objective function value of the inverse problem. While solving the minimum cost-to-weight ratio cycle in G(x0) with cij's as arc costs and τij's as arc weights, we obtain both µ* and a vector π so that - cijπ /τij ≤ -µ* for every arc (i, j) ∈ A. We define the arc cost vector d* as d*ij = cij - cijπ if cijπ < 0, and d*ij = cij otherwise. Using similar arguments as in the unit weight case, it can be shown that d* is an optimal cost vector for the weighted minimax inverse minimum cost flow problem in G. Consequently, the weighted minimax inverse minimum cost flow problem can be solved by solving a minimum cost-to-weight ratio cycle problem. The minimum cost-to-weight ratio problem can be solved in O(nm log(nCW)) time using Lawler's algorithm, or in O(n4 log n) time using Meggido's [1979] algorithm, where C = max{|cij| : (i, j) ∈ A} and W = max{|wij| : (i, j) ∈ A}. It can also be solved in O( n m log2(CW)) time using Goldberg's [1995] shortest path algorithm.
ACKNOWLEDGEMENTS We thank the referees and the Associate Editor for their detailed and insightful comments that helped to improve the presentation and to remove some subtle bugs. We also acknowledge the help of Don Wagner who raised some perceptive and fundamental questions that led to the pursuit of the research reported in this paper. The first author gratefully acknowledges the support from the National Science Foundation Grant DMI-9900087 and the second author acknowledges the support from the Office of Naval Research under contract ONR N00014-98-1-0317 as well as the National Science Foundation Grant DMI-9820998.
11
REFERENCES Ahuja, R. K., T. L. Magnanti, and J. B. Orlin. 1993. Applications, Prentice Hall, NJ.
Network Flows: Theory, Algorithms, and
Ahuja, R. K., and J. B. Orlin. 1998. Inverse optimization. Working Paper, Sloan School of Management, MIT, Cambridge, MA. To appear in Operations Research. Gabow, H. N., and R. E. Tarjan. 1989. Faster scaling algorithms for network problems. SIAM Journal on Computing 18, 1013-1036. Goldberg, A. V. 1995. Scaling algorithms for the shortest path problem. SIAM Journal on Computing 24, 494-504. Goldberg, A. V., and S. Rao. 1997. Length function for flow computation. Technical Report # 97-055, NEC Research Institute, 4 Independence Way, Princeton, NJ. Goldberg, A. V., and R. E. Tarjan. 1986. A new approach to the maximum flow problem. Proceedings of the 18th ACM Symposium on the theory of Computing, pp. 136-146. Full paper in Journal of ACM 35(1990), 873-886. Karp, R. M. 1978. A characterization of the minimum cycle mean in a diagraph. Discrete Mathematics 23, 309-311. Karp, R. M., and J. B. Orlin. 1981. Parametric shortest path algorithms with an application to cyclic staffing. Discrete Applied Mathematics 3, 37-45. Lawler, E. L. 1966. Optimal cycles in doubly weighted linear graphs. In Theory of Graphs: International Symposium, Dunod, Paris, and Gordon and Breach, New York, pp. 209-213. Meggido, N. 1979. Combinatorial optimization with rational objective functions. Mathematics of Operations Research 4, 414-424. Orlin, J. B., and R. K. Ahuja. 1992. New scaling algorithms for the assignment and minimum cycle mean problems. Mathematical Programming 54, 41-56. Radzik, T. 1993. Parametric flows, weighted means of cuts, and fractional combinatorial optimization. In Complexity in Numerical Optimization, edited by P. Pardalos, World Scientific, pp. 351-386. Yang, C., J. Zhang, and Z. Ma. 1997. Inverse maximum flow and minimum cut problem. Optimization 40, 147-170. Zhang, J., and M. Cai. 1998. Inverse problem of minimum cuts. ZOR Mathematical Methods of Operations Research 48, 51-58. Zhang, J., and Z. Liu. 1996. Calculating some inverse linear programming problem. Journal of Computational and Applied Mathematics 72, 261-273.
12