Bartákova stránka - odkazy, slajdy, cvičení, ...
Zadání z Modrého - téměř všechno (uz davno neplati), co třeba vědet na zkoušku ...
http://mff.lokiware.info/AutomatyAGramatiky - mnoho odkazu a animaci z roku 2008
Slovníček pojmů
Kvocient
Levý kvocient
Levý kvocient podle
Levá derivace
Levá derivace L podle w
Pravý kvocient
Pravý kvocient podle
Pravá derivace
Pravá derivace L podle w
Kongruence
Nechť X je konečná abeceda, je relace ekvivalence na X*.
Potom:
je pravá kongruence, jestliže
Pokud dvě různá slova u,v převedou automat do stejného stavu (=jsou navzájem ekvivalentní (u ~ v)), pak musí patřit do stejné třídy rozkladu. Pokud k těmto dvěma slovům přidáme stejné slovo zprava, pak tato zřetězená slova budou opět patřit do stejné třídy rozkladu (=musí být navzájem ekvivalentní (uw ~ vw)). A toto je právě ta vlastnost definující pravou kongruenci.
Nerodova věta
Nechť L je jazyk nad konečnou abecedou X. Pak platí:
L je rozpoznatelný konečným automatem existuje pravá kongruence konečného indexu na množině X*, pro níž platí, že L je sjednocením jistých tříd rozkladu .
Důležité tedy je, že pokud je jazyk regulární, pak pro něj musí existovat pravá kongruence, která (což je nejdůležitější) rozkládá všechna slova jazyka do konečně mnoha tříd.
Iterační (pumping) lemma
Pokud je jazyk L regulární, existuje číslo n > 0 tak, že každé slovo , pro které platí , lze zapsat ve tvaru z = uvw, kde pro slova u, v a z platí, že , |v| > 0 a pro každé .
<small>Je to trošku jiná formulace než používá Barták, ale je zní lépe vidět platnost pro konečné jazyky: když je jazyk konečný, tak si za n stačí vzít délku nejdelšího slova a pak to pro všechny slova delší než n (tj. žádná) platí taky.</small>
Kleeneova věta
Jazyk je regulární, právě když je rozpoznatelný konečným automatem.
<small>Důkaz se dá indukcí podle počtu hran v nedeterministickém automatu.</small>
Chomského hierarchie a ti další
| Zařazení do Chomskeho hierarchie | Gramatiky | Jazyky | Automaty | Pravidla |
|---|---|---|---|---|
| Typu 0 | Gramatiky typu 0 | Rekurzivně spočetné jazyky | Turingův stroj | Pravidla v obecné formě (tj. , kde a u obsahuje alespoň 1 neternimální symbol) |
| není | (není společný název) | Rekurzivní jazyky | Vždy zastavující Turingův stroj | |
| Typu 1 | Kontextové gramatiky | Kontextové jazyky | Lineárně omezené automaty | Pouze pravidla ve tvaru , ; ; |
| Jedinou výjimkou je pravidlo , potom se ale S nevyskytuje na pravé straně žádného pravidla. | ||||
| Typu 2 | Bezkontextové gramatiky | Bezkontextové jazyky | (Nedeterministický) Zásobníkový automat | Pouze pravidla ve tvaru , ; |
| není | Deterministické bezkontextové gramatiky | Deterministické bezkontextové jazyky | Deterministický zásobníkový automat | |
| Typu 3 | Regulární gramatiky | Regulární (pravé lineární) jazyky | Konečný automat | Pouze pravidla ve tvaru , ; ; |
| [[Image:Chomskeho_hierarchie.png |
"není" znamená že nepatří do Chomskeho hierarchie.<br/> Z originálu: http://en.wikipedia.org/wiki/Template:Formal_languages_and_grammars </small>| ||
Bezprefixový jazyk
L je bezprefixový, pokud neexistuje slovo takové, že rovněž ,
Lineární jazyky
Jsou jazyky generované gramatikami s pravidly ve tvaru X->aYb, kde a,b jsou řetězce terminálů a X,Y jsou neterminály. Jsou podmnožinou bezkontextových jazyků, a to vlastní (Dyckův jazyk je bezkontextový, ale není lineární). Viz Lineární gramatiky na wikipedii
(Nedeterministický) Zásobníkový automat
Přijímání koncovým stavem
Skončí když je slovo přečteno a automat je v koncovém stavu.
Přijímání prázdným zásobníkem
Skončí když je slovo přečteno a zásobník je prázdný.
Deterministický zásobníkový automat
Říkáme, že zásobníkový automat
, je deterministický, jestliže platí:
– <small>v kazdem kroku si nemuzeme vybirat</small>
– <small>definuje ukončení vypoctu</small>
Každý krok výpočtu je přesně určen.