3.1 Kellerautomaten und kontextfreie Sprachen
Zur Beschreibung formaler Sprachen wurden bisher Regelsysteme verwendet, die
formale Sprachen als Wortmengen erzeugen (generieren). Wir betrachten jetzt
Verfahren, mit denen entschieden werden kann, ob ein gegebenes Wort zu einer
bestimmten Sprache gehört. Wir sprechen dann im Gegensatz zur Regelgrammatik,
die die Sprache generiert, von einer akzeptiven Grammatik bzw. von einem
Akzeptor. Wie schon bei endlichen Automaten im Zusammenhang mit regulären
Sprachen geben wir das Verfahren als abstrakte Maschine an.
Dazu erweitern
wir zunächst den Begiff des endlichen Automaten, indem wir neben dem
Eingabespeicher (ROM) einen Lese-Schreib-Speicher (RAM) zur Verfügung stellen,
diesen einschränkend aber wie einen Keller benutzen. Dieser Speicher kann wieder
Wörter über einem (Keller-) Alphabet aufnehmen und über die Operationen
push (Einschreiben in den Keller), pop (Löschen des obersten
Kellerelements) und top (Lesen des obersten Kellerelementes) benutzt
werden. Wenn p, q Wörter über dem Kelleralphabet Y und y Element von Y, dann
gilt für diese Operationen push(p, q) = pq, pop(py) = p und
top(py) = y. Dabei steht das oberste Kellerelement am rechten Ende des
Kellerwortes, d.h. wir lesen den Keller von rechts nach links. (Natürlich kann
das auch umgekehrt festgelegt werden.) Die so festgelegten abstrakten Maschinen
(siehe Schema) werden Kellerautomat genannt.
 |
