Syllabus |
Lecture 1 and
2 (by Arup Guha on 23/08 and 25/08)
|
Lecture 3 (01/09)
Adjacency matrix, adjacency list |
Depth-first search in undirected graphs
- Procedures explore(G,v) and dfs(G)
- DFS search tree/forest
- Types of edges (tree and back edges)
- Connected components in undirected graphs
- Previsit and postvisit orderings
|
|
Lecture 4 (06/09)
Depth-first search in directed graphs
- Types of edges (tree, forward, back, and cross edges)
|
Topological sorting |
Strongly connected components |
|
Lecture 5 (08/09)
Algorithm for finding strongly connected components
(variant in DPV book) |
Breadth first search |
|
Lecture 6 (13/09)
Algorithm for finding strongly connected components
(variant in CLRS book) |
Dijkstra's algorithm |
|
Lecture 7 (15/09)
Analysis of Dijkstra's algorithm (array and heap
implementations of priority queue) |
Bellman-Ford algorithm |
|
Lecture 8 (20/09)
Finding shortest paths in DAGs with negative edge
weights |
Kruskal' algorithm, cut property |
|
Lectrure 9 (22/09)
Data structure for disjoint sets, union by rank |
Overview of path compression |
|
Lecture 10 (27/09)
Prim's algorithm |
Approximation algorithm for set cover |
|
Lecture 11 (29/09)
Randomized algorithm for min-cut based on Kruskal's algorithm
|
Randomized algorithm for min-cut based on edge contraction |
|
Lecture 12 (04/10)
|
Lecture 13 (11/10)
Reading assignment: Huffman encoding and Horn formulas |
Shortest paths in DAGs |
Longest increasing subsequences |
Knapsack with repetition |
|
Lecture 14 (13/10)
Reading assignment: edit distance, chain matrix
multiplication and independent sets in trees |
Knapsack without repetition |
Shortest reliable paths |
All-pairs shortest paths, Floyd-Warshall algorithm |
|
Lecture 15 (18/10)
Reading assignment: sections 7.1 and 7.2 in DPV book |
Dynamic programming algorithm for traveling salesman problem |
Flow networks (section 26.1 in CLRS book) |
|
Lecture 16 (20/10)
Ford-Fulkerson method |
Residual networks |
Augmenting paths |
Cuts of flow networks |
|
Lecture 17 (25/10)
Max-flow min-cut theorem |
Analysis of Ford-Fulkerson method |
|
Lecture 18 (27/10)
Analysis of Edmonds-Karp algorithm |
|
Lecture 19 (01/11)
Introduction to linear programming |
|
Lecture 20 (01/11)
Reduction of max-flow to linear programming |
Bipartite matching |
Duality |
|
Lecture 21 (08/11)
Overview of the simplex method |
|
Lecture 22 (10/11)
|
Lecture 23 (15/11)
Solution of the DP problems on the second exam |
Dealing with NP-completeness, backtracking |
|
Lecture 24 (17/11)
Branch-and-bound |
Approximation algorithm, approximation ratio |
Approximation algorithm for vertex cover |
Lecture 24 (22/11)
Approximation algorithm for clustering |
Approximation algorithm for metric TSP |
Lecture 24 (24/11)
Solution to LP problem on second exam |
Approximation for knapsack without repetition |
|
| |