Ein endliches Gedächtnis
Ein DEA hat keinen Notizzettel: Alles, was er über die schon gelesenen Zeichen weiß, steckt in seinem aktuellen Zustand.
- Gedächtnis:nur der aktuelle Zustand — sonst speichert ein DEA nichts.
- Vorgeschichte:das bisher gelesene Anfangsstück des Worts, z. B.
aaa\(=a^3\). - Gleicher Zustand:zwei Vorgeschichten, die im selben Zustand enden, behandelt der DEA ab dann völlig gleich — bei jedem angehängten Rest.
- Grenze:\(k\) Zustände \(\Rightarrow\) höchstens \(k\) Vorgeschichten lassen sich unterscheiden.
- Beschränkt zählen:„höchstens drei
a“ oder „Anzahl deradurch 3 teilbar“ — endlich viele Fälle, das schafft ein DEA. - Unbeschränkt zählen:„genauso viele
bwie vorhera“ — unendlich viele Fälle, das schafft kein DEA.
Der Versuchsautomat soll \(L=\{a^n b^n\mid n\ge 0\}\) erkennen: a zählt einen Zustand hoch, b einen herunter, z0 ist Start- und Endzustand. Stelle \(k\) und \(n\) ein und beobachte die Zustandsfolge beim Lesen von \(a^n\). Gleiche Farbe heißt gleicher Zustand.
Halte fest: Sobald zwei Vorgeschichten \(a^i\) und \(a^j\) im selben Zustand enden, muss der Automat \(a^ib^i\) und \(a^jb^i\) gleich behandeln — eines davon falsch. Mehr Zustände schieben das Problem nur hinaus: Bei \(n=k\) ist es immer da.
Was ein DEA nicht kann
Mit der Idee aus dem Applet lässt sich zeigen, dass es für \(L=\{a^n b^n\mid n\ge 0\}\) überhaupt keinen DEA gibt — ganz gleich, wie viele Zustände er hat.
Herleitung:
- Reguläre Sprache:eine Sprache, die ein DEA erkennt.
- Klammerung:korrekt geklammerte Ausdrücke wie
(()())— wie bei \(a^nb^n\) müsste man beliebig viele offene Klammern mitzählen: nicht regulär. - Palindrome:Wörter wie
abbaoderaabaa— die ganze erste Hälfte müsste gespeichert werden: nicht regulär. - Beschränkte Tiefe:Klammern mit Tiefe höchstens 2 (oder 10) — endlich viele Tiefen, je Tiefe ein Zustand: regulär.
Nicht eingezeichnete Übergänge führen in den Fehlerzustand zF. Der Zustand merkt sich die aktuelle Tiefe 0, 1 oder 2.
Grenze eines DEA: Ein DEA mit \(k\) Zuständen unterscheidet höchstens \(k\) Vorgeschichten. Darum erkennt kein DEA die Sprache \(L=\{a^n b^n\mid n\ge 0\}\) — unbeschränktes Zählen ist unmöglich.
Allgemeine Hinweise
Mehr Zustände helfen nicht
Auch ein DEA mit 1000 Zuständen scheitert — spätestens bei \(a^{1000}\) wiederholt sich ein Zustand. Das Argument gilt für jedes \(k\).
Erst a, dann b geht
„Erst nur a, dann nur b“ ohne gleiche Anzahl ist regulär. Unmöglich wird es erst durch das Vergleichen zweier unbeschränkter Anzahlen.
Endliche Sprachen gehen immer
Ist \(n\) nach oben begrenzt, etwa \(n\le 5\), ist die Sprache endlich — dann gibt es einen DEA, der einfach bis 5 mitzählt. Die Grenze betrifft nur unbeschränkte Anzahlen.