Definition:
Kellerautomat
Eine Struktur K = ( X, Y, Z, h, z0, S, F ) heißt (endlicher)
Kellerautomat, wenn
- X (Eingabealphabet), Y (Kelleralphabet), Z (Zustandsmenge) nichtleere
endliche Mengen,
- z0
Z (Anfangszustand), S Y (Startsymbol), F Z (Endzustandsmenge),
- h eine Funktion aus ( X
{ } ) Z Y in die Menge aller endlichen
Teilmengen von Z Y*.
|
Bemerkung: Der Kellerautomat ist allgemein nicht-deterministisch.
- Die Elemente der endlichen Mengen h( x, z, y ), wo x das gelesene Zeichen
des Eingabebandes oder das leere Wort, z den vorliegenden Zustand und y das
oberste Kellersymbol bezeichnet, sind Paare ( z, q ) aus Folgezustand z und
zu schreibendem Kellerwort q als mögliche Reaktionen des Automaten. Falls
dabei immer nur höchstens eine Reaktion möglich ist, heißt K deterministisch.
Arbeitsweise des Kellerautomat K:
Die momentane Situation von K wird durch eine Konfiguration k = ( p,
z, q ) beschrieben, wo p das gegebene Eingabewort (Belegung des Eingabebandes
ab aktueller Position), z den aktuellen Automatenzustand und q das vorliegende
Kellerwort (Belegung des Kellerbandes) angibt.
Die Konfigurationen ( p, z0, S ) heißen Anfangskonfigurationen.
Die Konfigurationen (
, z,
) bzw. (
, zf, q ) mit zf
F werden als Endkonfigurationen bezeichnet.
Mit Hilfe der Funktion h wird zu jeder Konfiguration k eine Menge von Folgekonfigurationen
k´ (in Zeichen: k
k´) wie folgt bestimmt:
(p, z, q)
(p´, z´, q´) genau dann, wenn p=xp´, q=q1y,
q´=q1q1´ und (z´, q1´)
h(x, z, y)
für y
Y , q1, q1´
Y* und x
( X
{
} ).
Durch
* bezeichnen wir wieder die transitive und reflexive
Hülle von
und beschreiben damit Konfigurationsfolgen. Dabei ist
k
* k´ genau dann, wenn k = k´ oder es gibt eine Folge
k0 ,..., kn von Konfigurationen mit k0 = k
, kn = k´ und ki
ki+1 für alle 0
i < n.
- Bemerkung: Allgemein ist L
( K )
LF ( K ). Wie später gezeigt wird, kann man durch
- Modifikation des Kellerautomat K den einen in den anderen Fall
überführen.
Beispiel: Der Kellerautomat K = ( { 0,1 }, { a,b,c }, ( z0,
z1 }, h, z0, a,
) mit h nach Tabelle
- akzeptiert z.B. das Wort 001100 durch die Konfigurationenfolge
- (001100, z0, a), (01100, z0, ba), (1100,
z0, bba), (100, z0, bbca),
(100, z1, bbc), (00, z1, bb), (0, z1, b),
(
, z1,
) bzw.
- das Wort 00 durch die Konfigurationenfolge
- (00, z0, a), (0, z0, ba), (0, z1, b),
(
, z1,
) bzw.
- das Wort
durch die Konfigurationenfolge (
, z0, a), (
, z1,
).
Von diesem Kellerautomat wird mit leerem Keller die Sprache L
( K ) = { p
p
{0,1}* } akzeptiert. An den nichtdeterministischen
Stellen rät der Automat mit dem Übergang zum Zustand z1 die
Mitte des Eingabewortes. Diese Sprache kann von keinem deterministischen
Kellerautomat akzeptiert werden.
Bemerkung: Kellerautomat können auch wieder durch Graphen
beschrieben werden,
- wobei den Zuständen die Knoten und den durch h mit (z´, q)
h ( x, z, y ) möglichen Übergängen die mit ( x, y,
q ) beschrifteten Kanten entsprechen.
Der Kellerautomat aus dem obigen Beispiel ist durch den folgenden Graphen
bestimmt.
-
Die Übergänge von z nach z´ für ( z´, q )
h (
, y, z ) heißen
-Übergänge.
- Satz: Akzeption mit leerem Keller und Akzeption
mit Endzustand
- Zu jedem Kellerautomat K gibt es einen Kellerautomat K´ mit
L (K) = LF (K´) bzw. LF (K) = L (K´).
|
Beweis:
-
- L
(K) = LF (K´) :
(K akzeptiert mit leerem Keller, K´ akzeptiert mit Endzustand)
Der Kellerautomat K = ( X, Y, Z, h, z0, S,
) wird durch den Kellerautomat
K' = ( X, Y´, Z´, h´, z0´ , S´, {z
} ) simuliert.
Wir führen ein neues Startsymbol S´ ein und erweitern die Zustandsmenge
Z durch Hinzunahme eines Anfangszustandes z0´ und eines Endzustandes
z
zu der neuen Zustandsmenge Z´.
S´
Y, z0´, z
Z, Y´ = Y
{S´}, Z´= Z
{ z0´, z
}
Für alle x
X, y
Y, z
Z ist h' und h identisch. Lediglich für das neue
Startsymbol und den Anfangszustand zo´ konstruieren wir h´ derart, daß
ausgehend vom Startzustand z0´ und vom Startsymbol S´ in den
Zustand z0 mit der Kellerinschrift S´S übergegeangen wird.
Die neu entstandene Konfiguration ist die Startkonfiguration des Kellerautomat
K. Akzeptiert der Automat K mit leerem Keller, so ergibt sich die Kellerinschrift
von K' zu S´
. Anschließend wird in den Endzustand z
übergegangen.
h´(
, z0´, S´) = { (z0, S´S)
},
h´(
, z, S´) = { (z
,
) },
h´(x, z, y) = h (x, z, y) für alle x
X, y
Y, z
Z .
Falls K determiniert ist, dann ist auch K´ nach dieser Konstruktion determiniert.
- LF (K) = L
(K´)
(K akzeptiert mit Endzustand, K´ akzeptiert mit leerem Keller)
Der Kelleautomat K = ( X, Y, Z, h, z0, S, ZF ) wird
durch den Kellerautomat
K´= ( X, Y´, Z´, z0´, h´, S´,
) simuliert.
Wir konstruieren eine neue Zustandsmenge Z´ durch Hinzunahme der Zustände
z0´,z
´. Das Kelleralphabet Y´ ergibt sich aus dem Kelleralphabet
Y, erweitert um ein neues Startsymbol S´.
S´
Y, z0´, z
´
Z, Y´= Y
{S´}, Z´= Z
{ z0´, z
´} und
Die Überführungsfunktion h´ wird so gebildet, daß bei erreichen eines
Endzustandes (z
ZF) in einen neuen Zustand z
´ übergegangen wird, um anschließend den Keller vollständig zu leeren.
Insgesamt gilt:
h´(
, z0´, S´) = { (z0, S´S)
},
h´(
, z
´, y) = { (z
´,
) } für alle y
Y´,
h´(
, z, y) = { (z
´,
) } für alle y
Y, z
ZF ,
h´(x, z, y) = h (x, z, y) für alle x
X, y
Y, z
Z.
Satz: Kellerautomat und kontextfreie Sprachen
- Eine Sprache L ist genau dann kontextfrei, wenn es einen Kellerautomat
K mit
L = L (K) gibt.
|
-
- Beweis:
- Wenn L kontextfrei, dann gibt es einen Kellerautomat K mit L
(K) = L . O.B.d.A. können wir voraussetzen, daß
L durch eine Grammatik
G
= (M, A, R, S) in reduzierter Chomsky-Normalform erzeugt wird, d.h.,
L =
L(G).
Wir bilden den Kellerautomat
K = (A, (M
A), {z}, h, z, S,
) mit
h (x, z, x) = {(z,
)}, h (
, z, u) = {(z, v)} für x
A, u
M und (u, v)
R.
Man kann zeigen, daß es zu jeder Linksableitung eines Wortes p aus
L bzgl. G eine Konfigurationsfolge von K gibt, so daß S
p gdw.
(p, z, S)
* (
, z,
) .
Der Kellerautomat simuliert mit den Übergängen (
, u, v) die Linksableitung und schreibt jeweils
das Spiegelbild der durch die Regelanwendung erzeugten Wörter als Zwischenergebnisse
in den Keller. Die Überführung (x, x,
) dient dazu, den Keller von Eingabesymbolen aus
A zu säubern, die bei der Simulation im Keller entstehen. Genauer wird
der Beweis induktiv über die Länge der Ableitung bzw. Konfigurationsfolge
geführt.
- Wenn K ein Kellerautomat, dann ist die Sprache L
(K) kontextfrei.
Zu K = ( X, Y, Z, h, z0, S,
) wird unter der Annahme 
L
(K) die kontextfreie Grammatik G = ( M, X, R, S
) konstruiert , wofür
M = X
Y
{ [ z, y, z´]
y
Y, z, z´
Z } und R = RS
RX mit
RS = { (S, [ z0, y, z ] )
y
Y, z
Z } und
RX = { ( [ z, y, z´] , x[ zn , yn , zn-1
] [ zn-1 , yn-1 , zn-2 ] ... [ z1
, y1 , z´])
n
0 , z, z´, zi
Z, x
X
{
}, und (zn , y1 ... yn
)
h (x, z, y)}.
Man kann zeigen, daß für die so gewählte Grammatik [z0, S,
z´]
p
X* genau dann gilt, wenn (p, z0, S)
* (
, z´,
) . Da mit den Regeln aus RS die Ableitung S
[ z0, S, z´] erzeugt werden kann, folgt
schließlich p
L
(K) genau dann, wenn S
p
L (G) . Für 
L
(K) ist noch eine entsprechende Regel in G zu ergänzen.
- Folgerung: Zu jedem Kellerautomat kann ein Kellerautomat mit
einem Zustand
- angegeben werden, der dieselbe Sprache akzeptiert. (Die dem Satz
entsprechende Konstruktion dieses Kellerautomat geht zu Lasten des
Kellerumfangs.)
 |
