• 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:
    1. a pro každé je regulární jazyk nad .
    2. Jsou-li regulární jazyky nad , jsou také a regulární jazyky nad
    3. 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

Uzavřenost na Kleeneho uzávěr

  • Pokud je regulární jazyk, pak též je regulární jazyk

Uzavřenost na průnik

  • Pokud jsou a regulární jazyky, pak též je regulární jazyk

Uzavřenost na rozdíl

  • Pokud jsou a regulární jazyky, pak též je regulární jazyk

Uzavřenost na komplement

  • Pokud je regulární jazyk, pak též co- je regulární jazyk

Uzavřenost na reverz

  • Pokud je regulární jazyk, pak též je regulární jazyk

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

Předchozí: Formální jazyky a jejich hierarchie Následující: Konečné automaty deterministické a nedeterministické Celý okruh: 1. Teoretické základy informatiky