regulární jazyky, způsoby jejich reprezentace, vlastnosti regulárních jazyků, vztah mezi konečnými automaty a regulárními gramatikami
Abeceda je libovolná konečná množina znaků (písmen, symbolů)
Slovo nad abecedou je libovolná konečná posloupnost znaků této abecedy
Jazyk nad abecedou je libovolná množina slov nad
Jazyk L je regulární, právě když:
Definice 1.2. 1)
Gramatika je regulární, jestliže každé její pravidlo je tvaru A → aB nebo A → a s výjimkou S → , pokud se S nevyskytuje na pravé straně žádného pravidla.
Je to gramatika typu 3 podle Chomského hierarchie gramatik.
Definice 2.1. 2)
: Q x * → Q definována induktivně vzhledem k délce slova ze *:
: Q x * → 2Q, definována induktivně vzhledem k délce slova ze *:
více viz otázka AP9,IN9 Konečné automaty
Množina regulárních výrazů nad abecedou , označovaná RE(), je definována induktivně takto:
Závorky je možné vypouštět s tím, že největší prioritu má operátor „ * “, pak „ . “ a nakonec „ + “ Každý regulární výraz E nad abecedou popisuje jazyk L(E) nad abecedou podle těchto pravidel:
Ekvivalenci mezi regulárními výrazy a konečnými automaty shrnuje Kleeneho veta:
Kleeneho věta
Lemma 2.13. (o vkládání)3)
Lemma o vkládání je nutnou (nikoliv postačující) podmínkou pro regularitu jazyka a lze jej použít pro důkaz toho, že nějaký jazyk není regulární (NE pro důkaz toho, že jazyk je regulární!!!). Postupujeme tak, že ukážeme, že pokud platí „negace“ lemmatu o vkládání, potom jazyk L není regulární:
Potom z lemmatu o vkládání plyne, že L není regulární.
Myhill-Nerodova věta představuje nutnou a postačující podmínku pro regularitu jazyka.
Pro formulaci M-N věty potřebujeme několik pomocných pojmů:
Definice – pravá kongruence
Definice – prefixová ekvivalence
Lemma
Věta 2.28 Myhill-Nerodova věta4)
Třída regulárních jazyků je uzavřena na:
Mějme konečné automaty M a M'.
Následující problémy jsou rozhodnutelné:
Třídy jazyků, které lze generovat regulárními gramatikami, resp. rozpoznat konečnými automaty, jsou si rovny. To znamená, že k dané regulární gramatice lze sestrojit ekvivalentní (deterministický, nedeterministický, …) konečný automat a naopak.
Lemma 2.695)
Stavy automatu budou odpovídat neterminálům gramatiky, tj. pro každý neterminál A bude existovat stav . Pro každé pravidlo A → aB přidáme do (, a) stav . Abychom se mohli vypořádat také s pravidly tvaru C → a, zavedeme speciální koncový stav qf, který přidáme do (, a). Počáteční stav bude , koncový stav qf a případně také , pokud gramatika obsahuje pravidlo S → .
Lemma 2.716)
Neterminály budou odpovídat stavům, pravidla budou simulovat přechodovou funkci. Je tu však jeden problém – pokud automat přijímá prázdné slovo (tj. počáteční stav je koncovým stavem), musí každá ekvivalentní gramatika nutně obsahovat pravidlo S → , kde S je kořen. Pak se ale S nesmí vyskytovat na pravé straně žádného pravidla. Přitom je ale možné, že některé přechody automatu končí v počátečním stavu a mají být simulovány pravidly, které mají na pravé straně S, což by vedlo ke konfliktu s požadavkem pravostranných výskytů S. Tento problém vyřešíme tak, že ke zkonstruované gramatice (mající jak S → , tak i pravostranné výskyty S) nalezneme ekvivalentní regulární gramatiku.
Lingvista Noam Chomsky rozdělil gramatiky do čtyř skupin (typů) na základě různých omezení na tvar pravidel a podle jejich popisné síly.
Chomského hierarchie rozlišuje tyto čtyři (základní) typy gramatik:
Libovolná gramatika je gramatikou typu 0; na tvar pravidel se nekladou žádné omezující požadavky. Někdy též se takové gramatiky označují jako gramatiky bez omezení či frázové gramatiky.
Gramatika je typu 1 nebo též kontextová, jestliže pro každé její pravidlo platí platí s eventuelní výjimkou pravidla pokud se nevyskytuje na pravé straně žádného pravidla.
Gramatika je typu 2, též bezkontextová, jestliže každé její pravidlo je tvaru , kde s eventuelní výjimkou pravidla pokud se nevyskytuje na pravé straně žádného pravidla.
Gramatika je typu 3, též regulární, jestliže každé její pravidlo je tvaru nebo s eventuelní výjimkou pravidla , pokud se nevyskytuje na pravé straně žádného pravidla.
Lukáš Hala, 173454@mail.muni.cz
Pokud si myslíte, že tady něco chybí, přebývá nebo že je něco blbě, tak to prosím upravte
Je potřeba ještě zapracovat poznámky od Jitky Pospíšilové.