Grundlagen der theoretischen Informatik



Ähnliche Dokumente
Theoretische Grundlagen der Informatik

Wortproblem für kontextfreie Grammatiken

Programmiersprachen und Übersetzer

Theorie der Informatik

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

Grammatiken. Einführung

Vorlesung Theoretische Informatik

Grundbegriffe der Informatik

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung

Theoretische Informatik I

Mathematische Grundlagen der Informatik 2

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen

Sprachen/Grammatiken eine Wiederholung

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

Informatik IC2. Balazs Simon

2.11 Kontextfreie Grammatiken und Parsebäume

Zusammenfassung Grundzüge der Informatik 4

Formale Sprachen und Grammatiken

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Grundlagen der Theoretischen Informatik, SoSe 2008

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19

Grundlagen der Theoretischen Informatik

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Primzahlen und RSA-Verschlüsselung

Das Briefträgerproblem

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

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1

GTI. Hannes Diener. 6. Juni Juni. ENC B-0123, diener@math.uni-siegen.de

Kontextfreie Sprachen

Beweis: Nach dem Pumping-Lemma für kontextfreie Sprachen ist

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

Kontextfreie Sprachen

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

Theoretische Informatik

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Kapiteltests zum Leitprogramm Binäre Suchbäume

Informationsblatt Induktionsbeweis

WS 2009/10. Diskrete Strukturen

Rekursionen. Georg Anegg 25. November Methoden und Techniken an Beispielen erklärt

Mathematische Maschinen

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Lineare Gleichungssysteme

Übung Theoretische Grundlagen

Übung Theoretische Grundlagen Nachtrag zur Vorlesung Dirk Achenbach

Theoretische Informatik SS 04 Übung 1

1 topologisches Sortieren

Einführung in die Algebra

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Die Komplexitätsklassen P und NP

Absolute Stetigkeit von Maßen

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x y = x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Informatik III. Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN

1 Mathematische Grundlagen

Formale Sprachen und Automaten

kontextfreie Sprachen: Normalformen

Was bisher geschah: Formale Sprachen

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Definition 98 Eine Turingmaschine heißt linear beschränkt (kurz: LBA), falls für alle q Q gilt:

Repetitionsaufgaben Wurzelgleichungen

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

2.2 Reguläre Sprachen Endliche Automaten

Zeichen bei Zahlen entschlüsseln

Übersicht. 3 3 Kontextfreie Sprachen

Mathematischer Vorbereitungskurs für Ökonomen

3. Grundlagen der Linearen Programmierung

Zusammenfassung. Satz. 1 Seien F, G Boolesche Ausdrücke (in den Variablen x 1,..., x n ) 2 Seien f : B n B, g : B n B ihre Booleschen Funktionen

8. Turingmaschinen und kontextsensitive Sprachen

0, v 6 = , v 4 = span(v 1, v 5, v 6 ) = span(v 1, v 2, v 3, v 4, v 5, v 6 ) 4. span(v 1, v 2, v 4 ) = span(v 2, v 3, v 5, v 6 )

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

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

10 Kellerautomaten. Kellerautomaten

Formale Sprachen. Script, Kapitel 4. Grammatiken

Anmerkungen zur Übergangsprüfung

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

Grundbegriffe der Informatik

Mediator 9 - Lernprogramm

Bevor lineare Gleichungen gelöst werden, ein paar wichtige Begriffe, die im Zusammenhang von linearen Gleichungen oft auftauchen.

Tutorium zur theoretischen Informatik Übungsblatt 4 ( )

Theoretische Informatik I

Einfache kryptographische Verfahren

Reguläre Sprachen Endliche Automaten

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Mächtigkeit von WHILE-Programmen

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Automaten und formale Sprachen Klausurvorbereitung

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Grundlagen der Künstlichen Intelligenz

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

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

3.3 Eigenwerte und Eigenräume, Diagonalisierung

Fachschaft Mathematik und Informatik (FIM) LA I VORKURS. Herbstsemester gehalten von Harald Baum

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

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

Transkript:

Grundlagen der theoretischen Informatik Dr. Harald Hempel SS 2006

Inhaltsverzeichnis I. Formale Sprachen 7 1. Sprachen und Grammatiken 8 1.1. Grundlagen................................... 8 1.2. Grammatiken.................................. 9 1.3. Die Chomsky-Hierarchie............................ 12 2. Reguläre Sprachen 14 2.1. Endliche Automaten (deterministisch).................... 14 2.2. Nichtdeterministische endliche Automaten.................. 16 2.3. Reguläre Ausdrücke und Gleichungssysteme................. 21 2.4. Äquivalenzrelationen und Minimalautomaten................ 26 2.5. Das Pumping-Lemma............................. 28 2.6. Abschlusseigenschaften............................. 29 3. Kontextfreie Sprachen 30 3.1. Normalformen.................................. 30 3.2. Das Pumping-Lemma für kontextfreie Sprachen............... 32 3.3. Abschlusseigenschaften............................. 34 3.4. Kellerautomaten................................ 35 3.5. Deterministisch kontextfreie Sprachen.................... 37 3.6. Das Wortproblem für kontextfreie Sprachen................. 39 4. Kontexsensitive und L 0 -Sprachen 42 4.1. Turingmaschinen................................ 42 4.2. Linear beschränkte Turingmaschinen (LBA)................. 44 4.3. L 0 -Sprachen................................... 45 II. Berechenbarkeit 46 5. Churchsche These 47 5.1. Einführung................................... 47 5.2. Grundlagen................................... 47 5.3. Turing-Berechenbarkeit............................ 47 5.4. Andere Typen von Turing-Maschinen..................... 48 3

Inhaltsverzeichnis 5.5. Die Churchsche These............................. 49 6. Primitv rekursive und partiell rekursive Funktionen 50 6.1. Primitiv rekursive Funktionen......................... 50 6.2. Beispiele für primitiv rekursive Funktionen................. 51 6.3. Weitere Rekursionsarten............................ 53 6.4. Allgemein rekursive und partiell rekursive Funktionen........... 55 4

Auflistung der Theoreme Sätze Satz 2.4.2.Myhill, Nerode................................ 27 Satz 5.5.1.Churchsche These............................... 49 Definitionen und Festlegungen 5

Vorwort Dieses Dokument wurde als Skript für die auf der Titelseite genannte Vorlesung erstellt und wird jetzt im Rahmen des Projekts Vorlesungsskripte der Fakultät für Mathematik und Informatik weiter betreut. Das Dokument wurde nach bestem Wissen und Gewissen angefertigt. Dennoch garantiert weder der auf der Titelseite genannte Dozent, die Personen, die an dem Dokument mitgewirkt haben, noch die Mitglieder des Projekts für dessen Fehlerfreiheit. Für etwaige Fehler und dessen Folgen wird von keiner der genannten Personen eine Haftung übernommen. Es steht jeder Person frei, dieses Dokument zu lesen, zu verändern oder auf anderen Medien verfügbar zu machen, solange ein Verweis auf die Internetadresse des Projekts http: // uni-skripte. lug-jena. de/ enthalten ist. Diese Ausgabe trägt die Versionsnummer 2606 und ist vom 6. Dezember 2009. Eine (mögliche) aktuellere Ausgabe ist auf der Webseite des Projekts verfügbar. Jeder ist dazu aufgerufen, Verbesserungen, Erweiterungen und Fehlerkorrekturen für das Skript einzureichen bzw. zu melden oder diese selbst einzupflegen einfach eine E-Mail an die Mailingliste <uni-skripte@lug-jena.de> senden. Weitere Informationen sind unter der oben genannten Internetadresse verfügbar. Hiermit möchten wir allen Personen, die an diesem Skript mitgewirkt haben, vielmals danken: Matti Bickel <kabel@ca0t.de> (2006) 6

Teil I. Formale Sprachen 7

1. Sprachen und Grammatiken 1.1. Grundlagen Definition 1.1.1 Eine Menge Σ heißt Alphabet gdw sie endlich ist. (und nicht leer Σ ) Beispiel Σ 1 = {a, b, c,..., y, z} Σ 2 = {APFEL, FOR, IF} Elemente von Alphabeten heißen Buchstaben. Definition 1.1.2 Sei Σ ein Alphabet. Ein Wort w über Σ ist eine endliche Folge von Buchstaben aus Σ. Wörter sind Aneinanderreihungen von Buchstaben: abba, FORFORFOR, ε (leeres Wort) Definition 1.1.3 Seien w 1, w 2 Wörter über Σ, d. h. w 1 = x 1 x 2... x n und w 2 = y 1 y 2... y m. Die Konkatenation von w 1, w 2 (w 1 w 2 ) ist definiert als w 1 w 2 = x 1... x n y 1... y m. Die Länge des Wortes w 1, w 1, ist definiert als die Zahl der Buchstaben von w 1 = n. ε ist das eindeutig bestimmte Wort mit der Länge 0. Definition 1.1.4 Sei Σ Alphabet. Der Kleene-Abschluss von Σ, Σ wird wie folgt definiert: Σ 0 = {ε} Σ i+1 = {uv : u Σ v Σ i } Σ 1 = {uv : u Σ v Σ 0 } = Σ Σ i = Menge der i-buchstabigen Wörter Σ = Menge aller Wörter über Σ 8

