A new polynomial-time cycle-canceling algorithm for the minimum cost flow problem
P.T. Sokkalingam, R.K. Ahuja, and J.B. Orlin, Networks 36, 53-63, 2000

The cycle-canceling algorithm is one of the earliest algorithms to solve the minimum cost flow problem. This algorithm maintains a feasible solution x in the network G and proceeds by augmenting flows along negative cost directed cycles in the residual network G(x) and thereby canceling them. For the minimum cost flow problem with integral data, the generic version of the cycle-canceling algorithm runs in pseudo-polynomial time, but several polynomial-time specific implementations can be obtained by specifying the choices of cycles to be canceled. In this paper, we describe a new cycle-canceling algorithm that solves the minimum cost flow problem in polynomial time. Our algorithm is a scaling algorithm and proceeds by augmenting flows along negative cycles with "sufficiently large" residual capacity. Further, it identifies such a cycle by solving a shortest path problem with nonnegative arc lengths. For a network with n nodes and m arcs, our cycle-canceling algorithm performs O(m log(nU)) augmentations and runs in O(m(m + n log n) log(nU)) time, where U is an upper bound on the node supples/demands and finite arc capacities. We next describe a variant of algorithm that solves the minimum cost flow problem in strongly polynomial time; the running time of this variant is O(m(m+n log n) min{log (nU), m log n}).