Qualifikationsphase

Q3.3 · Kellerautomat

Endliche Automaten mit LIFO-Speicher für geschachtelte und kontextfreie Strukturen

Q3.2 hat endliche Automaten als Erkenner regulärer Sprachen eingeführt: Ihre gesamte Speicherung liegt im aktuellen Zustand. Weil es nur endlich viele Zustände gibt, lassen sich unbeschränkte Zählung und beliebig tiefe Schachtelung damit nicht allgemein festhalten.

Q3.3 fragt deshalb, was passiert, wenn ein Automat zusätzlich einen Keller oder Stack erhält. Ein Kellerautomat ersetzt den endlichen Automaten nicht, sondern erweitert ihn um einen LIFO-Speicher. Er liest weiterhin ein Eingabewort und wechselt Zustände; jeder Schritt kann aber zusätzlich vom obersten Kellerzeichen abhängen und den Keller verändern.

Damit schließt Q3.3 auch an Q3.1 an: Was kontextfreie Grammatiken erzeugend beschreiben, können Kellerautomaten in der allgemeinen nichtdeterministischen Form erkennend prüfen. Im Mittelpunkt stehen Klammerausdrücke, Stackoperationen, Konfigurationen, a^n b^n, Nichtdeterminismus und die Grenzen eines einzelnen Stacks.

Orientierung
Orientierung: Warum braucht man einen Kellerautomaten?
Grenzen endlicher Automaten und Idee des Stacks
Grenze endlicher Automaten
Idee des Kellerautomaten
Leitidee

Bei einem DEA oder NEA hängt der nächste Schritt von Zustand und Eingabesymbol ab. Beim Kellerautomaten kommt die Kelleroberseite hinzu: Zustand, Eingabesymbol oder ε und oberstes Kellerzeichen bestimmen gemeinsam den nächsten Schritt.

Klammerausdrücke
Klammerausdrücke als Einstieg
Geschachtelte Strukturen benötigen Speicher

Programmiersprachen verwenden Klammern für echte Schachtelung: Blöcke, Ausdrücke und Funktionsaufrufe können ineinander liegen. Während des Lesens muss deshalb gespeichert werden, welche öffnenden Klammern noch auf ihre passende schließende Klammer warten.

Das LIFO-Prinzip passt genau zu dieser Prüfung. Jede öffnende Klammer wird gemerkt; jede schließende Klammer muss zur zuletzt geöffneten Klammer passen. Im Automaten-/Formalsprachen-Werkzeug zeigt das Preset pda-parentheses diese Idee: Jede ( führt zu einem Push, jede passende ) zu einem Pop.

Trace für das Eingabewort (()) mit Push und Pop im Stack
Was man sieht: Konfigurationen für (()) mit Stackentwicklung. Begriff: Push/Pop auf dem Keller. Lernpunkt: Gültig nur, wenn nie ohne passenden Marker gepoppt wird und am Ende kein offener Marker übrig bleibt.

Beispiele und Werkzeugbezug

Im Automaten-/Formalsprachen-Werkzeug: Bereich Kellerautomat / Speicherautomat aufklappen, Preset pda-parentheses laden, Eingabewort eingeben, dann mit Schritt oder Komplett ausführen den Trace und die Stack-Anzeige auswerten.

Aufbau
Aufbau eines Kellerautomaten
Bestandteile und formale Beschreibung

Ein Kellerautomat bleibt zustandsbasiert, wird aber formal um ein Kelleralphabet, ein Kellerbodensymbol und eine Übergangsfunktion mit Kellerbezug erweitert.

Formale Beschreibung als 7-Tupel

