MINT lernen

Zusammenfassung

Zustände, Wörter, Ausgaben und die Grenze des endlichen Gedächtnisses: das ganze Kapitel auf einen Blick.

1

Automaten verstehen

Ein endlicher Automat reagiert auf Eingaben, indem er seinen Zustand wechselt. Ein DEA liest so ein Wort Zeichen für Zeichen und nimmt es an oder lehnt es ab.

8.1.1

Systeme mit Zuständen

gesperrt frei Münze Drücken Drücken Münze
  • Zustand: Situation, in der sich das System gerade befindet (gesperrt, frei).
  • Eingabe: Ereignis von außen, steht am Pfeil (Münze, Drücken).
  • Übergang: Wechsel in den Folgezustand; Schleife = Eingabe ändert nichts.
  • Startpfeil zeigt auf den Startzustand; Zustandsfolge = durchlaufene Zustände.
Zustand + Eingabe → Folgezustand

8.1.2

Der deterministische Automat

z0 z1 z2 a a b a b
  • \(\Sigma\): Eingabealphabet; Wort = Zeichenfolge, \(\varepsilon\) = leeres Wort.
  • Endzustände als Doppelkreis, genau ein Startzustand.
  • Deterministisch: je Zustand und Zeichen genau ein Folgezustand.
  • Fehlerzustand zF darf fehlen — nur mit Vermerk.
Akzeptiert ⇔ Endzustand nach dem letzten Zeichen

8.1.3

Automaten analysieren

z0 z1 a b a
  • Für jeden Zustand die Bedeutung notieren: Was weiß der Automat?
  • Testwörter der Länge nach: \(\varepsilon\), a, b, aa, ab, …
  • Schleife: Zeichen egal · Zyklus: wechselnde Information.
  • Gegenprobe mit Grenzfällen: am Anfang, am Ende, \(\varepsilon\).
\(L(A)=\{\,w\in\Sigma^*\mid w\text{ enthält nicht } bb\,\}\)

Notation

Kurz und genau

Zustandab
z0z1zF
z1z1z2
z2z1z2
zFzFzF
  • Übergangstabelle: Zeile = Zustand, Spalte = Zeichen; → Start, doppelt unterstrichen = Ende.
  • \(\Sigma^*\): alle Wörter über \(\Sigma\), einschließlich \(\varepsilon\).
  • \(L(A)\): Menge aller Wörter, die \(A\) akzeptiert.
  • Zustände z0, z1, …; Fehlerzustand zF; Wörter in Schreibmaschinenschrift.
Vollständig: \(|Z|\cdot|\Sigma|\) Übergänge
Akzeptieren
Ein DEA akzeptiert ein Wort genau dann, wenn er nach dem letzten Zeichen in einem Endzustand ist.

Beispiel oben: aab → z0, z1, z1, z2 — akzeptiert. aba ist nach ab im Endzustand, endet aber in z1 — abgelehnt.

Nicht zwischendurch entscheiden

Ein Endzustand unterwegs zählt nicht. Und aus dem Fehlerzustand gibt es kein Zurück: Wer einmal in zF ist, wird abgelehnt.

2

Automaten entwickeln

Beim Entwurf zählt die Frage, was sich der Automat über das bisher Gelesene merken muss. Die Implementierung übersetzt Zustände und Tabelle direkt in Code.

8.2.1

Einen DEA entwickeln

Zustand123
z0z1z0z0
z1z1z2z0
z2z1z0z3
z3z1z0z0
  1. Alphabet festlegen.
  2. Was muss sich der Automat merken? Jede Antwort wird ein Zustand mit Bedeutung.
  3. Start = noch nichts gelesen; Endzustände = Bedingung erfüllt.
  4. Für jeden Zustand und jedes Zeichen einen Übergang festlegen.
  5. Testen: angenommene, abgelehnte Wörter, Grenzfälle, Überlappungen (1123).
Rückweg: zum längsten noch passenden Ende

8.2.2

Automaten implementieren

Java
public boolean akzeptiert(String wort) {
    zustand = 0;
    for (int i = 0; i < wort.length(); i++) {
        uebergang(wort.charAt(i));
    }
    return zustand == 2;
}
  • Attribut int zustand; Zustände als Zahlen kodiert.
  • uebergang(char c): switch über den Zustand, if über das Zeichen.
  • Tabellen-Version: int[][] delta und spalte(char c).
  • Zeichen außerhalb von \(\Sigma\) → Fehlerzustand bzw. sofort false.
zustand = delta[zustand][spalte(c)];
Entwurf und Code
Jeder Zustand speichert eine Bedeutung; ein vollständiger DEA hat genau \(|Z|\cdot|\Sigma|\) Übergänge.

