• No results found

Diagnosing Infeasibilities in Network Flow Problems

N/A
N/A
Protected

Academic year: 2021

Share "Diagnosing Infeasibilities in Network Flow Problems"

Copied!
17
0
0

Loading.... (view fulltext now)

Full text

(1)

Problems

Charu C. Aggarwal Operations Research Center,

Massachusetts Institute of Technology, MA 02139, USA

Ravindra K. Ahuja

Dept. of Industrial & Management Engg. Indian Institute of Technology,

Kanpur - 208016, INDIA

Jianxiu Hao GTE Laboratories, Waltham, MA 02154, USA

James B. Orlin

Sloan School of Management, Massachusetts Institute of Technology,

(2)

Problems

Charu C. Aggarwal, Ravindra K. Ahuja, Jianxiu Hao, and James B. Orlin

ABSTRACT

We consider the problem of finding a feasible flow in a directed G = (N, A) in which each node i ∈ N has a supply b(i), and each arc (i, j) ∈ A has a zero lower bound on flow and an upper bound uij. It is well known that this feasibility problem can be transformed into a maximum flow problem. It is also well known that there is no feasible flow in the network G if and only if there is a subset S of nodes such that the net supplies of the nodes of S exceeds the capacity of the arcs emanating from S. Such a set S is called a "witness of infeasibility" (or, simply, a witness) of the network flow problem. In the case that there are many different witnesses for an infeasible problem, a small cardinality witness may be preferable in practice because it is generally easier for the user to assimilate, and may provide more guidance to the user on how to identify the cause of the infeasibility. Here we show that the problem of finding a minimum cardinality witness is

NP

-hard. We also consider the problem of determining a

minimal witnesses, that is, a witness S such that no proper subset of S is also a witness. In this paper, we

show that we can determine a minimal witness by solving a sequence of at most n maximum flow problems. Moreover, if we use the preflow-push algorithm to solve the resulting maximum flow problems and organize computations properly, then the total time taken by the algorithm is comparable to that of solving a single maximum flow problem. This approach determines a minimal cardinality witness in O(n3) time using simple data structures and in O(nm log(n2/m)) time using the dynamic tree data structures.

(3)

