Az automataelméletben a lenyomó automata egy véges állapotú gép , amely egy verem segítségével tárolja az állapotokat.
A közönséges véges automatákkal ellentétben a lenyomó automata egy halmaz [1]
ahol
K az automata állapotok véges halmaza, az automata egyetlen megengedett kezdeti állapota, — végső állapotok halmaza, és F=Ø és F=K megengedett, Σ egy érvényes bemeneti ábécé, amelyből az automata által beolvasott karakterláncok keletkeznek, S - a memória ábécéje (üzlet), egy null memóriakarakter.A memória úgy működik, mint egy verem , vagyis a hozzá írt utolsó elem elérhető olvasásra. Tehát az átmeneti függvény egy leképezés . Vagyis az aktuális állapot, a bemeneti szimbólum és az áruház tetején lévő szimbólum kombinációja alapján az automata kiválasztja a következő állapotot, és esetleg azt a szimbólumot, amelyet a boltba ír. Abban az esetben, ha az automata szabály jobb oldali részében jelen van , akkor semmi sem kerül hozzáadásra az áruházhoz, és a felülről származó elem törlődik. Ha a bolt üres, akkor a bal oldalon lévő c szabályok lépnek életbe.
A push-down automaták által felismert nyelvek osztálya megegyezik a környezetfüggetlen nyelvek osztályával .
Tiszta formájában a push-pull automatákat ritkán használják. Általában ezt a modellt a közönséges véges automaták és a szintaktikai nyelvtan közötti különbség megjelenítésére használják . A lenyomó automaták megvalósítása abban különbözik a véges automatáktól, hogy az automata aktuális állapota erősen függ bármely korábbi állapottól.
Vannak determinisztikus és nem determinisztikus lenyomó automaták.
A nem determinisztikus automatákhoz (a determinisztikusakkal szemben) két egyenértékű befejezési feltétel létezik:
Egy determinisztikus automata csak akkor fejeződik be, amikor eléri a végső állapotot.
Formális nyelvek és formális nyelvtanok | |
---|---|
Általános fogalmak | |
Típus 0 | |
1. típus |
|
2. típus | |
3. típus |
|
elemzése |