All revisions to the lecture notes will be recorded here.

- Introduction
PS PDF

The fact that there are n^{n-2} spanning trees on K_n is*Cayley's theorem*. One standard proof of Cayley's theorem uses*Prufer encodings*. See these two links for more information: Link1 Link2

- Maximum Flows PS
PDF

The description in the slides follows Sections 26.1-26.3 of the CLRS book.

More advanced material can be found in Data structures and network algorithms by Robert Endre Tarjan

- Binomial & Fibonnacci Heaps and an Introduction to
Amortized Analysis

Our description will follow Chapter 19, Sections 17.1-17.3 and Chapter 20 of the CLRS book.

Another (possibly simpler) reference is Chapter 11 of*Data Structures and Algorithm Analysis in C, Mark Allen Weiss, 1993, Benjamin Cummings*. Also check out this animation of Fibonacci Heaps

Binomial Heaps PS PDF

Amortized Analysis PS PDF

Fibonacci Heaps PS PDF

- The Hungarian Algorithm for the Assignment Problem
PS PDF

This extra handout (PS PDF) proves lemma on page 13

This extra handout illustrates (PDF) how updating can lose an edge in equality graph

For a nice historical introduction to the development of the algorithm see pages 4-10**of**

On the history of combinatorial optimization (till 1960)

Also, see**Being in the Right Place at the Right Time**by Harold Kuhn (the creator of the Hungarian Algorithm)

*(the above link might only work within the IP domains of institutions that subscribe to JSTOR, such as HKUST)*

- Linear Programming

This (long) section is based on Chapter 2+ of Papadimitriou and Steiglitz

After learning about LP check out the short guide What Can’t You Do With LP? by Devdatt P. Dubhashi for an interesting perspective.

Before Starting: Review of Basic Matrix Mainpulations and Linear Algebra PS PDF

Simplex Part 1: Introduction and Basic Feasible Solutions PS PDF

Simplex Part 1 (extra) Correspondence between polytopes and feasible sets PS PDF

*Last Revised 16/10/07*

Simplex Part 2: Changing BFSs and Pivots PS PDF

*Last Revised 16/10/07*

Simplex Part 3: The Simplex Algorithm PS PDF

*Last Revised 16/10/07*

A worked simplex example with polytope correspondence PDF

Odds & Ends: Variations on Simplex & LP PS PDF

- Linear Programming Duality PS
PDF

*Last Revised 16/10/07*

This section is based on Chapter 3 of Papadimitriou and Steiglitz

Some more applications of Duality PS PDF

- The Primal-Dual Algorithm

This section is based on Chapter 5 of Papadimitriou and Steiglitz and Chapter 18 of Vazirani

Primal-Dual Part 1: Introduction and Basic Concepts PS PDF

Primal-Dual Part 2: Shortest Path & Max-Flow PS PDF

Primal-Dual Part 3: (Extra Material) Approximation Algorithms I PS PDF

Set-Cover Example PDF*Last Revised 1/11/07*

Primal-Dual Part 4: (Extra Material) Approximation Algorithms II PS PDF

- Two-Person Zero-Sum Games & the MinMax Theorem

This will be taught on the whiteboard. Class presentation is based on Chapter 15 of Linear programming by Vašek Chvátal. A copy of the relevant pages is here (a larger version with white background is also available here; note that all these pages can only be accessed within the UST domain). For more on applications of Game Theory to Computer Science please see the COMP670O (Spring 2006) home page.

- Randomized (Approximation) Algorithms

This section is based on Vazirani and Lecture Notes on Approximation Algorithms (IBM Research Report RC21409) by David Williamson

Introduction To Randomized Algorithms I PS PDF

Introduction To Randomized Algorithms II PS PDF

The Best-of-Two Algorithm PS PDF

Randomized Rounding for Set-Cover PS PDF

- Improvements in Dynamic programming
- Saving Space in Dynamic Programming

This will be taught on the whiteboard. Class presentation is based on the paper

A Linear Space Algorithm for Computing Maximal Common Subsequences

available through the ACM Digital Library via the HKUST library

and alsoby

Reducing Space Requirements for Shortest Path Problems

Operations Research. (30)5, 1982. pp 1009-1013.

- Speeding up Dynamic Programming

This section is based on papers referenced in the notes. In particular, check out,

Efficient dynamic programming using quadrangle inequalities,

by F.F. Yao in the*Proceedings of the 12th Annual ACM Symposium on Theory of Computing (1980)*available through the ACM Digital Library via the HKUST library.

DP Speedups 1: Introduction and the Quadrangle Inequality PS PDF

A worked example PS PDF

DP Speedups II: Totally Monotone Matrices PS PDF*Note: The PS version of DPII doesn't display properly on some GS viewers. The PDF version is recommended*

- Saving Space in Dynamic Programming

- Introduction to Polynomial Time Approximation Schemes (PTASs)
- A Fully Polynomial Time Approximation
Scheme for Subset Sum
PS PDF

Proof of Statement in the Notes PS PDF - A Polynomial Time Approximation
Scheme for Minimum Makespan
PS PDF

A Worked example of Restricted Bin Packing PS PDF

- A Fully Polynomial Time Approximation
Scheme for Subset Sum
PS PDF
- A 4-Approximation Algorithm for The Shortest Superstring Problem PS PDF

*Page last updated on
30 November, 2007 03:04:06 PM*