

COMP-362: Honours Algorithm Design
Fall 2009
Lecture
topics and suggested readings
Lecture 1 (1 September):
Course
introduction
A
tour through course ideas as illustrated by Shotgun DNA sequencing and Shortest
Common Superstring
Lecture 2 (3 September):
Intro
to dynamic programming
Fibonacci,
Making Change, Longest Common Subsequence
Read
KT 6.2 and KT 6.6 (Sequence alignment is very similar to LCSubSeq)
Lecture 3 (8 September):
Optimal
triangulation of a convex polygon
Optimal
binary search trees (Read CLRS 15.5 if you want to learn more)
Read
KT 6.4 and KT 6.5 for more examples
Lecture 4 (10 September):
Shortest
paths (Bellman-Ford)
Testing
for the presence of negative weight cycles
Read
KT 6.8 and KT 6.10
Lecture 5 (15 September):
Advanced
dynamic programming techniques
Hirschberg’s
trick (space efficiency): read KT 6.7
Exploiting
sparseness (time efficiency)
Lecture 6 (17 September):
Greedy
algorithms for set selection
Matroids
Read
CLRS 16.4
Lecture 7 (22 September):
Intro
to linear programming
Duality
Read
CLRS 29.1, 29.2 and 29.3 (can omit proof of strong duality for now)
Lecture 8 (24 September):
Intro
to flows and cuts
Read
KT 7.1 and 7.2
Lecture 9 (29 September):
Two
proofs that max-flow=min-cut
Ford-Fulkerson
algorithm
Lecture 10 (1 October):
Edmonds-Karp
and Dinitz improvements
Matchings
Hall’s
Theorem
Read
KT 7.3, 7.5
Lecture 11 (6 October):
Disjoint paths and Menger’s theorem (KT 7.6)
Circulations (KT 7.7)
Applications:
Survey design (KT 7.8)
Image segmentation (KT 7.10)
Project selection (KT 7.11)
Baseball elimination (KT 7.12)
Lecture 12 (8 October):
Simplex
algorithm
For a more formal presentation, see
CLRS 29.3
See also notes on WebCT
Lecture
13 (13 October):
Simplex example (see slides)
Proof of strong duality
Comparison of simplex and
Ford-Fulkerson for max-flow
Lecture
14 (15 October):
More on duality:
Interpretation of the
dual
LP and dual LP for
shortest path
Lecture 15 (20 October):
Circuit
evaluation by linear programming
Circuit-SAT
Definition
of NP
Read
KT 8.1, 8.2
Lecture 16 (22 October):
Cook-Levin
Theorem
NP-completeness
of 3-SAT and Independent Set
Read KT 8.3, 8.4.
For further enjoyment, read Aaronson’s lecture
notes.
Lecture 17 (27 October):
NP-completeness
of Clique, Vertex Cover, Hamiltonian Cycle, Travelling Salesman and 3d Matching
Read KT 8.2, 8.5.
Lecture
18 (29 October):
Problem session (Anil Ada)
Lecture
19 (3 November):
Midterm
Lecture
20 (5 November):
NP-completeness of Zero-One
Equations, Integer Linear Programming, k-Coloring
Read KT 8.6, 8.7
Lecture
21 (10 November):
co-NP: Read KT 8.8, 8.9, 8.10
Backtracking
Branch and Bound
Lecture
22 (15 November):
Introduction to approximation
algorithms
Greedy algorithm for set cover: KT
11.3
LP rounding approach to set cover:
KT 11.6
Lecture 23 (17 November):
2-approximation
of metric TSP
Inapproximability
of general TSP
Arbitrarily
good approximation of knapsack: KT 11.8
Knapsack
and the cosmological constant (unexamined material)
Lecture 24 (19 November):
Fixed
parameter tractability
Searching
for small vertex covers
Definition
of tree-width
Tree-width
of control flow graphs
Lecture 25 (24 November):
Edge
separation property in tree decompositions
Linear
time algorithm for max weight independent set in graphs with bounded tree-width
Lecture 26 (26 November):
Finish
proof that max wt indep set recurrence is correct
Graph
properties expressible using monadic second order logic
Finding
tree decompositions