1.2. Grammatiken Definition 1.1.5 Sei Σ Alphabet. A heißt (formale) Sprache über Σ gdw A Σ Sprache über Σ 1 {abba, beatles, tokio} Sprachen über Σ 1. Notation: a Buchstabe: a 0 = ε, a i = aa... a } {{ } i mal Am Beispiel: {a i b i : i, j N} Sprache über Σ (unendliche Sprache) Definition 1.1.6 Seien A und B zwei Sprachen über Σ. (1.1) A B = {uv : u A v B} A B, A B, Ā,...sind wie üblich definiert. Gilt: A B = A B? A = {a, aa}, B = {ab, b} A B = {(a, ab), (a, b), (aa, ab), (aa, b)} A B = {aab, ab, aaab} 1.2. Grammatiken Sei A Sprache über Σ, A unendlich. Offenbar gibt es schnelle Algorithmen, die für eine solche Sprache (A = FOO + +) für ein gegebenes Wort w entscheiden, ob w A oder w / A. Algorithmus läuft auf einem (endl.) Computer, wie kann A also repräsentiert werden? 1. Erzeugendensystem 2. Gleichungssysteme 3. wohlgeformte Ausdrücke Grammatiken benötigen Bausteine: 1. Alphabet 2. Hilfssymbole 3. Anfang für Ersetzungen 4. Ersetzungsregeln 9

1. Sprachen und Grammatiken Definition 1.2.1 Eine Grammatik ist ein 4-Tupel: G = (Σ, N, S, R) mit folgenden Bedingungen: 1. Σ endl. Menge 2. N endl. Menge, Σ N = 3. S N 4. R endl. Menge, R (N \{ε}) (Σ N) Σ - Buchstaben, Terminalsymbole (Konvention: Kleinbuchstaben) N - Hilfssymbole, Nichtterminalsymbole (Konvention: Großbuchstaben) S - Startsymbol R - Regelmenge (p, q) R, p N \{ε} ist eine Folge von Nichtterminalsymbolen, q (Σ N) eine Folge von Terminal und Nichtterminalsymbolen Beispiel G = ({a, b}, {A, B}, S, {(S, AB), (A, aa), (B, Bb), (A, a), (B, b)}) S AB ab ab L(G) = {a i b i : i, j N i, j 0} L(G) enthält die Wörter über Σ, die aus dem Startsymbol durch Anwendung der Regeln abgeleitet werden können. ist Hüllenoperator: 1. A A 2. A B A B 3. (A ) = A Definieren: A + = A \{ε} Bei Regeln stehen links nur Nichtterminalsymbole, aber mindestens eines. Rechts stehen beliebig lange Wörter über dem Alphabet (Σ N) Kommentar: allgemeine Regeldefinition: R endlich und R (Σ N) (Σ N). Man kann zeigen: es gibt zu jeder so definierten Regelmenge eine Regelmenge N + (Σ N) ), die äquivalent ist. Ist (p.q) R, so schreiben wir auch p q. 10

1.2. Grammatiken Definition 1.2.2 Seien w, w Wörter über Σ, d. h. w, w (Σ N) und G = (Σ, N, S, R) eine Grammatik. w heißt aus w ableitbar (in einem Schritt und Regeln aus G) gdw folgendes gilt: p 1, p 2, p, q : (p 1, p 2, q (Σ N) p N + w = p 1 pp 2 w = p 1 qp 2 (p, q) R) Notation: w G w G ist eine binäre Relation über (Σ N) G ist reflexiv, transitive Hülle von G Definition 1.2.3 Seien w, w, G wie in Def. Definition 1.2.2. w heißt aus w ableitbar (in bel. vielen Schritten mit Regeln aus G), w G w, gdw n N, w 1,..., w n (Σ N) : (w = w 1 G w 2 w 2 G w 3... w n 1 G w n = w ) Definition 1.2.4 Sei G = (Σ, N, S, R) Grammatik. Die von G generierte (erzeugte) Sprache L(G) = {w Σ S G w} Zum Beispiel sei L(G) = {a i b i : i, j 1}. Dann sind ab, aabb, a 14 b 16,... L(G) aber BA, ba, ε,... / L(G). Beispiel suchen Grammatik, die alle aussagenlogischen Aussagen mit den Variablen a, b, c generiert: G = ({a, b, c, (, ),,,,, }, R = {S (A), S A, A B C,...} Ableitungsbaum einer Grammatik G: todo: Baumgrafik Baum ist i. A. unendlich groß; Blätter sind L(G) Syntaxbaum des Wortes aabb bezüglich G: todo: Baumgrafik Baum endlich, stellt Ableitung eines Wortes w, S w, dar; Reihenfolge der Anwendung der Regeln i. A. nicht mehr ersichtlich Offenbar ist die von G generierte Sprache L(G) eindeutig bestimmt. Umgekehrt kann es zu einer Sprache A Σ mehr als eine erzeugende Grammatik geben. Beispiel Ĝ = ({a, b}, {F, X, Y }, F, {F XY, X ax, Y Y b, X a, Y b}) L(G) = L(Ĝ) = {ai b i : i, j 1} Definition 1.2.5 Zwei Grammatiken G 1 und G 2 heißen äquivalent, gdw L(G 1 ) = L(G 2 ) Notation: G 1 G 2 zu jeder Grammatik für die lediglich R (Σ N) (Σ N) gilt, gibt es eine äq. Grammatik für die R N + (Σ N) gilt. 11

1. Sprachen und Grammatiken 1.3. Die Chomsky-Hierarchie Definition 1.3.1 Sei G = (Σ, N, S, R) eine Grammatik gemäß Definition Definition 1.2.1. 1. G heißt auch Phrasenstrukturgrammatik bzw. Typ-0-Grammatik. 2. G heißt nicht verkürzend (kontextsensitiv) bzw. Typ-1-Grammatik gdw (p, q) R: p q 3. G heißt kontextfrei bzw. Typ-2-Grammatik gdw G Typ-1-Grammatik und (p, q) R: p N 4. G heißt regulär bzw. Typ-3-Grammatik gdw G Typ-2-Grammatik und (p, q) R: q Σ q Σ N Beispiel G ist Typ-0,1,2-Grammatik. Gibt es G G mit G regulär? ja: G = ({a, b}, {S, A, B}, S, {S aa, A aa, A b, A bb, B bb, B b}) Definition 1.3.2 Eine Sprache A Σ heißt: von einer Grammatik erzeugbar (Typ-0-Sprache) kontextsensitiv (Typ-1-Sprache), kontextfrei (Typ-2-Sprache), regulär (Typ-3-Sprache), gdw sie von einer Sprache ihres Typs erzeugt werden kann. Entsprechend definiert man folgende Teilmengen von P(Σ ): L 0 - Menge der Typ-0-Sprachen CS- Menge der Typ-1-Sprachen CF- Menge der Typ-2-Sprachen REG- Menge der Typ-3-Sprachen Beispiel: {a i b i : i, j 1} REG Satz 1.3.3 REG CF CS L 0 Beweis: folgt unmittelbar aus Definition Definition 1.1.1/Definition 1.1.2. später zeigen: REG CF CS L 0 Problem: {ε} / CS, da jede erzeugende Grammatik nicht verkürzend ist ( S = 1, ε = 0) Lösung: Vereinbarung bzgl. ε: 12

1.3. Die Chomsky-Hierarchie 1. S ε ist als verkürzende Regel in Typ-(1,2,3)-Grammatiken erlaubt 2. Ist S ε eine Regel der Grammatik, so kommt S in keiner rechten Seite einer Regel vor (T as) Satz 1.3.4 Zu jeder Grammatik G = (Σ, N, S, R) vom Typ {1, 2, 3} gibt es eine Grammatik, für die Folgendes gilt: a) G enthält S ε und G erfüllt Sondervereinbarung: (S kommt auf keiner rechten Seite vor) b) L(G ) = L(G) {ε} Beweis: G = (Σ, N, S, R ) def: N = N S S / Σ N R = R {S ε, S S} funktioniert nur mit Typ-1,2-Grammatiken, für Typ-3-Grammatiken muss man anders vorgehen: R = Menge aller Regeln aus R in denen S auf der linken Seite vorkommt, bei denen wir S durch S ersetzen R Man sieht leicht L(G ) = L(G) {ε} 13

2. Reguläre Sprachen Plan: Charakterisierung für REG Automatenmodell Beispiele: {w {a, b} : w beginnt mit a} {a i b i : i [1, )} / REG alle endlichen Sprachen 2.1. Endliche Automaten (deterministisch) Grammatik - generiert Sprachen Automat - akzeptiert bzw. entscheidet eine Sprache Definition 2.1.1 Ein deterministischer endlicher Automat (DFA) M ist ein 5-Tupel M = (Σ, Z, z 0, δ, Z E ) mit folgenden Eigenschaften: 1. Σ ist endliche Menge (Eingabealphabet) 2. Z ist endliche Menge (Zustandsmenge) 3. z 0 Z 4. δ : Σ Z Z (total definierte Überführungsfunktion) 5. Z E Z (Endzustandsmenge) DFA: engl. definite finite automaton Veranschaulichung: todo: Grafik mit Turingband und Programm δ Startsituation: Kopf befindet sich auf 1. Symbol der Eingabe Zustand z 0 Arbeitsschritt: 14