An important area in the analysis of linear programming problems is that of detecting infeasibilities. In particular, given a set of linear inequalities, we would like to know whether this system is feasible or not. Further, once it is known that the system is infeasible, one may need to isolate the cause of the infeasibility even further; that is, we would like to find a small subsystem of equations for the linear programming problem, that forms an infeasible system. In general, it is NP-hard to find a minimum infeasible subsystem of equations for a linear programming problem; however, it is possible to find in polynomial time a minimal irreducible subsystem of equations which forms an infeasible subsystem in itself, and such that no subset of it is infeasible (see, for example, Van Loon [1981] and Chinneck and Dravnieks [1991).

In this paper, we shall consider this problem in the context of network flows. Diagnosing infeasibilities for network flow problems was first studied by Greenberg [1988, 1993]. The advantage in considering this particular case is that we can make use of the nice structure of the network flow problem in order to come up with fast combinatorial methods for solving it. Here, we consider a network flow problem defined on a directed network G = (N, A) with n = |N| and m = |A|. The supply/demand of a node i ∈ N is b(i), where a positive value indicates a supply and negative value indicates a demand. The capacity of each arc (i, j) ∈ A is uij, and the lower bound on each arc flow is zero.

The network feasibility problem we study is to determine whether the following set of mass balance and flow bound constraints admits a feasible flow x:

{j:(i,j)∈A}

xij -

{j:(j,i)∈A}

xji = b(i), for all i ∈ N, (1a)

0 ≤ xij ≤ uij , for all (i, j) ∈ A. (1b)

Let S ⊂ N be any proper subset of the node set N and let S- denote its complement, that is, S- ≡ N/S. Let b(S) =

Σ

iS b(i) and u[S, S- ] =

Σ

{(i, j)A: iS, iS- } uij. It is well known (see, for example, Gale [1957], and Ahuja, Magnanti and Orlin [1993]) that (1) admits a feasible flow if and only if

b(S) ≤ u[S, S- ]

for every proper subset S of nodes. Equivalently, (1) is infeasible if there exists a proper subset S of the node set N satisfying

b(S) > u[S, S- ]. (2)

Such a subset S of nodes is called a witness of infeasibility (or, simply a witness). It is intuitively obvious that a network having such a property would not be feasible because the net supply

(4)

on the set S of nodes has to escape from S through the arcs directed from S to S- and the sum of the capacities of these arcs should be at least b(S). While all witnesses are equally valid in proving that a network flow problem is infeasible, not all of them provide an equal amount of guidance to the user of a modeling system. This point is well articulated by Greenberg [1993] who writes - "I say that a witness offers a good diagnosis if the information from the witness provides a useful starting point, where we need only a modest amount of additional analysis to form a complete diagnosis that correctly identifies the cause".

As described by Greenberg, one of the features of a witness that is particularly relevant to its use in diagnosis is its cardinality. In general, the smaller the witness, the more easily a user can analyse it. The larger the witness, the more difficult it is for a user to comprehend its cause. In this paper, we shall focus on the size of the witness. We show in this paper that determining a minimum cardinality witness is an

NP

-hard problem. We establish this result by reducing a special case of the clique problem to the minimum cardinality witness problem.

We next focus on the minimal cardinality witness problem defined as follows. We call a set S' ⊆ S a subwitness of S if S' is also a witness. We call a witness S minimal if no proper subset of S is a subwitness, that is, S has no proper subwitnesses. We show that we can determine a minimal witness by solving a sequence of at most n maximum flow problems, and if we use the preflow-push algorithm to solve the resulting maximum flow problems and organize computations properly, then the total time taken by the algorithm is comparable to that of solving a single maximum flow problem. This approach solves the minimal cardinality witness problem in O(n3) time using simple data structures and in O(nm log(n2/m)) time using dynamic tree data structures. Our approach uses some of the concepts and ideas contained in Hao and Orlin's [1992] algorithm for the minimum cut problem. Gallo, Grigoriadis and Tarjan [1989] used a related approach for a fast solution of a parametric maximum flow problem.

2. PRELIMINARIES

In this section, we present some elementary results that will be used in developing the minimal witness algorithm.

Single-Source Single-Sink Assumption

We shall solve the minimal witness problem in a network which has exactly one supply node and exactly one demand node. The following lemma shows that there is no loss of generality in this assumption.

Lemma 1. Let G = (N, A) be a network with arbitrary supplies/demands. Then there exists a network

G0 = (N0, A0) with exactly one supply node s and exactly one demand node t such that there is one-to-one correspondence between witnesses in G and witnesses in G0.

(5)

Proof. We augment the network G by introducing two new nodes s and t. For each node i ∈ N with b(i) > 0 we add an arc (s, i) with capacity b(i), and for each node i ∈ N with b(i) < 0 we add an arc (i, t) with capacity -b(i). Let G0 = (N0, A0) denote the augmented network and b0 and u0 respectively denote the node supply/demand and arc capacity vectors. In G0 , we define b0(s) = -b0(t) =

Σ

{iN : b(i) > 0} b(i), and b0(i) = 0 for all i ∈ N0 - {s, t}.

Let S ⊂ N be a subset of nodes such that s ∈ S and t ∉ S-. Let S0 = S∪{s}. Further, let b+(S) =

Σ

{i∈S : b(i) > 0} b(i), and b-(S) =

Σ

{i∈S : b(i) < 0} b(i). It can be easily verified that (i) b(S) = b+(S) - b-(S); (ii) b0(S0) = b0(s) = b+(S) + b+(S- ); and (iii) u[S0, S- 0] = u[S, S- ] + b+(S- ) + b-(S). Subtracting (iii) from (ii) and using (i) yields: b0(S0) - u0[S0, S- 0] = b(S) - u[S, S- ]. It now follows from the definition of the witness given in (2) that S is a witness in G if and only if S0 is a witness in G0. ♦

We shall henceforth assume that the network G, in which the minimal witness problem is to be solved, has a single supply node s and a single demand node t. We call node s as the source node, and node t the sink node. As earlier, the supply available at the source node is b(s) and the demand of the sink node is also b(s).

We shall also henceforth assume that the network flow problem is infeasible, that is, G contains a witness. There is no loss of generality in this assumption since the presence of a witness in G can be discovered by solving a maximum flow problem. If v denotes the value of the maximum flow from node s to node t in G, then the network G contains a witness if and only if v < b(s).

Cuts and s-t Cuts

A cut is a partition of the node set N into two nonempty subsets S and S- ≡ N - S. We represent this cut by [S, S- ]. Alternatively, we can define a cut as the set of arcs whose endpoints belong to the different subsets S and S- . We call a cut [S, S- ] an s-t cut if s ∈ S and t ∈ S-. Observe that each witness S must define an s-t cut [S, S- ] because the witness S must have b(S) > 0 and this is possible only if s ∈ S and t ∈ S- . Therefore, cuts considered in this paper are invariably s-t cuts.

Let (S, S- ) denote the set of forward arcs in the cut [S, S- ] (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 and j ∈ S}). We define the capacity of the cut [S, S- ] to be u[S, S- ] =

Σ

(i, j) (S, S- ) uij.

Preflows

