Lektion 6.3

Kellerautomat und Chomsky-Hierarchie

16 min Lesezeit

Ein Programm soll prüfen, ob in einem Text zu jeder öffnenden Klammer eine schließende gehört, auch bei beliebiger Schachtelung. Ein endlicher Automat scheitert daran: Er müsste die Tiefe zählen, und die ist unbegrenzt.

Aus den Datenstrukturen kennst du den Stapel. Gibt man einem Automaten einen Stapel als Gedächtnis, den Keller, erkennt er mehr Sprachen. Wie viel mehr, und wo gibt es weiterhin Grenzen? Die Chomsky-Hierarchie ordnet Grammatiken, Sprachen und Automaten in Klassen.

Definition

Kellerautomat

Ein Kellerautomat ist ein endlicher Automat mit einem Keller, auf dessen oberstes Symbol er zugreifen kann. Er ist ein Tupel M=(Q,Σ,Γ,δ,q0,Z,F)M = (Q, \Sigma, \Gamma, \delta, q_0, Z, F). Neu gegenüber dem DFA sind das Kelleralphabet Γ\Gamma und das Kellerstartsymbol ZZ, das zu Beginn als einziges im Keller liegt. Ein Schritt hängt vom Zustand, vom gelesenen Zeichen (oder keinem, ε\varepsilon) und vom obersten Kellersymbol ab. Der Automat wechselt den Zustand und ersetzt das oberste Symbol durch eine Folge von Kellersymbolen. Eine leere Folge entfernt es. Der Keller ist unbegrenzt, aber nur das oberste Symbol ist lesbar. Der Automat akzeptiert ein Wort, wenn er es ganz gelesen hat und dann (gegebenenfalls nach Schritten ohne Lesen) in einem Endzustand steht.

Beispiel

Ein Kellerautomat für anbna^n b^n mit n ≥ 1

Zustände q0 (liest a), q1 (liest b) und q2 (Endzustand), Kellersymbole Z (Boden) und A. In der Spalte „ersetzt durch“ steht das oberste Symbol links.

Nr.Zustandliestobenneuer Zustandersetzt durch
1q0aZq0AZ
2q0aAq0AA
3q0bAq1nichts (A entfernen)
4q1bAq1nichts (A entfernen)
5q1εZq2Z

Wie verarbeitet er aabb?

Jedes a legt ein A auf den Keller, jedes b entfernt eines. Liegt am Ende wieder Z oben, ist die Zahl gleich.

SchrittRegelZustandRestwortKeller
0Startq0aabbZ
11q0abbAZ
22q0bbAAZ
33q1bAZ
44q1εZ
55q2εZ

Das Wort ist gelesen, und q2 ist ein Endzustand: akzeptiert. Bei aab bleibt ein A im Keller, Regel 5 greift nicht, das Wort wird abgelehnt. Der Automat ist deterministisch: In jeder Lage passt höchstens eine Regel.

Definition

Deterministische und nichtdeterministische Kellerautomaten

Ein Kellerautomat ist deterministisch, wenn er in jeder Lage höchstens einen möglichen Schritt hat, und nichtdeterministisch, wenn mehrere möglich sind. Ein nichtdeterministischer Automat akzeptiert ein Wort, wenn mindestens ein Weg zum Akzeptieren führt. Er würfelt nicht: Man stellt sich vor, er probiert alle Wege.

Beispiel sind die Palindrome gerader Länge wwRw w^R (w gefolgt von w rückwärts, etwa abba). Der Automat legt die erste Hälfte auf den Keller und vergleicht die zweite beim Abbauen. Wo die Mitte liegt, sieht man dem Wort nicht an. Der nichtdeterministische Automat „rät“ sie. Ein deterministischer Kellerautomat erkennt diese Sprache nicht. Nichtdeterministische Kellerautomaten erkennen genau die kontextfreien Sprachen.

Definition

Potenzmengenkonstruktion

Ein nichtdeterministischer endlicher Automat (NFA) darf zu einem Zustand und Zeichen mehrere oder keinen Folgezustand haben. Er akzeptiert, wenn mindestens ein Weg in einem Endzustand endet. Beim endlichen Automaten bringt das keine neue Kraft: Jeder NFA lässt sich in einen DFA umbauen, der dieselbe Sprache erkennt. Die Potenzmengenkonstruktion geht so: Die Zustände des DFA sind Mengen von NFA-Zuständen, nämlich diejenigen, in denen der NFA nach dem gelesenen Wortanfang sein kann. Start ist {q0}\{q_0\}. Beim Zeichen x geht eine Menge in die Vereinigung der Folgezustände all ihrer Elemente über. Eine Menge ist Endzustand, wenn sie einen NFA-Endzustand enthält. Hat der NFA n Zustände, hat der DFA höchstens 2n2^n.

Beispiel

Vom NFA zum DFA

Ein NFA über {a,b}\{a, b\} erkennt Wörter, die auf ab enden. Zustände q0 (Start), q1, q2 (Endzustand).

Zustandliest aliest b
q0{q0, q1}{q0}
q1nichts{q2}
q2nichtsnichts

Konstruiere den DFA.

Start ist {q0}. Neue Mengen werden nur gebildet, wenn sie vorkommen:

Mengeliest aliest bEndzustand?
{q0}{q0, q1}{q0}nein
{q0, q1}{q0, q1}{q0, q2}nein
{q0, q2}{q0, q1}{q0}ja

Bei {q0, q1} und b: q0 liefert {q0}, q1 liefert {q2}, die Vereinigung ist {q0, q2}. Bei {q0, q2} und a: q0 liefert {q0, q1}, q2 nichts. Der DFA hat nur 3 der möglichen 23=82^3 = 8 Mengen. Probe mit aab: {q0}, {q0, q1}, {q0, q1}, {q0, q2}: akzeptiert.

