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é.
Diskuze
Doplnil som cast „Regularni vyrazy“ podla mna o dost dolezitu Kleeneho vetu a pravidla generovania jazyka z reg. vyrazov.
K pumping lematu - neni nahodou pumpovaci konstanta i? n je přece délka slova
Podle skript je jako pumpovací konstanta označeno n.
Je to pumpovaci _konstanta_, takze i to byt nemuze, to je cislo ktere se „pumpuje“
Neměla by tu být prefixová ekvivalence místo pravá kongruence??
(Třetí Lemma M-N věty)
Lemma: Nechť L je libovolný jazyk nad Sigma. Pak relace ~L je _pravá kongruence_ a L lze vyjádřit jako sjednocení některých (ne nutně konečně mnoha) tříd rozkladu Sigma*/~L.
Myslím, že ne. Prefixová ekvivalence (~L) je zároveň i pravou kongruencí(~) (důkaz je ve skriptech na straně 24 dole).
Ta Definice 1.2 není regulární gramatika ale obecná gramatika, regulární by měla mít množinu pravidel P N x \Sigma*(N+ε)