Algoritmika pro těžké problémy
Sylabus
Prerekvizity
Předpokladem jsou znalosti základních technik pro návrh algoritmů (rekurze, dynamické programování, hladové techniky), datových struktur a algoritmů (v rozsahu předmětů IB002 a IV003).
Sylabus
Kurz je volným pokračováním kurzů IB002 Algoritmy a datové struktury I a IV003 Algoritmy a datové sturktury II. Prezentuje algoritmické koncepty a metody pro těžké výpočetní úlohy. Systematicky vysvětluje a porovnává možné způsoby atakování těžkých problémů. Zkoumá techniky založené na randomizaci, aproximační techniky, deterministické přístupy a heuristiky, a jejich vzájomné kombinace.
- Deterministické techniky: pseudopolynomiální algoritmy, parametrizované algoritmy, branch--and--bound, exponenciální algoritmy.
- Aproximativní přístup: koncept aproximativního algoritmu, klasifikace aproximatívních algoritmů, stabilita aproximatívních algoritmů, neaproximovatelnost. Techniky návrhu aproximatívních algoritmů. Využití principů dynamického programování a hladových techník. Techniky využívající redukci na úlohu lineárního programování. Kombinatorické přístupy.
- Náhodnostní přístup: klasifikace a paradigmata náhodnostních agoritmů. Techniky návrhu náhodnostních algoritmů. Derandomizace. Kombinace aproximativních a náhodnostních technik.
- Heuristiky: lokální vyhledávání, simulované žíhání, genetické algoritmy.