Worterkennung in Texten speziell im Compilerbau 14. April Frank Heitmann 2/65

Ähnliche Dokumente
Frank Heitmann 2/47. 1 Ein PDA beginnt im Startzustand z 0 und mit im Keller. 2 Ist der Automat

Worterkennung in Texten speziell im Compilerbau 20. April Frank Heitmann 2/64

Die mathematische Seite

Formalismen für REG. Formale Grundlagen der Informatik 1 Kapitel 7 Kontextfreie Sprachen. Das Pumping Lemma. Abschlusseigenschaften

Das Pumping Lemma der regulären Sprachen

c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} c) {abcabc} d) {abcbc, abc, a} c) {aa, ab, ba, bb} d) {{aa}, {ab}, {ba}, {bb}}

2.3 Abschlusseigenschaften

Informales Beispiel. Formale Grundlagen der Informatik 1 Kapitel 6 Eigenschaften kontextfreier Sprachen. Grammatiken. Anmerkungen

1 Eine Menge M Σ heißt (rekursiv) aufzählbar genau. 2 Die Familie aller aufzählbaren Mengen wird mit RE

Theoretische Grundlagen der Informatik

Turing-Maschinen. Definition 1. Eine deterministische Turing-Maschine (kurz DTM) ist ein 6- Dem endlichen Alphabet Σ von Eingabesymbolen.

bestehenden sind, weiterhin benutzt werden. Oft beleuchten unterschiedliche Formalismen Dinge nämlich von unterschiedlichen Blickwinkeln.

PDA, Übergangsfunktion

Die Nerode-Relation und der Index einer Sprache L

Grundlagen der Theoretischen Informatik

5.2 Endliche Automaten

Kontextfreie Grammatiken

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Formale Methoden 1. Gerhard Jäger 9. Januar Uni Bielefeld, WS 2007/2008 1/23

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,

Der deterministische, endliche Automat. Formale Grundlagen der Informatik 1 Kapitel 3 Mehr zu regulären Sprachen

Fragen 1. Muss eine DTM ein Wort zu Ende gelesen haben, um es zu akzeptieren? a) Ja! b) Nein!

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

Übung zur Vorlesung Grundlagen der theoretischen Informatik. Aufgabenblatt 7 Lösungen. Wiederholung: Pumping-Lemma für kontextfreie Sprachen

Endliche Automaten. δ : Z Σ Z die Überführungsfunktion, z 0 Z der Startzustand und F Z die Menge der Endzustände (Finalzustände).

Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden:

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls

Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen

Theorie der Informatik

Grundlagen der theoretischen Informatik

Syntax. 1 Jedes A AS AL ist eine (atomare) Formel. 2 Ist F eine Formel, so ist auch F eine Formel. 3 Sind F und G Formeln, so sind auch

Deterministischer Kellerautomat (DPDA)

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Einführung in die Theoretische Informatik

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

4.2 Varianten der Turingmaschine. 4 Turingmaschinen

Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (ii) ε ist ein regulärer Ausdruck über Σ.

Automaten und Formale Sprachen ε-automaten und Minimierung

Einführung in die Theoretische Informatik

Das Pumping-Lemma Formulierung

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.

Formale Sprachen. Reguläre Sprachen. Rudolf FREUND, Marian KOGLER

FORMALE SYSTEME. 8. Vorlesung: Minimale Automaten. TU Dresden, 6. November Markus Krötzsch Lehrstuhl Wissensbasierte Systeme

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

FORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Kurz-Skript zur Theoretischen Informatik I

2.2 Reguläre Sprachen Endliche Automaten

Typ-3-Sprachen. Das Pumping-Lemma

Grundlagen der Theoretischen Informatik

8. Turingmaschinen und kontextsensitive Sprachen

Satz (Abschluß unter der Stern-Operation)

Theoretische Informatik I

Deterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen

2. Übungsblatt 6.0 VU Theoretische Informatik und Logik

Grundlagen der Theoretischen Informatik, SoSe 2008

Theorie der Informatik

Formale Sprachen und Automaten: Tutorium Nr. 8

Theoretische Grundlagen der Informatik

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

Automaten und Formale Sprachen SoSe 2007 in Trier. Henning Fernau Universität Trier

Kontextfreie Sprachen

Kontextfreie Sprachen

FORMALE SYSTEME. 10. Vorlesung: Grenzen regulärer Sprachen / Probleme für Automaten. TU Dresden, 14. November 2016.

WS07/08 Automaten und Formale Sprachen 5. Vorlesung

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18

Turing Maschine. Thorsten Timmer. SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke. Turing Maschine SS 2005 p.

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung

2 2 Reguläre Sprachen. 2.2 Endliche Automaten. Übersicht

Theoretische Informatik Mitschrift

Übungsaufgaben zu Formalen Sprachen und Automaten

