9. Veremautomaták

  • Input szalag

  • Verem

  • Véges vezérlő

  • A veremautomata a véges automata általánosítása potenciálisan végtelen veremmel és véges kontrollal.

  • A verem esetében az új adat mindig a már meglév˝o veremtartalom tetejéhez adódik, kivétele fordított sorrendben történik.

  • alapértelmezetten nemdeterminisztikus

A veremautomata egy rendezett hetes, ahol

  • a veremszimbólumok véges halmaza

  • az állapotok véges halmaza

  • az inputszimbólumok véges halmaza

  • az úgynevezett átmeneti függvény

  • a kezdeti veremszimbólum

  • a kezdeti állapot

  • az elfogadó állapotok vagy végállapotok halmaza

  • A verem tetején lévő szimbólum, az aktuális állapot és az inputszimbólum együttesen határozzák meg a következő átmenetet.

  • Minden lépésben mindenképpen kiveszünk egyetlen egy elemet a verem tetejéről és beteszünk helyette néhányat. (0, 1, 2, darabot)

  • Ha nem üres, akkor ún. -átmenet hajtható végre, ami lehetővé teszi, hogy a veremautomata anélkül változtassa meg az állapotát és/vagy a verem tartalmát, hogy az inputszalagról betűt olvasna be.

  • -mozgásra lehetőség van már az első inputszimbólum elolvasása előtt is illetve még az utolsó inputszimbólum elolvasása után is.

Veremautomata konfigurációi

A veremautomata konfigurációja alatt egy alakú szót értünk, ahol a verem aktuális tartalma és az aktuális állapot és az input még feldolgozatlan része.

Kezdőkonfigurácicó:

Egylépéses redukció

Az veremautomata az konfigurációt a konfigurációra redukálja egy lépésben, amelyet -val jelölünk, ha létezik olyan és , hogy és és teljesül.

Többlépéses redukció és a felismert nyelv

Az veremautomata az konfigurációt a konfigurációra redukálja, amelyet -val jelöljük, ha vagy , vagy létezik olyan szavakból álló véges sorozat, ahol és

Az veremautomata által elfogadó állapottal felismert nyelv:

Determinisztikus veremautomata

Az veremautomatát determinisztikusnak nevezünk, ha minden esetén

Tehát minden és esetén

  • vagy pontosan egy elemt tartalmaz, minden inoutszimbólumra és
  • vagy pontosan egy elemet tartalmaz és minden inputszimbólumra.

Üres veremmel felismert nyelv

Az veremautomata által üres veremmel felsimert nyelv:

Vegyük észre, hogy ha a verem üres, akkor az automata működése blokkolódik, mivel nincs átmenet definiálva üres verem esetére.

Így a verem az input teljes feldolgozása után, az utolsó átmenettel kell üressé váljon.

Szintén a blokkolás elkerülése végett definiáltuk úgy a kezdőkonfigurációt, hogy a veremábécé egy eleme () már eleve a veremben van.

Az elfogadó állapotok halmaza irreleváns szempontjából.

Végállapottal vs üres veremmel elfogadás

Bármely veremautomatához meg tudunk adni egy veremautomatát, úgy, hogy teljesül

Bármely veremautomatához meg tudunk adni egy veremautomatát, úgy, hogy teljesül

Veremautomaták és környezetfüggetlen grammatikák

Bármely környezetfüggetlen grammatikához magkonstruálható egy olyan veremautomata, amelyre teljesül.

Minden veremautomatához megadható egy környezetfüggetlen grammatika úgy, hogy teljesül

Források