2.1. Endliche Automaten (deterministisch) abhängig vom aktuellen zustand und dem aktuell gelesenen Eingabesymbol wird gemäß Überführungsfunktion ein neuer Zustand angenommen Lesekopf bewegt sich eine Zelle nach rechts Endsituation: alle Eingabesymbole gelesen vorliegender Zustand in Z E DFAs lassen sich sehr elegant durch sogenannte Überführungsgraphen darstellen. Beispiel M = ({a, b}, {z 0, z 1, z 2, z 3 }, z 0, δ, Z E = {z 3 }) δ z 0 z 1 z 2 z 3 a z 1 z 2 z 3 z 3 b z 0 z 3 z 0 z 3 Anfangszustand z 0 a z 1 b a b z 2 z 3 a,b a Endzustand Abarbeitung: von abba: z 0 a z 1 b z 3 b z 3 a z 3 abba wird akzeptiert, baba wird auch akzeptiert, aber alle Wörter b i : i N werden nicht akzeptiert. Die von einem DFA akzeptierte Sprache ist gerade die Menge aller Wörter, bei denen sich M nach Abarbeitung in einem Zustand aus Z E befindet. Definition 2.1.2 Sei M = (Σ, Z, z 0, δ, Z E ) ein DFA. 1. Die erweiterte Überführungsfunktion δ : Σ Z Z ist wie folgt definiert: für alle a Σ, w Σ, z Z ist: δ (ε, z) = z δ (aw, z) = δ (w, δ(a, z)) δ (aw, z) ist der Zustand, der vorliegt, wenn M bei Start im Zustand z das Wort aw abarbeitet 15

2. Reguläre Sprachen 2. Die von M akzeptierte Sprache L(M) ist dann definiert als. L(M) = {w Σ : δ (w, z 0 ) Z E } Beispiel Baue DFA für A = {w {a, b} : wbeginntmita} z a 0 z 1 a,b z 2 b Satz 2.1.3 Jede Sprache, die von einem DFA akzeptiert wird, ist regulär. a,b Beweis: Sei A Σ und sei M = (Σ, Z, z 0, δ, Z E ) DFA und L(M) = A. Wir geben nun eine reguläre Grammatik G = (Σ, N, S, R) an, für die L(G) = A gilt. Setzen: N = Z, S = z 0. 1. Fall: ε / A: R = {z az : δ(a, z) = z } {z a: δ(a, z) Z E } Offenbar gilt nun für jedes Wort w = w 1... w n Σ (w i Σ): w A w L(M) 2. Fall: Folgt unmittelbar aus Fall 1 unter Berücksichtung von Satz Satz 1.3.4. 2.2. Nichtdeterministische endliche Automaten Unterscheidung (Nicht-)Determinismus: Determinismus: gegenwärtiger Zustand bestimmt den zukünftigen Zustand eindeutig. Beispiel: übliche Algorithmen, DFA Nichtdeterminismus: Die aktuelle Situation bestimmt die nachfolgende nicht eindeutig. Es gibt mehrere Folgesituationen. Beispiel: Grammatiken, NFA. 16

2.2. Nichtdeterministische endliche Automaten Nichtdeterministische endliche Automaten (NFA) Idee: endlich viele gerichtete Kanten von einem Knoten (Zustand) ausgehend endlich viele Startzustände erlaubt todo: Grafik möglicher NFA Wort wird akzeptiert gdw es gibt einen Startzustand und ausgehend von diesem Startzustand gibt es einen Weg zu einem Endzustand, der das Wort abschließt. Definition 2.2.1 Ein endlicher nichtdeterministischer Automat (NFA) N = (Σ, Z, Z 0, δ, Z E ) ist ein 5- Tupel mit folgenden Eigenschaften: 1. Σ Alphabet (Eingabealphabet) 2. Z endliche Zustandsmenge 3. Z 0 Z Startzustandsmenge 4. δ : Σ Z P(Z) Überführungsfunktion 5. Z E Z Endzustandsmenge Ganz ähnlich zur Def. Definition 2.1.2 (erweiterte Überführungsfunktion für DFA) definiert man die erweiterte Überführungsfunktion des NFA N wie folgt: δ : Σ P(Z) P(Z) Für alle Z Z, a Σ, w Σ ist δ so definiert: δ (ε, Z) = Z δ (aw, Z) = δ (w, δ(a, z)) z Z Die von einem NFA N akzeptierte Sprache L(N) ist definiert als L(N) = {w Σ : δ (w, Z 0 ) Z E } 17

