- Pojem regulární jazyk jsme používali jako pojem pro jazyk přijímaný konečným automatem a též pro pojem jazyk generovaný gramatikou typu .
Definice
Definice regulárních jazyků
- Třída regulárních jazyků nad abecedou , označovaná jako , je definována induktivně takto:
- a pro každé je regulární jazyk nad .
- Jsou-li regulární jazyky nad , jsou také a regulární jazyky nad
- Každý regulární jazyk vznikne po konečném počtu aplikací kroků a .
- Jinými slovy, je nejmenší třída jazyků nad splňující podmínky a .
- Jazyky uvedení se nazývají elementární,
- operace nad jazyky uvedení se nazývají regulární
- Je tedy vidět, že každý regulární jazyk lze popsat určením elementárních jazyků a předpisu, který určuje jak na tyto jazyky aplikovat regulární operace.
Příklad regulárního jazyku
- stavů pojmenovaných - odpovídají zbytkům po dělení
- počáteční a jediný koncový stav je
Příklad neregulárního jazyku
- Množina řetězců sestávajících z nul následován jedničkami takový, že je alespoň jedna
Uzávěrové vlastnosti regulárních jazyků
- Uzávěrová vlastnost je tvrzení, že daná operace na jazycích, pokud je aplikovaná na jazyky z nějaké třídy (v tomto případě regulární jazyky), dává jako výsledek jazyk z této stejné třídy
Příklad použití uzávěrových vlastností
- Dá se snadno ukázat, že jazyk není regulární.
- množina všech řetězců se stejným počtem a také není regulární, to je ale tězší dokázat.
- Regulární jazyky jsou však uzavřeny na . Proto pokud by byl regulární, pak , tj. by byl též regulární, ten ale není, tedy ani být nemůže.
Součinový DFA
- K dokázání uzávěrových vlastností regulárního jazyka, je možné využít tzv. Součinový DFA
- Součinový DFA simuluje běh více DFA zároveň
- Máme dva DFA a vytvoříme DFA jako kde
- množina stavů obsahuje všechny dvojice stavů , kde a
- abeceda zůstává stejná (oba automaty musí mít stejnou abecedu)
- pro všechna
- počáteční stav je dvojice počátečních stavů z a
- množina koncových stavů zvolíme podle účelu
- Nechť a , pak pro ověření:
- zvolím a pokud , pak
- zvolím a pokud , pak
- zvolím
- zvolím
- zvolím
Uzavřenost na sjednocení
- Pokud jsou a regulurní jazyky, pak též je regulární jazyk
- Důkaz: Již podle definice regulárních jazyků, nebo mohu sestrojit součinový DFA
Uzavřenost na konkatenaci
- Pokud jsou a regulární jazyky, pak též je regulární jazyk
Důkaz
- Již podle definice regulárních jazyků, nebo
Uzavřenost na Kleeneho uzávěr
- Pokud je regulární jazyk, pak též je regulární jazyk
Důkaz
- Již podle definice regulárních jazyků, nebo
Uzavřenost na průnik
- Pokud jsou a regulární jazyky, pak též je regulární jazyk
Důkaz
- Mohu sestrojit součinový DFA
Uzavřenost na rozdíl
- Pokud jsou a regulární jazyky, pak též je regulární jazyk
Důkaz
- Mohu sestrojit součinový DFA
Uzavřenost na komplement
- Pokud je regulární jazyk, pak též co- je regulární jazyk
Důkaz
- Lze uvést konstruktivní důkaz:
- Nechť je regulární jazyk nad abecedou , rozpoznávaný deterministickým konečným automatem .
- Pak jazyk co- je rozpoznávaný konečným automatem co-
Uzavřenost na reverz
- Pokud je regulární jazyk, pak též je regulární jazyk
Důkaz
- Nechť je regulární výraz pro , ukážeme, jak reverzovat , čímž sestrojíme regulární výraz pro
- Základ: Pokud je symbol či , pak
- Indukce: Pokud je
- , pak
- , pak
- , pak
Uzavřenost na homomorfismus
- Pokud je regulární jazyk a homomorfismus na jeho abecedě, pak je též regulární jazyk
- Důkaz u inverzního homomorfismu
Uzavřenost na inverzní homomorfismus
- Třída regulárních jazyků je uzavřena vůči homomorfismu a inverznímu homomorfismu
- Nechť je homomorfismus a jazyk, jehož abeceda je výstupní jazyk
Důkaz
Navigace
Předchozí: Formální jazyky a jejich hierarchie Následující: Konečné automaty deterministické a nedeterministické Celý okruh: 1. Teoretické základy informatiky