Informatik

Kellerautomat einfach erklärt: Aufbau und Beispiel

Kellerautomat einfach erklärt: Aufbau und Beispiel
Kellerautomat einfach erklärt: Aufbau und Beispiel
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

Ein Kellerautomat ist ein endlicher Automat mit einem zusätzlichen Stapelspeicher. Dadurch kann er sich eine beliebig lange Folge von Symbolen merken und später in umgekehrter Reihenfolge wieder abgleichen. So erkennt er zum Beispiel gleich viele aufeinanderfolgende a und b oder korrekt verschachtelte Klammern.

Auf dieser Seite lernst du, wie der Keller arbeitet, wie Übergänge gelesen werden und wie du einen Lauf für die Sprache aⁿbⁿ nachvollziehst.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Warum braucht ein Automat einen Keller?

Ein endlicher Automat besitzt nur endlich viele Zustände. Er kann deshalb nicht für beliebig große Zahlen festhalten, wie viele a er bereits gelesen hat. Ein Kellerautomat ergänzt ihn um einen Speicher, dessen Länge nicht von vornherein begrenzt ist.

Definition

Kellerspeicher

Ein Keller oder Stack speichert Symbole nach dem LIFO-Prinzip: Last In, First Out. Das zuletzt abgelegte Symbol wird zuerst wieder entfernt. Die zugängliche Stelle heißt Kelleroberseite.

Stell dir einen Stapel Teller vor: Du legst einen Teller oben ab (push) und nimmst ebenfalls den obersten Teller herunter (pop). An tiefer liegende Teller kommst du erst, wenn du alle darüber entfernt hast.

Bei einer Klammerprüfung kann der Automat für jede öffnende Klammer ( ein Symbol ablegen. Für jede schließende Klammer ) entfernt er eines. Soll er entfernen, obwohl kein passendes Symbol mehr da ist, liegt eine schließende Klammer zu viel vor. Bleiben am Ende Symbole übrig, fehlen schließende Klammern.

Merke

Der Keller speichert beliebig viele Symbole, aber der Automat sieht und verändert immer nur die Kelleroberseite.

Teste dich
Frage 1 von 1LeichtWelches Symbol kann ein Kellerautomat unmittelbar entfernen?
Lösung: Das Symbol an der Kelleroberseite — Nur die Kelleroberseite ist direkt zugänglich. Tiefere Symbole werden erst nach dem Entfernen der darüberliegenden Symbole erreichbar.
Wie beschreibt eine Übergangsregel einen Schritt?

Ein Kellerautomat betrachtet bei einem Schritt drei Dinge:

  1. seinen aktuellen Zustand,
  2. das nächste Eingabezeichen oder ε,
  3. das Symbol an der Kelleroberseite.

Die passende Regel legt den Folgezustand und ein Ersatzwort für das entfernte oberste Kellersymbol fest. Das Kelleralphabet darf neben Eingabezeichen auch Hilfssymbole enthalten. Häufig markiert # den Kellerboden.

Definition

Epsilon

ε bezeichnet das leere Wort. Steht ε an der Eingabestelle, verbraucht der Übergang kein Eingabezeichen. Steht ε als Kellerersatz, wird das oberste Symbol gelöscht und nichts zurückgelegt.

Wir schreiben eine Regel hier in der Form:

Zustand, Eingabe, oben → Folgezustand, Ersatz

Beispiel

Die Regel q0, a, # → q0, A# bedeutet:

  1. Der Automat befindet sich in q0, liest ein a und sieht oben #.
  2. Er verbraucht das a.
  3. Er entfernt # und ersetzt es durch A#.
  4. Er bleibt in q0.

Dabei steht die Kelleroberseite links. Nach dem Schritt liegt also A über dem Bodensymbol #.

Drei typische Kelleraktionen sind:

ErsatzWirkung
dasselbe SymbolKeller bleibt unverändert
zusätzliches Symbol vor dem altenSymbol wird oben abgelegt
εoberstes Symbol wird entfernt
Teste dich
Frage 1 von 1MittelWas bewirkt die Regel q1, b, A → q1, ε?
Lösung: Sie liest ein b und entfernt das oberste A. — Das b wird verbraucht. Das oberste A wird durch das leere Wort ersetzt und damit entfernt.
Wie erkennt der Automat Wörter der Form aⁿbⁿ?

Wir betrachten die Sprache aller Wörter mit mindestens einem a, gefolgt von genau gleich vielen b. Beispiele sind ab, aabb und aaabbb. Dagegen gehören aabbb und abab nicht dazu.

Der entscheidende Zusammenhang lautet: Für jedes gelesene a wird ein A gespeichert; für jedes spätere b wird genau ein A entfernt.