Technische Universität München Sommer 2016 Prof. J. Esparza / Dr. M. Luttenberger, S. Sickert 11. Juli HA-Lösung. TA-Lösung

Formale Systeme. Büchi-Automaten. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Umformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz.

Endliche Automaten. aus. Abbildung 1: Modell eines einfachen Lichtschalters

A : z z A : z z : ( z, x, z ) δ

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie

Formale Sprachen und endliche Automaten

b liegt zwischen a und c.

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011

Übung zur Vorlesung Theoretische Information. Pumping Lemma

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

Klausur zur Vorlesung Informatik III Wintersemester 2007/2008

Theoretische Informatik Kap 1: Formale Sprachen/Automatentheorie

4.2.4 Reguläre Grammatiken

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

Motivation. Formale Grundlagen der Informatik 1 Kapitel 14 Aussagenlogik Syntax & Semantik. Motivation. Motivation

11.1 Kontextsensitive und allgemeine Grammatiken

Technische Universität München Sommer 2016 Prof. J. Esparza / Dr. M. Luttenberger, S. Sickert 2. Mai HA-Lösung. TA-Lösung

Grundlagen der Informatik II

Beispiele akzeptierender Turingmaschinen

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

Automaten und Coinduktion

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit. Zugangsnummer: 3288

Einführung in die Theoretische Informatik

Kapitel 7: Kellerautomaten und kontextfreie Sprachen

Endliche Automaten. Im Hauptseminar Neuronale Netze LMU München, WS 2016/17

Spracherkennung (Syntaxanalyse)

Transkript:

Grenzen regulärer Sprachen? Formale Grundlagen der Informatik 1 Kapitel 4 Über reguläre Sprachen hinaus und Frank Heitmann heitmann@informatik.uni-hamburg.de Wir haben mittlerweile einiges kennengelernt, um reguläre Sprachen zu erzeugen: direkte Konstruktion von (verschiedenen) Automaten direkte Konstruktion von rationalen Ausdrücken Benutzung von Abschlusseigenschaften Als Anwendungsfälle hatten wir Worterkennung in Texten speziell im Compilerbau 14. April 2014 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 2/65 Grenzen regulärer Sprachen? Grenzen regulärer Sprachen? Und obwohl nun viele Sprachen regulär sind, gibt es (gerade auch in obigem Kontext) welche, bei denen es uns schwerfällt einen Automaten zu konstruieren. Beispiel Die Sprache aller korrekt geklammerten Ausdrücke? Z.B. wollen wir ()(()) akzeptieren, (() nicht. Mit unseren bisherigen Techniken scheitern wir hier...... geht das überhaupt?! Eine einfachere Sprache, die aber einen wichtigen Aspekt erfasst: {a n b n n N} Ist diese regulär? Wir scheitern zunächst auch hier... Frank Heitmann heitmann@informatik.uni-hamburg.de 3/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 4/65

Der Kellerautomat a a b b Wir erweitern den DFA um einen Keller, um uns Dinge zu merken. Den so entstehenden Automaten nennen wir Kellerautomat. b, A,? z 0 z 1 z 2 a,? A? a, A AA b, A? Frank Heitmann heitmann@informatik.uni-hamburg.de 5/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 6/65 Der Kellerautomat - Formal Der Kellerautomat - Formal Definition (Kellerautomat (PDA = Push Down Automata)) Ein nichtdeterministischer Kellerautomat (kurz PDA) ist ein 7-Tupel A = (Z, Σ, Γ, δ, Z start, Z end, ) mit Der endlichen Menge von Zuständen Z. Dem endlichen Alphabet Σ von Eingabesymbolen. Dem endlichen Alphabet Γ von Kellersymbolen. Der Überführungsfunktion δ : Z (Σ {λ}) Γ 2 Z Γ. Der Menge von Startzuständen Z start Z. Der Menge der Endzustände Z end Z. Dem Kellerbodensymbol Γ. Wie beim NFA kann statt der Überführungsfunktion δ : Z (Σ {λ}) Γ 2 Z Γ auch mit einer Relation K Z (Σ {λ}) Γ Γ Z gearbeitet werden. Anmerkung Dieses Automatenmodell ist nichtdeterministisch Frank Heitmann heitmann@informatik.uni-hamburg.de 7/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 8/65

Konfiguration und Rechnung Akzeptierte Sprache Definition (Konfiguration und Rechnung) Eine Konfiguration eines PDA A ist ein Element mit der Bedeutung, dass A im Zustand z ist, (z, w, v) Z Σ Γ, das w noch auf dem Eingabeband zu lesen ist und der aktuelle Kellerinhalt v ist. Die Überführungsrelation (Z Σ Γ ) (Z Σ Γ ) ist definiert durch (z, xu, yw) (z, u, y w) gdw. (z, y ) δ(z, x, y). Definition (Akzeptierte Sprache) Die von einem PDA mit leerem Keller akzeptierte Sprache ist die Menge L λ (A) := {w Σ (z 0, w, ) (z, λ, λ)} und die von einem PDA mit Endzustand akzeptierte Sprache ist die Menge L Z (A) := {w Σ (z 0, w, ) (z e, λ, v), z e Z end, v Γ }. Anmerkung Anmerkungen auf der nächsten Folie! Eine Rechnung ist wieder eine Folge solcher Übergänge. Frank Heitmann heitmann@informatik.uni-hamburg.de 9/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 10/65 Akzeptierte Sprache L λ (A) := {w Σ (z 0, w, ) (z, λ, λ)} L Z (A) := {w Σ (z 0, w, ) (z e, λ, v), z e Z end, v Γ } Anmerkung Bei L λ (A) werden die Endzustände nicht benutzt und bei L Z (A) ist der Kellerinhalt v am Ende egal. Statt L λ (A) schreiben wir auch (insb. im Skript) N(A) und statt L Z (A) auch L(A). Da das Modell nichtdeterministisch ist, genügt es wie beim NFA, wenn es bei einem Eingabewort eine Rechnung gibt, die den Keller leert bzw. den Automaten in einen Endzustand bringt. Frank Heitmann heitmann@informatik.uni-hamburg.de 11/65 Zur Akzeptanzbedingung Bemerkung Man kann zeigen, dass beide Akzeptanzbedingungen äquivalent sind, dass also Zu einem PDA A und einer Sprache M mit M = L Z (A)(= L(A)) auch ein PDA A konstruiert werden kann mit M = L λ (A )(= N(A )). Zu einem PDA A und einer Sprache M mit M = L λ (A )(= N(A )) auch ein PDA A konstruiert werden kann mit M = L Z (A)(= L(A)). Wir wollen dies nicht im Detail beweisen und konzentrieren und meist auf die Akzeptanz mit leerem Keller. Literaturhinweis Interessierte finden die Konstruktion(en) im Skript und in [HMU]. Die Kernidee ist bei beiden Richtungen mit einem zweiten Kellerbodenzeichen zu arbeiten und dies unter das erste zu schieben. Man kann dann genau feststellen, wann der Keller in einem Automaten leer ist, kann aber trotzdem noch weiter arbeiten. Frank Heitmann heitmann@informatik.uni-hamburg.de 12/65

Kellerautomat - Funktionsweise Beispiel a n b n Die (informale) Funktionsweise eines PDA: Ein PDA beginnt im Startzustand z 0 und mit im Keller. Ist der Automat im Zustand z, liest vom Eingabeband das a und vom Keller das X (dies ist ganz oben auf dem Keller), so kann ein Element (z, w) δ(z, a, X ) gewählt werden. Es wird dann in den Zustand z gewechselt, der Lesekopf auf dem Eingabeband ein Feld nach rechts bewegt, das X vom Keller gelöscht und dieses X durch w ersetzt (wobei das erste Symbol von w nun ganz oben auf dem Keller ist). L = {a n b n n N} a,a AA b,a λ b,a λ z 0 z 1 z2 Frank Heitmann heitmann@informatik.uni-hamburg.de 13/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 14/65 Beispiel a n b n Beispiel a n b n L = {a n b n n N} L = {a n b n n N} a,a AA b,a λ b,a λ z 0 z 1 z2 (z 0, aabb, ) (z 0, abb, A ) (z 0, bb, AA ) (z 1, b, A ) (z 1, λ, ) (z 2, λ, λ) Akzeptieren! Wort zu Ende gelesen und Keller leer! a,a AA b,a λ b,a λ z 0 z 1 z2 (z 0, abb, ) (z 0, bb, A ) (z 1, b, ) (z 1, b, λ) Nicht akzeptieren, da Wort nicht zu Ende gelesen! Frank Heitmann heitmann@informatik.uni-hamburg.de 15/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 16/65

Beispiel a n b n DFA vs. PDA L = {a n b n n N} a,a AA b,a λ b,a λ z 0 z 1 z2 Wichtige Anmerkung Alles was ein DFA kann, kann auch ein PDA! Jede Kante (z, a, z ) im DFA wird im PDA zur Kante (z, a,,, z ). Will man mit leerem Keller akzeptieren, fügt man an jeden Endzustand (des DFAs) z e noch eine Kante (z e, λ,, λ, z e ) hinzu, mit der das gelöscht wird. Der PDA ist also mindestens so mächtig wie der DFA. Die Frage ist später noch, ob er tatsächlich mehr kann... (z 0, aa, ) (z 0, a, A ) (z 0, λ, AA ) Nicht akzeptieren, da Keller nicht leer! Frank Heitmann heitmann@informatik.uni-hamburg.de 17/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 18/65 Fragen... Fragen... z 0 z 1 z2 In welchen Zuständen kann man nach Lesen von 0011 sein? 1 Nur z 0 2 z 0 und z 1 3 z 0, z 1 und z 2 4 Nur z 2 z 0 z 1 z2 Unabhängig vom Eingabewort: In welchen Zuständen kann man sein, so dass der Keller leer ist? 1 Nur z 0 2 Nur z 1 3 Nur z 2 4 In z 1 und z 2 kann der Keller leer sein Frank Heitmann heitmann@informatik.uni-hamburg.de 19/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 20/65

Fragen... Fragen... z 0 z 1 z2 z 0 z 1 z2 In welchen Zuständen kann man nach Lesen von 0110 sein? 1 Nur z 0 2 z 0 und z 1 3 z 0, z 1 und z 2 4 Nur z 2 Bei diesem Automaten kann man mit leeren Keller nicht mehr lesen, weil es keine Kante aus z 2 heraus gibt. Ist es im Allgemeinen möglich bei leerem Keller weitere Aktionen auszuführen? Also z.b. hier eine Kante (z 2, λ, λ, λ, z 0 ) einzufügen? 1 Ja! 2 Nein! Frank Heitmann heitmann@informatik.uni-hamburg.de 21/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 22/65 Zur Nachbereitung Beispiel a n b n Zur Nachbereitung Richtige Antworten sind: 1 2 2 3 3 3 4 2 Behauptung a,a AA b,a λ b,a λ z 0 z 1 z2 N(A) = {a n b n n N} =: M Vorüberlegung: Es gilt λ M (mit n = 0) und mit (z 0, λ, ) (z 2, λ, λ) auch λ N(A). Wir können daher nachfolgend davon ausgehen, dass w > 0 gilt. Frank Heitmann heitmann@informatik.uni-hamburg.de 23/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 24/65

a,a AA b,a λ b,a λ z 0 z 1 z2 M := {a n b n n N} N(A). Sei w = a n b n M für ein n 1. In A gilt nun (z 0, a n b n, ) (z 0, a n 1 b n, A )... (z 0, b n, A n ) (z 1, b n 1, A n 1 )... (z 1, λ, ) (z 2, λ, λ) und folglich auch w N(A). Frank Heitmann heitmann@informatik.uni-hamburg.de 25/65 a,a AA b,a λ b,a λ z 0 z 1 z2 N(A) {a n b n n N} = M. Sei w N(A) mit w 1. Der Kantenübergang von z 0 nach z 2 ist nur ganz zu Anfang möglich, da sonst in z 0 nie vom Keller gelöscht wird und das Kellerbodensymbol dann nicht mehr erreichbar ist. D.h. diese Kante kann nur genutzt werden, um das leere Wort zu akzeptieren und ist hier nicht von Bedeutung. Frank Heitmann heitmann@informatik.uni-hamburg.de 26/65 a,a AA b,a λ a,a AA b,a λ b,a λ z 0 z 1 z2 b,a λ z 0 z 1 z2 An den Kantenübergängen erkennt man nun, dass ausschließlich in z 0 as gelesen werden können. Für jedes gelesene a wird zudem ein A auf den Keller geschrieben. Zudem muss w mit mindestens einem a beginnen, da sonst kein Übergang möglich ist. Insgesamt heißt dies, dass w mit a i für ein i 1 beginnen muss. Frank Heitmann heitmann@informatik.uni-hamburg.de 27/65 Sei also w = a i v, wobei v das Restwort ist und mit b beginnen muss (da sonst z 0 nicht verlassen werden kann). Nach Lesen von a i ist A dann in der Konfiguration (z 0, v, A i ). An den Kantenübergängen erkennt man nun, dass genau i mal das b gelesen werden muss, um an das heranzukommen. Dies geschieht beim Übergang nach z 1 und dann in z 1. Bei jedem Lesen eines b wird ein A gelöscht. Da wir an herankommen müssen, ist es also weder möglich weniger noch mehr als i bs zu lesen. Frank Heitmann heitmann@informatik.uni-hamburg.de 28/65

Die Technik a,a AA b,a λ b,a λ z 0 z 1 z2 Es muss also gerade v = b i sein. Erst nun ist das im Keller erreichbar und wir können es beim Übergang nach z 2 löschen. Damit hat w die Form a i b i für ein i 1 und damit gilt auch w M. Zur Zähltechnik Diese Technik des Zählens kann häufig benutzt werden. Varianten: Um z.b. a n b 2n zu akzeptieren, achtet man beim Löschen der A im Keller darauf, dass hierfür immer zwei b gelesen werden müssen (oder alternativ: schreibt stets zwei A beim Lesen eines a). Für a n b m mit n > m muss der Keller beim letzten zu lesenden Eingabesymbol nicht leer werden. Er muss dann aber noch in einem Zustand (in dem man davon ausgeht, dass das Wort zu Ende gelesen wurde) noch geleert werden. Für a n b m mit n < m liest man, wenn man erreicht hat, noch beliebig viele weitere b. Frank Heitmann heitmann@informatik.uni-hamburg.de 29/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 30/65 Die Technik Zur Zähltechnik Weitere Varianten: Will man Worte akzeptieren, bei denen jedes Präfix mehr 0en als 1en hat, kann man auch mit einem Zähler arbeiten, muss diesen aber dynamisch erhöhen und verringern und ggf. abbrechen, wenn man versucht ihn bei noch weiter zu verringern. ( Präsenzaufgabe) Will man Worte akzeptieren, die gleich viele 0en wie 1en haben, kann man ähnlich verfahren, aber der Zähler flippt sozusagen von einem 0-Zähler zu einem 1-Zähler (oder andersherum) und am Ende des Wortes muss der Zähler leer sein. ( Übungsaufgabe) Anmerkung Definition des Präfix auf der nächsten Folie. Frank Heitmann heitmann@informatik.uni-hamburg.de 31/65 Zwei Definitionen Definition (Präfix) Unter einem Präfix eines Wortes w Σ versteht man ein Wort v Σ so dass ein u Σ existiert mit w = vu. Informal: ein beliebiges Anfangsstück von w ist ein Präfix. Ist bspw. w = 1001, so ist 1 ein Präfix, ebenso wie 10 und 100. Außerdem sind auch λ und w selbst Präfixe von w. Definition (w rev ) Das Spiegelwort w rev zu einem Wort w Σ ist definiert durch 1 λ rev = λ und 2 (ux) rev = x u rev mit x Σ und u Σ Bspw. ist für w = 1011 dann w rev = 1101. Für Mengen notieren wir L rev = {w rev w L}. Frank Heitmann heitmann@informatik.uni-hamburg.de 32/65

Ein zweites Beispiel: ww rev Wir wollen nun einen PDA konstruieren für L := {ww rev w {0, 1} } 0, 0 0,0 00 0,1 01 1, 1 1,0 10 1,1 11 z 0 z1 z2 Frank Heitmann heitmann@informatik.uni-hamburg.de 33/65 z 0 z 1 z2 L := {ww rev w {0, 1} } N(A). Sei v = ww rev L. Nach Konstruktion wird in z 0 für jede vom Eingabeband gelesene 0, eine 0 auf den Keller geschrieben; ebenso für die 1; in z 1 kann eine 0 nur vom Eingabeband gelesen werden, wenn sie auch auf dem Keller steht (und dann gelöscht wird); ebenso für die 1; Frank Heitmann heitmann@informatik.uni-hamburg.de 34/65 z 0 z 1 z2 Damit folgt also nach Konstruktion: (z 0, ww rev, )... (z 0, w rev, w rev ) (z 1, w rev, w rev, )... (z 1, λ, ) (z 2, λ, λ) Also v = ww rev N(A). Die Rückrichtung ist schwieriger. Wir beobachten zunächst: z 2 kann nur von z 1 aus erreicht werden und nur, wenn auf dem Keller nur noch ist. Dies ist die einzige Möglichkeit den Keller zu leeren. In z 2 kann nichts mehr gelesen werden. Das Eingabewort muss also schon in z 1 zu Ende gelesen worden sein. Jede akzeptierende Rechnung startet in z 0, gelangt von dort nach z 1 und kehrt von dort nie nach z 0 zurück. Es genügt also Bedingungen für (z 0, w, ) (z 1, λ, ) zu finden. Dies sind dann genau die Wörter, die akzeptiert werden! Frank Heitmann heitmann@informatik.uni-hamburg.de 35/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 36/65

Die Behauptung Wir zeigen eine etwas allgemeinere Behauptung mittels Induktion über die Wortlänge: Wenn (z 0, x, V ) (z 1, λ, V ) (für beliebiges V ), dann ist x = ww rev für ein w {0, 1} z 0 z 1 z2 (Z.Z. Wenn (z 0, x, V ) (z 1, λ, V ), dann x = ww rev.) Induktionsanfang: Sei x = λ. Dann ist x von der gewünschten Form und wir sind fertig (unabhängig davon, ob der wenn -Teil gilt oder nicht). Frank Heitmann heitmann@informatik.uni-hamburg.de 37/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 38/65 z 0 z 1 z2 z 0 z 1 z2 Induktionsannahme: Gelte die Behauptung für Worte der Länge bis zu n 1, d.h. für jedes Wort x der Länge bis zu n 1 gilt, wenn (z 0, x, V ) (z 1, λ, V ) für ein V, dann ist x = ww rev für ein w {0, 1} Induktionsschritt: Sei x = a 1... a n ein Wort der Länge n mit (z 0, x, V ) (z 1, λ, V ) für ein V. Wir wollen x = ww rev zeigen. Zunächst kann der erste Schritt nicht (z 0, x, V ) (z 1, x, V ) sein, da in z 1 nur Buchstaben vom Keller gelöscht werden können und wegen x 1 auf jeden Fall mindestens ein Buchstabe gelöscht werden würde. Dann wäre aber nicht mehr V auf dem Keller! Frank Heitmann heitmann@informatik.uni-hamburg.de 39/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 40/65

Der erste Schritt ist also (z 0, a 1 a 2... a n, V ) (z 0, a 2... a n, a 1 V ). Da wir ferner das a 1 wieder vom Keller löschen müssen und dies nur in z 1 geschehen kann, muss der letzte Schritt (z 1, a n, a 1 V ) (z 1, λ, V ) sein. Hieraus folgt zunächst a n = a 1 (wegen der Übergänge an z 1 ). Außerdem wissen wir, da ja nach Voraussetzung (z 0, x, V ) (z 1, λ, V ) gilt, dass nun insgesamt (z 0, a 1 a 2... a n, V ) (z 0, a 2... a n, a 1 V ) (z 1, a n, a 1 V ) (z 1, λ, V ) also insb. (z 0, a 2... a n, a 1 V ) (z 1, a n, a 1 V ) Da das a n von der Eingabe nicht benutzt wird ist dies gleichbedeutend mit (z 0, a 2... a n 1, a 1 V ) (z 1, λ, a 1 V ) (z 0, a 2... a n 1, a 1 V ) (z 1, λ, a 1 V ) Nun ist aber a 2... a n 1 ein Wort der Länge n 2 < n, so dass die Induktionsannahme anwendbar ist! Es gibt also ein v derart, dass a 2... a n 1 = vv rev. Da ferner a 1 = a n gilt, haben wir mit w = a 1 v a 1... a n = a 1 vv rev a n = a 1 vv rev a 1 = ww rev und sind fertig. Frank Heitmann heitmann@informatik.uni-hamburg.de 41/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 42/65 Die Technik Zusammenfassung Wir haben Zur rev-technik Es gilt ganz allgemein, dass wenn man ein Wort w von der Eingabe liest und dieses Buchstabe für Buchstabe auf den Keller schreibt. Auf dem Keller genau w rev liegt. Dies kann man ggf. auch in anderen Kontexten benutzen... Frank Heitmann heitmann@informatik.uni-hamburg.de 43/65 Dabei PDAs / kennengelernt Wieder die Begriffe wie Konfiguration, Rechnung, akzeptierte Sprache usw. eingeführt können PDAs mit leerem Keller oder mit Endzustand akzeptieren. Beide Akzeptanzbedingungen sind äquivalent (ohne Beweis). Wir haben einen PDA für L = {a n b n n N} gebaut und dabei den Keller als Zähler benutzt einen PDA für L = {ww rev w {0, 1} gebaut und dabei den Keller als Speicher benutzt Frank Heitmann heitmann@informatik.uni-hamburg.de 44/65

Zum hin... Zum hin... Wir haben jetzt einen PDA für L := {a n b n n N}, aber bisher wissen wir nicht mit Sicherheit, dass es hierfür keinen DFA gibt! Können wir vielleicht eine Eigenschaft X finden, die alle regulären Sprachen haben müssen? Dann könnten wir vielleicht nachweisen, dass L oben die Eigenschaft X nicht hat. Dann kann L nicht regulär sein! Wir wissen von regulären Sprachen, dass sie von endlichen Automaten akzeptiert werden. Von diesen wissen wir, dass sie endlich viele Zustände haben. Frank Heitmann heitmann@informatik.uni-hamburg.de 45/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 46/65 Zum hin... Das Wörter, die akzeptiert werden und die mehr Buchstaben haben als der Automat Zustände, müssen dann Schleifen im Automaten durchlaufen! Diese Schleifen könnte man öfter entlang gehen! Und damit neue Wörter erzeugen, die auch in der Sprache sein müssen! Bei a n b n wird das aber nicht gehen! Man überlege sich: Wenn es einen Automat gibt mit k Zuständen für L betrachtet man a k b k Es müsste eine Schleife geben Aber welche sollte das sein, so dass man sie zweimal entlang gehen kann und trotzdem ein Wort der Form a j b j herauskommt? Frank Heitmann heitmann@informatik.uni-hamburg.de 47/65 Wir werden jetzt die oben skizzierte Eigenschaft der regulären Sprachen genauer fassen und so das formulieren. Dies werden wir dann nutzen, um tatsächlich zu zeigen, dass L = {a n b n } nicht regulär ist! Frank Heitmann heitmann@informatik.uni-hamburg.de 48/65

Das - Das Lemma Lemma Sei L REG eine reguläre Sprache. Dann gibt es ein n N, so dass jedes Wort z L mit z n in die Form z = uvw zerlegt werden kann, wobei 1 uv n 2 v 1 3 uv i w L für jedes i N (inkl. der 0) (Äquivalent zur letzten Aussage ist die Aussage {u}{v} {w} L.) Wichtige Anmerkung Das v kann (mit i = 0) auch ganz weggelassen werden, d.h. die dritte Bedingung fordert, dass nicht nur uvw, uvvw, uvvvw usw. in L sein müssen, sondern auch uv 0 w = uλw = uw. Dies ist manchmal die einzige Möglichkeit einen Widerspruch herzustellen! Frank Heitmann heitmann@informatik.uni-hamburg.de 49/65 Das - Der Beweis Beweis. Sei L regulär. Dann gibt es einen vollständigen DFA A mit L(A) = L. Sei n die Anzahl der Zustände von A. Wir betrachten nun ein Wort z L mit z n (gibt es kein solches z ist nichts zu zeigen). Wir legen A das Wort z vor. A beginnt im Startzustand z 0 Da A vollständig ist und z akzeptiert wird, kann z gelesen werden. Da z aus mindestens n Buchstaben besteht, finden mindestens n Zustandsübergänge statt. D.h. es werden mindestens n + 1 Zustände besucht. Da es nur n Zustände gibt, muss mindestens ein Zustand doppelt auftreten! Frank Heitmann heitmann@informatik.uni-hamburg.de 50/65 Das - Der Beweis Das - Der Beweis Beweis. Sei die Zustandsfolge vom Startzustand z 0 zu einem Endzustand z e, die beim Lesen von z besucht wird durch z 0, z 1, z 2,..., z n,..., z e gegeben. Seien z i und z j (i j und i < j) in dieser Folge gleich und außerdem z j der erste Zustand, der ein zweites Mal auftritt! Nun ist j n (denn von z 0 bis z n sind es bereits n + 1 Zusände; einer davon muss doppelt auftreten!) und j i 1 Sei u das Wort das von z 0 bis z i gelesen wird v das Wort das von z i bis z j gelesen wird Beweis. Sei u das Wort das von z 0 bis z i gelesen wird v das Wort das von z i bis z j gelesen wird und w das Wort von z j bis z e Es ist nun uv n (wegen j n oben) und v 1 (wegen j i 1 oben). Ferner kann die Schleife von z i nach z j (man beachte: i j, aber z i = z j!) beliebig oft durchlaufen werden und trotzdem kann dann von z j aus mit w der Endzustand z n erreicht werden. Daraus folgt, dass auch uv i w für alle i 0 akzeptiert werden. Und wir sind fertig! und w das Wort von z j bis z e Frank Heitmann heitmann@informatik.uni-hamburg.de 51/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 52/65

Das - Das Lemma Lemma Sei L REG eine reguläre Sprache. Dann gibt es ein n N, so dass jedes Wort z L mit z n in die Form z = uvw zerlegt werden kann, wobei 1 uv n 2 v 1 3 uv i w L für jedes i N (inkl. der 0) (Äquivalent zur letzten Aussage ist die Aussage {u}{v} {w} L.) Wichtige Anmerkung Das v kann (mit i = 0) auch ganz weggelassen werden, d.h. die dritte Bedingung fordert, dass nicht nur uvw, uvvw, uvvvw usw. in L sein müssen, sondern auch uv 0 w = uλw = uw. Dies ist manchmal die einzige Möglichkeit einen Widerspruch herzustellen! Frank Heitmann heitmann@informatik.uni-hamburg.de 53/65 Das - Der Ablauf Der Ablauf beim : 1 Annehmen L wäre regulär 2 Die Zahl aus dem benennen (z.b. k). 3 Ein Wort z finden mit z k und z L. Dieses Wort muss gut gewählt sein, damit der nachfolgende Widerspruch gelingt! Hier muss man also u.u. experimentieren! 4 Für alle Zerlegungen von z in uvw zeigen, dass sie im Widerspruch zur ersten, zweiten oder dritten Bedingung sind. Üblicherweise betrachtet man alle Zerlegungen, die die erste und zweite Bedingung erfüllen und zeigt, dass man dann einen Widerspruch zur dritten Bedingung erhält. 5 Also: Alle Zerlegungen z = uvw mit uv k und v 1 betrachten. 6 Zeigen, dass man ein i findet mit uv i w L. (Dies kann auch i = 0 sein!) Frank Heitmann heitmann@informatik.uni-hamburg.de 54/65 Das - Beispiel 1 Das - Beispiel 1 Behauptung L := {a n b n n N} ist nicht regulär. Beweis. Angenommen L wäre regulär. Dann gilt das. Sei k die Zahl aus dem. Wir betrachten das Wort z = a k b k. Es gilt z L und z k. Damit muss es eine Zerlegung z = uvw geben, die die drei Eigenschaften erfüllt. Wir betrachten nun nur jene Zerlegungen, die die erste und zweite Bedingung erfüllen und zeigen, dass diese im Widerspruch zur dritten stehen. Wir haben dann gezeigt, dass jede Zerlegung von z in uvw im Widerspruch zu einer der drei Bedingungen steht und sind dann fertig.... Behauptung L := {a n b n n N} ist nicht regulär. Beweis. Sei also z = a k b k = uvw eine Zerlegung mit i) uv k und ii) v 1. Es muss dann v {a} + gelten, da uv ja die ersten Buchstaben von z ausmacht, aber davon nur maximal k einnehmen kann und da ferner v mindestens die Länge 1 hat. Es gibt sogar ein j mit 1 j k derart, dass v = a j gilt. Wir betrachten nun das Wort uv 2 w, dass nach der dritten Bedingung in L sein müsste. Es ist aber uv 2 w = a k+j b k und somit uv 2 w L. Die ursprüngliche Annahme muss also falsch sein und daher ist L nicht regulär. Frank Heitmann heitmann@informatik.uni-hamburg.de 55/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 56/65

