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:
    1. Pro všechny platí: kdykoliv , pak pro všechna
    2. 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.

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