Zásobníkový automat (PDA)
- Push down automata
- Lze si je představit jako konečný automat s tím, že navíc obsahuje (pomocnou) paměť, která pracuje jako zásobník a jejíž velikost není shora omezená
- Přijímají (jako CFG) bezkontextové jazyky
Definice nedeterministického zásobníkového automatu
- Nedeterministický zásobníkový automat (PDA) je sedmice , kde:
- je konečná množina, jejíž prvky nazýváme stavy
- je konečná množina, tzv. vstupní abeceda
- je konečná množina, tzv. zásobníková abeceda
- je přechodová funkce
- Stavu, vstupnímu symbolu a symbolu na vrcholu zásobníku přiřadí množinu dvojic skládajících se ze stavu a řetězce zásobníkových symbolů
- je počáteční stav
- je počáteční symbol v zásobníku
- je množina koncových stavů
Konfigurace
-
Nechť je PDA.
-
Vnitřní konfigurací nazveme libovolný prvek , kde je momentální stav PDA a je celý obsah zásobníku s vrcholem psaným vlevo.
-
Konfigurací nazveme trojici z , udávající mimo vnitřní konfigurace navíc i - dosud nepřečtenou část vstupního řetězu.
-
Na množině všech konfigurací automatu definujeme binární relaci , krok výpočtu takto: Reflexivní a tranzitivní uzávěr relace kroku výpočtu značíme
-
Jazyk akceptovaný PDA koncovým stavem definujeme jako
-
Jazyk akceptovaný PDA prázdným zásobníkem definujeme jako
-
Jazyk pro nějaký PDA pro nějaký PDA
Deterministický PDA
- Řekneme, že PDA je deterministický, jestliže jsou splněny tyto podmínky:
- Pro všechny platí: kdykoliv , pak pro všechna
- Pro všechny a neobsahuje více než jeden prvek
- Podmínka 1 vylučuje možnost volby mezi krokem nezávislým na vstupním symbolu (-krokem) a krokem, kdy se ze vstupu čte.
- Podmínka 2 říká, že je jak v případě čtecího kroku, tak i pro -krok, neexistuje více než jedna varianta, jak dále pokračovat
- Řekneme, že je deterministický bezkontextový jazyk (DCFL), právě když existuje DPDA takový, že
Normální forma (D)PDA
- Řekneme, že DPDA je v normální formě jestliže platí:
- Je-li , pak buď a. b. c. pro nějaké .
- Identicky lze definovat normální formu i pro nedeterministický PDA. Uvedená normální forma tedy požaduje, aby jediné povolené operace nad zásobníkem byly
- odstranění vrcholového symbolu ze zásobníku podmínka (a) nebo
- přidání jednoho symbolu na vrchol zásobníku, podmínka (c),
- podmínka (b) povoluje změnit pouze vnitřní stav, a to bez změny zásobníku.
Navigace
Předchozí: Bezkontextové jazyky a jejich vlastnosti (uzávěrové vlastnosti, jednoznačnost) Následující: Turingův stroj (TS), nedeterministický TS Celý okruh: 1. Teoretické základy informatiky