Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Ulrich Furbach Institut für Informatik Sommersemester 2014 Furbach – Grundlagen d. Theoretischen Informatik: SS 2014 1 / 131 Dank Diese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen von Katrin Erk (gehalten an der Universität Koblenz-Landau) Jürgen Dix (gehalten an der TU Clausthal) Bernhard Beckert (gehalten an der Universität Koblenz-Landau) Ihnen gilt mein herzlicher Dank. – Ulrich Furbach, April 2012 Furbach – Grundlagen d. Theoretischen Informatik: SS 2014 2 / 131 Teil I Einführung 1 Organisatorisches 2 Motivation, Inhalt der Vorlesung 3 Kurzer Überblick: Logik 4 Kurzer Überblick: Beweismethoden und Mathematische Konzepte 5 Kurzer Überblick: Beweismethoden und Mathematische Konzepte Furbach – Grundlagen d. Theoretischen Informatik: Organisatorisches SS 2014 3 / 131 Literatur Buch zur Vorlesung Erk, Katrin and Priese, Lutz (2002). Theoretische Informatik: Eine umfassende Einführung. 2. Auflage. Springer-Verlag. Furbach – Grundlagen d. Theoretischen Informatik: Organisatorisches SS 2014 4 / 131 Literatur Weitere Literatur J. Hopcroft, R. Motwani, and J. Ullman (2002). Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie. Pearson. G. Vossen and K.-U. Witt (2004). Grundkurs Theoretische Informatik. Vieweg. U. Schöning (1994). Theoretische Informatik: kurzgefaßt. Spektrum-Verlag. Furbach – Grundlagen d. Theoretischen Informatik: Organisatorisches SS 2014 5 / 131 Teil I Einführung 1 Organisatorisches 2 Motivation, Inhalt der Vorlesung 3 Kurzer Überblick: Logik 4 Kurzer Überblick: Beweismethoden und Mathematische Konzepte 5 Kurzer Überblick: Beweismethoden und Mathematische Konzepte Furbach – Grundlagen d. Theoretischen Informatik: Motivation, Inhalt der Vorlesung SS 2014 6 / 131 Theoretische Informatik befasst sich mit . . . Grundlegende Konzepte der Informatik Probleme und ihre Beschreibung Systeme/Automaten/Maschinen, die Probleme lösen Lösbarkeit von Problemen (Entscheidbarkeit/Berechenbarkeit und deren Grenzen) Schwierigkeit (Komplexität) der Lösung von Problemen Furbach – Grundlagen d. Theoretischen Informatik: Motivation, Inhalt der Vorlesung SS 2014 7 / 131 Teilgebiete der Theoretischen Informatik Teilgebiete Formale Sprachen Automatentheorie Berechenbarkeitstheorie Komplexitätstheorie (Logik) Furbach – Grundlagen d. Theoretischen Informatik: Motivation, Inhalt der Vorlesung SS 2014 8 / 131 Warum Theoretische Informatik? Theoretische Informatik . . . ist die Grundlage ist wichtig (bspw. für Algorithmentechnik, Software Engineering, Compilerbau) hilft, weitere Themen/Vorlesungen der Informatik zu verstehen veraltet nicht macht Spaß Furbach – Grundlagen d. Theoretischen Informatik: Motivation, Inhalt der Vorlesung SS 2014 9 / 131 Inhalt der Vorlesung 1 Terminologie 2 Endliche Automaten und reguläre Sprachen 3 Kellerautomaten und kontextfreie Sprachen 4 Turingmaschinen und rekursiv aufzählbare Sprachen 5 Berechenbarkeit, (Un-)Entscheidbarkeit 6 Komplexitätsklassen P und NP Furbach – Grundlagen d. Theoretischen Informatik: Motivation, Inhalt der Vorlesung SS 2014 10 / 131 Teil I Einführung 1 Organisatorisches 2 Motivation, Inhalt der Vorlesung 3 Kurzer Überblick: Logik 4 Kurzer Überblick: Beweismethoden und Mathematische Konzepte 5 Kurzer Überblick: Beweismethoden und Mathematische Konzepte Furbach – Grundlagen d. Theoretischen Informatik: Logik SS 2014 11 / 131 Logische Formeln Aussagenlogische Operatoren ¬ Negationssymbol („nicht“) ∧ Konjunktionssymbol („und“) ∨ Disjunktionssymbol („oder“) ⇒ Implikationssymbol („wenn . . . dann“) ⇔ Symbol für Äquivalenz („genau dann, wenn“) Zusätzliche prädikatenlogische Operatoren ∀ Allquantor („für alle“) ∃ Existenzquantor („es gibt“) Furbach – Grundlagen d. Theoretischen Informatik: Logik SS 2014 12 / 131 Logische Formeln Formeln Atomare Aussagen sind Formeln Seien A, B Formeln, x eine Variable, ¬A, (A ∧ B ), (A ∨ B ), (A ⇒ B ), dann sind (A ⇔ B ), ∀xA, ∃xA Formeln Furbach – Grundlagen d. Theoretischen Informatik: Logik SS 2014 13 / 131 Logische Formeln Beispiel 3.1 ¬ (y ≤ x ) ⇒ ∃z (¬(z ≤ x ) ∧ ¬(y ≤ z )) | {z } | {z } Atom Skopus von ∃z Furbach – Grundlagen d. Theoretischen Informatik: Logik SS 2014 14 / 131 Logische Formeln Beispiel 3.2 „Alle, die in Koblenz studieren, sind schlau“ ∀ x (studiertIn(x , koblenz ) ⇒ schlau (x )) |{z} | {z } Variable | Formel (Skopus) {z } Formel „Jemand, der in Landau studiert ist schlau“ ∃ x (studiertIn(x , landau ) ∧ schlau (x )) |{z} | {z } Variable | Formel (Skopus) {z Formel Furbach – Grundlagen d. Theoretischen Informatik: Logik } SS 2014 15 / 131 Eigenschaften von Quantoren Quantoren gleicher Art kommutieren ∀x ∀y ∃x ∃y ist das gleiche wie ist das gleiche wie Furbach – Grundlagen d. Theoretischen Informatik: Logik ∀y ∀x ∃y ∃x SS 2014 16 / 131 Eigenschaften von Quantoren Verschiedene Quantoren kommutieren NICHT ∃x ∀y ist nicht das gleiche wie ∀y ∃x Beispiel 3.3 ∃x ∀y loves(x , y ) Es gibt eine Person, die jeden Menschen in der Welt liebt (einschließlich sich selbst) ∀y ∃x loves(x , y ) Jeder Mensch wird von mindestens einer Person geliebt (Beides hoffentliche wahr aber verschieden: das erste impliziert das zweite aber nicht umgekehrt) Furbach – Grundlagen d. Theoretischen Informatik: Logik SS 2014 17 / 131 Eigenschaften von Quantoren Verschiedene Quantoren kommutieren NICHT ∃x ∀y ist nicht das gleiche wie ∀y ∃x Beispiel 3.4 ∀x ∃y mutter (y , x ) Jeder hat eine Mutter (richtig) ∃y ∀x mutter (y , x ) Es gibt eine Person, die die Mutter von jedem ist Furbach – Grundlagen d. Theoretischen Informatik: Logik (falsch) SS 2014 18 / 131 Eigenschaften von Quantoren Dualität der Quantoren ∀x . . . ist das gleiche wie ¬∃x ¬ . . . ∃x . . . ist das gleiche wie ¬∀x ¬ . . . Beispiel 3.5 ∀x mag (x , eiskrem) ist das gleiche wie ¬∃x ¬mag (x , eiskrem) ∃x mag (x , broccoli ) ist das gleiche wie ¬∀x ¬mag (x , broccoli ) Furbach – Grundlagen d. Theoretischen Informatik: Logik SS 2014 19 / 131 Eigenschaften von Quantoren ∀ distributiert NICHT über ∨ ∀x (. . . ∨ . . .) ist NICHT das gleiche wie (∀x . . .) ∨ (∀x . . .) Beispiel 3.6 ∀x (eiskrem(x ) ∨ broccoli (x )) ist NICHT das gleiche wie (∀x eiskrem(x )) ∨ (∀x broccoli (x )) Furbach – Grundlagen d. Theoretischen Informatik: Logik SS 2014 20 / 131 Eigenschaften von Quantoren ∃ distributiert NICHT über ∧ ∃x (. . . ∧ . . .) ist NICHT das gleiche wie (∃x . . .) ∧ (∃x . . .) Beispiel 3.7 ∃x (gerade(x ) ∧ ungerade(x )) ist NICHT das gleiche wie (∃x gerade(x )) ∧ (∃x ungerade(x )) Furbach – Grundlagen d. Theoretischen Informatik: Logik SS 2014 21 / 131 Beispiele: Familienverhältnisse Beispiel 3.8 „Brüder sind Geschwister“ ∀x ∀y (bruder (x , y ) ⇒ geschwister (x , y )) „bruder“ ist symmetrisch ∀x ∀y (bruder (x , y ) ⇔ bruder (y , x )) „Mütter sind weibliche Elternteile“ ∀x ∀y (mutter (x , y ) ⇔ weiblich(x ) ∧ elter (x , y ))) „Ein Cousin ersten Grades ist das Kind eines Geschwisters eines Elternteils“ ∀x ∀y (cousin1(x , y ) ⇔ ∃p∃ps (elter (p, x ) ∧ geschwister (ps, p) ∧ elter (ps, y ))) Furbach – Grundlagen d. Theoretischen Informatik: Logik SS 2014 22 / 131 Beispiele: Familienverhältnisse Beispiel 3.9 Formalisierung von „Bruder, der nicht nur Halbbruder ist“ ∀x ∀y bruder (x , y ) ⇔ (¬(x = y ) ∧ ∃m∃v (¬(m = v ) ∧ elter (m, x ) ∧ elter (v , x ) ∧ elter (m, y ) ∧ elter (v , y ))) Furbach – Grundlagen d. Theoretischen Informatik: Logik SS 2014 23 / 131 Teil I Einführung 1 Organisatorisches 2 Motivation, Inhalt der Vorlesung 3 Kurzer Überblick: Logik 4 Kurzer Überblick: Beweismethoden und Mathematische Konzepte 5 Kurzer Überblick: Beweismethoden und Mathematische Konzepte Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte SS 2014 24 / 131 Wichtige Beweismethoden Deduktiver Beweis Aneinanderkettung von Argumenten/Aussagen A = A1 , A2 , . . . , An = B Zwischenaussagen Ai müssen schlüssig aus dem Vorhergehenden folgen Verwendet werden dürfen nur – Annahmen aus A – mathematische Grundgesetze – bereits bewiesene Aussagen – logische Schlussfolgerungen Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte SS 2014 25 / 131 Wichtige Beweismethoden Beispiel 4.1 (Deduktiver Beweis) Zu beweisen: Wenn x die Summe der Quadrate von vier positiven ganzen Zahlen ist, dann gilt 2x ≥ x 2 Beweis in schematischer Darstellung: 1. 2. 3. 4. 5. Aussage x = a2 + b 2 + c 2 + d 2 a ≥ 1, b ≥ 1, c ≥ 1, d ≥ 1 a 2 ≥ 1, b 2 ≥ 1, c 2 ≥ 1, d 2 ≥ 1 x ≥4 2x ≥ x 2 Begründung Gegeben Gegeben (2) und Gesetze der Arithmetik (1), (3) und Gesetze der Arithmetik (4) und Satz aus der Analysis Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte SS 2014 26 / 131 Wichtige Beweismethoden Beweis durch Kontraposition Beweise, dass nicht A aus der Annahme nicht B folgt: ¬B ⇒ ¬A logisch äquivalent zu A⇒B Widerspruchsbeweis Beweise, dass aus A und nicht B ein Widerspruch folgt: (A ∧ ¬B ) ⇔ false logisch äquivalent zu A⇒B A kann „leer“ sein Widerspruch zu ∀-Aussage gelingt durch Gegenbeispiel Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte SS 2014 27 / 131 Wichtige Beweismethoden Induktionsbeweise Standardinduktion: Gilt A(0) und folgt A(i + 1) aus A(i ), dann gilt A(n) für alle n ∈ N Vollständige Induktion: Gilt A(0) und folgt A(i + 1) aus A(0) ∧ . . . ∧ A(i ), dann gilt A(n) für alle m ∈ N Strukturelle Induktion (auf Datentypen wie Listen, Bäumen, Wörtern: Gilt A für das Basiselement und folgt die Gültigkeit von A für ein beliebiges Element aus der Gültigkeit von A für seine Unterelemente, dann gilt A für alle Elemente. Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte SS 2014 28 / 131 Mathematische Konzepte Grundkonzepte (z.B. aus DAS) Elementare Mengentheorie – {x |P (x )} – ∪, ∩, \ Bezug zwischen Mengen, Relationen und Funktionen (wichtig!) Elementare Gesetze der Algebra Strukturen wie Listen, (endliche) Folgen, Graphen, Bäume Wörter (Strings) Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte SS 2014 29 / 131 Mathematische Konzepte Funktionen Funktion f : S → S 0 : Abbildung zwischen den Grundmengen S und S 0 , nicht unbedingt auf allen Elementen von S definiert Definitionsbereich D Wertebereich W f eine totale Funktion: f für alle Elemente des Wertebereichs W definiert ∀x ∈D ∃y ∈W (x , y ) ∈ f Injektiv, surjektiv, bijektiv Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte SS 2014 30 / 131 Teil I Einführung 1 Organisatorisches 2 Motivation, Inhalt der Vorlesung 3 Kurzer Überblick: Logik 4 Kurzer Überblick: Beweismethoden und Mathematische Konzepte 5 Kurzer Überblick: Beweismethoden und Mathematische Konzepte Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte SS 2014 31 / 131 Wichtige Beweismethoden Deduktiver Beweis Aneinanderkettung von Argumenten/Aussagen A = A1 , A2 , . . . , An = B Zwischenaussagen Ai müssen schlüssig aus dem Vorhergehenden folgen Verwendet werden dürfen nur – Annahmen aus A – mathematische Grundgesetze – bereits bewiesene Aussagen – logische Schlussfolgerungen Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte SS 2014 32 / 131 Wichtige Beweismethoden Beispiel 5.1 (Deduktiver Beweis) Zu beweisen: Wenn x die Summe der Quadrate von vier positiven ganzen Zahlen ist, dann gilt 2x ≥ x 2 Beweis in schematischer Darstellung: 1. 2. 3. 4. 5. Aussage x = a2 + b 2 + c 2 + d 2 a ≥ 1, b ≥ 1, c ≥ 1, d ≥ 1 a 2 ≥ 1, b 2 ≥ 1, c 2 ≥ 1, d 2 ≥ 1 x ≥4 2x ≥ x 2 Begründung Gegeben Gegeben (2) und Gesetze der Arithmetik (1), (3) und Gesetze der Arithmetik (4) und Satz aus der Analysis Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte SS 2014 33 / 131 Wichtige Beweismethoden Beweis durch Kontraposition Beweise, dass nicht A aus der Annahme nicht B folgt: ¬B ⇒ ¬A logisch äquivalent zu A⇒B Widerspruchsbeweis Beweise, dass aus A und nicht B ein Widerspruch folgt: (A ∧ ¬B ) ⇔ false logisch äquivalent zu A⇒B A kann „leer“ sein Widerspruch zu ∀-Aussage gelingt durch Gegenbeispiel Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte SS 2014 34 / 131 Wichtige Beweismethoden Induktionsbeweise Standardinduktion: Gilt A(0) und folgt A(i + 1) aus A(i ), dann gilt A(n) für alle n ∈ N Vollständige Induktion: Gilt A(0) und folgt A(i + 1) aus A(0) ∧ . . . ∧ A(i ), dann gilt A(n) für alle m ∈ N Strukturelle Induktion (auf Datentypen wie Listen, Bäumen, Wörtern: Gilt A für das Basiselement und folgt die Gültigkeit von A für ein beliebiges Element aus der Gültigkeit von A für seine Unterelemente, dann gilt A für alle Elemente. Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte SS 2014 35 / 131 Wiederholung Fragen Wie distribuieren Quanten über Junktoren? Welche Beweismethoden benutzen wir? Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte SS 2014 36 / 131 Mathematische Konzepte Grundkonzepte (z.B. aus DAS) Elementare Mengentheorie – {x |P (x )} – ∪, ∩, \ Bezug zwischen Mengen, Relationen und Funktionen (wichtig!) Elementare Gesetze der Algebra Strukturen wie Listen, (endliche) Folgen, Graphen, Bäume Wörter (Strings) Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte SS 2014 37 / 131 Mathematische Konzepte Funktionen Funktion f : S → S 0 : Abbildung zwischen den Grundmengen S und S 0 , nicht unbedingt auf allen Elementen von S definiert Definitionsbereich D Wertebereich W f eine totale Funktion: f für alle Elemente des Wertebereichs W definiert ∀x ∈D ∃y ∈W (x , y ) ∈ f Injektiv, surjektiv, bijektiv Furbach – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte SS 2014 38 / 131 Inhalt von Teil II In den folgenden Abschnitten führen wir die Begriffe Sprache Grammatik ein. Wir untersuchen insbesondere 1 wie man Probleme aus der Mathematik, Graphentheorie, Logik als Probleme über Sprachen formulieren kann. 2 wie man Klassen von Grammatiken von steigendem Schwierigkeitsgrad definiert: Chomsky-Hierarchie. 3 wieviele Grammatiken und Sprachen es überhaupt gibt (soviele wie natürliche Zahlen, reelle Zahlen oder komplexe Zahlen?) Furbach – Grundlagen d. Theoretischen Informatik: SS 2014 39 / 131 Teil II Terminologie 6 Sprache, Grammatik 7 Warum Sprachen? 8 Die Chomsky-Hierarchie 9 Probleme über Sprachen 10 Endlich, unendlich und dann? Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 40 / 131 Alphabete, Wörter Definition 6.1 (Alphabet) Ein Alphabet ist eine Menge von Zeichen/Buchstaben Grundlage einer Sprache (die zur Verfügung stehenden Zeichen) Meist endlich Definition 6.2 (Wort) Ein Wort (über einem Alphabet Σ) ist eine endliche Folge von Zeichen aus Σ |w | bezeichnet Länge eines Wortes w ε bezeichnet das leere Wort Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 41 / 131 Alphabete, Wörter Operationen auf Wörtern Verknüpfung (Konkatenation): w ◦ w0 assoziativ, oft geschrieben als ww 0 i-te Potenz: w 0 = ε, w i +1 = ww i Reverse: w R = das Wort w rückwärts Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 42 / 131 Sprache Definition 6.3 (Sprache) Eine Sprache L (über einem Alphabet Σ) ist eine Menge von Wörtern über Σ. Operationen auf Sprachen Konkatenation: L ◦ M = {w ◦ w 0 | w ∈ L, w 0 ∈ M } i-te Potenz: L0 = {ε}, Li +1 := LLi Reverse: LR = {w R : w ∈ L} Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 43 / 131 Sprache Kleene-Hülle L∗ = L0 ∪ L1 ∪ L2 ∪ . . . Variante: L+ = LL∗ = L1 ∪ L2 ∪ . . . Σ∗ bezeichnet die Menge aller Wörter über Σ Genau genommen besteht ein Unterschied: ein Buchstabe 6= Wort, das nur aus dem einen Buchstaben besteht Darum ist Σ selbst keine Sprache über Σ (Oft wird über diesen Unterschied hinweggesehen) Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 44 / 131 Reguläre Ausdrücke Definition 6.4 (Reguläre Ausdrücke) Menge RegΣ der regulären Ausdrücke (über Σ) ist definiert durch: 1 0 ist ein regulärer Ausdruck 2 Für jedes a ∈ Σ ist a ein regulärer Ausdruck 3 Sind r und s reguläre Ausdrücke, so auch (r + s) (Vereinigung), (rs) (Konkatenation), (r ∗ ) (Kleene Stern) Klammern können weggelassen werden, dann ∗ hat Vorrang vor Konkatenation Konkatenation hat Vorrang vor + Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 45 / 131 Reguläre Ausdrücke Definition 6.5 (Semantik regulärer Ausdrücke) Ein regulärer Ausdruck r stellt eine Sprache I(r ) über Σ wie folgt dar: I(0) := 0/ I(a) := {a} für a ∈ Σ I(r + s) := I(r )∪I(s) I(r s) := I(r )I(s) I(r ∗ ) := I(r )∗ Wir benutzen auch das Makro . . . 1 := 0∗ Es gilt: I(1) = {ε} Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 46 / 131 Reguläre Ausdrücke Übung Welche Sprachen werden durch die folgenden regulären Ausdrücke dargestellt? aa (a + b)∗ aa∗ + bb∗ Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 47 / 131 Wiederholung Fragen Wie sind reguläre Ausdrücke definiert? was ist ihre Semantik? Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 48 / 131 Reguläre Ausdrücke als Suchmuster für grep Das Kommando grep (bzw. egrep) Sucht Wörter (Strings) in Dateien Benutzt reguläre Ausdrücke als Suchmuster Sehr schnell Volle Funktionalität mit egrep Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik (U NIX /L INUX) SS 2014 49 / 131 Reguläre Ausdrücke als Suchmuster für grep Syntax bei grep grep ww 0 w |w 0 w* w+ Regulärer Ausdruck ww 0 w + w0 w∗ w+ Syntactic Sugar grep [abc] [a-d] . Regulärer Ausdruck a+b+c a+b+c +d beliebiges Zeichen aus Σ Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 50 / 131 Grammatik Grammatik Beschreibt eine Sprache Menge von Regeln, mit deren Hilfe man Wörter ableiten kann Die zu einer Grammatik gehörende Sprache besteht aus den – ableitbaren – terminalen Wörtern Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 51 / 131 Grammatik Definition 6.6 (Grammatik) Eine Grammatik G über einem Alphabet Σ ist ein Tupel G = (V , T , R , S ) Dabei ist V eine endliche Menge von Variablen T ⊆ Σ eine endliche Menge von Terminalen mit V ∩ T = 0/ R eine endliche Menge von Regeln S ∈ V das Startsymbol Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 52 / 131 Grammatik Definition 6.7 (Regel) Eine Regel ist ein Element (P , Q ) ∈ (V ∪ T )∗ V (V ∪ T )∗ × (V ∪ T )∗ Bezeichnung: P: Prämisse Q: Conclusio Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 53 / 131 Grammatik Definition 6.8 (Regel) Eine Regel ist ein Element (P , Q ) ∈ (V ∪ T )∗ V (V ∪ T )∗ × (V ∪ T )∗ Das heißt: P und Q sind Wörter über (V ∪ T ) P muss mindestens eine Variable enthalten Q ist beliebig Bezeichnung: P: Prämisse Q: Conclusio Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 54 / 131 Grammatik Schreibweise für Regeln Schreibweise für Regel (P , Q ): P →G Q bzw. P→Q Abkürzung für mehrere Regeln mit derselben Prämisse: P → Q1 | Q2 | Q3 für P → Q1 , P → Q2 , P → Q3 Konvention (meistens) Variablen als Großbuchstaben Terminale als Kleinbuchstaben Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 55 / 131 Grammatik Beispiel 6.9 S → B B → do begin B end B → A A → nop A A → ε Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 56 / 131 Rechnung einer Grammatik Algorithmus Eingabe: Eine Grammatik 1 aktuellWort := S 2 Wähle eine Regel P → Q, so dass P in aktuellWort vorkommt 3 Ersetze (ein) Vorkommen von P in aktuellWort durch Q 4 Falls aktuellWort noch Variablen enthält (nicht terminal), GOTO 2 (Startsymbol) Ausgabe: Das terminale Wort aktuellWort Beachte Die Berechnung ist nicht deterministisch (Auswahl der Regel) kann mehr als ein Ergebnis liefern (oder auch keines) kann in Endlosschleifen geraten Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 57 / 131 Rechnung einer Grammatik Beispiel 6.10 (Einfache Grammatiken) Welche Wörter kann man ableiten? G1 = ({S }, {a}, {R1 , R2 }, S ) R1 = S → aS R2 = S→ε G2 = ({S }, {a, b}, {R1 , R2 }, S ) R1 = S → aSb R2 = S→ε Sei G3 = ({S , S0 }, {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, {R1 , R2 }, S ) R1 = S → 1S | 2S0 | 3S | 4S0 | 5S | 6S0 | 7S | 8S0 | 9S R2 = S0 → S | ε Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 58 / 131 Rechnung einer Grammatik Beispiel 6.11 (Einfache Grammatiken) Welche Wörter kann man ableiten? Ga = ({S }, {a}, {R1 , R2 }, S ) R1 = S → aS R2 = S→ε Gab = ({S }, {a, b}, {R1 , R2 }, S ) R1 = S → aSb R2 = S→ε Sei Ggerade = ({S , S0 }, {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, {R1 , R2 }, S ) R1 = S → 1S | 2S0 | 3S | 4S0 | 5S | 6S0 | 7S | 8S0 | 9S R2 = S0 → S | ε Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 59 / 131 Rechnung einer Grammatik Definition 6.12 (Ableitung, Rechnung) Gegeben: Grammatik G = (V , T , R , S ) Wörter w , w 0 aus (V ∪ T )∗ Es gilt w =⇒G w 0 („w geht über in w 0 “) falls ∃u , v ∈ (V ∪ T )∗ ∃P → Q ∈ R w = uPv und w 0 = uQv Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 60 / 131 Rechnung einer Grammatik Schreibweise für Ableitung w =⇒∗G w 0 falls es Wörter w0 , . . . , wn ∈ (V ∪ T )∗ (n ≥ 0) gibt mit w = w0 wm = w 0 wi =⇒G wi +1 für 0 ≤ i < n Merke: w =⇒∗G w gilt stets (n = 0) Die Folge w0 , . . . , wn heißt Ableitung oder Rechnung – von w0 nach wn – in G – der Länge n Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 61 / 131 Vorsicht: Indeterminismus Beispiel 6.13 (Indeterminismus) Wir betrachten die Grammatik G = ({S , B }, {a, b, c }, {R0 , R1 , R2 , R3 }, S ) R0 = R1 = R2 = R3 = S → aBBc B→b B → ba BB → bBa Drei Möglichkeiten, das Wort abbac zu erzeugen: S S S =⇒R0 =⇒R0 =⇒R0 aBBc aBBc aBBc =⇒R1 =⇒R2 =⇒R3 abBc aBbac abBac Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik =⇒R2 =⇒R1 =⇒R1 abbac abbac abbac SS 2014 62 / 131 Vorsicht: Indeterminismus Warum ist das ein Feature und kein Bug? Erlaubt einfachere Definition von Grammatiken Für manche Sprachen gibt es keine eindeutige Grammatiken Eine Grammatik beschreibt die Struktur der Wörter. Ein Wort kann mehrere mögliche Strukturen haben. Für natürliche Sprachen braucht man das unbedingt: Manche Sätze sind mehrdeutig (in ihrer Grammatik), also müssen auch die Grammatiken mehrdeutig sein! Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 63 / 131 Vorsicht: Indeterminismus Beispiel 6.14 (Mehrdeutige Grammatik natürlichsprachlicher Sätze) Time flies like an arrow. Fruit flies like a banana. Beide Sätze haben zwei mögliche grammatische Strukturen. Erst unser semantisches Verständnis wählt eine aus. Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 64 / 131 Erzeugte Sprache, Äquivalenz Definition 6.15 (Erzeugte Sprache) leitungGegeben: Eine Grammatik G Die von G erzeugte Sprache L(G) ist die Menge aller terminalen Wörter, die durch G vom Startsymbol S aus erzeugt werden können: L( G ) := {w ∈ T ∗ | S =⇒∗G w } Definition 6.16 (Äquivalenz) Zwei Grammatiken G1 , G2 heißen äquivalent gdw L(G1 ) = L(G2 ) Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 65 / 131 Fragen – Wiederholung Reguläre Ausdrücke? Was ist eine Grammatik? Was ist eine Ableitung? Was ist die von einer Grammatik erzeugte Sprache? Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 66 / 131 Beispiel Beispiel 6.17 Grammatik Gab = ({S }, {a, b}, {R1 , R2 }, S ) mit R1 = S → aSb R2 = S → ε Mögliche Ableitung: S =⇒R1 aSb =⇒R1 aaSbb =⇒R1 aaaSbbb =⇒R2 aaabbb Also: a3 b3 ∈ L(G2 ) Lemma 6.18 Die Grammatik Gab erzeugt die Sprache L(Gab ) = {an bn | n ∈ N0 } Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 67 / 131 Beispiel Beweis Dass Gab tatsächlich genau diese Sprache erzeugt, zeigen wir allgemein, indem wir alle möglichen Ableitungen von Gab betrachten. ⊆ : zu zeigen: Jedes terminale Wort, das von Gab erzeugt wird, hat die Form an b n . Wir zeigen für alle w ∈ (V ∪ T )∗ : Falls S =⇒∗G w, dann gilt entweder ab w = an Sbn oder w = an bn für ein n ∈ N0 . Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 68 / 131 Beispiel Beweis (Forts.) Dazu verwenden wir eine Induktion über die Länge einer Ableitung von S nach w. Induktionsanfang: w = S = a0 Sb0 Induktionsschritt: Es gelte S =⇒∗G w =⇒Gab w 0 , und für w gelte nach der ab Induktionsvoraussetzung bereits w = an bn oder w = an Sbn . Außerdem sei w =⇒Gab w 0 eine Ableitung in einem Schritt. Nun ist zu zeigen: w 0 = am bm oder w 0 = am Sbm für irgendein m. Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 69 / 131 Beispiel Beweis (Forts.) Fall 1: w = an bn . Dann konnte keine Regel angewandt werden, da w schon terminal ist, also tritt dieser Fall nie auf. Fall 2: w = an Sbn . Dann wurde von w nach w 0 entweder Regel R1 oder R2 angewandt. Falls R1 angewandt wurde, dann gilt w = an Sbn =⇒R1 an aSbbn = an+1 Sbn+1 = w 0 . Falls R2 angewandt wurde, dann gilt w = an Sbn =⇒R2 an εbn = w 0 . Dies Wort ist terminal und hat die geforderte Form an bn . Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 70 / 131 Beispiel Beweis (Forts.) ⊇ : zu zeigen: Für alle n kann an bn von Gab erzeugt werden: S =⇒∗G an bn ab ∀n ∈ N0 . Um an bn zu erzeugen, wende man auf S n-mal die Regel R1 und dann einmal die Regel R2 an. Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 71 / 131 Beispiel: Dycksprache Definition 6.19 (Dycksprache) Gegeben: – k ∈N – Σk := {x1 , x1 , x2 . . . , xk , xk } ein Alphabet mit 2k Symbolen Die Dycksprache Dk ist die kleinste Menge die folgende Bedingungen erfüllt: 1 ε ∈ Dk , 2 Falls w ∈ Dk , so auch xi wxi . 3 Falls u , v ∈ Dk , so auch uv . Interpretiert man die xi als öffnende, die xi als zugehörige schließende Klammern, so kann man die Dycksprache als die Menge aller korrekten Klammerausdrücke sehen. Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 72 / 131 Beispiel: Dycksprache Walther von Dyck b 1856, d 1934 Mathematiker Hochschulpolitiker Erster Rektor der TU München Einer der Gründungsväter des Deutschen Museums [Foto: Deutsches Museum] Furbach – Grundlagen d. Theoretischen Informatik: Sprache, Grammatik SS 2014 73 / 131 Teil II Terminologie 6 Sprache, Grammatik 7 Warum Sprachen? 8 Die Chomsky-Hierarchie 9 Probleme über Sprachen 10 Endlich, unendlich und dann? Furbach – Grundlagen d. Theoretischen Informatik: Warum Sprachen? SS 2014 74 / 131 Darstellung von Problemen Fakt So ziemlich alle Probleme können als Probleme über Sprachen formuliert werden. Beispiel 7.1 (Primzahlen) Alphabet Σnum := {|} Sprache Lprimes := {|| . . . | | p prim} | {z } p mal Furbach – Grundlagen d. Theoretischen Informatik: Warum Sprachen? SS 2014 75 / 131 Darstellung von Problemen Eingabealphabet Σ = {0, 1, . . . , n − 1} erlaubt Darstellung einer Ganzzahl zur Basis n Beispiel 7.2 5 binär: 101 5 unär: ||||| (oder auch 11111) Furbach – Grundlagen d. Theoretischen Informatik: Warum Sprachen? SS 2014 76 / 131 Darstellung von Problemen Speicheraufwand n-äre Darstellung (n > 1) einer Zahl k führt zu einer Speicherersparnis: logn k (n-är) statt k (unär) Nur der Schritt von unär auf binär ist wesentlich, denn logn k = 1 log2 n · log2 k = c · log2 k (von binär auf n-är nur lineare Einsparung) Furbach – Grundlagen d. Theoretischen Informatik: Warum Sprachen? SS 2014 77 / 131 Darstellung des Erfüllbarkeitsproblems SAT Problem SAT Gegeben: Eine aussagenlogische Formel w Frage: Gibt es eine Belegung der booleschen Variablen in w, so dass w zu true auswertet? Signatur für aussagenlogische Formeln Signatur: Σsat := {∧, ∨, ¬, (, ), x , 0, 1} Dabei Darstellung von boolscher Variablen xi als x gefolgt von i binär kodiert. Dadurch Formel der Länge n um (unerheblichen) Faktor log n länger. Furbach – Grundlagen d. Theoretischen Informatik: Warum Sprachen? SS 2014 78 / 131 Darstellung des Erfüllbarkeitsproblems SAT Definition 7.3 (Satisfiability) Sprache Lsat := {w ∈ Σ∗sat : w ist eine aussagenlogische Formel, und es gibt eine Belegung für die xi , so dass die Formel w zu true auswertet } Furbach – Grundlagen d. Theoretischen Informatik: Warum Sprachen? SS 2014 79 / 131 Darstellung des Erreichbarkeitsproblems in Graphen Erreichbarkeitsproblem Gegeben: Ein Graph mit Ecken v1 bis vn Frage: Gibt es einen Weg von Ecke v1 zu Ecke vn ? Signatur für Graphen Signatur: Σgraph := {v , e, 0, 1, (, ), #} Darstellung von Ecke vi als v gefolgt i binär kodiert Kante ei ,j als e(string 1 #string 2 ), wobei – string 1 die binäre Darstellung von i, – string 2 die binäre Darstellung von j Furbach – Grundlagen d. Theoretischen Informatik: Warum Sprachen? SS 2014 80 / 131 Darstellung des Erreichbarkeitsproblems in Graphen Definition 7.4 (Erreichbarkeitsproblem) Sprache Lreach := {w ∈ Σ∗graph : es gibt einen Weg in w von der ersten Ecke v1 zur letzten Ecke vn } Furbach – Grundlagen d. Theoretischen Informatik: Warum Sprachen? SS 2014 81 / 131 Wiederholung Fragen Was ist eine formale Sprache? Regeln einer Grammatik? Was ist die von einer Grammatik erzeugte formale Sprache? Furbach – Grundlagen d. Theoretischen Informatik: Warum Sprachen? SS 2014 82 / 131 Teil II Terminologie 6 Sprache, Grammatik 7 Warum Sprachen? 8 Die Chomsky-Hierarchie 9 Probleme über Sprachen 10 Endlich, unendlich und dann? Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie SS 2014 83 / 131 Die Chomsky-Hierarchie Noam Chomsky b 1928 Professor für Linguistik und Philosophie am MIT Bedeutender Linguist Bedeutender Beitrag zur Informatik: Erste Beschreibung der Chomsky-Hierarchie (1956) Bedeutender linker Intellektueller und Globalisierungskritiker Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie SS 2014 84 / 131 Die Chomsky-Hierarchie Was muss eine Grammatik erfüllen? Sie darf nur endlich viele Regeln haben Jede Regelprämisse muss mindestens eine Variable enthalten Das Wort kann im Lauf der Ableitung beliebig wachsen und wieder schrumpfen. (Weitere) Beschränkung der Form, die Regeln haben dürfen, führt zu – Grammatiktypen und damit auch zu – Sprachtypen von verschiedenen Schwierigkeitsgraden. Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie SS 2014 85 / 131 Die Chomsky-Hierarchie Definition 8.1 (Rechtlineare Grammatik) Eine Grammatik G = (V , T , R , S ) heißt rechtslinear gdw ∀(P → Q ) ∈ R P ∈ V und Q ∈ T ∗ ∪ T + V Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie SS 2014 86 / 131 Die Chomsky-Hierarchie Definition 8.2 (Rechtlineare Grammatik) Eine Grammatik G = (V , T , R , S ) heißt rechtslinear gdw ∀(P → Q ) ∈ R P ∈ V und Q ∈ T ∗ ∪ T + V Das heißt, bei jeder Regelanwendung: Links eine einzelne Variable Rechts höchstens eine Variable Wenn rechts eine Variable steht, steht sie ganz rechts im Wort. Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie SS 2014 87 / 131 Die Chomsky-Hierarchie Definition 8.3 (Kontextfreie Grammatik) Eine Grammatik G = (V , T , R , S ) heißt kontextfrei gdw ∀(P → Q ) ∈ R P ∈ V und Q ∈ (V ∪ T )∗ Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie SS 2014 88 / 131 Die Chomsky-Hierarchie Definition 8.4 (Kontextfreie Grammatik) Eine Grammatik G = (V , T , R , S ) heißt kontextfrei gdw ∀(P → Q ) ∈ R P ∈ V und Q ∈ (V ∪ T )∗ Das heißt, bei jeder Regelanwendung: Links eine einzelne Variable Die Prämisse macht keine Aussage, was der Kontext dieser Variablen ist („kontextfrei“) Rechts steht etwas beliebiges Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie SS 2014 89 / 131 Definition 8.5 (Kontextsensitive Grammatik) Eine Grammatik G = (V , T , R , S ) heißt kontextsensitiv gdw ∀(P → Q ) ∈ R: 1 ∃u , v , α ∈ (V ∪ T )∗ ∃A ∈ V P = uAv und Q = u αv mit |α| ≥ 1 , oder die Regel hat die Form S → ε 2 S nicht in Q Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie SS 2014 90 / 131 Die Chomsky-Hierarchie Definition 8.6 (Kontextsensitive Grammatik) Eine Grammatik G = (V , T , R , S ) heißt kontextsensitiv gdw ∀(P → Q ) ∈ R: 1 ∃u , v , α ∈ (V ∪ T )∗ ∃A ∈ V P = uAv und Q = u αv mit |α| ≥ 1 , oder die Regel hat die Form S → ε 2 S nicht in Q Das heißt, bei jeder Regelanwendung: Eine Variable A wird in einen String α mit |α| ≥ 1 überführt Die Ersetzung von A durch α findet nur statt, wenn der in der Regel geforderte Kontext (u und v ), vorhanden ist Das Wort wird nicht kürzer, außer bei ε ∈ L Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie SS 2014 90 / 131 Definition 8.7 (Beschränkte Grammatik) Eine Grammatik G = (V , T , R , S ) heißt beschränkt gdw ∀(P → Q ) ∈ R: 1 |P | ≤ |Q |, oder die Regel hat die Form S → ε 2 S nicht in Q Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie SS 2014 91 / 131 Die Chomsky-Hierarchie Definition 8.8 (Beschränkte Grammatik) Eine Grammatik G = (V , T , R , S ) heißt beschränkt gdw ∀(P → Q ) ∈ R: 1 |P | ≤ |Q |, oder die Regel hat die Form S → ε 2 S nicht in Q Das heißt, bei jeder Regelanwendung: Die Conclusio ist mindestens so lang wie die Prämisse, außer bei ε ∈ L. Das Wort wird nicht kürzer, außer bei ε ∈ L Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie SS 2014 92 / 131 Die Chomsky-Hierarchie Aufbauend auf den Grammatikarten kann man Sprachklassen definieren Definition 8.9 (Sprachklassen) Klasse definiert als Sprache heißt L3 , REG L2 , CFL L1 , CSL L1 , CSL L0 , r.e. L {L(G) | G ist rechtslinear} {L(G) | G ist kontextfrei} {L(G) | G ist kontextsensitiv} {L(G) | G ist beschränkt} {L(G) | G beliebig} {L | L ⊆ Σ∗ } Typ 3, regulär Typ 2, kontextfrei Typ 1, kontextsensitiv Typ 1, beschränkt Typ 0, aufzählbar beliebige Sprache Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie SS 2014 93 / 131 Die Chomsky-Hierarchie Grammatiken können kompliziert sein! Beispiel 8.10 (Grammatik für an bn c n ) Grammatik Gabc = ({S , X1 , X2 }, {a, b, c }, {R1 , . . . R5 }, S ) mit R1 = R2 = R3 = R4 = R5 = S X1 b X1 c bX2 aX2 → → → → → abc | aX1 bc bX1 X2 bcc X2 b aa | aaX1 Ist diese Grammatik kontextsensitiv? Ist sie beschränkt? Furbach – Grundlagen d. Theoretischen Informatik: Die Chomsky-Hierarchie SS 2014 94 / 131 Teil II Terminologie 6 Sprache, Grammatik 7 Warum Sprachen? 8 Die Chomsky-Hierarchie 9 Probleme über Sprachen 10 Endlich, unendlich und dann? Furbach – Grundlagen d. Theoretischen Informatik: Probleme über Sprachen SS 2014 95 / 131 Probleme über Sprachen Interessante Probleme (informell) Ist ein gegebenes Wort in einer Sprache (definiert durch eine Grammatik) enthalten? Erzeugen zwei gegebene Grammatiken dieselbe Sprache? Mit welchen Algorithmen können diese Probleme gelöst werden? Furbach – Grundlagen d. Theoretischen Informatik: Probleme über Sprachen SS 2014 96 / 131 Probleme und Algorithmen im allgemeinen Definition 9.1 (Problem, Algorithmus) Ein Problem P ist die Frage, ob eine bestimmte Eigenschaft auf gegebene Objekte zutrifft. Dabei ist eine bekannte, abzählbaren Grundmenge solcher Objekte gegeben. Für jedes Objekt o gilt: die Eigenschaft trifft auf o zu oder nicht. Definition 9.2 (Algorithmus) Ein Algorithmus für ein Problem P ist eine Vorschrift (ein Programm), die zu beliebigem Objekt o berechnet, ob die Eigenschaft für o zutrifft oder nicht. Furbach – Grundlagen d. Theoretischen Informatik: Probleme über Sprachen SS 2014 97 / 131 Probleme und Algorithmen im allgemeinen Beispiel 9.3 (Einige Probleme) Für n ∈ N: Ist n eine Primzahl? Für ein Wort w ∈ Σ∗ und ein Element G aus der Menge aller Grammatiken über Σ: Gilt w ∈ L(G)? Für ein Element G aus der Menge aller Grammatiken: Ist L(G) leer (endlich, unendlich)? Für (a, b, c ) ∈ N3 : Hat an + bn = c n eine Lösung in den natürlichen Zahlen? Für ein Programm p aus der Menge aller Java-Programme: Terminiert p? Furbach – Grundlagen d. Theoretischen Informatik: Probleme über Sprachen SS 2014 98 / 131 Teil II Terminologie 6 Sprache, Grammatik 7 Warum Sprachen? 8 Die Chomsky-Hierarchie 9 Probleme über Sprachen 10 Endlich, unendlich und dann? Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann? SS 2014 99 / 131 Abzählbarkeit Definition 10.1 (Abzählbarkeit) Eine Menge M heißt abzählbar, wenn es eine surjektive Funktion f : N0 → M gibt, oder M leer ist. Intuition Eine Menge ist abzählbar, wenn sie höchstens so mächtig wie N0 ist. Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann? SS 2014 100 / 131 Abzählbarkeit Lemma 10.2 Eine Menge M ist abzählbar, wenn es eine injektive Funktion f : M → N0 gibt. Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann? SS 2014 101 / 131 Abzählbarkeit Beispiel 10.3 Abzählbar sind: N0 Q alle endlichen Mengen die Vereinigung zweier abzählbarer Mengen die Vereiningung abzählbar vieler abzählbarer Mengen Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann? SS 2014 102 / 131 Hilberts Hotel David Hilbert b 1862, d 1943 Einer der bedeutensten und einflußreichsten Mathematiker aller Zeiten Professor in Königsberg und Göttingen Wichtige Beiträge zu – Logik – Funktionalanalysis – Zahlentheorie – Mathematische Grundlagen der Physik – uvm. Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann? SS 2014 103 / 131 Diagonalisierungsargument für Überabzählbarkeit Theorem 10.4 Die Menge R der rellen Zahlen ist überabzählbar. Beweis. Wir zeigen, dass schon das Intervall [0, 1] überabzählbar ist. Annahme: Es gibt eine Aufzählung, also eine surjektive Funktion f : N0 → [0, 1] Dann sei f (i ) = 0, d0i d1i d2i . . . die Dezimaldarstellung der i-ten reellen Zahl. Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann? SS 2014 104 / 131 Diagonalisierungsargument für Überabzählbarkeit Beweis. Fortsetzung: Wir definieren eine neue Zahl d = 0, d 0 d 1 d 2 . . . durch dn = dnn + 1 0 falls dnn < 9 sonst d unterscheidet sich in der n-ten Stelle von dn . Also d 6= dn für alle n ∈ N0 Also kommt d in der Aufzählung nicht vor. Widerspruch! Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann? SS 2014 105 / 131 Wieviele gibt es? Wieviele – Grammatiken – Sprachen – Algorithmen gibt es überhaupt? Mögliche Antworten Endlich viele Unendlich viele Abzählbar viele Überabzählbar viele Nicht klar für Algorithmen, da dieser Begriff nicht genau definiert wurde Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann? SS 2014 106 / 131 Wieviele Wörter, Grammatiken gibt es? Lemma 10.5 Gegeben: Signatur Σ, endlich oder abzählbar unendlich Dann ist Σ∗ abzählbar unendlich. Beweis. Σ ist abzählbar, also ist Σi abzählbar, i ∈ N. Σ∗ ist die Vereinigung der abzählbar vielen abzählbaren Mengen Σi . Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann? SS 2014 107 / 131 Wieviele Wörter, Grammatiken gibt es? Lemma 10.6 Gegeben: Signatur Σ, endlich oder abzählbar unendlich Dann ist die Menge aller Grammatiken über Σ abzählbar unendlich Beweis. Grammatiken sind endlich und also als Wörter über einer geeigneten erweiterten Signatur Σ ∪ V ∪ {→, . . .} darstellbar. Die Menge der Wörter über dieser erweiterten Signatur ist abzählbar (Lemma 10.5). Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann? SS 2014 108 / 131 Wieviele Algorithmen gibt es? Lemma 10.7 Es gibt (nur) abzählbar viele Algorithmen. Beweis. Algorithmen müssen per Definition eine endliche Beschreibung haben. Sie sind also als Wörter über einer Signatur Σ darstellbar (für jedes abzählbare Σ). Also sind sie abzählbar (Lemma 10.5). Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann? SS 2014 109 / 131 Wieviele Funktionen f : N0 → N0 gibt es? Lemma 10.8 Es gibt überabzählbar viele Funktionen f : N0 → N0 . Beweis. Angenommen, es existiere eine Abzählung f1 , f2 , . . . fn , . . . Dann sei C : N0 → N0 mit C (n ) = 1 0 falls fn (n) = 0; sonst C (i ) 6= fi (i ) Also: C ist von allen fi verschieden. Widerspruch! Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann? SS 2014 110 / 131 Wieviele Funktionen f : N0 → N0 gibt es? Lemma 10.9 Es gibt überabzählbar viele Funktionen f : N0 → {0, 1}. Beweis. Analog. Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann? SS 2014 111 / 131 Wieviele Sprachen gibt es? Lemma 10.10 Gegeben eine Signatur Σ (endlich oder unendlich). Die Menge der Sprachen über Σ ist überabzählbar. Beweis. Sei eine beliebige Abzählung aller Wörter über Σ gegeben: w1 , w2 , . . . Dann kann man die Sprachen L über Σ mit den Funktionen f : N0 → {0, 1} identifizieren, vermittels f (i ) = 1 gdw wi ∈ L Von diesen gibt es überabzählbar viele. Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann? SS 2014 112 / 131 Korollar Korollar 10.11 Nicht jede Sprache kann durch eine Grammatik dargestellt werden. Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann? SS 2014 113 / 131 Zusammenfassung Gegeben eine Signatur Σ Abzählbar N Menge aller Wörter Menge aller Grammatiken Menge aller Algorithmen Überabzählbar Die Menge aller Teilmengen von N Die Menge aller reellen Zahlen Die Menge aller Funktionen f : N0 → N0 bzw. f : N 0 → { 0, 1} Die Menge aller Sprachen Furbach – Grundlagen d. Theoretischen Informatik: Endlich, unendlich und dann? SS 2014 114 / 131