Kellerautomat


Formal definiert man einen Kellerautomaten als 7-Tupel (Q,S,K,δ,q0,#,F):
-        Q ist eine nicht leere, endliche Menge von Zuständen
-        S ist ein nicht leeres, endliches Eingabealphabet.
-        K ist ein nicht leeres, endliches Kelleralphabet
-        dist die Übergangsfunktion, die jeder Kombination aus einem Zustand, einem Eingabezeichen und einem Kellerzeichen einen Nachfolgezustand und eine Kelleroperation zuordnet
-        q0 ϵ Q ist der Startzustand
-        # ϵ K ist das Anfangssymbol im Keller
-        F ist die Menge der akzeptierenden Endzustände, wobei F eine Teilmenge von Q ist
Der im Beispiel erläuterte Kellerautomat für die Sprache L = {anbn|n ϵ N} lässt sich somit wie folgt formal definieren.
-        Q = {z0,z1,z2}
-        S={a,b}
-        K = {#,A}
-        F = {z2}
-        -d

Alter Zustand
Gelesene Eingabe
Oberstes Kellerzeichen
Neuer Zustand
Kelleroperation

z0
A
#
z0
Push(A)
1.Regel
z0
a
A
z0
Push(A)
2.Regel
z0
b
A
Z1
Pop()
3.Regel
Z1
b
A
Z1
Pop()
4.Regel
Z1
ϵ
#
Z2
Pop()
5.Regel

Alle nicht aufgeführten Übergänge, z.B. wenn zu Beginn ein b eingelesen wird, führen in einen Fehlerzustand und werden aus Gründen der Übersichtlichkeit weggelassen. 
Fazit
Der Kellerautomat kann aufgrund seines Speichers Wörter mit einer komplexeren Struktur erkennen als ein deterministischer endlicher Automat. So ist die Fähigkeit passende Klammerpaare erkennen zu können von großer Bedeutung, um mathematische Terme zu erkennen. Doch auch dem Kellerautomaten sind Grenzen gesetzt. Zwar kann der Kellerautomat für Wörter der Form an bb sich die Anzahl der a merken, aber für Wörter, für der der Automat sich die gleiche Anzahl drei verschiedener Buchstaben (a,b,c) merken müsste, würde der Kellerspeicher nicht genügen. Ein Kellerautomat kann zwar die Anzahl der a speichern und sie mit den folgenden b vergleichen, aber die Anzahl der a steht für weitere Berechnungen nicht mehr zu Verfügung, da der Keller geller wurde.
Sprachen der Form L = {an,bn,cn | n > 0} können von einem Kellerautomaten nicht erkannt werden. Um das zu bewerkstelligen, müsste man die Einschränkungen des Kellerautomaten aufheben. Das Modell müsste es erlauben, sich auf der Eingabe in beide Richtungen zu bewegen und der Zugriff auf den Speicher dürfte sich nicht nur auf das erste Element beschränken.

Kommentare

Beliebte Posts aus diesem Blog

Formale Sprachen

Unterscheid DEA und NEA

Beispiel Stack und Queue