Přednášející:Cvičící:
- doc. Ing. Zdeněk Sawa, Ph.D. (místnost: EA413, e-mail: zdenek.sawa@vsb.cz)
Tutor pro studenty v kombinované formě studia:
- Ing. Martin Kot, Ph.D. (místnost: EA413, e-mail: martin.kot@vsb.cz)
- Ing. Martin Kot, Ph.D. (místnost: EA413, e-mail: martin.kot@vsb.cz)
Zde se budou v průběhu semestru objevovat aktuální informace týkající se předmětu TI.
Cílem předmětu je seznámit studenty se základy některých oblastí teoretické informatiky, zejména oblasti týkající se algoritmů a výpočetní složiti. Po absolvování předmětu by tak studenti měli získat určitou představu o tom, jakými druhy problémů se teoretická informatika jako obor zaobírá.
Předběžný program přednášek:
- Úvod. Algoritmy a algoritmické problémy. Výpočetní modely (např. stroje RAM, ...). Churchova-Turingova teze.
- Výpočetní složitost algoritmů. Asymptotická notace. Analýza složitosti rekurzivních algoritmů.
- Pokročilejší techniky analýzy a návrhu algoritmů: amortizovaná analýza, složitost algoritmů v průměrném případě (pravděpodobnostní analýza).
- Turingovy stroje. Výpočetní složitost problémů. Třídy složitosti. Třídy P a NP. Redukce mezi problémy. NP-úplnost. Některé klasické NP-úplné problémy.
- Další třídy složitosti - PSPACE, EXPTIME, EXPSPACE, LOGSPACE, NLOGSPACE. Polynomiální hierarchie.
- Algoritmicky nerozhodnutelné problémy. Riceova věta.
- Randomizované algoritmy. Aproximační algoritmy.
- Výpočetní složitost paralelních algoritmů: výpočetní modely pro paralelní algoritmy (PRAM).
- Analýza výpočetní složitosti paralelních algoritmů. Třída NC. Souvislost s obvody (circuit complexity).
- Distribuované algoritmy: výpočetní modely pro distribuované algoritmy. Komunikační složitost.
- Kolmogorov complexity.
- Sémantika programovacích jazyků: formální popis sémantiky (operační sémantika, denotační sémantika).
- Metody dokazování korektnosti programů.
- Kvantové výpočty.
Referát
V průběhu semestru budou zveřejněna zadání témat referátů a každému studentovi bude přiděleno jedno z těchto témat.
Pro získání zápočtu je nutné zpracovat referát v písemné formě a prezentovat referát vyučujícímu. Při této prezentaci je třeba prokázat porozumění příslušné problematice. Konkrétní termín prezentace referátů bude stanoven v průběhu semestru.
Za referát je možné získat až 15 bodů. Pro úspěšné zvládnutí referátu je nutné získat minimálně 5 bodů.
Pokud student nezíská při prezentaci referátu minimální počet 5 bodů, bude možné prezentaci ještě jednou opakovat, ovšem již jen za maximálně 10 bodů, přičemž je nutné získat alespoň 1 bod
Písemka
V průběhu semestru se bude psát zápočtová písemka, za kterou bude možno získat až 20 bodů, přičemž minimem nutným pro získání zápočtu je 10 bodů.
Zápočtová písemka se bude psát na některém ze cvičení. Konkrétní datum bude v průběhu semestru ještě upřesněno.
Pro studenty, kteří ze závažných důvodů (např. nemoc) nemohli písemku psát, bude vypsán náhradní termín.
Studenti, kteří ze zápočtové písemky nezískají potřebných 10 bodů, budou mít možnost získat body na zápočet v opravné písemce. Opravná písemka však bude jen za 17 bodů, ze kterých stále bude nutné získat minimálně 10 bodů. (Body na zápočet budou v tom případě počítány podle opravné písemky.)
Celkově je třeba z referátu a zápočtové písemky získat v součtu minimálně 15 bodů.
Za zkoušku bude možné získat až 65 bodů. Zkouška bude probíhat písemnou formou.
Pro absolvolvování zkoušky je nutné získat ze zkouškové písemky minimálně 25 bodů.
Výukový text
- Teoretická informatika (autor: prof. RNDr. Petr Jančar, CSc.) — výukový text pro předmět Teoretická informatika
Slidy z přednášek
Zde se budou v průběhu semestru postupně objevovat slidy z přednášek pro školní rok 2025/2026.
- 1. přednáška
– Úvod. Algoritmy a algoritmické problémy. Výpočetní modely (např. stroje RAM a Turingovy stroje). Churchova-Turingova teze.
Slidy: ti-slides-01.pdf
Slidy z přednášek ze školního roku 2024/2025:
- 1. přednáška
– Úvod. Algoritmy a algoritmické problémy. Výpočetní modely (např. stroje RAM a Turingovy stroje). Churchova-Turingova teze.
Slidy: ti-slides-01.pdf
- 2. přednáška
– Algoritmicky nerozhodnutelné problémy. Částečně rozhodnutelné problémy. Příklady důkazů nerozhodnutelnosti problémů. Riceova věta.
Slidy: ti-slides-02.pdf
- 3. přednáška
– Výpočetní složitost algoritmů. Asymptotická notace. Analýza složitosti rekurzivních algoritmů.
Slidy: ti-slides-03.pdf
- 4. přednáška
– Třídy složitosti. Nedeterministické algoritmy.
Slidy: ti-slides-04.pdf
- 5. přednáška
– NP-úplné problémy.
Slidy: ti-slides-05.pdf
- 6. přednáška
– Příklady důkazů NP-úplnosti některých problémů.
Slidy: ti-slides-06.pdf
- 7. přednáška
– Úplné problémy pro další třídy složitosti. Třída PSPACE. PSPACE-úplné problémy. Hry.
Slidy: ti-slides-07.pdf
- 8. přednáška
– Třídy L a NL. Logspace redukce. P-úplné problémy.
Slidy: ti-slides-08.pdf
- 9. přednáška
– Paralelní algoritmy.
Slidy: ti-slides-09.pdf
- 10. přednáška
– Distribuované algoritmy.
Slidy: ti-slides-10.pdf
- 11. přednáška
– Řešení výpočetně náročných problémů. Randomizované algoritmy. Aproximační algoritmy.
Slidy: ti-slides-11.pdf
Zadání příkladů na cvičení
Zde se budou v průběhu semestru postupně objevovat zadání příkladů na cvičení pro školní rok 2025/2026.
- Cvičení 1: ti-cviceni-01.pdf
Animace
- Animace — animace ilustrující některá témata probíraná v předmětu TI
Tabulka s problémy
- Tabulka s problémy — tabulka s přehledem některých problémů a jejich zařazením do jednotlivých tříd
- Sipser, M.: Introduction to the Theory of Computation, PWS Publishing Company, 1997.
- Kozen, D.: Automata and Computability, Undergraduate Text in Computer Science, Springer-Verlag, 1997.
- Papadimitriou, C.: Computational Complexity, Addison Wesley, 1993.
- Arora, S., Barak, B.: Computational Complexity: A Modern Approach, Cambridge University Press, 2009.
- Hopcroft, J.E., Motwani, R., Ullman, J, D.: Introduction to Automata Theory, Languages, and Computation, (3rd edition), Addison Wesley, 2006.
- Cormen, T. H., Leiserson, R. L., Rivest, R. L., Stein, C.: Introduction to Algorithms, MIT Press, 2001.