Theory of Algorithms
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
BE4M01TAL | Z,ZK | 6 | 3P+2S | anglicky |
- Garant předmětu:
- Přednášející:
- Cvičící:
- Předmět zajišťuje:
- katedra matematiky
- Anotace:
-
Předmět seznamuje se základními pojmy a postupy teorie složitosti. Důraz je kladen na časovou složitost,ale studenti se seznámí i paměťovou složitostí a amortizovanou složitostí. Studenti se seznámí s Turingovými stroji a to jak s jednou, tak i více páskami. Je uveden pojem redukce úlohy/jazyka a polynomiální redukce jazyka/úlohy. Předmět se věnuje třídám složitosti P, NP, NPC, co-NP, a třídám PSPACE a NPSPACE založeným na paměťové složitosti. Je uvedena Savitchova věta. Dále se předmět věnuje pravděpodobnostním algoritmům a třídám RP a ZPP. Na závěr se studenti seznámí s teorií nerozhodnutelnosti. K pochopení látky se též používají konkrétní algoritmy, jedná se hlavně o algoritmy z teorie grafů a kryptografie.
- Požadavky:
- Osnova přednášek:
-
1. Algorimtus, asymptotický růst funkcí, časová a paměťová složitost.
2. Amortizovaná složitost. Správnost algoritmů, variant a invariant.
3. Příklady důkazů správnosti.
4. Turingův stroj, základní model, Turingův stroj s více páskami, nedeterministický Turingův stroj.
5. Churchova a Turingova teze. Vztah Turingova stroje a RAM.
6. Jazyky a úlohy. Třídy P a NP.
7. Polynomiální redukce úloh. Třída NPC. NP těžké úlohy.
8. Cookova věta. Příklady NP-úplných úloh (problém klik, nezávislých množin, vrcholového pokrytí, 3-barevnost).
9. Další příklady NP-úplných úloh (existence hamiltonovské kružnice, problém obchodního cestujícího, celočíselné lineární programování, problém batohu).
10. Heuristiky a aproximační algoritmy pro NP-úplné úlohy.
11. Třídy PSPACE a NPSPACE. Savitchova věta.
12. Pravděpodobnostní algoritmy, třídy RP a ZPP. Miller-Rabinův algoritmus pro prvočíselnost.
13. Rekursivní a rekursivně spočetné jazyky. Algoritmicky neřešitelné úlohy.
- Osnova cvičení:
-
1. Algorimtus, asymptotický růst funkcí, časová a paměťová složitost.
2. Amortizovaná složitost. Správnost algoritmů, variant a invariant.
3. Příklady důkazů správnosti.
4. Turingův stroj, základní model, Turingův stroj s více páskami, nedeterministický Turingův stroj.
5. Churchova a Turingova teze. Vztah Turingova stroje a RAM.
6. Jazyky a úlohy. Třídy P a NP.
7. Polynomiální redukce úloh. Třída NPC. NP těžké úlohy.
8. Cookova věta. Příklady NP-úplných úloh (problém klik, nezávislých množin, vrcholového pokrytí, 3-barevnost).
9. Další příklady NP-úplných úloh (existence hamiltonovské kružnice, problém obchodního cestujícího, celočíselné lineární programování, problém batohu).
10. Heuristiky a aproximační algoritmy pro NP-úplné úlohy.
11. Třídy PSPACE a NPSPACE. Savitchova věta.
12. Pravděpodobnostní algoritmy, třídy RP a ZPP. Miller-Rabinův algoritmus pro prvočíselnost.
13. Rekursivní a rekursivně spočetné jazyky. Algoritmicky neřešitelné úlohy.
- Cíle studia:
- Studijní materiály:
-
[1] Kozen, D. C.: The design and Analysis of Algorithms, Springer-Vrelag, 1991
[2] Harel, D: Algorithmics: The Spirit of Computing, Addison-Wesleyt Inc., Reading MA 2002
[3] Talbot, J., Welsh, D.: Complexity and Cryptography, Cambridge University Press, 2006
- Poznámka:
- Další informace:
- Pro tento předmět se rozvrh nepřipravuje
- Předmět je součástí následujících studijních plánů:
-
- Open Informatics - Artificial Intelligence (povinný předmět programu)
- Open Informatics - Computer Vision and Image Processing (povinný předmět programu)
- Open Informatics - Software Engineering (povinný předmět programu)
- Open Informatics - Human-Computer Interaction (povinný předmět programu)
- Open Informatics - Cyber Security (povinný předmět programu)
- Open Informatics - Computer Graphics (povinný předmět programu)
- Open Informatics - Computer Engineering (povinný předmět programu)
- Open Informatics - Bioinformatics (povinný předmět programu)
- Open Informatics - Data Science (povinný předmět programu)