2. Reguläre Sprachen 1 z 0 z 2 z 4 0 0 z 6 1 Beispiel 1 z 1 z 0 3 z 5 0,1 Offenbar ist L(N) = {0, 1} Jeder DFA ist auch NFA. δ (1, z 0 ) = δ (ε, δ(1, z 0 )) δ (ε, δ(1, z 3 )) δ (ε, δ(1, z 6 )) = δ (ε, {z 1 }) δ (ε, ) δ(ε, {z 6 }) = {z 1 } {z 6 } = {z 1, z 6 } 1 L(Ñ) Eine fast Umkehrung von Satz Satz 2.1.3: Satz 2.2.2 Jede reguläre Sprache kann von einem NFA akzeptiert werden. Beweis: Sei A REG, A Σ. Gemäß Definition Definition 1.3.2 gibt es eine reguläre Grammatik G = (Σ, N, S, R) mit L(G) = A. Idee: G: A ab, A ac, A a NFA: a B A a a F C Wir betrachten folgenden NFA N = (Σ, Z, Z 0, δ, Z E ): Z = df N {F }, F / N, Endzustand Z 0 = df {S}, Z E = df {S, F } } {{ } falls S ε R {F } }{{} sonst { {B N : A ab R} falls A a / R Für a Σ und A N ist: δ(a, A) = {B N : A ab R} {F } sonst In allen anderen Fällen ist δ(a, A) =, insbesondere δ(a, F ) = für alle a Σ. 18

2.2. Nichtdeterministische endliche Automaten Offenbar gilt nun für alle w Σ, w = a 1 a 2... a n, a i Σ: w A w L(G) a 1 a 2... a n L(G) es gibt eine Folge von Nichtterminalen A 1, A 2,... A n 1 N, so dass S a 1 A 1 a 1 a 2 A 2... a 1... a n 1 A n 1 a 1... a n es gibt eine Folge von Zuständen A 1,... a n 1 Z mit A 1 δ(a 1, S)... A n 1 δ(a n 1, A n 2 ) F δ(a n, A n 1 ) F δ (a 1... a n, S) w L(N) A = L(N) Satz 2.2.3 Jede Sprache, die von einem NFA akzeptiert wird, wird auch von einem DFA akzeptiert. Beweis: Sei A Σ und sei N = (Σ, Z, Z 0, δ, Z E ) mit L(N) = A. Wir wollen einen DFA M konstruieren, so dass L(M) = A. Idee: NFA bei Abarbeitung a 1 a 2... a n z 1 0,1 0,1 s s 0,1 0,1 0,1 0,1 0,1 s s 0,1 0,1 z 2 0,1 s 0,1 0,1 Z 0 δ (a 1, Z 0 ) δ (a 1 a 2, Z 0 ) DFA: Zustände sind Mengen von Zuständen des NFA: a 1 a 2 a 3 a Z 0 Z Z n E δ (a 1, Z 0 ) δ (a 1 a 2, Z 0 ) 19

2. Reguläre Sprachen Wir definieren den DFA M = (Σ, Z, z 0, δ, Z E ) so: z = P(Z) z 0 = Z 0 Z E = { Z P(z): Z Z E } Für alle a Σ, Z P(Z) ist δ (a, Z) = δ(a, z) = (δ (a, Z)) z Z Für jedes Wort w = a 1 a 2... a n Σ gilt: w L(N) δ (w, Z 0 ) Z E es gibt eine Folge von Teilmengen Z 1, Z 2,..., Z n Z und δ (a 1, Z 0 ) = Z 1... δ (a n, Z n 1 ) = Z n und Z n Z E es gibt eine Folge von Zuständen Z 0, Z 1,..., Z n von M, mit δ (a 1, Z 0 ) = Z 1... δ (a n, Z n 1 ) = Z n und Z n Z E δ (a 1... a n, Z 0 ) Z E w L(M) Beispiel NFA N = ({0, 1}, {z 0, z 1, z 2 }, {z 0, z 1, z 2 }, δ, {z 2 }) L(N) = {0 i 1 j : i {0, 1, 2} j N} z 0 0 z 0 1 z 2 1 DFA M = ({0, 1}, P({z 0, z 1, z 2 }), {z 0, z 1, z 2 }, δ, {{z 2 }, {z 1, z 2 }, {z 0, z 2 }, {z 0, z 1, z 2 }}). todo: Hier fehlt der Graph, sowohl naiv als auch vereinfacht nicht immer gibt es im konstruierten DFA nicht erreichbare (streichbare) Zustände, d. h. es gibt Sprachen bei denen NFAs mit n Zuständen auskommen, DFAs aber expotentiell viele (2 n ) Zustände benötigen. wie klein (in Bezug auf Zustände) kann man DFAs machen ( später) Folgerung 2.2.4 Sei A Σ eine Sprache. Die folgenden Aussagen sind äquivalent: 1. A REG (es gibt reguläre Grammatik G und L(G) = A) 2. A kann von einem DFA akzeptiert werden 20

2.3. Reguläre Ausdrücke und Gleichungssysteme 3. A kann von einem NFA akzeptiert werden Beweis: 2 1 s. Satz Satz 2.1.3 1 3 s. Satz Satz 2.2.2 3 2 s. Satz Satz 2.2.3 hat man eine reguläre Programmiersprache, so würde ein Syntaxprüfer der DFA für diese Sprache sein. Das heißt lineare Laufzeit für Syntaxtest (DFA prüft jedes Symbol einmal) 2.3. Reguläre Ausdrücke und Gleichungssysteme reguläre Ausdrücke: Beschreibungsvariante für reguläre Sprachen Gleichungssysteme: dienen zur Berechnung der von einem DFA/NFA erzeugten Sprache Definition 2.3.1 Sei Σ ein Alphabet. Die Menge der regulären Ausdrücke RA(Σ) über Σ wird induktiv so definiert: 1. und ε sind reguläre Ausdrücke 2. Für jedes a Σ ist a ein regulärer Ausdruck 3. Sind α, β reguläre Ausdrücke, so sind auch αβ, (α + β), (α) reguläre Ausdrücke 4. Andere reguläre Ausdrücke gibt es nicht Σ = {a, b} (((ε + )) + (a) ) (b) ((a + b)) b RA(Σ) RA(Σ) Wir ordnen nun den regulären Ausdrücken Sprachen zu. Dabei gehen wir induktiv vor (wie in Definition Definition 2.3.1) Definition 2.3.2 Sei Σ Alphabet und γ ein regulärer Ausdruck über Σ, d. h. γ RA(Σ). Die mit γ assozierte Sprache L(γ) ist so definiert: 1. L( ) = und L(ε) = {ε} 2. Für jedes a Σ ist L(a) = {a} 21

2. Reguläre Sprachen L(α) L(β) falls γ = αβ 3. L(γ) = L(α) L(β) falls γ = (α + β) L(α) falls γ = (α) Beispiel L (((((ε + )) ) + (a) ) (b) ) {a i b j : i, j N} L(ε) = {ε}, L( ) = L (((ε + )) ) = {ε} = {ε} L ((a) ) = {a} L ((b) ) = {b} Satz 2.3.3 Eine Sprache ist genau dann regulär, wenn es einen regulären Ausdruck γ gibt, so dass L(γ) = A. weiteres Mittel um schnell zeigen zu können, dass eine Sprache regulär ist Gleichungssysteme Ziel: Bestimmen der von einem NFA N akzeptierten Sprache L(N). Gegeben sei ein NFA N = (Σ, Z, Z 0, δ, Z E ) mit Z = {z 0,..., z n } Gesucht ist L(N). Lösung: bilden lineares Gleichungssystem mit n + 1 Variablen X 0,..., X n und n + 1 Gleichungen. Idee: L(N) = {w σ : bei Start in einem Zustand aus Z 0 kann ich einen Zustand aus Z E nach Abarbeitung von w erreichen}. Wir setzen gedanklich: X i Menge aller Wörter, die ich bei Start im Zustand z i akzeptieren kann. Wir stellen für N folgendes Gleichungssystem auf: 1. Für jedes z i Z ist X i eine Variable auf einer linken Seite einer Gleichung (X i steht dort alleine) 2. Ist z j δ(a, z i ) für z i, z j Z und a Σ, so ist ax j ein Summand auf der rechten Seite der Gleichung, deren linke Seite X i ist. 3. Ist z i Z E, so ist ein Summand auf der rechten Seite der Gleichung x i =... Offenbar steht x i für die Menge aller Wörter, die der NFA akzeptiert, wenn er mit der Abarbeitung in z i startet. 22

2.3. Reguläre Ausdrücke und Gleichungssysteme Streng genommen ist die RHS jeder Gleichung ein regulärer Ausdruck (mit Klammereinsparung) und den zusätzlichen Symbolen X 0, X 1,..., X n L(N) = z i Z 0 X i Wie löst man ein derartiges Gleichungssystem? Hat es stets eine eindeutige Lösung? Wir werden im Folgenden für X i = a 1 X 1 +... + a n X n die Gleichung X i = {a 1 }X 1 {a 2 }X 2... {a n }X n schreiben. Lemma 2.3.4 Sind A und B reguläre Sprachen mit ε / A, so gibt es genau eine reguläre Sprache X, die die Gleichung x = AX B erfüllt. Beweis: 1. Existenz von X: Offenbra ist X = A B eine Lösung von x = AX B A(A B) B = (A(A 0 A 1...))B B = {ε}(b) (A 1 A 2...)B = A 0 B (A 1...)B = (A 0 A 1...)B = A B 2. Eindeutigkeit der Lösung: z. z. Ist X eine Lösung für X = AX B, so gilt X = A B. Sei x eine solche Lösung. Dann gilt AX B X B X AB AX AX B X A(AB) AX AX B X } {{ } A 2 B. A i B X A B X i N n. z. z. X A B Nachweis indirekt, Annahme: A B X X\A B Sei y X ein Wort kürzestester Länge in X\A B. y / B (y B y A B) Wegen X = AX B und y / B muss y AX gelten. Folglich gibt es Wörter u, v mit u A und v X, so dass y = uv. Wegen ε / A folgt u 1. Damit gilt v < y. Da v X und y ein kürzestestes Wort aus X\A B war, muss v A B gelten. u A v A B y = uv A B 23

2. Reguläre Sprachen ist u A und v A B, so ist v A i B für ein i N und sonst uv A i+1 B. Widerspruch zu y X\A B Annahme A B X war falsch A B = X wegen A B X und A B X x = AX B hat genau eine Lösung, diese ist X = A B. Aufgrund der Abschlusseigenschaft von REG sieht man leicht dass A B REG ist. (s. Abschnitt über Abschlusseigenschaften) Satz 2.3.5 Ein Gleichungssytem der Form x 0 = A 00 X 0 A 01 X 1... A 0n X n B 0 x 1 = A 10 X 0 A 11 X 1... A 1n X n B 1. x n = A n0 X 0 A n1 X 1... A nn X n B n mit regulären Sprachen A ij, B i, 0 i, j n hat eine eindeutige Lösung durch reguläre Sprachen x 0, x 1,..., x n, wenn keine der Sprachen A ij das leere Wort enthalten. Beweis: Gibt es eine Gleichung mit A ii = (d. h. keine Schlinge an z i im NFA), so kann man x i in allen Gleichungen durch die rechte Seite der Gleicung x i =... ersetzen (erhalte damit nur noch n Gleichungen mit n Unbekannten). Dabei sollte man natürlich nach dem Einsetzen entsprechend zusammenfassen. (U X V X = (U V )X) Sind alle A ii (0 i n), so hat die erste Gleichung x 0 = A 00 X 0 A 01 X 1... B } {{ } B die Form aus Lemma Lemma 2.3.4: x 0 = AX 0 B. Folglich ist x 0 = A B, d. h. x 0 = A 00(A 01 X 1 A 02 X 2... B 0 ) Diesen Ausdruck für x 0 setzt man nun in alle anderen Gleichungen ein und wiederholt das Verfahren mit x 1. Beispiel A, B, C, D, E, F REG mit ε / A, B, C, D, E (2.1) X = AX BY C Y = BX EZ A ii = Z = DX EZ F 24

2.3. Reguläre Ausdrücke und Gleichungssysteme Setzen Term für Y in die anderen rechten Seiten ein: X = AX B(BX EZ) C Z = DX EZ F X = AX B(BX EZ) C = (A B 2 )X (BE)Z C Lemma Lemma 2.3.4: X = (A B 2 )X [(BE)Z C] Lösung: X = (A B 2 ) ((BE)Z C) Ersetze in Z: Z = D ((A B) ((BE)Z C)) EZ F = (D(A B 2 ) BE E)Z D(A B 2 ) C F = (D(A B 2 ) BE E)Z D(A B 2 ) C F Lemma Lemma 2.3.4: Z = (D(A B 2 ) BE E) (D(A B 2 )C F ) X = (A B 2 ) [BEZ C] Y = ähnlich, allerdings zu langer Ausdruck Folgender NFA: N 0 X 1 1 Y 1 Z 0,1 0,1 Gleichungssysteme: X = {0}X {1}Y Y = {1}X {0}Z {1}Z } {{ } {0,1}Z Z = {1}X {0, 1}Z Dies ist ein Spezialfall vom Gleichungssystem Gleichung 2.1 mit A = {0}, B = {1}, C = E = {0, 1}, D = {1}, F = setzt man jetzt entsprechend der eben bestimmten Lösung ein, erhält man eine Beschreibung der Sprachen X, Y, Z und damit auch eine Beschreibung von L(N) = X Y. 25

2. Reguläre Sprachen 2.4. Äquivalenzrelationen und Minimalautomaten Wie kann man zeigen, dass eine Sprache nicht regulär ist? (s. auch Pumping Lemma) Definition 2.4.1 Sei L Σ eine Sprache. Die Relation R L ist eine binäre Relation über Σ, die wie folgt definiert ist: x, y Σ : xr L y df z Σ : (xz L yz L) Beispiel L = : R L = {(x, y): z Σ : (xz yz )} εr L ε, εr L 0 : z : εz } {{ } 0z } {{ } 0 0 ˆL = {a n b n : n N} arˆla, (arˆlε)( da ab ˆL εb / ˆL) arˆla 3 b 2, abbarˆlbabba,... Beobachtung: Für alle L Σ ist R L stets eine Äquivalenzrelation. Uns interessiert nun die Anzahl der Äquivalenzklassen von R L. Beispiel L = Äquivalenzklasse von R L : [ε] = [0] = [1] =... = {ε, 0, 1, 01, 10,...} ˆL = {a n b n : n N} Äquivalenzklassen: [ε] = {ε} unendlich viele Äquivalenzklassen! [a 2 b] = {a 2 b, a 3 b 2,...} = {a i+1 b i : i N} [b] = {b, bb,..., abba, babba,...}. [a k b] = {a i+k 1 b i : i, k N + } Eine Äquivalenzrelation kann man statt für Sprachen auch für DFAs definieren: Sei M = (Σ, Z, z 0, δ, Z E ) ein DFA. Wir definieren die Relation R M Σ Σ so: x, y Σ : xr M y df δ (x, z 0 ) = δ (y, z 0 ) : R M ist auch eine Äquivalenzrelation. 26

2.4. Äquivalenzrelationen und Minimalautomaten Satz 2.4.2 (Myhill, Nerode) Sei L Σ eine Sprache. Die folgenden Aussagen sind äquivalent: 1. L ist regulär 2. L ist die Vereinigung von Äquivalenzklassen einern rechtsinvarianten Äquivalenzrelation mit endlichem Index 3. R L hat einen endlichen Index eine Äquivalenzrelation R heißt rechtsinvariant (bzgl. Verkettung) gdw für alle x, y Σ gilt: x R y z Σ : (xz R yz) (R M ist offenbar rechtsinvariant) Der Index einer Äquivalenzrelation R ist gerade die Zahl der Äquivalenzklassen von R. Beweis: Zeigen: 1 2, 2 3, 3 1 (1 2): Sei A Σ eine reguläre Sprache. Sei M = (Σ, Z, z 0, δ, Z E ) ein DFA mit L(M) = A. Wir betrachten R M. Wir wissen R M ist eine Äquivalenzrelation, sogar rechtsinvariant und R M kann nur endlich viele Äquivalenzklassen haben (jedes z Z definiert genau eine Äq.klasse über {x Σ : δ (x, z 0 ) = z}) Nun ist aber L = L(M) = {x Σ : δ (x, z 0 ) Z E } = z Z E {x Σ : δ (x, z 0 ) = z} } {{ } Äq.klasse über R M (2 3): Sei R eine rechtinvariante Äquivalenzrelation mit endlichem Index und sei L die Vereinigung von Äquivalenzklassen von R. Wir werden zeigen, dass R eine Verfeinerung von R L ist. Damit hat R L höchstens so viele Äquivalenzklassen wie R, also endlich viele. z. z.: x, y Σ : x R y x R L y Seien x, y Σ : x R y z Σ : xz R yz (R rechtsinvariant) z Σ : xz [xz] R yz [xz] R z Σ : xz L yz L (da L Vereinigung von Äquivalenzklassen von R) x R L y (3 1): R L habe endlichen Index. Sei [x] RL = {y Σ : x R L y} für alle x Σ. Wir geben nun einen DFA für L an: M = (Σ, Z, z 0, δ, Z E ) mit: 27

2. Reguläre Sprachen Z = {[x] RL : x Σ }, z 0 = [ε] RL Z E = {[x] RL : x L} δ(a, [x] RL ) = [xa] RL für alle x Σ, a Σ Es gilt nun L = L(M), denn für alle x Σ gilt: x L [x] RL Z E (nach Definition von Z E δ (x, [ε] RL x L(M) Der im Beweis von 3 1 konstruierte Automat heißt Äquivalenzklassenautomat. Er ist bzgl. der Zustandsanzahl ein kleinster DFA für die Sprache. Beispiel L = {0 2n : n N} REG? L = {0, 00, 0000,...} Betrachten R L. Hat R L unendlich viele Äquivalenzklasen? Idee: 0 2i R L 0 2j für i j Sei i j o. B. d. A. i < j: 0 2i 0 2i = 0 2i +2 i = 0 2i+1 L aber: 0 2i 0 2j = 0 2i +2 j / L da 2 i < 2 j und 2 j+1 = 2 j + 2 j 2.5. Das Pumping-Lemma Das Pumping-Lemma für reguläre Sprachen ist eine Aussage der Form A REG großer Ausdruck Man kann daher das Pumping-Lemma nicht benutzen, um zu zeigen, dass eine Sprache regulär ist. Das PL kann man lediglich anwenden, um zu zeigen, dass eine Sprache nicht regulär ist, indem man zeigt, dass sie großen Ausdruck nicht erfüllt (Kontraposition). Satz 2.5.1 Sei A Σ Sprache. Es gilt: A REG n N x A, x n u, v, w Σ : x = uvw Zerlegung von x n nennt man Pumping-Zahl (x = uvw v 1 uv n i N: uv i w A) 28

2.6. Abschlusseigenschaften Anwendung: zeigen {a n b n : n N} / REG: n N x A, x n u, v, w Σ : (x uvw v = 0 uv > n i N: uv i w L) (auch möglich: indirekt, annehmen Sprache sei regulär, Gegenbeispiel finden) Sei n N. Betrachten a n b n : Seien u, v, w Σ und sei nun x = uvw v = 0 uv n. Wegen x = a n b n und uv n folgt uv {a}. Wegen v 1 folgt v = a k mit k 1. Damit gilt: uv 0 w = uw = a n k b n / A 2.6. Abschlusseigenschaften Definition 2.6.1 Sei C eine Familie von Sprachen und f eine Funktion, die Sprachen (event. mehrere) auf Sprachen abbildet (z. B. Vereinigung, Durchschnitt, Komplement). Die Familie C heißt abgeschlossen bzgl. f genau dann, wenn für alle c 1,..., c n C gilt: Satz 2.6.2 REG ist abgeschlossen bzgl. 1. Verein 2. Durchschnitt 3. Komplement 4. Produkt 5. Kleeneabschluss (. ) 6. Mengendifferenz f(c 1,..., c n ) C 7. Reversal (L R = {w R : w L}, w R = w n w n 1... w 1 mit w = w 1... w n ) Beweis: 1., 4. 5. über reguläre Ausdrücke (s. Sätze Satz 2.3.3/Definition 2.3.2) zu 3.: Idee: bulgarisch akzeptieren, nehmen DFA mit L(M) = A und invertieren die Endzustandsmenge, offenbar gilt: L(M ) = A bis auf 7. zurückführen auf 1., 3. 29

3. Kontextfreie Sprachen Dies ist die nächstgrößte Klasse in der Chomsky-Hierarchie. Alle vernünftigen Programmiersprachen sind kontextfrei. Satz 3.0.3 REG CF Beweis: wissen bereits: REG CF, offenbar ist {a n b n : n N} CF\REG Eine kontextfreie Grammatik für {a n b n : n N} sieht so aus: G = ({a, b}, {S, S }, S, {S ε, S ab, S as b, S ab, S as b}) wissen: {a n b n : n N} / REG 3.1. Normalformen Um leichter lesbare Grammatiken anzugeben, erlauben wir bei kontextfreien Grammatiken Regeln der Form A ε für A N und A S Definition 3.1.1 Eine Regel der Form A ε heißt ε-regel, A S. Eine Regel der Form A B, A, B N heißt Kettenregel. Eine Grammatik G heißt ε-frei gdw sie 1. keine ε-regeln enthält und 2. nur die eine ε-enthaltende Regel S ε enthält und S nicht auf der rechten Seite einer Regel vorkommt. ε-regeln dienen lediglich der Vereinfachung von Grammatiken. Satz 3.1.2 Zu jeder kontextfreien Grammatik G (mit ε-regeln) gibt es eine äquivalente ε-freie kontextfreie Grammatik. Beweis: Sei G = (Σ, N, S, R) eine kontextfreie Grammatik mit ε-regeln. o. B. d. A. Sei ε / L(G) (sonst hinzufügen nach Satz Satz 1.3.4) Wir bestimmen N ε = {A N : A ε R} so 30

3.1. Normalformen 1. Ist (A, ε) R, so ist A N ε 2. Ist (A 1,..., A k ) R und sind k 1 und A 1,..., A k N ε, so ist A N ε Wir entfernen alle ε-regeln aus R und fügen jede Regel der Form B uav, A N ε, B N, u, v (Σ N) die Regel B uv zu R hinzu. Die resultierende Grammatik ist ε-frei und äquivalent zu G. Satz 3.1.3 Zu jeder kontextfreien Grammatik G gibt es eine kontextfreie Grammatik ohne Kettenregeln. Beweis: o. B. d. A. sei G eine ε-freie kontextfreie Grammatik. Die Kettenregeln von G induzieren einen gerichteten Graphen auf der Knotenmenge N. Bsp: 1. Eliminieren alle Kreise in diesem Graphen. Ein Kreis A i1 A i2, A i2 A i3,..., A in 1 A in, A in A i1 wird eliminiert, in dem wir alle diese Regeln aus R entfernen und in den verbleibenden Regeln A ij, 1 j n durch A i1 ersetzen. 2. Wir benennen die verbleibenden Nichtterminale so um, dass die neuen Namen {B 1,..., B l } sind und aus B i B j stets i < j folgt. (Regeln B i B i können sofort entfernt werden) 3. Für i = l 1, l 2,... ersetzen wir die Regeln B i B j so: sind die Regeln, die B j auf der linken haben B j u 1, B j u 2, B j u m u {Σ N} + so entferne B i B j und füge B i u 1 u 2... u m hinzu. Definition 3.1.4 Eine kontextfreie Grammatik G = (Σ, N, S, R) heißt Grammatik in Chomksy-Normalform, gdw jede Regel in R eine der folgenden Formen hat: A BC A a S ε A, B, C N, A B, A C A N, a Σ (in diesem Fall kommt S in keiner rechten Seite vor) Der Syntaxbaum von Chomksy-Normalformen ist fast ein Binärbaum: Nachteil: meist viel mehr Regeln notwendig. Satz 3.1.5 Zu jeder kontextfreien Grammatik G = (Σ, N, S, R) gibt es eine äquivalente kontextfreie Grammatik in Chomksy-Normalform (CNF) 31

3. Kontextfreie Sprachen Beweis: Sei G eine Grammatik wie oben. o. B. d. A. enthält R keine Kettenregeln und G ist ε-frei. Wir formen G zu G um (G wird in CNF sein) 1. Für jedes a Σ führen wir ein neues Nichtterminal C a ein: {C a : a Σ} N = 2. In jeder Regel von R wird a durch C a ersetzt 3. Alle Regeln C a a werden zu R hinzugefügt 4. Für jede Regel der Form A B 1 B 2... B m m > 2 die jetzt vorhanden ist, führen wir m 1 neue Nichtterminalsymbole ein, D 1,..., D m 1. Die Regel A B 1... B m wird durch A B 1 D 1, D 1 B 2 D 2,..., D m 1 B m 1 B m ersetzt. Offenbar ist G in CNF und äquivalent zu G. Es gibt eine weitere wichtige Normalform für kontextfreie Grammatiken. Definition 3.1.6 Eine kontextfreie Grammatik heißt Grammatik in Greibach-Normalform gdw jede Regel eine der folgenden Formen hat: A ab 1... B m A a S ε A, B 1,..., B m N, a Σ A N, a Σ und S kommt auf keiner rechten Seite vor Satz 3.1.7 Zu jeder kontextfreien Grammatik gibt es eine Grammatik in Greibach-Normalform. 3.2. Das Pumping-Lemma für kontextfreie Sprachen unser wahrscheinlich einziges Mittel, um nicht vorhandene Kontextfreiheit von Sprachen nachzuweisen. Satz 3.2.1 Sei A Σ eine Sprache. Es gilt: A CF n N x A, x n u, v 1, ṽ, v 2, w Σ : (x = u v 1 ṽ v 2 w v 1 v 2 1 v 1 ṽv 2 n i N: u v i 1 ṽ vi 2 w A) 32

3.2. Das Pumping-Lemma für kontextfreie Sprachen Beweis: Sei A CF und sei G = (Σ, N, S, R) eine kontextfreie Grammatik in Chomsky Normalform mit L(G) = A. Wir wählen n = 2 N. Sei x A und x n. Der Syntaxbaum von x bezüglich G sieht so aus: (Binärbaum (nicht notwendigerweise vollständig) bis auf letzte Ebene) S A B x1 x2... xn... = x Dieser Baum hat mindestens 2 N Blätter. Lemma 3.2.2 In jedem Binärbaum (jeder Knoten hat 2 oder 0 Kinder) mit mindestens 2 k gibt es einen Pfad (von Wurzel bis Blatt) der Länge mindestens k. (Beweis später) Wir betrachten den Syntaxbaum von x ohne die letzte Ebene. Hier gibt es immer noch 2 N Blätter. Es gibt einen Pfad Wurzel zu Blatt mit mindestens N Kanten. Der Pfad berührt mindestens N + 1 Knoten im Baum Es gibt ein Nichtterminal, welches auf dem Pfad zweimal vorkommt. S A doppelt vorkommende Nichtterminale A u v1 v v2 w 33

3. Kontextfreie Sprachen Obere Vorkommen von à ist höchstens N von der Blattebene entfernt. Wir betrachten die Teilgebiete, die aus den beiden à abgeleitet werden: u, v 1, ṽ, v 2, w (s. Abb.) Offenbar ist uv 1 ṽv 2 w eine Zerlegung von x. Da das obere à mittels einer Regel à BC umgeformt wird, und nur eines von B oder C auf p liegt und G ε-frei ist, folgt v 1 v 2 1. Beweis: (Lemma Lemma 3.2.2) induktiv über k: IA: k = 0 klar. IS: Aussage gelte für ein k. Betrachte Baum mit mindestens 2 k+1 Blättern. Einer der Teilbäume hat 2 k+1 /2 Blätter. Nach IV gibt es in ihm einen Pfad der Länge k nimmt man zu diesem Pfad noch die Kante des Teilbaums zur Wurzel des Gesamtbaums hinzu erhält man einen Pfad der Länge k + 1. Anwendung des PL: L = {a n b n c n : n N} / CF indirekt zeigen. Satz 3.2.3 Jede kontextfreie Sprache über einem einbuchstabigen Alphabet ist regulär. wissen ˆL = {0 (n2) : n N} / REG ˆL / CF. 3.3. Abschlusseigenschaften Satz 3.3.1 Die Sprachklasse CFist abgeschlossen bezüglich: 1. Vereinigung 2. Produkt 3. Kleeneabschluss 4. Differenz und Schnitt mit regulären Mengen Die Sprachklasse CFist nicht abgeschlossen bezüglich: 1. Durchschnitt 2. Komplement 3. Differenz 34

3.4. Kellerautomaten Beweis: Durchschnitt: betrachten die Sprachen L 1 = {a i b i c j : i, j N} L 2 = {a j b i c i : i, j N} L 1 L 2 = L = {a i b i c i : i N} / CF Komplement: De-Morgan-Regeln Differenz: Komplement und Schnitt 3.4. Kellerautomaten Ziel: DFA mit Zähler (fifo, Stack) Definition 3.4.1 Ein nichtdeterministischer Kellerautomat M (push-down-automaton, PDA) ist ein 6-Tupel M = (Σ, Γ, Z, z 0, δ, Z E ) mit folgenden Eigenschaften: 1. Σ ist ein Alphabet (Eingabealphabet) 2. Γ ist ein Alphabet (Kelleralphabet), Γ 3. Z ist endliche Menge (Zustandsmenge) 4. z 0 Z ist Startzustand 5. δ : (Σ {ε}) Γ Z P fin (Γ Z) (Überführungsfunktion) 6. Z E Z Vorstellung: E I N G A B E z δ Keller 35

3. Kontextfreie Sprachen Eingabeband: nur lesen, d. h. jedes Symbol kann nur einmal gelesen werden Keller: lesen und schreiben, Topelement des Stacks wird gelesen und durch ein w Γ ersetzt. Neues Topelement ist oberster Buchstabe von Γ. Bei Arbeitsbeginn steht nur ein im Keller. Schreibweise: δ(a, A, z) = {(B 1... B n, z 1 ),..., (ε, z n )} Definition 3.4.2 Sei M = (Σ, Γ, Z, z 0, δ, Z E ) ein PDA. Eine Konfiguration K von M ist ein Tripel K Σ Γ Z. Dabei ist für K = (u, v, z) das Wort u der noch nicht gelesene Teil der Eingabe, das Wort v der aktuelle Kellerinhalt und z der aktuelle Zustand. Anfangskonfiguration (w,, z 0 ), w Σ ist Eingabe. Akzeptierende Endkonfiguration (ε, p, z) mit p Γ und z Z E. Wir definieren auf Σ Γ Z, der Menge aller Konfigurationen eine binäre Relation wie folgt: (u, v, w) M (u, v, z ) x Σ {ε} y Γ {ε} y Γ r Γ : (u = xu v = yr v = y r (y, z ) δ(x, y, z)) Ganz analog zu G für Grammatiken G definiert man M von M. Die von M akzeptierte Sprache L(M) ist definiert als: als reflexive, transitive Hülle L(M) = {w Σ : z Z E p Γ : (w,, z 0 ) M (ε, p, z)} Beispiel PDA für {a n b n : n N} M = ({a, b}, {, }, {z 0, z 1, z +, z }, z 0, δ, {z + }) Beispiel PDA für {w w R : w {a, b} } z l lesen, z v vergleichen δ z 0 z 1 z + z a, (z 1, ) a, (z 1, ) b, b, (z, ε) (z, ε) ε, (z +, ) (z +, ) ε, 36

3.5. Deterministisch kontextfreie Sprachen δ z v z l a, (a, z l ) a, a {(aa, z l ), (ε, z v )} a, b {(ab, z l )} b, b, a b, b In der Literatur auch: PDA akzeptiert mit leerem Keller (ist äquivalent zu unserem Akzeptanzbegriff) selber beweisen und dann verwenden! Satz 3.4.3 Eine Sprache ist genau dann kontextfrei, wenn sie von einem PDA akzeptiert wird. 3.5. Deterministisch kontextfreie Sprachen wissen: DFA = NFA, der Nichtdeterminismus bei endlichen Automaten bringt nichts Neues. Bedingungen: 1. δ : (Σ {ε}) Γ Z (Γ Z) 2. δ(a, A, Z) + δ(ε, A, Z) 1 CF det ist die Menge aller Sprachen, die von deterministischen PDA akzeptiert werden. Beobachtung: REG CF det CF Satz 3.5.1 CF det ist abgeschlossen bezüglich: 1. Komplement 2. Schnitt bezüglich regulären Mengen 3. keiner weiteren Operation Folgerung 3.5.2 CF det CF Beweis: folgt aus den Abschlusseigenschaften 37

3. Kontextfreie Sprachen Beweis: (von Satz Satz 3.5.1) Zuerst Durchschnitt: Die im Beweis, dass CF bezüglich Schnitt nicht abgeschlossen ist, angegebenen Sprachen sind sogar in CF det und somit L 1 L 2 / CF det. Dann Vereinigung: mit 1. und Durchschnitt wir beweisen Komplement: Lemma 3.5.3 zu jedem DPDA M der für jede Eingabe w Σ stets die gesamte Eingabe abarbeitet, also w Σ z Z α Γ : (w,, z 0 ) M (ε, α, z) Sei A Σ und A CF det. Sei M ein DPDA mit L(M) = A; o. B. d. A. sei M ein DPDA, der die Eingabe vollständig liest (s. Lemma 3.5.3) Wir definieren einen DPDA M = (Σ, Γ, Z {+,, f}, z 0, δ, Z {f}) mit { (z0, +) falls z z 0 = 0 Z E (z 0, ) falls z 0 / Z E und ist δ(ε, A, z) = {(α, z )} für A Γ, α Γ, z, z Z, so ist δ(ε, A, (z, +)) = {(α, (z, +))} und δ(ε, A, (z, )) = { (α, (z, +)) falls z Z E (α, (z, )) falls z / Z E Ist δ(a, A, z) = {(α, z )} für a Σ, A Γ, α Γ, z, z Z, so ist δ ((ε, A, (z, ))) = {(A, (z, f))} und δ ((a, A, (z, +))) = { {(α, (z, +))} falls z Z E {(α, (z, ))} falls z / Z E In allen anderen Fällen ist δ = Sei w = a 1 a 2... a n L(M) es gibt eine Konfigurationenfolge von M (w,, z) M (a, Aβ, z) M (ε, αβ, z ) mit a Σ {ε}, A Γ, α, β Γ und z Z E Für jede Konfigurationenfolge von M gilt 1. falls a = a n bzw. δ(a n, A, z) = {(α, z )} so endet die Konfigurationenfolge von M so:... M (ε, αβ, (z, +)) 38

3.6. Das Wortproblem für kontextfreie Sprachen 2. falls a = ε bzw. δ(ε, A, z) = {(α, z )} so endet die Konfigurationenfolge von M so:... M (ε, αβ, (z, +)) w / L(M) Sei nun w = a 1... a n / L(M). Für jede (endliche) Konfigurationenfolge von M (gibt es gemäß unserer Vorraussetzung) (w,, z 0 ) M (a, Aβ, z) M (ε, αβ, z ) mit a Σ {ε}, A Γ, α, β Γ, z Z gilt z / Z E Es gibt eine Konfigurationenfolge von M... M (ε, αβ, (z, )) M (ε, αβ, (z, f)) 3.6. Das Wortproblem für kontextfreie Sprachen Wortproblem: gegeben: Sprache L Σ in Form einer Grammatik oder eines Automaten gesucht: w L? Wortproblem für reguläre Sprachen: Reguläre Sprache sei in Form eines DFA gegeben, so haben wir einen Algorithmus mit O(n)-Komplexität (n = die Anzahl der Buchstaben in w). Sprachen werden uns in Form von CNF-Grammatiken gegeben. Sei G = (Σ, N, S, R) eine solche Grammatik. Sei w = a 1... a n Σ mit a i Σ für i = 1,..., n. Frage: w L(G)? naiver Ansatz: Breitensuche im Ableitungsbaum (expotentielle Laufzeit) besser als naiv: dynamische Programmierung. Wir betrachten folgende Mengen: mit 1 i n und 1 j n i + 1. Offenbar ist w L(G) S N[1, n] Außerdem gilt, da G in CNF ist: N[i, j] = {A N : A G a i a i+1... a i+j 1 } N[i, 1] = {A N : A G a i } = {A N : A G a i } = {A N : (A a i ) R)} 39

3. Kontextfreie Sprachen die N[i, 1] sind einfach zu bestimmen. Für j 2 werden die N[i, j] mit dynamischer Programmierung bestimmt: Sei j 2. Offenbar gilt A N[i, j], gdw. rekursive Beschreibung des N[i, j]: N[i, j] = j 1 l=1 A BC R mit einem B, C N und B N[i, l] und C N[i + l, j l] für ein l (B G a i... a i+l 1 ) (C G a i+l... a i+j 1 ) {A N : B, C N : ((A BC) R B N[i, l] C N[l 1, j l])} Das liefert im Wesentlichen den Algorithmus von Cocke, Younger, Kasami - CYK- Algorithmus N[1, n] N[1, n 1] N[2, n 1]..... N[1, 2] N[2, 2]... N[n 1, 2] N[1, 1] N[2, 1]...... N[n, 1] a 1 a 2...... a n Algorithm 1 CYK-Algorithmus Require: w = a 1... a n for i = 1,..., n do N[i, 1] = {A N : (A a i ) R} end for for j = 2,..., n do for i = 1,..., n + 1 j do N[i, j] = for l = 1,..., j 1 do N[i, j] = N[i, j] {A N : B, C N : end for end for end for if S N[1, n] then return w L(G) else return w / L(G) end if (A BC) R B N[i, l] C N[l + i, j l]} 40

3.6. Das Wortproblem für kontextfreie Sprachen Analyse: Zeit: O(n 3 ) (falls G nicht in CNF gegeben + entsprechender Zeit für Umformung) Platz: O(n 2 ) Beispiel Betrachten einfaches Beispiel w = aabb L mit mit mit L(G) = L und G in CNF. L = {a n b n : n 1} G = ({a, b}, {S, A, B, C}, S, R) R = {S AB AC, C SB, A a, B b} {S} {C} {S} {A} {A} {B} {B} a a b b 41

4. Kontexsensitive und L 0 -Sprachen kontextsensitiv: nicht verkürzende Grammatik (Ausnahme S ε) L 0 -Sprachen: (Normalform-)Grammatiken 4.1. Turingmaschinen Entwickelt von Alan Turing 1936. Anschaulich: E I N G A B E z δ Programm Arbeitsweise: abhängig vom gelesenen Symbol und dem aktuellen Zustand wird ein neues Symbol geschrieben, der Zustand verändert und der Kopf bewegt. Definition 4.1.1 Ein 7-Tupel M = (Σ, Γ, Z, z 0, δ, Z E, ) heißt Turingmaschine gdw. folgendes gilt: 1. Σ Eingabealphabet 2. Γ Arbeitsalphabet, Γ, Σ Γ 3. Z ist Zustandsmenge 4. z 0 Z Startzustand 5. δ : Γ Z P fin (Γ Z {L, R, 0}) 6. Z E Z Endzustandsmenge 7. Γ Leersymbol 42

4.1. Turingmaschinen statt δ(z, a) = {(b, ẑ, L)} schreiben wir (a, z) (b, ẑ, L) Um Berechnungen von TMs beschreiben zu können, benötigen wir den Begriff der Konfigurationen. Dazu benötigen wir folgende Informationen: Was steht auf dem Band Wie lautet der aktuelle Zustand Wo steht der Kopf M O S T Kodierung: β MOβST (ein Wort aus Γ ŻΓ ) Eine Berechnung einer TM M ist damit eine Folge von Konfigurationen mit Startkonfiguration z 0 w. Definition 4.1.2 Sei M eine TM. Wir definieren eine binäre Relation M über Γ ŻΓ, wobei K M K gerade bedeuten soll, dass K in einem Takt aus K hervorgeht. Sei K = αuzvβ mit α, β Γ, u, v Γ, z Z. Dann ist αuˆvz β (v, z) (ˆv, z, R) K = αz uˆvβ (v, z) (ˆv, z, L) αuz ˆvβ (v, z) (ˆv, z, 0) Wir betrachten die reflexive und transitive Hülle M von M Die von M akzeptierte Sprache L(M) ist definiert als: L(M) = {w Σ : z Z E α, β Γ : z 0 w M αzβ} Beispiel Eine TM für L = {a n b n c n : n 1}: M = {{a, b, c}, {a, b, c, $, }, {z 0,..., z 5, z E }, δ, z 0, {z E }, } Bedeutung Absicht z 0 Startzustand Starte neuen (a, b, c)-zyklus z 1 a gemerkt b suchen z 2 a und b gemerkt c suchen z 3 a, b und c gefunden u. ersetzt rechten Rand suchen z 4 rechten Rand erreicht Rücklauf und Test, ob alle a, b, c ersetzt z 5 Test nicht erfolgreich zum linken Rand laufen, neuen Zyklus starten z E alles gut Akzeptieren 43

4. Kontexsensitive und L 0 -Sprachen z 0 z 1 z 2 z 3 z 4 z 5 z E a ($, z 1, R) (a, z 1, R) (a, z 5, L) b ($, z 2, R) (b, z 2, R) (b, z 5, L) c ($, z 3, R) (c, z 3, R) (c, z 5, L) (c, z 5, L) $ ($, z 0, R) (, z 4, L) ($, z 4, L) ($, z 5, L) (, z E, 0) (, z 0, R) Akzeptanzkriterien: PDA: 1. akzeptieren mit Endzustand 2. akzeptieren mit leerem Keller TM: 1. akzeptieren mit Endzustand 2. akzeptieren gdw. Berechnung anhält (keine Folgekonfiguration vorhanden) 4.2. Linear beschränkte Turingmaschinen (LBA) LBA sind TM, die den Bereich der Eingabe bei jeder Berechnung niemals verlassen. Dafür ist es zweckmäßig, dass linker und rechter Rand der Eingabe markiert sind. Dazu: Verdoppeln das Eingabealphabet Σ = Σ ˆΣ mit ˆΣ = {â: a Σ}. Statt Eingabe x 1... x n arbeitet LBA mit Eingabe ˆx 1 x 2... x n 1 xˆ n. Definition 4.2.1 Eine TM M = (Σ, Γ, Z, z 0, δ, Z E, ) heißt linear beschränkter Automat (LBA), falls für alle Wörter x = x 1... x n Σ und für alle Konfigurationen αzβ von M mit z 0 x M αzβ gilt: αβ = n und kein jemals durch ein u Γ überschrieben wird. Die von einem LBA M akzeptierte Sprache L(M) ist L(M) = {w = a 1... a n Σ : z Z E α, β Γ : z 0 â 1 a 2... a n 1 aˆ n M αzβ} Satz 4.2.2 Eine Sprache ist genau dann kontextsensitiv, wenn sie von einem LBA akzeptiert werden kann. Satz 4.2.3 Es gilt CF CS 44

4.3. L 0 -Sprachen Beweis: CF CS bekannt, aber {a n b n c n : n N} CS \ CF Können deterministische LBAs genausoviel wie nichtdeterministische LBAs? Ja, ähnlich wie bei NFA und DFA kann man die Zustandsmenge des deterministischen LBA mit einer Potenzmengenkonstruktion erweitern und die Regelmenge entsprechend anpassen. (in allen Beispielen werden nur Überführungen von (Z Σ) (Σ Z {L, R, 0}) verwendet, die Definition lässt aber (Z Σ) P(Σ Z {L, R, 0}) zu. 4.3. L 0 -Sprachen Satz 4.3.1 Eine Sprache gehört genau dann zu L 0, wenn sie von einer (nichtdeterministischen) TM akzeptiert werden kann. Satz 4.3.2 CS L 0, Beweisidee: Diagonalisierung, Beispiele. Satz 4.3.3 Es gibt Sprachen, die von keiner Grammatik generiert werden können. Beweis: (mit Zählargument) Sei Σ unser Alphabet. 1. Wie viele Grammatiken G = (Σ, N, S, R) gibt es? Grammatiken können als Wörter über einem geeigneten Alphabet Γ notiert werden: Γ = Σ {(, ),,, (für die Nichtterminale), S, } Es gibt nur abzählbar unendlich viele Grammatiken. 2. Wie viele Sprachen gibt es? (Wie groß ist P(Σ )?) P(Σ ) = ℵ 1 (überabzählbar unendlich) es gibt mehr Sprachen als Grammatiken, also auch Sprachen, die von keiner Grammatik erzeugt werden. 45

Teil II. Berechenbarkeit 46

5. Churchsche These 5.1. Einführung Was bedeutet Berechenbarkeit? Welche Funktionen sind (nicht) berechenbar? Ideen: Halteproblem, Wahrheitswertberechnungen, chaotische Funktionen (lassen sich nicht mit endlich vielen Zeichen beschreiben) Wir benötigen ein Berechenbarkeitsmodell: Ein intuitiver Berechenbarkeitsbegriff hängt vom Menschen ab. Wenn wir Berechenbarkeit formal definieren wollen, müssen wir ein zugrundeliegendes Berechenbarkeitsmodell definieren. Zum Beispiel: Papier-und-Stift-B., Maple-B., C++-B. 5.2. Grundlagen N = {0, 1, 2,...} N N = F 1 Menge aller einstelligen (totalen) zahlentheoretischer Funktionen F 1 = N N F 1 = {f f : N N} F 2 = N N N F 2 = {f f : N N N} F = F i F = F i i N F ist also die Menge aller beliebigstelligen, totalen Funktionen und F die Menge aller beliebigstelligen, partiellen Funktionen. i N 5.3. Turing-Berechenbarkeit Definition 5.3.1 Eine Funktion f F i heißt Turing-berechenbar, genau dann wenn es eine TM M = ({0, 1,..., 9, #}, Γ, Z, z 0, δ, Z E, ) gibt, so dass für alle (n 1,..., n i ) N i gilt: 1. (n 1,..., n i ) D f M erreicht bei Eingabe von n 1 #n 2 #... #n i einen Zustand aus Z E 47

5. Churchsche These 2. (n 1,..., n i ) D f es gibt ein z Z E und x Γ, so dass z 0 n 1 #n 2 #... #n i M αzm, wobei m = f(n 1,..., n i ) (αzm liegt vor bei erstmaligem Erreichen eines Zustandes z Z E ) Die TM transformiert das Eingabewort in endlich vielen Schritten so, dass der Zeiger (Lesekopf) der TM am Beginn des Rückgabewertes steht und rechts vom Rückgabewert nur noch Leersymbole stehen (links vom Lesekopf kann alles mögliche stehen) Beispiel Eine TM für f(x) = x + 1: M = ({ }, {, }, {z 0, z}, z 0, δ, {z}, ) δ z 0 z (, z 0, L) (, z, 0) Betrachten folgende Funktion: χ A (x) = { 1 falls x A n. d. sonst χ A ist Turing-berechenbar: modifizieren M so zu M : M (x) simuliert M(x) gerät M(x) in einen Endzustand und ist αzβ, z Z E die Konfiguration von M, so ersetzt M β durch 1 und geht in einen Endzustand z Z E partiell charakteristische χ A für A L 0 sind turing-berechenbar. Wie steht es mit der charakteristischen Funktion? Ist A Σ so ist c A die charakteristische Funktion von A, c A = { 1 für x A 0 für x / A Ist c A turing-berechenbar? (später: ganz sicher nicht!) 5.4. Andere Typen von Turing-Maschinen Bisher hatten wir nichtdeterministische und deterministische Turing-Maschinen. Was können wir noch verändern? mehrdimensionale Bänder mehrere Köpfe 48

5.5. Die Churchsche These zusätzliche Bänder Bänder mit speziellen Funktionen (Eingabeband, Ausgabeband, Rechenband,...) Satz 5.4.1 Alle genannten Typen von Turingmaschinen (und Kombinationen davon) sind im Hinblick auf ihre Berechnungskraft äquivalent. wichtig ist die endliche Beschreibung! 5.5. Die Churchsche These Satz 5.5.1 (Churchsche These) Die durch die formale Definition der Turing-Berechenbarkeit erfasste Klasse von Funktionen stimmt genau mit der Klasse der im primitiven Sinne berechenbaren Funktionen überein. Kein Beweis, lediglich Plausibilitätsbetrachtung. Beachte: die These trifft keine Effizienzaussage, es zählt nur die reine Berechenbarkeit. 49

6. Primitv rekursive und partiell rekursive Funktionen Idee: starten mit ganz wenigen, einfachen Funktionen definieren ein paar einfache Operationen, die aus Funktionen neue Funktionen machen 6.1. Primitiv rekursive Funktionen Definition 6.1.1 Grundfunktionen (E) 1. Nachfolgerfunktion: succ: N N: succ(n) = n + 1 2. konstante Funktion: C m k : Nm N: C(m 1,..., m m ) = k 3. Projektionsfunktionen: id m l : N m N: id m l (m 1,..., m m ) = m l Die genannten Funktionen bilden die Menge E der Grundfunktionen. Jetzt die Operationen: Definition 6.1.2 Substitution: SUB m i : F i (F m ) i } {{ } i F m-stellige Funktionen Ist g F i und sind h 1,..., h i F m, so ist die Funktion SUB m i (g, h 1,..., h i ) definiert durch: SUB m i (g, h 1,..., h i )(n 1,..., n m ) = g(h 1 (n 1,..., n m ),..., h i (n 1,..., n m )) Primitive Rekursion: PR m+1 : F m F m+2 F m+1 Sind g F m und h F m+2, so ist die Funktion f = PR m+1 (g, h) definiert durch: f(0, n 1,..., n m ) = g(n 1,..., n m ) f(n + 1, n 1,..., n m ) = h(n, n 1,..., n m, f(n, n 1,..., n m )) 50