Since we assume that the network G contains a witness, it follows that G does not admit any feasible flow x. However, it admits preflow which is a relaxation of flow. A preflow x satisfies the flow bound constraints (1b) and the following relaxation of (1a):

(6)

b(i) +

{j:(j,i)∈A}

xji -

{j:(i,j)∈A}

xij≥ 0, for all i ∈ N - {t}. For a given preflow x, we define the excess of each node i ∈ N as

e(i) = b(i) +

{j:(j,i)∈A}

xji -

{j:(i,j)∈A}

xij. (3)

In a preflow x, e(i) ≥ 0 for each node i ∈ N/{t} but e(t) can be negative. We refer to a node with (strictly) positive excess as an active node and adopt the convention that the sink node is never active.

Residual Network

The concept of residual networks plays a central role in our algorithm. Given a preflow x, the

residual capacity rij of any arc (i, j) ∈ A is the maximum additional flow that can be sent from node i to node j using the arcs (i, j) and (j, i), and is defined as rij = (uij - xij) + xji. We refer to the network G(x) consisting of the arcs with positive residual capacities as the residual network (with respect to the flow x). For any set S of nodes, let r[S, S-] =

Σ

(i, j)(S, S-

) rij. We give below an alternate definition of witnesses.

Property 1. A set S of nodes is a witness if and only if for any preflow x, e(S) > r[S, S- ].

Proof. Let x be any preflow in G. Summing (3) for all i ∈ S yields e(S) = b(S) +

{j:(j,i)∈A}

xji -

{j:(i,j)∈A}

xij. (4)

Adding

Σ

(i, j) (S, S- ) uij= u[S, S- ] to both sides of (4) and using rij = (uij - xij) + xji yields e(S) + u[S, S- ] = b(S) + r[S, S- ] , which can be restated as e(S) - r[S, S- ] = b(S) - u[S, S- ] . It follows from this equation that S is a witness, that is, b(S) > u[S, S- ], if and only if e(S) > r[S, S- ]. ♦

Strong Witness

A pair (S, x), where S is a set of nodes and x is a preflow, is called a strong witness if e(S) > 0 and r[S, S- ] = 0. It follows immediately from Property 1 that if (S, x) is a strong witness, then S is a witness.

3. PREFLOW-PUSH ALGORITHM

Our minimal witness algorithm draws concepts from Goldberg and Tarjan's [1986] preflow-push algorithm; we therefore briefly review this algorithm in this section. Additional details about the algorithm and its proofs can be found in Goldberg and Tarjan [1986], and Ahuja, Magnanti and Orlin [1993].

(7)

The preflow-push algorithm maintains a preflow x at every step. It also maintains a distance label d(i) with each node i with respect to a (target) node w to which flow needs to be sent. The distance labels are said to be v a l i d with respect to a preflow x and the target node w if they satisfy the following validity conditions:

d(w) = 0, (5a)

d(i) ≤ d(j) + 1 for every arc (i, j) in G(x). (5b)

We call an arc (i, j) in G(x) admissible if d(i) = d(j) + 1. Let numb[p] denote the number of nodes in S whose distance labels equal p. We say that the numb array does not contain a gap if the positive entries in the numb array are consecutive; otherwise we say that the numb array contains a gap. We say that the numb array contains a gap at the p-th position if numb[p] = 0, numb[r] > 0 for some r > p, and numb[q] > 0 for some q < p. The numb array allows us to find subwitnesses of S, as indicated by the following property.

Property 2. Suppose that the numb array contains a gap at the p-th position with respect to a preflow x'

and valid distance labels d. Let S' = {i S : d(i) > p}. If e(S') > 0, then (S', x') is a strong witness.

