Primal-Dual Algorithm for Maximum Flow: An Introduction to Busacker-Gowen's Optimization, Study notes of Mathematics

An introduction to the primal-dual algorithm for maximum flow, specifically focusing on busacker-gowen's optimization. The reminder of the algorithm, its complexity analysis, and the primal-dual algorithm with least-cost augmenting paths. It also discusses the efficiency of the algorithm and the construction of initial feasible solutions.

Typology: Study notes

Pre 2010

Uploaded on 07/31/2009

koofers-user-2ld
koofers-user-2ld 🇺🇸

10 documents

1 / 7

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Mathematics for Decision Making: An Introduction
Lecture 20
Matthias K¨
oppe
UC Davis, Mathematics
March 12, 2009
20–1
pf3
pf4
pf5

Partial preview of the text

Download Primal-Dual Algorithm for Maximum Flow: An Introduction to Busacker-Gowen's Optimization and more Study notes Mathematics in PDF only on Docsity!

Mathematics for Decision Making: An Introduction

Lecture 20

Matthias K ¨oppe

UC Davis, Mathematics

March 12, 2009

The Primal-Dual Algorithm (reminder)

Primal-Dual Algorithm

Input: Graph G = (V , A), capacities u , excess values b , costs c

Construct a pair of initial solutions x , y. While x is not feasible: If there exists an x -augmenting path P of equality arcs: Determine the width of the path Augment the flow x along P Otherwise:

Find a vertex set R blocking all such paths, and change yv for all v ∈ V \ R

(as described on page 18–12^12 )

We were not happy with this algorithm because it seems we may need quite a number of dual steps (change of potentials) until we can make the next primal step (sending flow from an x -source to an x -sink)

Primal-Dual Algorithm with Least-Cost Augmenting Paths

This observation suggests a new algorithm, due to Busacker–Gowen [1961]

Primal-Dual Algorithm with Least-Cost Augmenting Paths

Input: Graph G = (V , A), capacities u , excess values b , costs c

Construct a pair of initial solutions x , y. While x is not feasible: Find a least-cost (with respect to reduced costs ) x -incrementing path Pv

from an x -source to v , for each v ∈ V ( one nonnegative-cost

shortest-path-tree calculation in a graph with an artificial source);

denote by σv the costs of the paths.

Choose an x -sink s such that σs is minimum

Update the potentials yv := yv + min{σv , σs } for v ∈ V.

Augment x on Ps.

Lemma

This algorithm maintains the optimality conditions on x and y in each step.

Efficiency of the Algorithm, Initial Feasible Solution

Because the dual update can be done in one step, using a single shortest-path-tree computation, this is quite a bit faster. The running time reduces

to O(S(n, m) · n · B x 0 ).

How do we construct a pair of initial solutions, by the way? If all costs are non-negative, can use x = 0, y = 0. We could try to set y = 0 (or arbitrary), and set xv ,w = uv ,w if ¯cv ,w < 0 and xv ,w = 0 to satisfy the optimality conditions. However, this fails if some uv ,w = ∞. General solution: (updated) Solve a maximum-flow problem to find out whether there is a feasible flow; discard the solution. Solve a shortest path problem ( in a directed graph G∞^ that only has the arcs with infinite capacities , using the original costs c ). If there is no feasible shortest-path potential, there exists a negative-cost directed cycle of infinite capacity; so the problem is unbounded (no optimal solution). Otherwise, we obtain a feasible shortest-paths potential y on G∞; so we have yw ≤ yv + cv ,w for all (v , w) with uv ,w = ∞. We use this y as the initial potential. From the above inequality we have ¯cv ,w ≥ 0 for all arcs (v , w) with uv ,w = ∞. Now set xv ,w = uv ,w if ¯cv ,w < 0 and xv ,w = 0. (Note that no xv ,w will be infinite.)

There’s much more of optimization to learn!

We have only scratched the surface...

MAT-168 (Spring 2009) – Linear Programming 2009/2010: Year-long program (VIGRE RFG) on optimization: Optimization seminar Reading courses 258A (Fall 2009) – Numerical Optimization 258B (Winter 2010) – Variational Analysis and Mixed-Integer Nonlinear Programming 280 (Spring 2010) – Integer Programming