Definition

Kontextsensitive Sprachen und Chomsky-Hierarchie

In einer kontextsensitiven Grammatik darf ein Nichtterminal nur in einem bestimmten Umfeld ersetzt werden: αAβ→αγβ\alpha A \beta \to \alpha \gamma \beta mit nicht leerem γ\gamma. Man kann zeigen, dass dies dieselben Sprachen ergibt wie die Bedingung, dass keine Regel das Wort verkürzt: ∣α∣≤∣β∣|\alpha| \le |\beta|. Die Chomsky-Hierarchie ordnet vier Klassen, jede liegt in der nächstgrößeren:

TypSprachklasseRegelnAutomatenmodellBeispiel
3regulärA→aBA \to aB, A→aA \to a, A→εA \to \varepsilonendlicher AutomatWörter mit dem Teilwort ab
2kontextfreiA→βA \to \betanichtdeterministischer Kellerautomatanbna^n b^n, Palindrome
1kontextsensitivα→β\alpha \to \beta mit ∣α∣≤∣β∣|\alpha| \le |\beta|linear beschränkter Automat (Band nur so lang wie die Eingabe)anbncna^n b^n c^n
0allgemeinbeliebigTuringmaschine (nächste Lektion)alle Sprachen, die eine Grammatik erzeugt

Es gilt Typ 3 ⊂ Typ 2 ⊂ Typ 1 ⊂ Typ 0, und jede Klasse ist echt größer als die vorige. Je größer die Klasse, desto aufwendiger das Wortproblem: Bei Typ 3 und 2 gelingt es mit polynomiellem Aufwand, bei Typ 1 ist es lösbar, aber aufwendig, bei Typ 0 gibt es kein Verfahren, das es für jedes Wort entscheidet.

Beispiel

Eine kontextsensitive Grammatik für anbncna^n b^n c^n

Regeln, alle mit ∣α∣≤∣β∣|\alpha| \le |\beta|: S→aSBC∣aBCS \to aSBC \mid aBC, CB→BCCB \to BC, aB→abaB \to ab, bB→bbbB \to bb, bC→bcbC \to bc, cC→cccC \to cc. Leite aabbcc ab.

S ⇒ aSBC ⇒ aaBCBC ⇒ aaBBCC ⇒ aabBCC ⇒ aabbCC ⇒ aabbcC ⇒ aabbcc.

Die ersten zwei Schritte erzeugen zwei a und die Platzhalter B und C. Die Regel CB → BC sortiert die B vor die C. Dann werden von links die B zu b und danach die C zu c. Die Regel CB → BC hat links zwei Symbole, die Grammatik ist also nicht kontextfrei. Kein Kellerautomat erkennt diese Sprache. Anschaulich: Der Keller vergleicht die Zahl der a mit der Zahl der b, danach ist sie verbraucht, für die c fehlt sie.

Häufige Fehler

Nichtdeterministisch heißt zufällig

„Ein nichtdeterministischer Automat würfelt bei jedem Schritt.“

Richtig ist

Es wird nicht gewürfelt. Er akzeptiert ein Wort, wenn mindestens ein Weg zum Akzeptieren führt. Das ist eine Aussage über alle möglichen Wege, nicht über einen Zufall.

Häufige Fehler

Nichtdeterminismus bringt immer nichts

„Wie beim endlichen Automaten lässt sich jeder Kellerautomat deterministisch machen.“

Richtig ist

Bei endlichen Automaten stimmt das (Potenzmengenkonstruktion). Bei Kellerautomaten nicht: Die Palindrome wwRw w^R erkennt nur ein nichtdeterministischer Automat.

Zusammenfassung

  • Ein Kellerautomat ist ein endlicher Automat mit einem unbegrenzten Keller. Jeder Schritt liest das oberste Kellersymbol und ersetzt es durch eine Folge.

  • Nichtdeterministische Kellerautomaten erkennen genau die kontextfreien Sprachen. Deterministische erkennen weniger, etwa nicht die Palindrome wwRw w^R.

  • Bei endlichen Automaten ist Nichtdeterminismus nicht stärker: Die Potenzmengenkonstruktion macht aus einem NFA mit n Zuständen einen DFA mit höchstens 2n2^n Zuständen.

  • Kontextsensitive Grammatiken verkürzen nie das Wort. Sie erzeugen Sprachen wie anbncna^n b^n c^n.

  • Chomsky-Hierarchie: Typ 3 (regulär), Typ 2 (kontextfrei), Typ 1 (kontextsensitiv), Typ 0 (allgemein). Jede Klasse ist echt größer als die vorige.

  • Automatenmodelle: endlicher Automat, Kellerautomat, linear beschränkter Automat, Turingmaschine.

Übungen

Aufgabe 1Numerisch

Ein NFA hat 5 Zustände. Wie viele Zustände hat der DFA der Potenzmengenkonstruktion höchstens?

Aufgabe 2Numerisch

Der Kellerautomat für anbna^n b^n aus dem Beispiel hat aaabb gelesen. Wie viele Symbole A liegen jetzt auf dem Keller? Das Bodensymbol Z zählt nicht.

Aufgabe 3Multiple Choice

Welche Aussage über die Chomsky-Hierarchie stimmt?

Aufgabe 4Multiple Choice

In welche kleinste Klasse der Chomsky-Hierarchie fällt die Sprache anbncna^n b^n c^n?

Aufgabe 5Freitext

Erkläre, wie ein Kellerautomat die Palindrome gerader Länge wwRw w^R erkennt und warum er dazu nichtdeterministisch sein muss.