## NDMI084 - Introduction to approximation and randomized algorithms Úvod do aproximačních a pravděpodobnostních algoritmů

### Fall 2015 - Tuesday 15:40 in S4

Česká cvičení se konají jednou za 14 dnů po přednášce od 17:20 v S8, vede je Martin Böhm

English recitation sections are replaced by biweekly office hours by Martin Böhm

## Covered topics

• 1. (6. 10.)
• randomized protocol for computing the average salary
• definition: optimization and NP-optimization problems, approximation algorithm and ratio [WS 1.1, V1]
• 2. (13. 10.)
• traveling salesperson problem (TSP), kostrový 2-approximation algorithm [WS 2.4]
• traveling salesperson problem (TSP), Christofides 1.5-approximation algorithm [WS 2.4, V 3.2]
• definition: probability spaces [MU 1.2]
• models of randomized computation [MR 1.5]
• definition: expectation, its linearity [MU 2.1]
• 3. (20. 10.)
• randomized conflict resolution in distributed systems [KT 13.1, MR 12.5]
• Quicksort as a randomized algorithm [MU 2.5, MR 1, KT 13.5]
• greedy algorithms for scheduling on identical machines [WS 2.3, KT 11.1]
• 4. (27. 10.)
• online algorithms and local search for scheduling [WS 2.3]
• greedy algorithms for bin packing [WS 3.3, V 9]
• 5. (3. 11.)
• greedy algrotihms for disjoint paths in graphs [KT 11.5]
• greedy algrotihms for disjoint paths in graphs with capacities [KT 11.5]
• randomized algorithms for satisfiability [WS 5.1-5.5, V 16]
• simple 1/2-approximation algorithm for MAXSAT, 7/8-approximation algorithm for MAX-E3-SAT
• 6. (10. 11.)
• randomized algorithms for satisfiability [WS 5.1-5.5, V 16]
• 3/4-approximation algorithm for MAXSAT
• derandomization by the method of conditional probabilities
• vertex cover approximation from linear programming
• 7. (24. 11.)
• algorithms for vertex and set cover [WS 1.2-1.6, 7.1, V 13-14]
• rounding of the linear program solution
• primal-dual algorithm
• the greedy algorithm and its analysis using dual linear program
• 8. (1. 12.)
• universal systems of hash functions and their use [MR 8.4, MU 13.3]
• dynamic dictionary with expected constant time per operation [MR 8.4, MU 13.3.3]
• static dictionary with expected constant time per lookup in the worst case [MR 8.5, MU 13.3.3]
• 9. (8. 12.)
• 10. (15. 12.)
• randomized testing of matrix multiplication in linear time [MR 7.1, MU 1.3]
• randomized testing of polynomial identities [MR 7.2, MU 1.1]
• 11. (22. 12.)
• cake cutting [S. Even, A. Paz: A note on cake cutting. Discrete Applied Mathematics 7(3):285-296, 1984. doi:10.1016/0166-218x(84)90005-2; a nice book with more material is  J. Robertson, W. Webb: Cake-Cutting Algorithms: Be Fair if You Can, A K Peters, 1998]
• 12. (5. 1.)
• a fast parallel randomized algorithm for perfect matching in bipartite and general graphs [MR 7.3, 12.4]
• 13. (12. 1.)
• a fast parallel randomized algorithm for perfect matching in bipartite and general graphs [MR 7.3, 12.4]
• 2-approximation algorithm for scheduling on unrelated machines [V 17, WS 11.1]

## Syllabus

This course covers techniques for design and analysis of algorithms, demonstrated on concrete combinatorial problems. For many optimization problems it is impossible (or NP-hard) to design algorithms that finds an optimal solution fast. In such a case we study approximation algorithms that work faster, at the cost that we find a good solution, not necessarily an optimal one. Often we use randomness in design of (approximation and other) algorithms, which allows to solve problems more efficiently or even to solve problems that are otherwise intractable. Recommended for the 3rd year.

## Sylabus [Detailed syllabus in Czech]

Přednáška probírá středně pokročilé techniky pro návrh a analýzu algoritmů a ilustruje je na konkrétních kombinatorických problémech. Pro mnohé optimalizační problémy je obtížné navrhonout algoritmy, které je vyřeší optimálně a zároveň rychle (např. pro NP-úplné problémy). V takovém případě studujeme tzv. aproximační algoritmy, které pracují rychle, a najdou řešení více či méně blízké optimálnímu řešení. Často pro návrh algoritmů (aproximačních i jiných) používáme náhodnost, což umožňuje řešit některé úlohy efektivněji nebo řešit úlohy jinak neřešitelné. Doporučeno pro 3. ročník bakalářského studia.

Probírané techniky:

• Hladový algoritmus jako metoda pro návrh aproximačních a online algoritmů
• Použití lineárního programování pro návrh aproximačních algoritmů
• Po dvou nezávislé náhodné proměnné
• Odstranění náhodnosti metodou podmíněných pravděpodobností
• Lokální prohledávání

Probírané problémy a algoritmy:

• Rozvrhování a hledání disjunktních cest v grafu - hladové algoritmy
• Problém obchodního cestujícího a vrcholové pokrytí - jednoduché kombinatorické aproximační algoritmy
• Množinové pokrytí - hladový algoritmus, použití lineárního programování
• Splnitelnost (MAX-SAT) - použití lineárního programování, náhodné zaokrouhlování, derandomizace
• Hashování dynamické a statické - pravděpodobnostní algoritmy, po dvou nezávislé náhodné proměnné
• Největší řez v grafu - aproximace pomocí lokálního prohledávání
• Maximální nezávislá množina v grafu - rychlý pravděpodobnostní paralelní algoritmus
• Verifikace maticových rovnic - pravděpodobnostní protokol

## Textbooks:

[WS] D. P. Williamson, D. B. Shmoys: The Design of Approximation Algorithms, Cambridge University Press, 2011.

[MR] R. Motwani, P. Raghavan: Randomized algorithms, Cambridge University Press, 1995.

[MU] M. Mitzenmacher, E. Upfal: Probability and Computing: Randomized Algorithms and Probabilistic Analysis, Cambridge University Press, 2005.

[V] V. V. Vazirani: Approximation Algorithms, Springer, 2001.

[KT] J. Kleinberg, E. Tardos: Algorithm Design, Pearson, 2006.