Print View

Week 1

Course organization. Hard problems. Exponential-time, XP, and FPT algorithms. Motivating examples. Subset Sum, TSP, Vertex Cover. Branching algorithms. Bounded search trees.

Week 2

Branching algorithm for Maximum Independent Set. Kernelization. Simple kernel for Vertex Cover. Feedback Vertex Set. Crown decomposition. Linear kernel for Vertex Cover.

Week 3

Recap. Iterative compression. Vertex Cover. Feedback Vertex Set.

Week 4

Measure and conquer. Independent Set. Feedback Vertex Set. Set Cover and Hitting Set.

Week 5

Set Cover branching wrapup.
Dynamic programming. Permutation problems: TSP, Feedback Arc Set.
Set Cover dynamic programming.

Week 6

Dynamic programming: Graph coloring.

Counting perfect matchings in bipartite and general graphs.

Ryser formula, inclusion-exclusion.

Week 7

Pathwidth, treewidth, and algorithmic applications.

Guest lectures by Benjamin Berendsohn.

Week 8

Inclusion exclusion: graph coloring.

Feedback vertex set (randomized). Color-coding.


Week 9

Color coding vs. divide and conquer. Local search for satisfiability.

Week 10

Derandomizing the local search algorithm. Time-space tradeoff.

Week 11

Time-space tradeoff: TSP, Coloring.

Week 12

Memorization: Maximum Independent Set. Time-space tradeoff: Subset Sum.
Matrix multiplication-based algorithms.

Week 13

Two case studies: 1. graph bandwidth, 2. permutation pattern matching.

Week 14

Lower bounds. ETH, SETH, FPT-reductions, and W-hierarchy.