Combinatorial Algorithms for Inverse Network Flow ... - ResearchGate
Combinatorial Algorithms for Inverse Network Flow ... - ResearchGate
Combinatorial Algorithms for Inverse Network Flow ... - ResearchGate
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