Der Automat verwendet drei Zustände:

  • q0: a lesen und speichern,
  • q1: b lesen und mit gespeicherten A abgleichen,
  • q2: akzeptierender Endzustand.
ZustandEingabeobenFolgezustandErsatz
q0a#q0A#
q0aAq0AA
q0bAq1ε
q1bAq1ε
q1ε#q2ε

Nicht aufgeführte Situationen besitzen keinen Übergang. Der Lauf scheitert dann.

Beispiel

So verarbeitet der Automat aabb. Wir notieren jeweils (Zustand, Resteingabe, Keller):

  1. Start: (q0, aabb, #)
  2. erstes a speichern: (q0, abb, A#)
  3. zweites a speichern: (q0, bb, AA#)
  4. erstes b abgleichen: (q1, b, A#)
  5. zweites b abgleichen: (q1, ε, #)
  6. Bodensymbol ohne Eingabeverbrauch entfernen: (q2, ε, ε)

Die Eingabe ist vollständig gelesen, der Keller ist leer und q2 ist erreicht. Das Wort wird akzeptiert.

Warum scheitert aabbb? Nach zwei b liegt nur noch # oben. Für ein weiteres b gibt es keine Regel. Warum scheitert aaabb? Nach der Eingabe liegt noch ein A im Keller; der Übergang nach q2 ist nicht möglich.

Merke

Zuerst speichert der Automat die Anzahl der a. Danach verwendet er jedes b, um genau ein gespeichertes A zu löschen. Akzeptiert wird nur, wenn Eingabe und Speicher passend enden.

Teste dich
Frage 1 von 2MittelWelcher Kellerinhalt liegt nach dem Lesen von aa vor?
Lösung: AA# — Die Kelleroberseite steht links. Zwei gelesene a ergeben zwei gespeicherte A über #.
Frage 2 von 2SchwerWelches Wort akzeptiert der beschriebene Automat?
Lösung: aaabbb — Akzeptiert werden nur Wörter mit einem vollständigen a-Block, einem anschließenden b-Block und gleich großen Blöcken.
Wann wird ein Lauf akzeptiert?

Eine Konfiguration ist eine Momentaufnahme des Automaten. Sie enthält den aktuellen Zustand, die noch nicht gelesene Eingabe und den gesamten Kellerinhalt. So lässt sich ein Lauf Schritt für Schritt prüfen.

Für Kellerautomaten werden verschiedene Akzeptanzbedingungen verwendet:

  • durch leeren Keller: Die Eingabe ist vollständig gelesen und der Keller ist leer;
  • durch Endzustand: Die Eingabe ist vollständig gelesen und ein festgelegter Endzustand ist erreicht;
  • bis zum Bodensymbol geleert: Die Eingabe ist vollständig gelesen und nur # bleibt zurück.

Diese Bedingungen darfst du nicht still vermischen. Lies bei jeder Aufgabe zuerst, welche Konvention gilt. Der Beispielautomat im vorigen Kapitel erfüllt am Ende gleichzeitig leeren Keller und Endzustand.

Gut zu wissen

Bei nichtdeterministischen Kellerautomaten lassen sich Akzeptanz durch Endzustand und durch leeren Keller so ineinander übersetzen, dass dieselbe Sprachklasse erkannt wird. Bei deterministischen Kellerautomaten sind diese Varianten im Allgemeinen nicht gleichmächtig.

Teste dich
Frage 1 von 1MittelEin Lauf erreicht einen Endzustand, aber ein Eingabezeichen ist noch übrig. Ist das Wort bei Endzustandsakzeptanz erkannt?
Lösung: Nein, die Eingabe muss vollständig verarbeitet sein. — Die Akzeptanzbedingung umfasst auch die vollständig gelesene Eingabe. Ein früher Endzustand allein reicht nicht.
Was bedeuten deterministisch und nichtdeterministisch?

Ein deterministischer Kellerautomat hat in jeder Konfiguration höchstens einen möglichen nächsten Schritt. Wenn für einen Zustand und eine Kelleroberseite ein ε-Übergang möglich ist, darf nicht zugleich ein Übergang mit dem nächsten Eingabezeichen zur Wahl stehen.

Der Automat für aⁿbⁿ ist deterministisch: Am ersten b ist eindeutig erkennbar, dass die Speicherphase endet und die Vergleichsphase beginnt.

Ein nichtdeterministischer Kellerautomat darf mehrere mögliche Schritte anbieten. Ein Wort gilt als akzeptiert, wenn mindestens ein möglicher Berechnungspfad die festgelegte Akzeptanzbedingung erfüllt. Andere Pfade dürfen scheitern.

Beispiel

Bei einem Palindrom wie abba muss der Automat zunächst a und b speichern und danach die zweite Hälfte dagegen prüfen. Ohne besonderes Trennzeichen ist beim Lesen nicht sichtbar, wo die Mitte liegt. Ein nichtdeterministischer Automat kann den Umschaltpunkt erraten. Für ungerade Längen muss er zusätzlich die Möglichkeit berücksichtigen, das mittlere Zeichen nicht abzugleichen.

Teste dich
Frage 1 von 1SchwerWarum benötigt der beschriebene Automat für allgemeine Palindrome Nichtdeterminismus?
Lösung: Er muss ohne sichtbares Trennzeichen einen passenden Mittelpunkt wählen. — Der Keller genügt zum Vergleichen. Mehrere mögliche Pfade werden benötigt, weil die Eingabe den Mittelpunkt nicht kennzeichnet.
Welche Sprachen können Kellerautomaten erkennen?

Nichtdeterministische Kellerautomaten erkennen genau die kontextfreien Sprachen. Zu jeder kontextfreien Grammatik gibt es einen gleichmächtigen nichtdeterministischen Kellerautomaten und umgekehrt.

Endliche Automaten erkennen die regulären Sprachen. Sie können nur endlich viele Zustände als Gedächtnis verwenden. Deshalb können sie die unbeschränkte Abhängigkeit in aⁿbⁿ nicht speichern: Für beliebig große n müssten sie sich beliebig viele gelesene a merken.

Deterministische Kellerautomaten erkennen nur einen echten Teil der kontextfreien Sprachen. Die Beziehung lässt sich so ordnen:

  • reguläre Sprachen: durch endliche Automaten erkennbar;
  • deterministisch-kontextfreie Sprachen: durch deterministische Kellerautomaten erkennbar;
  • kontextfreie Sprachen: durch nichtdeterministische Kellerautomaten erkennbar.

Jede reguläre Sprache ist auch deterministisch-kontextfrei, und jede deterministisch-kontextfreie Sprache ist kontextfrei. Die Umkehrungen gelten nicht allgemein.

Lückentext

Wähle in jeder Lücke die passende Form und prüfe anschließend deine Antworten.

Ein Keller arbeitet nach dem -Prinzip. Ein nichtdeterministischer Kellerautomat erkennt genau die -Sprachen. Bei aⁿbⁿ wird für jedes a ein Symbol und für jedes b eines gelöscht.

Lösungen: Lücke 1: LIFO; Lücke 2: kontextfreien; Lücke 3: gespeichert. LIFO erklärt den Stapelzugriff. Der zusätzliche Keller reicht genau für die kontextfreien Sprachen; beim Beispiel speichert die erste Phase und die zweite gleicht ab.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • Kellerautomat
    • Aufbau
      • endliche Zustände
      • Eingabealphabet
      • LIFO-Keller mit Bodensymbol
      • Übergangsregeln
    • Arbeitsweise
      • Symbol ablegen
      • oberstes Symbol ersetzen oder löschen
      • Eingabezeichen lesen oder ε-Schritt ausführen
    • Akzeptanz
      • Eingabe vollständig lesen
      • festgelegte Konvention beachten
    • Varianten
      • deterministisch: höchstens ein Folgeschritt
      • nichtdeterministisch: ein erfolgreicher Pfad genügt
    • Sprachmächtigkeit
      • `aⁿbⁿ` mit Speicher- und Vergleichsphase
      • nichtdeterministisch genau kontextfreie Sprachen
Abschluss-Check
Teste dich
Frage 1 von 3LeichtWelche Angabe gehört zu einer Konfiguration?
Lösung: Der aktuelle Kellerinhalt — Eine Konfiguration enthält Zustand, verbleibende Eingabe und Kellerinhalt.
Frage 2 von 3MittelEin Automat hat AAA# im Keller und liest in der Vergleichsphase zwei b. Was bleibt oben links notiert?
Lösung: A# — Jedes b löscht genau ein A: Aus drei gespeicherten A wird nach zwei Schritten ein A über #.
Frage 3 von 3SchwerWarum erkennt der Automat für aⁿbⁿ das Wort aabb nicht schon nach dem ersten b an?
Lösung: Eingabe und Abgleich sind noch nicht vollständig; ein A und ein b bleiben. — Akzeptiert wird erst, wenn alle Eingabezeichen verarbeitet und alle gespeicherten A passend gelöscht wurden.

Kannst du nun einen Lauf notieren, eine Regel ausführen und bei einer Aufgabe zuerst die Akzeptanzkonvention bestimmen? Dann hast du die drei wichtigsten Werkzeuge für Kellerautomaten sicher verbunden.

Passend dazu