Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2019/2020

Theory of Algorithms

Předmět není vypsán Nerozvrhuje se
Kód Zakončení Kredity Rozsah Jazyk výuky
BE4M01TAL Z,ZK 6 3P+2S
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ů:
Platnost dat k 18. 10. 2019
Aktualizace výše uvedených informací naleznete na adrese http://bilakniha.cvut.cz/cs/predmet4863106.html