Definition:
Deterministischer Kellerautomat, deterministisch
kontextfreie Sprache
- Ein Kellerautomat K = ( X, Y, Z, h, z0, S, F ) heißt
deterministisch , falls
zu jeder Konfiguration k höchstens eine Folgekonfiguration k´ mit
k k´
existiert.
- Eine formale Sprache L heißt deterministisch kontextfrei,
falls ein
deterministischer Kellerautomat K mit LF ( K ) = L existiert.
|
Satz: Durchschnitt mit regulären Sprachen
- Wenn L
X* (deterministisch) kontextfrei und R X* regulär, dann ist L R (deterministisch) kontextfrei.
|
-
- Beweis: Zu den nach Voraussetzung existierenden (deterministischen)
Kellerautomat
- K = ( X, Y, Z, h, z0, S, F ) und endlichen Automaten A = ( X,
Z´, f, z0´, ZF´) mit
L = LF(K) und R = L(A) konstruieren wir den (deterministischen)
Kellerautomat K´= ( X, Y, Z´´, h´, z0´, S, F´´), wo Z´´= Z
Z´, z0´´= [ z0, z0´], F´´= F
ZF´ und
( [
,
´] , q )
h´( x, y, [ z, z´] ) falls (
, q)
h ( x, y, z ) und f( x, z´) =
´,
( [
,
´], q )
h´(
, y, [ z, z´]) falls (
, q)
h (
, y, z).
Dann kann man zeigen:
LF´´( K´) = LF( K )
L ( A ) , denn für p
X* , q
Y*, 
F,
´
ZF´ ist
(p, [ z0, z0´], S)
(
, [
,
´], q) gdw. (p, z0, S)
(
,
, q) und f(p,z0) =
´.
Beweis: Zu den nach Voraussetzung existierenden (deterministischen)
Kellerautomat
- K = ( X, Y, Z, h, z0, S, F ) mit L = LF(K) konstruieren
wir den (deterministischen) Kellerautomat K´= ( X, Y, Z´, h´, [ z0,
] , S, F
{
} ) mit
Z´= Z
{ p
existiert p´
* , 

mit f (
) = p´p } und
h´(
, y, [ z,
] ) = { ( [ z, f (
) ] , y ) 


, y
Y } ,
d.h., zur Eingabe
wird f (
) als Eingabe für K erzeugt, bzw.
h´(
, y, [ z, p ] } = { ( [
, p ], q )
(
, q )
h (
, y, z ) },
d.h., es werden
-Übergänge von K simuliert, bzw
h´(
, y, [ z, xp ] ) = { ( [ z, p ], q )
{ z, q )
h ( x, y, z ) },
d.h., es werden Übergänge von K zur Eingabe x simuliert.
Dann kann gezeigt werden, daß für zf
F gilt:
(p,[z0,
],S)
*K'(
,[zf,
],q) gdw. (f(p),z0,S)
*K(
, zf, q), d.h. LF (K´)=f-1(L).
Satz: Abgeschlossenheit gegenüber Minimumbildung
Wenn L deterministisch kontextfrei, dann ist auch Min(L) deterministisch
kontextfrei. |
Beweis: Zu dem nach Voraussetzung existierenden deterministischen Kellerautomat
- K = ( X, Y, Z, h, z0, S, F ) mit LF ( K ) = L konstruieren
wir den deterministischen Kellerautomat K´=(X,Y,Z,h´,z0,S,F)
mit h´={h
X
Y
Z \ F}, d.h., aus h werden die von Endzuständen ausgehenden Übergänge
gestrichen. Dann gilt:
LF ( K´) = Min ( L ) .
Bemerkung: Es existieren kontextfreie Sprachen, die
nicht determininistisch kontextfrei sind.
- Beispiel: Die Sprache L = { p
p
{ a, b }* } wird durch die Grammatik mit den Regeln
- S
aSa
bSb
erzeugt, ist also kontextfrei. Wenn wir annehmen,
daß L deterministisch kontextfrei ist, dann wären L´ = L
(ab)+ (ba)* (ab)* (ba)+ = {(ab)m
(ba)n (ab)n (ba)m
m
1,n
0 } und Min(L´) = { p
p
L´ und
n < m} auch deterministisch kontextfrei, woraus im Widerspruch zu früher
die Kontextfreiheit von f-1( Min ( L´)) = { am bn
an bm
0
n < m } mit der homomorphen Substitution f (a)
= ab , f (b) = ba folgen würde.
- Folgerung: Nichtdeterministische Kellerautomat sind hinsichtlich
der von ihnen akzep-
- tierten Sprachen ausdruckstärker als deterministische Kellerautomat.
Bemerkung: Es existieren deterministische Kellerautomat K mit
nicht regulärem L
(K).
- Beispiel: Die nicht reguläre Sprache L = { anban
n
0 } wird von dem deterministischen
- Kellerautomat K = ({ a, b }, {S}, { z0, z1,
z2 }, h, z0, S) mit
h(a, z0, S) = (z0, SS), h(b, z0, S) = (z1,
), h(a, z1, S) = (z1,
),
h (b, z1, S) = (z2, S), h( a, z2, S) = (
z2, S), h (b, z2, S) = (z2, S) zum leeren
Keller im Zustand z1 akzeptiert, d.h., L = L
( K ).
- Folgerung: Deterministische Kellerautomat sind hinsichtlich der
von ihnen akzeptierten
- Sprachen ausdrucksstärker als endliche Automaten.
-
Satz: Eigenschaften deterministisch kontextfreier
Sprachen
- Wenn L deterministisch kontextfrei und R regulär, dann ist die Quotientensprache
L / R = { p existiert q R mit pq L } deterministisch kontextfrei.
- Wenn L
X* deterministisch kontextfrei, dann ist auch ihr
Komplement X* \ L deterministisch kontextfrei.
- Zu jeder deterministisch kontextfreien Sprache L existiert ein deterministischer
Kellerautomat K ohne
-Übergänge für Endzustände mit L = LF
( K ) .
- Es gibt deterministische Kellerautomat K, wo L
(K) nicht deterministisch kontextfrei ist.
- Deterministisch kontextfreie Sprachen sind nicht abgeschlossen
unter Vereinigung, Verkettung, Iteration und Homomorphismen.
|
-
-