CMPT 405/705 - Design and Analysis of Computing Algorithms - Fall 2021

Course Information Syllabus Lectures Assignments Exams


Lecture 23 - April 11
Semidefinite Programming
0.878-approximation for Max-Cut
Coloring 3-colorable graphs
Notes on max-cut [notes]
Coloring 3-colorable graphs using SDP [notes]
Lecture 22 - April 6
Semidefinite Programming
0.878-approximation for Max-Cut
Notes on SDP [notes]
Notes on max-cut [notes]
Lecture 21 - April 4
Weighted min vertex cover using LP duality
Min cost perfect matching in bipartite graphs (again)
Notes on vertex cover [notes]
Notes on perfect matchings [notes]
Lecture 20 - March 30
LP Duality
Notes [notes]
Lecture 19 - March 28
More on Linear Programming
2-approximation for weighted vertex cover
O(ln(n))-approximation for weighted setscover
Integrality gaps
Notes on vertex cover and set cover [notes]
Lecture 18 - March 23
Introduction to Linear Programming
Notes on linear programming [notes]
Notes on weighted min vertex cover [notes]
Lecture 17 - March 21
7/8-approximation for Max-3-CNF - a deterministic algorithm
Chernoff bound: two applications
- Estimating pi
- Discrepancy of a hypergraph
- Approximate DNF counting
Notes on discrepancy [notes]
Notes on approximate DNF counting [notes]
Lecture 16 - March 16
7/8-approximation for Max-3-CNF
Analysis of Quick Sort with random pivot
Notes on quick sort [notes]
Lecture 15 - March 14
Coping with NP-hardness: Approximation algorithms
2-approximation for Min-Vertex-Cover
ln(n)-approximation for Set-Cover
n/log(n)-approximation for Max-Clique
Lecture 14 - March 9
Intractability
Lecture 13 - March 7
Dynamic Programming
Finding a path of length k in time exp(k): Color coding
Notes on color coding [notes]
Lecture 12 - March 2
Dynamic Programming
The knapsack problem
Finding Hamiltonian path in exp(n) time
Notes on Hamiltonian path [notes]
Lecture 11 - February 28
Dynamic Programming
Fibonacci sequence
Edit distance
Chapter 6 in KT
Lecture 10 - February 16
Fast Fourier Transform cont
Chapter 5 in KT
Lecture 9 - February 14
Finding k'th smallest element in an array cont
Fast Fourier Transform
Chapter 5 in KT
Lecture 8 - February 9
Quick Sort
Finding k'th smallest element in an array
Lecture 7 - February 7
Faster Matrix Multiplication
Freivalds' Algorithm
Matrix Multiplication modulo p
Heuristics vs worst case algorithms
Lecture 6 - February 2
Divide and Conquer
Master Theorem
Faster Integer Multiplication
Lecture 5 - January 26
Isolation lemma
Finding min-weight perfect matching in bipartite graphs
Notes from UW [notes]
Lecture 4 - January 24
Schwartz–Zippel lemma
Finding perfect matching in bipartite graphs
Notes from UW [notes]
Lecture 3 - January 19
Graph algorithms
- Kruskal's algorithm for minimum spanning tree
- Karger's algorithm for finding min-cut
Chapters 4.5 and 12.3 in KT
Lecture 2 - January 17
Graph algorithms
- DFS
- Directed Directed acyclic graphs
- Topological sorting in DAGs
- Finding connected components in a graph
Chapter 3 in KT
Lecture 1 - January 12
Introduction
Graphs basics