Wichtige Folgerung Fragen... Wichtige Anmerkung Damit ist bewiesen, dass der PDA tatsächlich mehr kann als der DFA! Die Sprachfamilie der von einem PDA akzeptierten Sprachen ist also echt größer als die Sprachfamilie REG (der von DFAs akzeptierten Sprachen). Wovon muss das gewählte Wort z abhängen? 1 Von der Anzahl der Zustände Z des DFA. 2 Von der Zahl aus dem k, die noch genauer spezifiziert werden muss. 3 Von der Zahl aus dem k, die nicht genauer spezifiziert werden muss. 4 Das Wort muss leidiglich in der Sprache sein. Frank Heitmann heitmann@informatik.uni-hamburg.de 57/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 58/65 Fragen... Fragen... Wieviele Zerlegungen von z müssen betrachtet werden? 1 Eine muss zum Widerspruch geführt werden! 2 Alle Zerlegungen von z müssen zum Widerspruch gebracht werden! 3 Zerlegungen mit bestimmten Eigenschaften müssen zum Widerspruch gebracht werden! 4 Man muss eine Zerlegung mit bestimmten Eigenschaften finden und diese zum Widerspruch führen! Kann mit dem gezeigt werden, dass eine Sprache regulär ist? 1 Ja! 2 Nein! Frank Heitmann heitmann@informatik.uni-hamburg.de 59/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 60/65

