Animace k předmětům teoretické informatiky

Animace, u kterých není explicitně uveden autor, vypracovali Petr Jančar, Martin Kot a Zdeněk Sawa. Některé animace vypracovali studenti v rámci svých diplomových a bakalářskářských prací pod vedením Petra Jančara. U těch je jméno autora explicitně uvedeno. Pokud byla animace od studenta upravena, je u ní i jméno autora úprav.

Uvítáme odezvu od návštěvníků této stránky. Pokud v animacích objevíte nějaké chyby nebo nejasnosti nebo budete mít návrhy na vylepšení animací a vytvoření dalších, kontaktujte, prosím, e-mailem .

Některé animace byly v minulosti studenty v rámci diplomových prací vytvořeny pomocí Adobe Flash. Protože podpora přehrávače Adobe Flash Player před několika lety skončila, tyto animace se v seznamu níže nezobrazují. Je možné se ale přepnout na stránku, kde jsou uvedeny i ony.

Konečné automaty a regulární jazyky

1. Rozpoznávání jazyka pdf Motivace k zavedení konečných automatů. Na příkladu jazyka všech slov se sudým počtem symbolů 1 je ukázáno, jak by mohlo probíhat rozhodování o příslušnosti slova k jazyku.
2. Vyhledávání v textu pdf Jednoduchý algoritmus pro vyhledávání řetězce v textu.
3. Definice konečného automatu pdf Definice konečného automatu, konfigurací a přijímání slova konečným automatem. Ukázka přijímajícího i nepřijímajícího běhu včetně výpisu posloupnosti konfigurací.
4. Automat pro průnik jazyků pdf Ukázka, jak je možné pro dva zadané konečné automaty sestrojit konečný automat přijímající průnik jazyků přijímaných těmi zadanými.
5. Automat pro sjednocení jazyků pdf Ukázka, jak je možné pro dva zadané konečné automaty sestrojit konečný automat přijímající sjednocení jazyků přijímaných těmi zadanými.
6. Automat pro doplněk jazyka pdf Ukázka, jak je možné k zadanému konečnému automatu sestrojit konečný automat přijímající doplněk jazyka zadaného konečného automatu. Dále animace ukazuje, proč nemůžeme stejným způsobem obecně získat doplněk k jazyku přijímanému nedeterministickým konečným automatem.
7. Zřetězení regulárních jazyků pdf Motivační přiklad pro zavedení zobecněných nedeterministických automatů. V animaci se snažíme sestrojit automat pro zřetězení dvou regulárních jazyků. Nejprve je ukázáno, proč obecně nefunguje myšlenka, kdy se spojí přijímající stav automatu pro první jazyk s počátečním stavem automatu pro druhý jazyk. Potom je sestrojen ZNKA a je předvedeno jak příjme dva slova z požadovaného zřetězení jazyků.
8. Nedeterministický konečný automat pdf Ukázka různých výpočtů jednoho nedeterministického automatu nad jedním slovem. Příklad neúplného výpočtu, úplného nepřijímajícího i úplného přijímajícího výpočtu.
9. Výpočet NKA pdf Ukázka 2 výpočtů jednoho nedeterministického konečného automatu nad jedním slovem.
10. Zobecněný nedeterministický konečný automat pdf Ukázka různých výpočtů různých zobecněných nedeterministických automatů nad jedním slovem.
11. Převod NKA na DKA pdf Ukázka převodu nedeterministického konečného automatu na deterministický, realizováno nejprve pomocí grafu automatu, potom tabulkou.
12. Převod ZNKA na DKA pdf Příklad převodu zobecněného nedeterministického konečného automatu na deterministický konečný automat.
13. Normovaný tvar konečného automatu pdf Příklad převodu dvou konečných automatů do normovaného tvaru.
14. Minimalizace konečného automatu pdf Vysvětlení postupu minimalizace konečného automatu - odstranění nedosažitelných stavů a nahrazení množin ekvivalentních stavů jejich reprezentanty.
autor: Libor Bravenec
15. Minimalizace konečného automatu pdf Příklad minimalizace konečného automatu.
autor: Libor Bravenec
16. Převod RV na ZNKA pdf Vysvětlení mechanické konstrukce zobecněného nedeterministického konečného automatu k zadanému regulárnímu výrazu.
autoři: Martin Faltýnek, Martin Kot
17. Převod RV na ZNKA pdf Ukázka základních kroků konstrukce zobecněného nedeterministického konečného automatu k zadanému regulárnímu výrazu a přiklad převodu jednoho výrazu.
18. Převod KA na RV pdf Vysvětlení mechanické konstrukce regulárního výrazu k danému konečnému automatu. Konstrukce využívá automat s hranami označenými regulárními výrazy, který se postupně transformuje až do situace, kdy má jen jednu hranu označenou výsledným RV.
autoři: Martin Faltýnek, Martin Kot
19. Převod KA na RV pdf Příklad převodu konečného automatu na regulární výraz.
20. Regulární operace pdf Konstrukce konečných automatů pro zřetězení, iteraci a sjednocení jazyků zadaných konečnými automaty.

