From 2a4ec7dfe6dede5e184a8cf8fe521237b099e78d Mon Sep 17 00:00:00 2001 From: Martin Mares <mj@ucw.cz> Date: Mon, 8 Mar 2021 12:05:31 +0100 Subject: [PATCH] =?UTF-8?q?N=C3=A1vrh=20nov=C3=A9ho=20p=C5=99edm=C4=9Btu?= =?UTF-8?q?=20pro=20u=C4=8Ditelsk=C3=A9=20studium?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- navrh-ADS2-ucitelske.md | 72 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 navrh-ADS2-ucitelske.md diff --git a/navrh-ADS2-ucitelske.md b/navrh-ADS2-ucitelske.md new file mode 100644 index 0000000..222a229 --- /dev/null +++ b/navrh-ADS2-ucitelske.md @@ -0,0 +1,72 @@ +# Návrh na společné ADS2 + Automaty a gramatiky pro učitele + +## Anotace + +Přednáška o algoritmech a základech teoretické informatiky. +Navazuje na NTIN060 (ADS1), nahrazuje NTIN061 (ADS2) a NTIN071 (Automaty a gramatiky). + +## Sylabus + +1. Vyhledávání v textu (1.5 přednášky) + * notace pro řetězce + * algoritmus Knuth-Morris-Pratt + * algoritmus Aho-Corasicková + +1. Toky v sítích (1.5 přednášky) + * sítě, toky a řezy + * Fordův-Fulkersonův algoritmus + * Edmondsův-Karpův algoritmus (FF s nejkratší cestou) + * párování v bipartitním grafu + * vrcholově/hranově disjunktní cesty v grafech + +1. Základní geometrické algoritmy v rovině (1 přednáška) + * konvexní obal + * princip zametání roviny řízeného událostmi + +1. Převoditelnost problémů a třídy časové složitosti (2 přednášky) + * polynomiální transformace a redukce mezi rozhodovacími problémy + * nedeterministické algoritmy, třídy P a NP + * NP-úplnost + +1. Aproximační algoritmy (1 přednáška) + * použití aproximačních algoritmů, poměrová a relativní chyba + * jeden až dva jednoduché příklady aproximačních algoritmů (knapsack, bin-packing, rozvrhování na paralelních strojích) včetně horního odhadu pro jejich poměrovou (nebo relativní) chybu + * aproximační schéma: princip a příklad + +1. Konečné automaty (1 přednáška) + * základní pojmy: slova už známe z vyhledávání v textu, + jazyk je vlastně totéž co rozhodovací problém + * definice konečného automatu (DFA), syntaxe a sémantika, regulární jazyk + * příklad: 0^n1^n není regulární, důkaz principem holubníku + * příklad: v KMP uvážíme uzávěr zpětných hran a máme DFA + * regulární pumping lemma (zobecnění myšlenky předchozího důkazu) + * příklad: 1^{prvočíslo} není regulární + * součin automatů + +1. Regulární výrazy (1 přednáška) + * nedeterministický konečný automat (NFA) + * ekvivalence DFA ↔ NFA + * λ-přechody, ekvivalence λ-NFA ↔ NFA + * uzavřenost na množinové operace + * regulární výrazy popisují právě regulární jazyky + +1. Gramatiky (1 přednáška) + * gramatiky, jimi generované jazyky + * pravé a levé lineární gramatiky generují regulární jazyky + * obecné lineární gramatiky generují i neregulární jazyky + * bezkontextové gramatiky, derivační stromy, jednoznačnost + * Chomského normální forma + * algoritmus testující příslušnost slova do bezkontextového jazyka + pomocí dynamického programování + +1. Turingovy stroje (1 přednáška) + * obousměrný konečný automat + * bez důkazu: obousměrné automaty jsou stejně silné jako jednosměrné + * Turingův stroj (TM) + * TM může příjímat zastavením (rekurzivně spočetné jazyky), přijímat stavem + (rekurzivní jazyky) nebo vydávat výstup na pásce (vyčíslitelné funkce) + * neformálně: vztah mezi TM a RAMem + * TM jsou ekvivalentní s obecnými gramatikami + * univerzální Turingův stroj, kódování strojů (bez detailů konstrukce) + * halting problem je rekurzivně spočetný, ale není rekurzivní + * Postova věta => doplněk halting problemu není rekurzivně spočetný -- GitLab