the minimum cost flow problem. simplifying assumptions network is connected (as an undirected...

18
The minimum cost flow problem Given network with arc costs , together with balance constraints and possibly arc constraints. Find feasible flow minimizing

Upload: christopher-phelps

Post on 03-Jan-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

The minimum cost flow problem

Given network with arc costs , together with balance constraints and possibly arc constraints.

Find feasible flow minimizing

Simplifying assumptions

• Network is connected (as an undirected graph).– We can consider each connected component separately.

• Network is uncapacitated (no arc constraints).– We can transform any network to an equivalent

uncapacitated network.– Alternatively: The network simplex algorithm can be

extended to handle upper and lower bounds.• The network has no 2-cycles– Only simplifies the exposition. The algorithm works also

with 2-cycles.

Klein’s cycle cancelling algorithm

• Like the (primal) network simplex algorithm:– Maintain a feasible flow .– Improve the cost of by changing flow along a

cycle of the network (increasing flow on forward arcs and decreasing flow on backward arcs).

• Unlike the network simplex algorithm:– Do not restrict to tree flows (i.e. basic solutions).– Consider any possible cycle in the network.

Cycle flows

Let be a cycle in . Let be set of forward arcs and B be set of backward arcs.• Cost of C:• Cycle flow :– On arcs in :– On arcs in : – Other arcs : 0

Observations

Let be a cycle in .1. Cycle flow is circulation.2. Cost is: .

Let be feasible flow in . Then3. Flow satisfies balance constraints.4. Cost is

Augmenting cycles

Let be feasible flow and a cycle. C is an augmenting cycle if1. Cost is negative: .2. There exists such that is feasible.Maximum for which is feasible:

Klein’s algorithm.

1. Let be a feasible flow.2. while exist augmenting cycle do3. 4. end while5. return

The residual network

• Like the residual network used in the Ford-Fulkerson max-flow algorithm – represents possible changes to flow on arcs maintaining feasibility.

• Here the residual network will:– Have the same set of nodes.– Specify that feasible flows must be circulations.– Have upper bounds (a.k.a. residual capacities) and

costs, but no lower bounds.

Definition of the residual network

Let be feasible flow. The residual network has arcs as follows:• When a forward arc with capacity and cost .• When a backward arc with capacity and

cost .

Observations

An augmenting cycle relative to a feasible flow in corresponds is a directed cycle in and:

with

Difference between feasible flows.

Let and be feasible in and let Define flow in as follows:1. If let • Note: means .

2. If let • Note: means .

Lemma: is feasible in and

Adding feasible residual flow.

Let be feasible in and feasible in .Define flow in as follows:1. If and : .2. If and : .3. If and : .

Lemma: is feasible in and

Finding a negative cycle

Observation:• An augmenting cycle in relative to

corresponds to negative weight directed cycle in when using the residual capacities as weights.

• This can be solved efficiently using either the Bellman-Ford or the Floyd-Warshall shortest path algorithms.

Partial correctness

• Circulation decomposition lemma: Let be circulation in network ( may be a residual network). Then there are cycles and such that

Proof of partial correctness

Let be feasible flow in . If is not a minimum cost flow then there exist an augmenting cycle.Proof: • Let be any minimum cost flow.• We then have in corresponding to with .• decomposes into cycle flows, and one of

these must have negative cost.

Termination

• Like the Ford-Fulkerson max-flow algorithm, Klein’s cycle cancelling algorithm is not guaranteed to terminate!

• However if all balances, lower bounds, and upper bounds are integers and we start with an integer feasible flow we must terminate.

Proof: Only finitely many feasible integer flows and we improve in each iteration.

Complexity

• Each iteration may be done efficiently.• Even when guaranteed termination by integer

input the algorithm may take exponential time.• There exists a choice for selecting an

augmenting cycle leading to a polynomial worst case running time!

• In practice: Hard to compete with optimized network simplex algorithm.

Finding the first feasible flow

Formulate as maximum flow problem.• Arcs for nodes :– From to with capacity when .– From to with capacity when .

• Arcs for arcs :