Bezkontextové gramatiky a zásobníkové automaty

21. Odvození slova v gramatice pdf Ukázka derivace (odvození) jednoho slova v bezkontextové gramatice.
22. Derivační strom pdf Ukázka tvorby derivačního stromu odpovídajícího jedné konkrétní derivaci.
23. Výpočet zásobníkového automatu pdf Ukázky výpočtů dvou různých zásobníkových automatů (jednoho deterministického a jednoho nedeterministického) nad různými slovy.
24. Redukce bezkontextové gramatiky pdf Vysvětlení postupu redukce bezkontextové gramatiky.
25. Nevypouštějící bezkontextová gramatika pdf Vysvětlení postupu převodu bezkontextové gramatiky na tzv. nevypouštějící, tedy neobsahující pravidla s epsilon na pravé straně.

Výpočetní modely

26. Turingův stroj pdf Definice Turingova stroje a ukázky výpočtů dvou Turingových strojů.
27. Turingův stroj pdf Popis Turingova stroje. Ukázka TS, který za slovo na vstupu přidá jeho zrcadlový obraz.
autor: Michal Hrančík
28. Turingův stroj pdf Popis Turingova stroje. Ukázka TS, který zdvojí slovo na vstupu.
autor: Michal Hrančík
29. Vícepáskový Turingův stroj pdf Popis vícepáskového Turingova stroje. Ukázka dvoupáskového TS, který na výstupní pásku umístí zdvojené vstupní slovo.
autor: Michal Hrančík

NP-úplné problémy

30. NP-úplnost problému SAT pdf Důkaz tzv. Cookovy věty, tedy NP-úplnosti problému SAT.
31. Převod SAT na 3-SAT pdf Algoritmus převodu problému splnitelnosti booleovských formulí na problém splnitelnosti booleovských formulí se třemi literály v každé klauzuli.
32. Převod 3-SAT na ILP pdf Algoritmus převodu problému splnitelnosti booleovských formulí se třemi literály v každé klauzuli na problém celočíselného lineárního programování.
33. Převod 3-SAT na Subset-Sum pdf Algoritmus převodu problému splnitelnosti booleovských formulí se třemi literály v každé klauzuli na problém Subset-sum (rozhodování, zda z dané množiny celých čísel je možné vybrat podmnožinu s daným součtem).
34. Převod IS na HC pdf Algoritmus převodu problému nezávislé množiny na problém Hamiltonovského cyklu.
autoři: Michal Hrančík, Martin Kot
35. Převod HC na HK pdf Algoritmus převodu problému Hamiltonovského cyklu na problém Hamiltonovské kružnice.

Aproximační algoritmy

36. Vrcholové pokrytí pdf Aproximační algoritmus pro hledání vrcholového pokrytí v grafu s maximálně dvojnásobným počtem vrcholů než má minimální pokrytí.
37. Problém obchodního cestujícího pdf Aproximační algoritmus pro hledání cesty obchodního cestujícího s maximálně dvojnásobnou délkou než má minimální.

Ostatní

38. Třídící algoritmy pdf Ukázky běhu a pseudokódy tří třídicích algoritmů - bubblesort, heapsort a quicksort