Zur Nachbereitung Das - Beispiel 2 Zur Nachbereitung Richtige Antworten sind: 1 3 2 2 und 3 ist beides ok 3 2 Behauptung L := {ww rev w {0, 1} } ist nicht regulär. Beweis. Angenommen L wäre regular. Dann gilt das. Sei k die Zahl aus dem. Wir betrachten z = 0 k 1 k 1 k 0 k. Es ist z L und z k. Sei z = uvw eine Zerlegung von z mit uv k und v 1. Hieraus folgt v = 0 j für ein j mit 1 j k. Nun ist aber uv 0 w = 0 k j 1 k 1 k 0 k nicht mehr in L im Widerspruch zum. Die Annahme ist daher falsch und L somit nicht regulär. Frank Heitmann heitmann@informatik.uni-hamburg.de 61/65 Frank Heitmann heitmann@informatik.uni-hamburg.de 62/65 Das - Nochmal der Ablauf Das - Anmerkung zum Ablauf Der Ablauf beim : 1 Annehmen L wäre regulär 2 Die Zahl aus dem benennen (z.b. k). 3 Ein Wort z finden mit z k und z L. Dieses Wort muss gut gewählt sein, damit der nachfolgende Widerspruch gelingt! Hier muss man also u.u. experimentieren! 4 Für alle Zerlegungen von z in uvw zeigen, dass sie im Widerspruch zur ersten, zweiten oder dritten Bedingung sind. Üblicherweise betrachtet man alle Zerlegungen, die die erste und zweite Bedingung erfüllen und zeigt, dass man dann einen Widerspruch zur dritten Bedingung erhält. 5 Also: Alle Zerlegungen z = uvw mit uv k und v 1 betrachten. 6 Zeigen, dass man ein i findet mit uv i w L. (Dies kann auch i = 0 sein!) Frank Heitmann heitmann@informatik.uni-hamburg.de 63/65 Anmerkung Bei der Zerlegung (vorletzter Schritt eben) gelingt oft eine Parametrisierung. Bspw. konnte in den n oben v = 0 j bzw. v = a j mit einem j mit 1 j k gesetzt werden. Das j wandert quasi den Bereich von 1 bis k ab. Für jedes j ist dies eine mögliche Zerlegung, die die ersten beiden Bedingungen erfüllt und man führt im Grunde genommen alle diese Zerlegungen zum Widerspruch! Frank Heitmann heitmann@informatik.uni-hamburg.de 64/65

Wiederholung Wir haben heute: kennengelernt Zwei Konstruktionsmethoden kennengelernt Etwas zählen Eine Zeichenkette merken, die dann andersherum vom Stack gelesen werden kann Das kennengelernt Damit bewiesen, dass mächtiger sind als endliche Automaten. Frank Heitmann heitmann@informatik.uni-hamburg.de 65/65