5.9. Introduction lecture 5.9. Complexity + analysis techniques 12.9. Divide-and-Conquer 19.9. Dynamic programming 26.9. Greedy + fast MST Branch-and-bound 3.10. Randomized algorithms + Sherwood Approximation algorithms (Binpacking) + Approximation algorithms (TSP) 10.10. NP theory 17.10. Heap + Divide-and-Conquer k-NN 26.10. Q&A session 27.10. EXAM
Introduction
Analysis techniques
Divide and conquer
Closest pair problem
Dynamic programming
Dynamic programming: edit distance
Route reduction
Shortest paths problem
Greedy algorithms
Divide-and-Conquer MST
Divide-and-Conquer kNN
Branch-and-bound
Heap structure
Heap structure (by P.Kilpeläinen)
Union-find (by M.I.Malinen)
Union-Find structure (by T.H.Cormen)
Approximation algorithms
Randomized algorithms
Combinatoric optimization
NP-theory
NP reductions
TSP example | B-n-B for TSP
Lecture notes: Sariel Har-Peled (UIUC)
Lecture notes: Jeff Erickson (UIUC)
Maximum weighted matching
Lecture Notes: Introduction to Combinatoric Optimization
Genetic algorithms for clustering
Lecture Notes: Dynamic Programming
The Design of Approximation Algorithms
Millenium problems: P=NP ?
NP-complete problems
Minesweeper is NP-complete
Hanoi Towers
Sieve of Erastothenes
TRA I
TRA II
TRA I (in Finnish)
TRA II (In Finnish)