The minimum cost flow problem. Simplifying assumptions Network is connected (as an undirected...
-
Upload
christopher-phelps -
Category
Documents
-
view
220 -
download
0
Transcript of The minimum cost flow problem. Simplifying assumptions Network is connected (as an undirected...
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.