Teoretická informatika
2. Teoretická informatika
Garantující pracoviště: Katedra teoretické informatiky a matematické logiky, Informatický ústav Univerzity Karlovy
Oborový garant: Doc. Mgr. Michal Koucký, Ph.D.
Obor se nedělí na zaměření
Absolvent důkladně rozumí teoretickým základům výpočetních systémů a zároveň má přehled o praktických výpočetních metodách a postupech. Rozumí tak různým modelům výpočtů a jejich vzájemným vztahům, zná možnosti a limity efektivních výpočtů, disponuje širokým spektrem algoritmických technik a technik konstrukce datových struktur. Má důkladné znalosti v oblasti pravděpodobnosti a jejího využití při návrhu a analýze algoritmů a výpočetních systémů.
Povinné předměty
kód | Předmět | Kredity | ZS | LS | |
NTIN090 | Základy složitosti a vyčíslitelnosti | 5 | 2/1 Z+Zk | — | |
NTIN066 | Datové struktury I | 5 | 2/1 Z+Zk | — | |
NTIN022 | Pravděpodobnostní techniky | 6 | 2/2 Z+Zk | — | |
NTIN063 | Složitost | 5 | — | 2/1 Z+Zk | |
NTIN100 | Základy přenosu a zpracování informace | 5 | — | 2/1 Z+Zk | |
NSZZ023 | Diplomová práce I | 6 | 0/4 Z | 0/4 Z | |
NSZZ024 | Diplomová práce II | 9 | 0/6 Z | 0/6 Z | |
NSZZ025 | Diplomová práce III | 15 | 0/10 Z | 0/10 Z |
Povinně volitelné předměty
Je požadováno splnění povinně volitelných předmětů z následujícího seznamu v rozsahu alespoň 45 kreditů:
kód | Předmět | Kredity | ZS | LS | |
NAIL021 | Booleovské funkce a jejich aplikace | 3 | 2/0 Zk | — | |
NAIL031 | Reprezentace booleovských funkcí | 3 | — | 2/0 Zk | |
NAIL094 | Rozhodovací procedury a verifikace | 6 | — | 2/2 Z+Zk | |
NMAG563 | Úvod do složitosti CSP | 3 | 2/0 Zk | — | |
NDMI010 | Grafové algoritmy | 3 | 2/0 Zk | — | |
NDMI013 | Kombinatorická a výpočetní geometrie II | 6 | — | 2/2 Z+Zk | |
NDMI018 | Aproximační a online algoritmy | 6 | — | 2/2 Z+Zk | |
NDMI025 | Pravděpodobnostní algoritmy | 6 | — | 2/2 Z+Zk | |
NDMI067 | Toky, cesty a řezy | 3 | 2/0 Zk | — | |
NDMI074 | Algoritmy a jejich implementace | 6 | — | 2/2 Z+Zk | |
NDMI077 | Algoritmy pro specifické třídy grafů | 3 | — | 2/0 Zk | |
NDMI088 | Grafové algoritmy II | 3 | — | 2/0 Zk | |
NMAG446 | Logika a složitost | 3 | — | 2/0 Zk | |
NMAG536 | Důkazová složitost a P vs. NP problém | 3 | — | 2/0 Zk | |
NMAI067 | Logika v informatice | 3 | 2/0 Zk | — | |
NOPT034 | Matematické programování a polyedrální kombinatorika | 5 | 2/1 Z+Zk | — | |
NSWI072 | Algoritmy komprese dat | 3 | 2/0 Zk | — | |
NTIN017 | Paralelní algoritmy | 3 | — | 2/0 Zk | |
NTIN018 | Pravděpodobnostní analýza algoritmů | 3 | 2/0 Zk | — | |
NTIN033 | Experimentální analýza algoritmů | 6 | — | 2/2 Z+Zk | |
NTIN064 | Vyčíslitelnost | 3 | — | 2/0 Zk | |
NTIN067 | Datové struktury II | 3 | — | 2/0 Zk | |
NTIN073 | Rekurze | 3 | 2/0 Zk | — | |
NTIN081 | Strukturální složitost | 3 | — | 2/0 Zk | |
NTIN082 | Výpočetní složitost | 3 | — | 2/0 Zk | |
NTIN084 | Bioinformatické algoritmy | 6 | 2/2 Z+Zk | — | |
NTIN085 | Vybrané kapitoly z výpočetní složitosti I | 5 | 2/1 Z+Zk | — | |
NTIN086 | Vybrané kapitoly z výpočetní složitosti II | 5 | — | 2/1 Z+Zk | |
NTIN087 | Textové algoritmy | 3 | 2/0 Zk | — | |
NTIN088 | Algoritmická náhodnost | 3 | — | 2/0 Zk | |
NTIN096 | Pseudo-Booleovská optimalizace | 3 | — | 2/0 Zk | |
NTIN097 | Problémy na hyperkrychlích | 3 | 2/0 Zk | — | |
NTIN098 | Pokročilé datové struktury | 3 | 2/0 Zk | — | |
NTIN099 | Algoritmické aspekty booleovských funkcí a parametrizovaná složitost | 3 | — | 2/0 Zk | |
NTIN104 | Foundations of theoretical cryptography | 5 | — | 2/1 Z+Zk | |
NTIN103 | Introduction to Parameterized Algorithms | 6 | 2/2 Z+Zk | — |
Doporučené volitelné předměty
kód | Předmět | Kredity | ZS | LS | |
NOPT016 | Celočíselné programování | 6 | — | 2/2 Z+Zk | |
NOPT042 | Programování s omezujícími podmínkami | 6 | 2/2 Z+Zk | — | |
NTIN023 | Dynamické grafové datové struktury | 3 | 2/0 Zk | — |
Státní závěrečná zkouška
Ke dvěma povinným okruhům společným pro všechny obory si student vybere dva další okruhy z následující nabídky. Jako poslední okruh si student může zvolit buď také okruh z následující nabídky, nebo libovolný okruh oboru Diskrétní modely a algoritmy, libovolný okruh zaměření Inteligentní agenti nebo Strojové učení oboru Umělá inteligence, nebo libovolný okruh zaměření Počítačová grafika oboru Počítačová grafika a vývoj počítačových her. Celkem tedy každý student dostane pět otázek.
Zkušební okruhy
- 1. Složitost a vyčíslitelnost
- 2. Booleovské funkce
- 3. Algoritmy
- 4. Pokročilé datové struktury
Zkušební požadavky
1. Složitost a vyčíslitelnost
Výpočty s orákuly a relativizované výpočetní třídy. Polynomiální hierarchie. Neuniformní modely výpočtu. Pravděpodobnostní výpočetní třídy. Interaktivní protokoly, PCP věta. Jednosměrné funkce a pseudonáhodné generátory. Komunikační složitost. Důkazová složitost. Vztahy a separace různých tříd složitosti. Věty o rekurzi a jejich použití. Efektivně neoddělitelné množiny. Relativní vyčíslitelnost a operace skoku. Aritmetická hierarchie.
Doporučené předměty
kód | Předmět | Kredity | ZS | LS | |
NTIN063 | Složitost | 5 | — | 2/1 Z+Zk | |
NTIN081 | Strukturální složitost | 3 | — | 2/0 Zk | |
NTIN082 | Výpočetní složitost | 3 | — | 2/0 Zk | |
NMAG536 | Důkazová složitost a P vs. NP problém | 3 | — | 2/0 Zk | |
NTIN064 | Vyčíslitelnost | 3 | — | 2/0 Zk | |
NTIN100 | Základy přenosu a zpracování informace | 5 | — | 2/1 Z+Zk |
2. Booleovské funkce
Rezoluce a její úplnost. Třídy booleovských funkcí se speciálními vlastnostmi. Algoritmy pro SAT a MAXSAT. Reprezentace booleovských funkcí pomocí BDD a OBDD. Řešiče pro SAT a jejich využití pro SMT. Parametrizovaná složitost. Hyperkrychlové grafy.
Doporučené předměty
kód | Předmět | Kredity | ZS | LS | |
NTIN099 | Algoritmické aspekty booleovských funkcí a parametrizovaná složitost | 3 | — | 2/0 Zk | |
NAIL094 | Rozhodovací procedury a verifikace | 6 | — | 2/2 Z+Zk | |
NTIN097 | Problémy na hyperkrychlích | 3 | 2/0 Zk | — | |
NAIL021 | Booleovské funkce a jejich aplikace | 3 | 2/0 Zk | — | |
NAIL031 | Reprezentace booleovských funkcí | 3 | — | 2/0 Zk |
3. Algoritmy
Pokročilé grafové algoritmy, toky v síti, algoritmy pro rovinné grafy. Lineární a semidefinitní programování, polynomiální algoritmy, použití v grafových a aproximačních algoritmech. Kombinatorické aproximační algoritmy a schémata. Pravděpodobnostní algoritmy, přibližné počítání, hašování a jeho aplikace. Interaktivní protokoly a verifikace, PCP věta a její aplikace. Paralelní výpočetní modely a třídy, techniky a příklady paralelních algoritmů. Textové algoritmy, posloupnosti, podřetězce, regulární výrazy a vyhledávání.
Doporučené předměty
kód | Předmět | Kredity | ZS | LS | |
NDMI010 | Grafové algoritmy | 3 | 2/0 Zk | — | |
NDMI018 | Aproximační a online algoritmy | 6 | — | 2/2 Z+Zk | |
NDMI025 | Pravděpodobnostní algoritmy | 6 | — | 2/2 Z+Zk | |
NTIN017 | Paralelní algoritmy | 3 | — | 2/0 Zk | |
NTIN087 | Textové algoritmy | 3 | 2/0 Zk | — |
4. Pokročilé datové struktury
Entropie a informace. Samoopravné kódy. Komprese dat. Datové struktury pro práci s řetězci. Dynamické datové struktury pro reprezentaci grafů. Slovníkové datové struktury. Pravděpodobnostní vyhledávací struktury. Pokročilé haldy. Datové struktury pro práci s celými čísly. Persistentní datové struktury. Samoupravující se datové struktury. Cache oblivious analýza a optimální algoritmy. Data-streamové problémy.
Doporučené předměty
kód | Předmět | Kredity | ZS | LS | |
NTIN100 | Základy přenosu a zpracování informace | 5 | — | 2/1 Z+Zk | |
NTIN067 | Datové struktury II | 3 | — | 2/0 Zk | |
NTIN087 | Textové algoritmy | 3 | 2/0 Zk | — | |
NDMI010 | Grafové algoritmy | 3 | 2/0 Zk | — | |
NSWI072 | Algoritmy komprese dat | 3 | 2/0 Zk | — |