Update: Fehler im Automaten behoben.
Letzter Beitrag zum Thema… ich tippe besonders langsam, versprochen đ
Lernziel 5
Was sind determinierte Kellerautomaten?
Wir könnten zwar mit nichtdeterministischen Kellerautomaten leben und wĂŒrden es sogar. Aber es gibt da ein Problem: wir können sie technisch nicht realisieren.
Den determinierten Kellerautomaten hatten wir im vorherigen Beitrag auch bereits definiert. Uns interessiert deshalb nicht was sie sind, sondern vielmehr wie sie sich von nichtdeterministischen Kellerautomaten unterscheiden und was das fĂŒr Auswirkungen auf die erkannte Sprachklasse hat.
Eine echte Teilmenge der von nichtdeterminierten Kellerautomaten erkannten, kontextfreien Sprachen ist die deterministische kontextfreie Sprache:
Deterministisch kontextfrei
Eine Sprache ist deterministisch kontextfrei wenn es einen determinierten Kellerautomaten gibt, der sie erkennt.
Das Erkennen bedeutet folgendes:
Wenn \(L\subseteq\Sigma^{*}\) eine deterministisch kontextfreie Sprache ist, dann gibt es einen Kellerautomaten \(A=(\Sigma,\Gamma,\$,Q,q_0,\{q_{+}\},\delta)\) mit einem Zustand \(q_{-}\in Q\), so dass fĂŒr alle Worte \(\omega\in\Sigma\) gilt:
\(\omega\in L\Leftrightarrow (q_0,\omega\$,\$)\vdash^{*}(q_{+},\$,\epsilon)\)Das Wort \(\omega\) ist Teil der deterministisch kontextfreien Sprache wenn es eine ĂberfĂŒhrungsfolge im Automaten \(A\) gibt, die ausgehend vom Anfangszustand in einen akzeptierenden Endzustand mĂŒndet und die Eingabe zu Ende gelesen wurde, wobei der Keller leer ist.
\(\omega\notin L\Leftrightarrow (q_0,\omega\$,\$)\vdash^{*}(q_{-},\$,\epsilon)\)Das Wort \(\omega\) ist nicht Teil der deterministisch kontextfreien Sprache wenn es eine ĂberfĂŒhrungsfolge im Automaten \(A\) gibt, die ausgehend vom Anfangszustand in einen nicht-akzeptierenden Endzustand mĂŒndet und die Eingabe zu Ende gelesen wurde, wobei der Keller leer ist.
Sie ist zudem auch noch eindeutig:
Jede deterministisch erkannte Sprache ist eindeutig*.
* erinnert Ihr euch noch an die Eindeutigkeit? Fall nicht: jedes abgeleitete Wort einer eindeutigen Sprache/Grammatik hat nur einen einzigen Ableitungsbaum.
Wir zeigen gleich, dass die deterministischen Automaten weniger leistungsfĂ€hig sind. Folgende Ăberlegungen sind notwendig:
1. ein deterministischer Kellerautomat akzeptiert nur Worte, die er zu Ende liest. Wir mĂŒssen daher unseren deterministischen Automaten entsprechen ummodellieren und die Szenarien vermeiden, wo der Automat nicht weiterlesen kann:
a) Keller leer bevor Eingabe zu Ende.
Lösung: neues Keller-Leerheits-Zeichen, dass nie gelöscht wird.
b) keine Folgekonfiguration fĂŒr aktuelle Konfiguration vorhanden
Lösung: VervollstÀndigen von \(\delta\), so dass wir zu jeder Möglichkeit einen Folgezustand haben
c) das Erreichen eines Zyklus, wo der Kopf nicht bewegt wird
Lösung: Erkennen und vermeiden des Zyklus.
2. Wir haben einen ausgezeichneten, positiven Endzustand: entweder er akzeptiert das Wort und wir landen in \(q_{+}\) oder nicht und wir landen in \(q_{-}\in Q\).
Mit der Vorarbeit aus dem letzten Beitrag, ist es nicht schwer diese weiteren EinschrÀnkungen nachzuvollziehen.
Der Beweis fĂŒr die Komplementbildung gelingt durch simples Vertauschen der ZustĂ€nde \(q_{+}\) und \(q_{-}\), so dass wir diese Eigenschaft zusammenfasen können:
Sei \(L\subseteq\Sigma^{*}\) deterministisch kontextfrei, so ist es auch \(\Sigma^{*}\setminus L\).
Antwort zum Lernziel:Â Kellerautomaten (PDAs) sind endliche Automaten, die durch einen Kellerspeicher erweitert wurden. Bei einem Kellerautomaten wird ein Wort dann erkannt wenn der Keller leer ist oder der Automat in einem Endzustand landet (oder beides gleichzeitig).
FĂŒr einen determinierten Kellerautomaten gilt zudem, dass es fĂŒr jedes Eingabezeichen und jedes oberste Kellerzeichen nur einen ZustandsĂŒbergang gibt, so dass der Kellerautomat den Berechnungsweg nicht zufĂ€llig wĂ€hlen kann. Ist das nicht der Fall und gibt es zu einem Eingabezeichen und einem obersten Kellerzeichen mehrere mögliche FolgezustĂ€nde, so ist der Kellerautomat nichtdeterministisch.
FĂŒr eine deterministisch kontextfreie Sprache \(L\) bedeutet es, dass wir in jedem Fall fĂŒr ein Wort \(\omega\in L\) nach endlich vielen Schritten die Endkonfiguration \((q_{+},\$,\epsilon)\) (ausgewiesener Endzustand, Ende der Eingabe, leerer Keller) oder fĂŒr ein Wort \(\omega\notin L\) \((q_{-},\$,\epsilon)\) (beliebiger Zustand aus \(Q\), Ende der Eingabe, leerer Keller) erreichen.
Lernziel 6
Ist jede kontextfreie Sprache deterministisch? Mit BegrĂŒndung!
Ein (fĂŒr mich) etwas verstĂ€ndlicheres Beispiel habe ich in den Folien der HU-Berlin gefunden und wĂŒrde das hier gerne anbringen. Nehmen wir zwei deterministisch kontextfreie Sprachen (DCFL), die von einem determinierten Automaten erkannt wird, z.B.
\(L_1=\{a^i b^j c^k\mid i\neq j\}\in DCFL\) sowie
\(L_2=\{a^i b^j c^k\mid j\neq k\}\in DCFL\).
Beide Sprachen sind deterministisch kontextfrei. Wir können also einen deterministischen Kellerautomaten angeben, der sie erkennt.
Um \(L_1\) zu entscheiden, können wir uns z.B. darauf beschrĂ€nken die \(a’s\) einzulesen, \(A’s\) in den Keller zu schreiben und anschlieĂend die \(b’s\) einzulesen und die \(A’s\) aus dem Keller zu entfernen. Es sind drei FĂ€lle zu unterscheiden:
1. Gab es weniger \(a’s\) als \(b’s\), so haben wir noch \(b’s\) auf dem Eingabeband, wĂ€hrend der Keller bereits leer ist und alles ist gut.
2. Gab es mehr \(a’s\) als \(b’s\), so haben wir keine \(b’s\) auf dem Eingabeband, wĂ€hrend noch \(A’s\) im Keller sind und alles ist immernoch gut.
3. Gab es die gleiche Anzahl \(a’s\) und \(b’s\), so haben wir einen leeren Keller just in dem Moment, wo wir keine \(b’s\) auf dem Eingabeband haben und das Wort wird abgelehnt.
Das gleiche Verfahren klappt auch mit \(L_2\) (nur mit \(b’s\) und \(c’s\) statt mit \(a’s\) und \(b’s\)).
Schauen wir uns doch eine weitere Sprache an:
\(L_1\cup L_2 = \{a^i b^j c^k\mid i\neq j\) oder \(j\neq k\}\in CFL\setminus DCFL\).
Wie man sieht, ist das eine Vereinigung der beiden Sprachen \(L_1\) und \(L_2\). Um das etwas anschaulicher zu machen, schauen wir uns die Mengen doch einmal mit \(1\leq i,j,k\leq 2\) an:
\(L2_1=\{abbc,abbcc,aabc,aabcc\}\)
\(L2_2=\{abcc,abbc,aabcc,aabbc\}\)
\(L2_1\cup L2_2 = \{abbc,abbcc,aabc,aabcc,abcc,aabbc\}\)
WĂ€hrend wir fĂŒr fĂŒr \(L2_1, L2_2\) und die Vereinigung der beiden Sprachen \(L2_1\cup L2_2\) sogar einen endlichen Automaten angeben können, der sie erkennt (wir erinnern uns: das ist genau der Grund warum alle endlichen Sprachen sogar regulĂ€r sind, ein akzeptierender Zustand pro Wort reicht im endlichen Automaten aus um die Sprachen zu erkennen), gelingt es uns bei \(i,i,k\in\mathbb{N}\) nur fĂŒr \(L_1\) sowie \(L_2\) einen Kellerautomaten anzugeben, der die Sprache erkennt (wir mĂŒssen die Anzahl der Buchstaben beobachen können und können das nur mindestens mit einem Kellerautomaten. Mindestens weil Turingmaschinen als stĂ€rkstes Berechnungsmodell selbstverstĂ€ndlich auch gehen, denn sie können ja selbst Typ-0-Sprachen erkennen).
Weit mehr Probleme macht uns die Vereinigung! Das Problem mit ihr ist: sie ist zwar kontextfrei, aber nicht deterministisch kontextfrei. Denn dafĂŒr können wir keine deterministische Kellermaschine angeben, sie sie erkennt.
Woran liegt das? Wie wir oben gesehen haben, beobachten wir mit dem Keller nur eine Variable (die Anzahl unserer ersten, eingelesenen Buchstaben) und können so eine andere abhĂ€ngig von dieser entscheiden. Das ist bei den Sprachen \(L_1\) und \(L_2\) ja kein Problem. Bei \(L_1\cup L_2\) haben wir jedoch drei Variablen, die von einander abhĂ€ngig sind. Denn wir mĂŒssen \(j\) in AbhĂ€ngigkeit von \(i\) und \(k\) in AbhĂ€ngigkeit von \(j\) prĂŒfen. Das war’s also mit dem Determinismus, denn wir haben mehrere Wege, die wir beschreiten mĂŒssen um am Ende einen zu finden, der funktioniert.
Die kontextfreie Grammatik fĂŒr \(L_1\cup L_2\) ist:
\(S\rightarrow{DC \mid AE \mid B}\)
\(D\rightarrow{F\mid G}\) \(F\rightarrow{aF \mid aFb \mid a}\) \(G\rightarrow{Gb \mid aGb\mid b}\) \(C\rightarrow{cC\mid\epsilon}\)\(A\rightarrow{aA\mid\epsilon}\)
\(E\rightarrow{H\mid I}\) \(H\rightarrow{bH\mid bHc\mid b}\) \(I\rightarrow{Ic \mid bIc \mid c}\)\(B\rightarrow{J \mid K}\)
\(J\rightarrow{aJ\mid aJc\mid aL}\) \(K\rightarrow{Kc\mid aKc\mid Lc}\) \(L\rightarrow{bL\mid\epsilon}\)Und daraus können wir den zugehörigen Automaten nach dem Schema aus dem vorherigen Beitrag bauen:
Download: AiBjCk_NPDA_JFLAP-Datei
Damit haben wir auch eine wesentliche Aussage fĂŒr das nĂ€chste Lernziel herausgearbeitet: dass wir keinen deterministischen Automaten fĂŒr \(L_1\cup L_2\) angeben können liegt daran, das die deterministisch kontextfreien Sprachen zwar abgeschlossen sind bzgl. Schnitt und Komplement, aber nicht gegen Vereinigung, Durchschnitt, Spiegelung und Konkatenation! Und das obere Beispiel war die Vereinigung. Beispiele fĂŒr Durchschnitt, Spiegelung und Konkatenation ĂŒberlasse ich erstmal euch đ
Zusammengefasst: Wir haben mit dem deterministischen Kellerautomaten, welche die Sprache erkennt, tatsĂ€chlich eine Beschneidung der Möglichkeiten, die uns ein nichtdeterministischer Kellerautomat bietet: wir können nicht mehr zwischen Berechnungspfaden wĂ€hlen und sind an unsere Wahl „gebunden“. War sie falsch, so landen wir in einer Sackgasse und damit war es das. Bei einem nichtdeterministischen Automaten haben wir wĂ€hrenddessen (durch mehrere Folgekonfigurationen fĂŒr eine Konfiguration) bereits andere Wege parallel beschritten, wo uns einer (wenn wir einen korrekten Automaten angegeben haben) schon zur Lösung fĂŒhren wird. War eine Berechnung falsch, so landen wir auf diesem einen Weg in einer Sackgasse und … es ist uns egal. Wir haben ja noch genug andere Wege, die wir parallel beschreiten.
Hauptsache wir können beweisen, dass min. einer dieser Wege zu einem Ergebnis fĂŒhrt und entscheidet ob ein Wort sich in der Sprache befindet. Tut es das nicht, kann der nichtdeterministische Automat von uns aus solange weiterrechnen, bis er schwarz wird.
Ein Blick aus einer anderen Brille: Um bei der Sprache \(L_1\cup L_2\) entscheiden zu können ob ein Wort tatsĂ€chlich zur Sprache gehört oder nicht, ist der Algorithmus wirklich einfach: Wir zĂ€hlen die \(a’s\), \(b’s\) und \(c’s\), speichern die Anzahl auf dem Hilfsband und vergleichen die drei Variablen nachdem wir die Eingabe vollstĂ€ndig eingelesen haben miteinander. Ihr habt sicher schon eine TM im Kopf, die das macht. WĂ€hrend wir das also mit einer DTM problemlos machen können, schaffen wir das mit einem PDA durch die EinschrĂ€nkungen leider nicht.
Antwort zum Lernziel: Nicht jede kontextfreie Sprache ist deterministisch. Es gibt kontextfreie Sprachen, die aufgrund ihrer Struktur nicht von einem PDA erkannt werden können weil ihr Aufbau von mehreren Variablen abhĂ€ngt, diese jedoch nicht durch einen einzigen Kellerspeicher deterministisch abgebildet werden können. Erst durch das Beschreiten mehrerer Berechnungspfade ist es möglich auch mehrere Variablen in die Betrachtung einzubeziehen und aus der so generierten Vielzahl an Pfaden die Aussage zu treffen, dass einer in jedem Fall zum Ziel fĂŒhrt wenn das Wort sich in der Sprache befindet.
Eine solche kontextfreie, aber nicht deterministische Sprache lÀsst sich durch Vereinigung, Konkatenation, Durchschnitt oder Spiegelung einer oder mit mehreren deterministisch kontextfreien Sprachen erzeugen, da die Sprachklasse der deterministisch kontextfreien Sprachen nicht abgeschlossen gegen diese Operationen ist.
Lernziel 7
Sind die kontextfreien bzw. deterministisch kontextfreien Sprachen abgeschlossen unter Vereinigung, Durchschnitt, Komplement und Schnitt mit regulÀren Mengen?
Was soll ich hier schreiben? Reicht die Tabelle aus dem Skript? đ Ihr solltet euch noch einmal vor Augen fĂŒhren, wie die Sprachklassen zusammenhĂ€ngen und die Beziehungen zwischen Unter- und Oberklasse sind. Dann wird euch auch deutlich warum diese gegen gewisse Operationen nicht abgeschlossen sein können. Vielleicht schreibe ich spĂ€ter noch ein paar SĂ€tze dazu, aber bis dahin:
Antwort zum Lernziel:
| kontextfrei | deterministisch | |
| Vereinigung | + | – |
| Durchschnitt | – | – |
| Komplement | – | + |
| Konkatenation | + | – |
| Stern | + | – |
| Schnitt mit regulÀren Mengen | + | + |
Lernziel 8
Welche der folgenden Probleme sind fĂŒr kontextfreie Grammatiken entscheidbar/unentscheidbar? Wortproblem, Endlichkeitsproblem, Leerheitsproblem?
Hier sollten wir einige Probleme auf den Mengen entscheiden können, diese sind:
- Wortproblem: ob sich ein Wort \(\omega\) in der Sprache \(L\) befindet (oder nicht).
- Inklusion: ob die Worte einer Sprache \(L_1\) in einer anderen Sprache\(L_2\) enthalten sind
- Ăquivalenz: ob die Sprache \(L_1\) die gleiche Sprache wie \(L_2\) ist.
- Leerheit: ob die Sprache leer ist, d.h. wir können mir der Grammatik, die die Sprache erzeugt keine Wörter erzeugen. Achtung: jede leere Sprache ist regulÀr.
- Endlichkeit: ob die Sprache endlich ist (endliche Sprache = regulÀre Sprache = endlicher Automat)
- UniversalitÀt: ob die Sprache alle Kombinationen der Elemente aus dem Alphabet \(\Sigma\) umfasst
- Eindeutigkeit: ob es fĂŒr ein Wort nur einen Ableitungsbaum gibt.
- Determiniertheit: es gibt einen deterministischen Kellerautomaten, der entscheidet ob \(\omega\) zur Sprache gehört oder nicht.
Antwort zum Lernziel:
| kontextfrei | deterministisch | |
| Wortproblem | + | + |
| Inklusion | – | – |
| Ăquivalenz | – | + |
| Leerheit | + | + |
| Endlichkeit | + | + |
| UniversalitĂ€t | – | + |
| Eindeutigkeit | – | + |
| Determiniertheit | – | + |
Damit haben wir auch die letzte Kurseinheit durch. Hoffentlich konntet Ihr etwas mit den Zusammenfassungen anfangen und es haben sich keine Fehler eingeschlichen. Wenn doch: ab damit in die Kommentare!


Hallo Anton,
ch finde deinen Blog wirklich super und er hilft mir sehr um Dinge noch einmal nachzuschauen!!!
Leider hÀnge ich bei einem Punkt etwas:
Du hast die zwei kontextfreien Sprachen angegeben L1 und L2. Leider kann ich mir dazu keinen Kellerautomat vorstellen. Wie sieht dieser z.B. bei der Eingabe : aabc aus.
WĂ€re cool wenn du antwortest.
LG
Esra
Hallo Esra, ist mir recht unangenehm, aber dein Beitrag ist irgendwie untergegangen. Ich gehe davon aus, dass sich deine Frage mittlerweile erledigt hat und Du TI erfolgreich hinter dich gebracht hast? Wenn nicht, lese ich mich nochmal ein und versuche Dir den Kellerautomaten aufzumalen.