K = (Q, Σ, Γ, δ, q0, #, F)

In der allgemeinen nichtdeterministischen Form betrachtet die Übergangsfunktion den aktuellen Zustand, ein Eingabesymbol oder ε und das oberste Kellerzeichen. Zu einer solchen Situation kann sie mehrere mögliche Folgeschritte liefern. Jeder Folgeschritt beschreibt einen Folgezustand und einen Kellerersatz: die Symbolfolge, die das bisherige Kellerzeichen ersetzt.

Abiturrelevant ist außerdem die Sicht auf Konfigurationen: Eine Konfiguration besteht aus aktuellem Zustand, Restwort und Kellerinhalt. Genau diese Dreier-Sicht wird im Werkzeugtrace sichtbar.

Stack
Der Keller / Stack
LIFO-Prinzip und typische Operationen

Der Keller ist ein Speicher mit LIFO-Prinzip: zuletzt abgelegt, zuerst gelesen. Gelesen wird immer nur das oberste Kellerzeichen. Genau dadurch eignet sich der Stack für Rückkehr- und Schachtelungsmuster, aber nicht als frei durchsuchbares Gedächtnis.

Schülernahe Sicht

Der Automat sieht immer nur die aktuelle Eingabe, den aktuellen Zustand und das oberste Kellerzeichen. Alles darunter bleibt gespeichert, kann aber erst sichtbar werden, wenn die Zeichen darüber abgebaut sind.

Übergänge
Übergänge eines Kellerautomaten
Wie Eingabe und Keller gemeinsam den nächsten Schritt bestimmen
Anatomie einer PDA-Regel mit Zustand, Eingabe, Stack-Top, Folgezustand und Ersatz
Was man sieht: die Regelnotation (q, a, A) → (q', γ). Begriff: Abhängigkeit von Zustand, Eingabe und Kelleroberseite. Lernpunkt: Genau diese Lesefähigkeit ist für abiturtypische PDA-Aufgaben zentral.

Regel lesen und Trace deuten

Beim endlichen Automaten genügt eine Regel der Form δ(Zustand, Eingabesymbol). Beim Kellerautomaten braucht die Regel zusätzlich die Kelleroberseite. Sie beschreibt also: aktueller Zustand + Eingabesymbol oder ε + Kelleroberseite → Folgezustand + Kellerersatz.

Worterkennung
Worterkennung
Akzeptanzbedingungen bei Kellerautomaten

Ein Kellerautomat verarbeitet ein Eingabewort Zeichen für Zeichen und verändert gleichzeitig seinen Keller. Ein einzelner Zustand reicht deshalb nicht mehr aus, um einen Verarbeitungsschritt zu beschreiben.

Konfiguration

Eine Konfiguration besteht aus aktuellem Zustand, Restwort und Kellerinhalt. Der Trace im Werkzeug zeigt also nicht nur Zustände wie bei Q3.2, sondern zusätzlich das noch nicht gelesene Restwort und die Entwicklung des Kellers.

Akzeptanz durch Endzustand
Akzeptanz durch leeren Keller
Merke

Welche Akzeptanzbedingung gilt, ist Teil der Modellfestlegung oder der Aufgabenstellung: Endzustand, leerer Keller oder eine ausdrücklich geforderte Kombination.

Im Werkzeug kannst du zwischen final_state und empty_stack unterscheiden. Fachlich entscheidet immer die konkrete Aufgabenstellung, welche Akzeptanz gilt.

a^n b^n
Beispiel: Sprache a^n b^n
Wie der Keller gleiche Anzahlen von a und b prüft

Betrachte die Sprache L = { a^n b^n | n >= 1 }. Q3.2 liefert hier den Grenzfall: Ein endlicher Automat kann für beliebiges n nicht speichern, wie viele a vorher gelesen wurden. Die Sprache ist nicht regulär, aber kontextfrei.

Konfigurations-Trace für das Eingabewort aabb im pda-anbn-Preset
Was man sieht: Konfigurationen aus Zustand, Restwort und Keller für aabb. Begriff: Konfigurationsfolge beim Kellerautomaten. Lernpunkt: Der Keller übernimmt den Anzahlvergleich zwischen a und b.

Mit dem Werkzeug prüfen

Im Automaten-/Formalsprachen-Werkzeug: Bereich Kellerautomat / Speicherautomat öffnen, Preset pda-anbn laden, Eingabewort testen und Trace plus Stack-Trace auswerten.

Nichtdeterminismus
Vertiefung (LK): Nichtdeterministischer Kellerautomat
Mehrere mögliche Rechenwege als zentrales Modellprinzip

Ein nichtdeterministischer Kellerautomat kann in derselben Situation mehrere mögliche Übergänge haben. Ein Eingabewort wird akzeptiert, wenn mindestens ein möglicher Rechenweg akzeptiert.

Kontextfrei und Rekursion
Kontextfreie Sprachen und Rekursion
Brücke von Grammatiken zu Kellerautomaten

In Q3.1 hast du gesehen: Kontextfreie Grammatiken haben links genau ein Nicht-Terminal und können rekursive oder geschachtelte Strukturen erzeugen. Q3.3 liefert dazu die erkennende Automatenperspektive: Ein Kellerautomat kann solche Strukturen mit Hilfe seines Stacks prüfen.

Leitgedanke

Der Keller passt gut zu Rekursion: Hineingehen bedeutet speichern, Zurückkehren bedeutet abbauen.

Grenzen
Grenzen des Kellerautomaten
Mächtiger als endliche Automaten, aber nicht allmächtig

Kellerautomaten sind mächtiger als endliche Automaten, aber sie bleiben begrenzt. Ein einzelner Stack kann gut eine verschachtelte Rückkehrstruktur oder einen Anzahlvergleich wie a^n b^n verwalten. Die Sprache { a^n b^n c^n | n >= 1 } ist dagegen nicht kontextfrei: Ein Kellerautomat mit einem einzelnen Stack kann drei gekoppelte Anzahlbereiche nicht allgemein erkennen.

Gut geeignet
Nicht allgemein mit einem Kellerautomaten erkennbar

Werkzeug: Automaten-/Formalsprachen-Werkzeug (Kellerautomat, Stack-Trace, Worterkennung)

Der Werkzeuganschluss bündelt die operative Seite dieses Kapitels: Du lädst einen Kellerautomaten, testest ein Eingabewort und liest den Trace als Folge von Konfigurationen. Entscheidend ist dabei nicht nur, welcher Zustand erreicht wird, sondern wie Restwort und Kellerinhalt sich Schritt für Schritt verändern.

Merksätze

Ausblick

Nach Q3.1 bis Q3.3 wird sichtbar, wie Speicherformen Sprachklassen prägen: Ohne zusätzlichen Speicher erkennt der endliche Automat reguläre Sprachen; mit einem Stack erkennt der Kellerautomat kontextfreie Strukturen. Q3.4 erweitert diesen Weg zum allgemeineren Bandmodell der Turingmaschine.