Im Code bewirkt jedes Zeichen genau einen Übergang; akzeptiert wird, wenn nach der Schleife ein Endzustand erreicht ist.

Startzustand zurücksetzen

Ohne zustand = 0; am Anfang von akzeptiert beginnt der zweite Aufruf im Endzustand des ersten Worts.

3

Ausgabe und Grenzen

Ein Mealy-Automat erzeugt bei jedem Übergang eine Ausgabe. Und: Mit endlich vielen Zuständen lässt sich nicht beliebig weit zählen.

8.3.1

Der Mealy-Automat

Zustand50100
0 ct50 ct / ε100 ct / ε
50 ct100 ct / ε0 ct / Getränk
100 ct0 ct / Getränk0 ct / Getränk, 50 ct
  • \(\Sigma\) Eingabealphabet, \(\Omega\) Ausgabealphabet.
  • Pfeil e / a: e lesen, a ausgeben; auch Wörter erlaubt; \(\varepsilon\) = keine Ausgabe.
  • Ausgabe hängt von Zustand und Eingabe ab.
  • Keine Endzustände, aber vollständig: jedes Zeichen braucht einen Pfeil.
Übergang \(e\,/\,a\) mit \(e\in\Sigma,\ a\in\Omega^*\)

8.3.2

Mealy-Automaten entwickeln

ZustandEingabeAusgabeFolge
z011z1
z101z0
z000z0
z011z1
  • Ausgabe mit Beispielpaaren klären: Eingabewort → Ausgabewort.
  • Was muss sich der Automat merken? → Zustände mit Bedeutung.
  • Ablaufprotokoll: Schritt, Zustand, Eingabe, Ausgabe, Folgezustand.
  • Ist- und Soll-Ausgabe Zeichen für Zeichen vergleichen; jeden Pfeil testen.
Korrekt ⇔ Ist = Soll für jede Testeingabe

8.3.3

Grenzen endlicher Automaten

  • Einziges Gedächtnis eines DEA ist sein aktueller Zustand.
  • \(k\) Zustände → höchstens \(k\) Vorgeschichten unterscheidbar.
  • Schubfach: Von \(a^0,\dots,a^k\) enden zwei, \(a^i\) und \(a^j\), im selben Zustand — dann werden \(a^ib^i\) und \(a^jb^i\) gleich behandelt.
  • Beschränkt zählen geht (modulo 3, Tiefe ≤ 2, endliche Sprachen).
  • Unbeschränkt zählen geht nicht (Klammerung beliebiger Tiefe, Palindrome).
\(L=\{a^nb^n\mid n\ge 0\}\) erkennt kein DEA

Vergleich

DEA oder Mealy?

DEAMealy
ZweckWort prüfenWort übersetzen
Pfeilee / a
Endzuständejanein
Ergebnisja / neinAusgabewort
  • Beide lesen Zeichen für Zeichen und haben endlich viele Zustände.
  • Beide müssen vollständig sein: je Zustand und Zeichen genau ein Pfeil.
  • Beim Mealy-Automaten \(\varepsilon\) statt eines fehlenden Schrägstrichs schreiben.
Gleiches Gedächtnis, andere Aufgabe
Herleitung der Grenze
Annahme → Schubfach → gleicher Zustand → gleiches Urteil → Widerspruch

Ein DEA mit \(k\) Zuständen unterscheidet höchstens \(k\) Vorgeschichten. Darum erkennt kein DEA \(L=\{a^nb^n\mid n\ge 0\}\) — mehr Zustände verschieben das Problem nur.

ε ist nicht 0

\(\varepsilon\) heißt: Es wird nichts ausgegeben. Die Ausgabe 0 ist ein echtes Zeichen aus \(\Omega\).

4

Die Regeln, an denen die Punkte hängen

Was in Klausuren zu endlichen Automaten am häufigsten Punkte kostet:

Regel 1 — vollständig oder Vermerk

Jeder Zustand braucht für jedes Zeichen einen Pfeil. Wer den Fehlerzustand weglässt, schreibt dazu: „Nicht eingezeichnete Übergänge führen in den Fehlerzustand zF.“

Regel 2 — Bedeutung zu jedem Zustand

Beim Entwerfen und Analysieren gehört zu jedem Zustand ein Satz, was er bedeutet. Das macht den Automaten nachprüfbar und bringt Begründungspunkte.

Regel 3 — Testen mit Grenzfällen

Immer auch \(\varepsilon\), das kürzeste Wort, Wörter, die knapp scheitern, und beim Mealy-Automaten Eingaben, die jeden Pfeil benutzen.

1AFB I — Reproduzieren10 Aufgaben› ?Selbsttest40 Fragen mit Auswertung›