Proof. Observe that d(i) > p for all i ∈ S' and d(j) < p for all j ∉ S'. Thus, for each arc (i, j) ∈ (S', S- '), d(i) > d(j) + 1. Since distance labels satisfy the validity conditions (5b), it follows that in the residual network G(x) (S', S- ') = φ, or r[S', S- '] = 0. Clearly, if e(S') > 0, then (S', x') is a strong witness. ♦

We henceforth assume that the when the preflow-push algorithm is applied, then the numb array does not contain any gap. It follows from Property 2 that if the numb array contains a gap, then S can be replaced by its proper subset S' so that the coresponding numb array has no gap.

We depict an execution of the preflow-push algorithm by

procedure preflow-push(x, S, d, w, success, S'),

which takes as an input a set S of nodes, a preflow x, a node w ∈ S, valid distance labels d(i) from node w, and attempts to send all the excess residing at nodes in S to node w. If the procedure succeeds in its task, then it outputs the final preflow x, success is set to true, and S' is undefined. If the procedure does not succeed in its task, then it outputs a strong witness (S', x) with S' ⊆ S/{w} and success is set to false.

We give an algorithmic description of the preflow-push procedure in Figure 1. The procedure repeatedly selects an active node u in S (other than node w) and applies the procedure push/relabel(u). The procedure push/relabel(u) pushes flow out of node u on admissible arcs, and when no admissible arc emanates from node u, it relabels node u (that is, increases its distance label).

(8)

procedure preflow-push(x, S, d, w, success, S'); begin

success: = true;

while (success = true) and there is an active node u S/{w} do

push/relabel(u);

end;

(a) procedure push/relabel(u);

begin

if the network contains an admissible arc (u, v) then push min{e(u), ruv} units of flow on arc (u, v) else replace d(u) by min{d(v)+1 : (u, v) ∈ A(u) and ruv > 0}; update the array numb;

if numb contains a gap at position d(u) then success = false and S' = {i ∈ S: d(i) > d(u)};

end;

(b)

Figure 1. The preflow-push procedure.

The preflow-push procedure tries to push the excess residing at nodes on S to node w using admissible arcs. We will see in the next section that in all applications of the preflow-push procedure, either S = N or (S, x) is a strong witness. In either case, (S, S- ) = φ in G(x), and no flow can be sent from nodes in S to nodes in S- . Therefore, nodes in S- are completely ignored in the preflow-push procedure. We assume that d(i) = 0 for all i ∈ S- .

The preflow-push procedure terminates according to one of the two following cases:

Case 1. success = true. In this case, the procedure succeeds in sending all the excess residing at nodes in S to node w.

Case 2. success = false. In this case, the procedure identifies a gap in the numb array. Let S' be the set of nodes as defined in the procedure push/relabel. Let node h be the node whose relabeling creates a gap in the numb array. Since the algorithm always examines active nodes and the gap is created by the increase in d(h), it follows that e(h) > 0 and h ∈ S'. Therefore, e(S') > 0. Property 2 implies that (S', x) is a strong witness. Since d(w) = 0, w ∉ S'; therefore, S' ⊆ S/{w}. To summarize, in this case, the preflow-push procedure discovers a subwitness S' of S not containing node w.

In this paper, we shall use the following properties of the preflow-push procedure, whose proofs can be found in Goldberg and Tarjan [1988], and Ahuja, Magnanti and Orlin [1993].

Property 3. (a) The preflow-push procedure maintains valid distance labels at each step.

(9)

The worst-case running time of the preflow-push procedure depends on how the active node in S are examined. If the procedure examines the active nodes in S in the first-in first-out order, then the procedure runs in O(n3) time. If the procedure always examines an active node with the highest distance label in S, then the procedure runs in O(n2 m) time. Using the dynamic tree data structure, both the procedures can be implemented in O(nm log (n2/m)) time.

4. THE MINIMAL WITNESS ALGORITHM

In this section, we describe an algorithm to identify a minimal witness in a network. We show that we can identify a minimal witness by solving a sequence of at most n maximum flow problems. An improved implementation of this algorithm will be described in the next section.

Our minimal witness algorithm always maintains a strong witness (S, x). The algorithm obtains the initial strong witness by solving a maximum flow problem. Let x be a maximum flow in G and [S, S- ] be a minimum cut in G. It can be easily verified that x is a preflow in G and (S, x) is a strong witness (because, by our earlier assumption (1) does not possess a feasible flow). The set S is a witness but may not be a minimal witness, that is, it may contain proper subwitnesses. We say that a node i is

compulsory in the witness S if every subwitness of S contains node i. The following property is

immediate from this definition and the definition of minimal witness.

Property 4. A witness S is a minimal witness if every node of S is compulsory. ♦ Given a strong witness (S, x), our algorithm examines each node w ∈ S one by one and checks whether node w is compulsory or not. If node w is not found to be compulsory, then the algorithm obtains a set S' ⊆ S/{w}, which then replaces S. The algorithm terminates with a set S in which every node is compulsory. The algorithm uses the following two properties to determine the correct status of nodes.

Property 5. Let x be a preflow and S be a set of nodes satisfying e(i) = 0 for every i S. Then S or any of its subset cannot be a witness.

Proof. Let S' ⊆ S. Clearly e(S') = 0 and r[S', S- '] ≥ 0 (because residual capacities of arcs are nonnegative).

It follows from Property 1 that S' cannot be a witness. ♦

Property 6. Let (S, x) be a strong witness and w be the only node in S with positive excess. Then, node w

is a compulsory node in S.

Proof. Since S is a witness, and by Property 5 no subset of S/{w} is a witness, it follows that node w is

compulsory in S. ♦

It is very easy to check whether a node w is compulsory or not. To do so, we apply the procedure

preflow-push(x, S, d, w, success, S'), which attempts to push the excess residing at nodes in S to node w.

(10)

w is a compulsory node. Otherwise, it follows from our discussion in Section 3 that the procedure identifies a strong witness (S', x) with S' ⊆ S/{w}, implying that node w is not a compulsory node.

Figure 2 gives an algorithmic description of the minimal witness algorithm.

algorithm minimal-witness; begin

set S : = N and w: = t;

set x : = 0 and compute valid distance labels d;

preflow-push(x, S, d, w, success, S');

S : = S';

unmark all nodes in S;

while there is an unmarked node in S do begin

select an unmarked node w ∈ S (called target node);

preprocess-I(w);

preflow-push(x, S, d, w, success, S');

if success = true then mark node as compulsory else replace (S, x) by (S', x); end; end; (a) procedure preprocess-I(w); begin set d(w) : = 0;

compute valid distance labels from node w; end;

(b)

Figure 2. The minimal witness algorithm.

The minimal witness algorithm first applies the preflow-push procedure to obtain the initial strong witness (S, x). Observe that |S| ≤ (n-1). Subsequently, in each iteration the algorithm selects a target node w ∈ S, recomputes valid distance labels with respect to node w (by performing a backward breadth-first search from node w), and uses the preflow-push procedure to determine whether node w is compulsory. The algorithm either marks node w as compulsory or strictly reduces the size of S. So overall the preflow-push procedure is applied at most n times. At the termination of the algorithm, the set S is a witness and each node in it is compulsory, implying that the set S is a minimal witness. We have established the following theorem.

Theorem 1. The minimal witness algorithm determines a minimal witness of G by applying the

preflow-push procedure at most n times.

5. THE IMPROVED MINIMAL WITNESS ALGORITHM

In this section, we deveop an improved implementation of the minimal witness algorithm described in the previous section. The running time of the improved implementation is comparable to

(11)

the time taken by a single application of the maximum flow algorithm. The improved algorithm uses two important ideas: (i) an application of the preflow-push procedure reuses the distance labels of the previous application of the procedure; and (ii) it periodically contract the nodes.

Contraction plays a crucial role in the improved minimal witness algorithm. The algorithm occasionally contracts two compulsory nodes into a single node. Contracting two nodes p and q in the residual network G(x) into a single node k consists of the following steps: (i) replace each arc (i, p) or (i, q) by the arc (i, k); (ii) replace each arc (p, i) and (q, i) by the arc (k, i); (iii) eliminate parallel arcs by a single arc with residual capacity (and flow) equal to the sum of the residual capacities (and flows) of the parallel arcs; (iv) set b(k) = b(i) + b(j); (v) set e(k) = e(i) + e(j); and (vi) eliminate loop arcs (that is, arcs of the type (k, k)). Using appropriate data structures, the above steps can be implemented in O(n) time per contraction.

Let Gc = (Nc, Ac) denote the resulting network when two compulsory nodes i and j of S are contracted into a single node k. For any set Q ⊆ N containing nodes i and j, we denote by Qc≡ {k} ∪ Q/{i, j}. The following lemma shows that the contraction of two compulsory nodes does not have any effect on the subwitnesses of a witness.

Property 7. Suppose that nodes i and j are compulsory in a witness S and are contracted into a single node

k. Then R is a subwitness of S if and only if Rc is a subwitness of Sc in Gc.

Proof. Since nodes i and j are compulsory in S, any subwitness R of S must contain nodes i and j. Now observe that b(R) = b(Rc), because b(k) = b(i) + b(j). Also observe that u[R, R- ] = u[Rc, R-c], because for each arc (u, v) ∈ [R, R- ], there is a corresponding arc in [Rc, R- c] with the same capacity. These two observations imply that b(R) > u[R, R- ] if and only if b(Rc) > u[Rc, R- c] establishing the lemma. ♦

The following property can also be easily proved.

Property 8. A node w i or j is compulsory for a witness S of G if and only if w is compulsory

for Sc in Gc.

The improved minimal witness algorithm is the same as the algorithm given in Figure 2 except the following changes:

Change 1. Select an unmarked node in S with the minimum distance label as the target node. Change 2. Replace the procedure preprocess-I by the procedure preprocess-II given below.

procedure preprocess-II(w); begin

for each node i S do d(i): = max{d(i) - d(w), 0};

contract all compulsory nodes with zero distance labels into a single node; end;

(12)

Change 3. At the termination of the algorithm, expand the contracted (compulsory) nodes to obtain a minimal witness in G.

It is easy to see that none of the changes mentioned above affect the correctness of the minimal witness algorithm except Change 2 in which distance labels are modified. Recall that in the procedure

preprocess-I distance labels are recomputed in each execution. But in the procedure preprocess-II the

distance labels of the previous execution are used after some modification. It is the reuse of the distance labels that leads to the speedup in the running time of the algorithm. However, to show the correctness of the improved minimal witness algorithm we need to show that the procedure preprocess-II preserves the validity of the distance labels.

Lemma 2. The procedure preprocess-II(w) maintains validity of distance labels.

Proof. The procedure preprocess-II(w) modifies distance labes of each node i ∈ S as d(i) = max{0, d(i) -d(w)}. Suppose that we accomplish this change in two stages. In the first stage, we modify them as d'(i) = d(i) - d(w), and in the second stage, we modify them as d"(i) = max{d'(i), 0}. In the first stage, the distance label of each node in S decreases by d(w) units with the distance label of node w becoming zero. It can be easily verified that this change maintains the validity conditions (5b) of all arcs except those in (S, S- ). But since (S, S- ) = φ, validity conditions are satisfied for all arcs. Now consider the second stage. Let R be the set of nodes whose distance labels are increased from negative numbers to zero. Clearly, validity conditions are affected for only those arcs which have one endpoint in R and another not in R. There are two such cases.

Case 1. i ∉ R and j ∈ R. Since (i) d'(i) ≤ d'(j) + 1, (ii) d"(i) = d'(i), and (iii) d"(j) > d'(j), it follows that d"(i) < d"(j) + 1, consistent with (5b).

Case 2. i ∈ R and j ∉ R. Since (i) d"(i) = 0, and (ii) d"(j) ≥ 0, it follows that d"(i) ≤ d"(j) + 1, again consistent with (5b).

The procedure preprocess-II(w) also contracts compulsory nodes with zero distance labels. Since contracted nodes have the same distance label, contraction does not affect the validity of distance

labels. This completes the proof of the lemma. ♦

We next bound the total number of relabels of any node.

JIM! Can you simplify the proof of the following lemma? The proof you suggested was incomplete. It considered only one case.

Lemma 3. In the entire execution of the improved minimal witness algorithm, the preflow-push

(13)

Proof. During the execution of the minimal witness algorithm, distance labels of nodes go up and down. Relabels increase distance labels, and executions of the procedure preprocess-II decrease distance labels. The total increase in the distance label of any node i is bounded by the total decrease in the distance label of the node plus the maximum possible distance label of node i. Since d(i) ≤ n (for otherwise the numb array must contain a gap), it follows that the total increase in the distance label of any node i is bounded by n plus the total decrease. We now obtain a bound on the total decrease in the distance label of any node in the procedure preprocess-II. Consider an execution of the preflow-push procedure in which S is the current witness and w is the target node. Let S0 was the witness and k0 was the target node in the previous iteration.

Case 1. In the previous iteration, success = true. This case occurs when the preflow-push procedure is able to send all the excess on nodes in S0 to node k0 (which has zero distance label). At the termination of the procedure, the numb array does not contain any gap. In the current iteration, node w is a non-compulsory node with the smallest distance label. In this iteration, all non-compulsory nodes j with 0 ≤ d(j) < d(w) are contracted into a single node. Clearly, there are max{0, d(w) - 1} contractions. Thus, in the current iteration, any distance label d(i) decreases by d(w) units, and |S| decreases by max{0, d(w) - 1} units compared to the previous iteration.

Case 2. In the previous iteration, success = false. This case occurs when the preflow-push procedure discovers a gap in the numb array, say, at the h-th place. Then in the current iteration, |S| decreases because (i) all nodes j with 0 ≤ d(j) < d(h) are not present in S, and (ii) all nodes j with d(h) < d(j) < d(w) are contracted into a single node. It is easy to see that there are at least max{0, d(w) - 1} contractions.

The above case analysis shows that, if in an iteration node w is the target node, then distance label d(i) of any node i decreases by d(w) units and |S| decreases by at least max{d(w)-1, 0} compared to the previous iteration. Since |S| can decrease by at most n units and there are at most n iterations, it follows that any d(i) can decrease by at most 2n units in the procedure preprocess-II. This translates into a bound of 3n on the total increase in d(i). Since each relabeling node i increases d(i) by at least one unit, node i will be relabeled at most 3n times, completing the proof of the lemma. ♦

We are now in a position to determine the worst-case complexity of the improved minimal witness algorithm. We have seen earlier that the algorithm performs at most n iterations. Each iteration of the algorithm takes O(n) time plus the time taken by contractions on the preflow-push procedures. Since each contraction takes O(n) time, and there are at most n contractions over all, the total time for contractions is bounded by O(n2). The total time taken by different executions of the preflow-push procedure depends upon the number of relabelings of nodes. As long as each node is relabeled O(n) times, the FIFO implementation of the preflow-push algorithm would take O(n3) time and the highest distance label implementation would take O(n2 m) time. Using the dynamic tree data structures due to Sleator and Tarjan [1983], these implementations can be further sped up. We state

(14)

without proof that these implementations run in O(n2m log(n2/m)) time. We summarize our discussion in this section as follows:

Theorem 2. The improved minimal witness algorithm correctly identifies a minimal witness in a

network (i) in O(n3) time using FIFO implementation, (ii) in O(n2 m) time using the highest distance label implementations; and (iii) in O(nm log(n2/m)) time using the dynamic tree implementation of t h e preflow-push procedure.

6. CONCLUSIONS

We have shown that the problem of determining a minimum cardinality witness in

NP

-hard. In addition, we have shown that the problem of determining a minimal witness can be solved as a sequence of n maximum flow problems, and that the total running time of these n problems is O(nm log(n2/m)), which is comparable to the time needed to solve a single maximum flow problem.

The primary contribution of this paper has been theoretical, that is, the improved worst-case running time for finding a minimal witness. Nevertheless, we are optimistic that the algorithm would perform well in practice. Perhaps the algorithm of this paper could be a core component of a system that permits users to explore different witnesses, with the user specifying certain subsets to be included in or excluded from the witness.

The issue of identifying minimal witnesses also raises questions concerning the interpretation of the witness in the context of the model and the correction of the infeasibilities. Here we only raise the issue since it is well beyond the scope of this paper. Greenberg [1993], who uses the word "isolation" rather than "witness", writes: "An isolation is a portion of the linear program obtained in some purposeful way to contain a probable cause. A diagnosis [of the infeasibility] additionally requires an explanation of an isolation, which can require complex reasoning." We refer the reader to Greenberg [1993] for further discussion on the use of witnesses in diagnoses.

ACKNOWLEDGEMENTS

This research was partially supported by ONR contract N00014-94-1-0099 and also a grant from the UPS foundation.

REFERENCES

Ahuja R. K., T. L. Magnanti, and J. B. Orlin. 1993. Network Flows: Theory, Algorithms and

Applications, Prentice Hall, Englewood Cliffs, NJ.

Chinneck, J. W. and E. E. Dravnieks, E. E. 1991. Locating minimal infeasible constraint sets in linear programs. ORSA Journal of Computing 3, 157-168.

(15)

Cook S. A. 1971. The complexity of theorem proving procedures. Proceedings of the 3rd Annual ACM

Symposium on Theory of Computing, 151-158.

Gale D. 1957. A theorem on flows in networks. Pacific Journal of Mathematics 7, 1073-1082.

Gallo, G., M. D. Gridoriadis, and R. E. Tarjan. 1989. A fast parametric flow algorithm. SIAM Journal of

Computing 18, 30-55.

Garey, M. S., and D. S. Johnson. 1989. Computers and Intractability: A Guide to the Theory of

NP-Completeness. W. H. Freeman, New York.

Goldberg A. V., and R. E. Tarjan. 1988. A new approach to the maximum flow problem. Journal of the

ACM 35, 921-940.

Greenberg, H. J. 1988. Diagnosing infeasibility of min-cost network flow models, part II: Primal infeasibility, IMA Journal of Mathematics in Business and Industry 4, 39-50.

Greenberg H. J. 1993. How to analyze the results of linear programs - Part 3: Infeasibility diagnosis.

Interfaces 23, 120-139.

Hao J. and Orlin J. B. 1992. A faster algorithm for finding the minimum cut in a graph. Proceedings of

the 3rd Annual ACM-Siam Symposium on Discrete Algorithms, 165-174. (Expanded version

accepted for publication by the Journal of Algorithms.)

Padberg, M. and G. Rinaldi. 1990. An efficient algorithm for the minimum capacity cut problem.

Mathematical Programming 47, 19-36.

Sleator, D. D., and R. E. Tarjan. 1983. A data structure for dynamic trees. Journal of Computer and

System Sciences 24, 362-391.

Van Loon, J. N. M. 1981. Irreducibly inconsistent systems of linear inequalities. European Journal of

(16)

APPENDIX

CHARU! Please review the results in this section carefully.

In this appendix, we shall prove the

NP

-completeness of the minimum witness problem in directed networks. The decision version of the minimum witness problem is the k-witness problem defined as follows:

k-Witness Problem: Given a directed network G = (N, A) with associated supply/demand vector b, and

an arc capacity vector u, does there exist a subset S of k nodes satisfying b(S) > u[S, S- ].

In order to prove that the k-witness problem is

NP

-complete, we used the standard notion of reduction, as introduced by Cook [1971]. We shall show that the k-clique problem, a known

NP

-complete problem (see, Garey and Johnson [1989]), can be reduced to the k-witness problem. The k-clique problem can be defined as follows:

k-Clique Problem: Given an undirected graph G' = (N', A'), does there exist a subset C N' containing k

nodes such that every pair of nodes i and j in C is connected by an arc in A'?

Let G' = (N', A') be an undirected graph in which we wish to find an l -clique. Let n' =

| |

N' and m' =

| |

A' . We shall transform this problem into a k-witness problem on a directed network G = (N, A) with k = 1 + l (l -1)

2 + l . We construct the network G as follows. It contains a source node s, a set of m' left nodes (one node i-j corresponding to each arc (i, j) ∈ A'), a set of n' right nodes (one node i corresponding to each node i ∈ N'), and a sink node t. The source node s is connected to each left node with an arc (called

source arc) of capacity 2l ; each left node i-j is connected to the two right nodes i and j with infinite

capacity arcs; and each right node i is connected to the sink node t with an arc (called sink arc) of capacity (l -1)(l +2). Let b(s) = 2l m', b(t) = -2l m', and b(i) = 0 for all i ∈ N - {s, t}.

Consider any node set C in G'. Let L(C) denote the set of all left nodes i-j in G for which i ∈ C and j ∈ C. Let R(C) denote the set of all right nodes in G satisfying that if i-j is in L(C), then both the right nodes i and j must be in R(C). It is easy to verify that each node set C in G defines an s-t cut [S, S- ] in G' with S = {s} ∪ L(C) ∪ R(C) of capacity

u[S, S- ] = 2l (m' -

|

L(C) )+ (l +1)(l -2) -

|

|

R(C) .

|

(A1) We will now prove that a set of nodes C ⊆ N' is an l -clique in G' if and only if the cut [S, S- ] defined as S = {s} ∪ L(C) ∪ R(C), is a k-witness in the network G with k = 1 + l (l -1)

2 + l . Suppose that the node subset C is an l -clique in G'. Then L(C) = l (l -1)

(17)

u[S, S- ] = 2l

(

m' - l (l -1)2 + (l +1)(l -2)l,

)

= 2l m' - 2l .

Since b(S) = b(s) = 2 l m', it follows that S is a k-witness with k = 1 + l (l -1) 2 + l .

We now prove the converse result. Suppose that S is a k-witness in G which k = 1 + l (l -1) 2 + l for some integer l . Let L denote the subset of left nodes in S and let R denote the subset of right nodes in S. Since S is a witness, it must not contain any infinite capacity arcs directed out of it; this implies that if a left node i-j is in L, then both the nodes i and j must be in R. We now claim that

| |

L = l (l -1)

2 and R = l ; this suffices to prove that an l -clique (node subset corresponding to R) exists in G'. We shall consider three cases:

Case 1 :

| |

R > l . In this case,

| |

L = k -

| |

R - 1 < l (l -1)

2 . Alternatively,

| |

R ≥ l +1 and

| |

L ≤

l (l -1)

2 - 1. Substituting these inequalities in (1A) yields

u[S, S- ] ≥ 2l

(

m' - l (l -1)2 + 1 + (l +1)(l -2)(l +1),

)

2l m' + (l +1)(l -2).

Hence, for l ≥ 2, u[S, S- ] ≥ 2l m' = b(S), contradicting that S is a witness.

Case 2 :

| |

R < l . In this case,

| |

L = k -

| |

R - 1 > l (l -1)2 . However, since R must include all the nodes induced by L, it follows that

| |

L ≤

| |

R (

| |

R -1)

2 . Hence we derive a contradiction. Case 3 :

| |

R < l and

| |

L ≠l (l -1)

2 . In this case, since R must include all nodes induced by L, it follows that

| |

L < l (l -1)

2 . On exactly similar lines as in Case 1, it can be proved that u[S, S -

] ≥ b(S), contradicting that S is a witness.

The above case analysis shows that

| |

R = l and

| |

L = l (l -1)

2 , implying that nodes in G' corresponding to the subset R form an l -clique. This completes the proof of the following theorem:

References

Related documents

• Flap maneuvering speeds are recommended to fly the aircraft in a given flaps configuration for:. • Performance &amp;

• Goal: determine maximum rate of material flow from source to sink.. Residual network and

arcs that have positive flows, putting newly labeled nodes on LIST.. DMKM Algorithm

Now both instances have determined a directed flow-carrying path from source to sink, that is, a directed path with the capacity to carry additional flow.. The maximal-flow

Another using 2000 Census data has women in same-sex couples as the control group and includes dummy variables for being in a different-sex couple (of any marital status) and for

There are four ways in which one do time series econometrics. The …rst is to use the approach of the 1970s, view your time series model just like any linear regres- sion, and impose

At least three structures should be developed: a family council for discussion of family issues; a board of directors (if the company doesn’t already have one)

Individ. VVOC very volatile organic compounds are not currently considered in the AgBB evaluation scheme. 1) The occupational exposure limit value for this substance, on which