# Diagnosing infeasibilities in network flow problems

## Abstract

We consider the problem of finding a feasible flow in a directed network 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 in 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 witness, 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(n2m1/2) time using simple data structures and in O(nm log n) time using the standard implementation of the dynamic tree data structures. We also show that the recognition version of the minimal witness problem is equivalent to a recognition version of a related problem known as the minimum rooted cut problem. © 1998 The Mathematical Programming Society, Inc. Published by Elsevier Science B.V.