From faee0ac237959bc5b17a1f4038ea13115633e090 Mon Sep 17 00:00:00 2001 From: Martin Mares <mj@ucw.cz> Date: Sat, 15 Apr 2023 11:51:09 +0200 Subject: [PATCH] =?UTF-8?q?Pokus=20o=20reformu=20Automat=C5=AF=20a=20grama?= =?UTF-8?q?tik?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AG.md | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 AG.md diff --git a/AG.md b/AG.md new file mode 100644 index 0000000..06ea6be --- /dev/null +++ b/AG.md @@ -0,0 +1,85 @@ +# Automaty a složitost (návrh) + +## Sylabus + +1. Konečné automaty (1.5 přednášky) + * základní pojmy: abeceda, slovo, jazyk (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.5 přednášky) + * bezkontextové gramatiky, derivační stromy, generované jazyky + * pravé a levé lineární gramatiky generují regulární jazyky + * obecné lineární gramatiky generují i neregulární jazyky + * jednoznačnost gramatiky + * Chomského normální forma + * algoritmus testující příslušnost slova do bezkontextového jazyka + pomocí dynamického programování + * iterační lemma pro bezkontextové jazyky + +1. Turingovy stroje (1 přednáška) + * Turingův stroj (TM) a jeho výpočet + * TM může příjímat zastavením (částečně rozhodnutelné jazyky), přijímat stavem + (rozhodnutelné jazyky) nebo vydávat výstup na pásce (vyčíslitelné funkce) + * varianty TM: + - páska jen pro čtení => obousměrný konečný automat + Důkaz ekvivalence s klasickým DFA. + - více pásek: důkaz ekvivalence s jednopáskovým TM + - nedeterministický TM + * vztah mezi TM a RAMem + +1. Základy vyčíslitelnosti (1 přednáška) + * univerzální Turingův stroj, kódování strojů (bez detailů konstrukce) + * univerzální jazyk a diagonální jazyk + * halting problem je částečně rozhodnutelný, ale není rozhodnutelný + * Postova věta => doplněk halting problemu není částečně rozhodnutelný + * jazyk je částečně rozhodnutelný <=> jeho slova lze vyjmenovat + * převoditelnost jazyků + * Riceova věta (bez důkazu) + +1. Polynomiálni složitost a P vs. NP (2.5 přednášky) + * třídy DTIME(f) + * redukce počtu pásek a univerzální TM zpomalují jen polynomiálně, + stejně tak převody TM <-> RAM => třída P je nezávislá na modelu + * třída NP definovaná pomocí certifikátů + * převoditelnost v polynomiálním čase + * převody mezi problémy: + * SAT, 3-SAT, 3,3-SAT + * klika, nezávislá množina + * 3D párování + * ZOE (zero-one linear equations) + * 3-barevnost + * hamiltonovská cesta + * NP-úplnost + * Cookova-Levinova věta + * třída co-NP, tautologičnost + * TODO: Zmínit obvody, když už je znají z ADS2? + +1. Další složitostní třídy (1 přednáška) + * třídy DSPACE(f), PSPACE + * nedeterministické třídy NTIME(f), NSPACE(f), NP, NPSPACE + * DTIME(f) ⊆ NTIME(f) ⊆ DSPACE(f) ⊆ NSPACE(f) ⊆ DTIME(2^O(f)) + * důsledek: P ⊆ NP ⊆ PSPACE ⊆ NPSPACE ⊆ DTIME(2^poly(n)) + * důsledek: DSPACE(log n) ⊆ NSPACE(log n) ⊆ P + * věty o hierarchii + +1. Fine-grained složitost (1.5 přednášky) + * hypotéza o ortogonálních vektorech (OVH) + * hypotézy o exponenciálním čase (ETH a SETH) + * fine-grained převoditelnost + * OVH implikuje dolní odhad pro simulaci NFA + * ETH implikuje dolní odhad pro dominující množínu + * SETH implikuje OVH + +*(celkem 11 přednášek)* -- GitLab