Dank Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Diese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen von Katrin Erk (gehalten an der Universität Koblenz-Landau) Bernhard Beckert Jürgen Dix (gehalten an der TU Clausthal) Institut für Informatik Ihnen beiden gilt mein herzlicher Dank. – Bernhard Beckert, April 2007 Sommersemester 2007 B. Beckert – Grundlagen d. Theoretischen Informatik: SS 2007 1 / 35 B. Beckert – Grundlagen d. Theoretischen Informatik: SS 2007 2 / 35 SS 2007 4 / 35 Kontakt Teil I Einführung Bernhard Beckert Email: [email protected] 1 Webseite: www.uni-koblenz.de/˜beckert Organisatorisches 2 Motivation, Inhalt der Vorlesung 3 Kurzer Überblick: Logik Raum: B 218 Sprechstunde: Donnerstags, 16 Uhr (sonst auch immer, wenn die Tür offen steht) Ulrich Koch Email: [email protected] 4 Kurzer Überblick: Beweismethoden und Mathematische Konzepte Webseite: www.uni-koblenz.de/˜koch Raum: A 219 B. Beckert – Grundlagen d. Theoretischen Informatik: Organisatorisches SS 2007 3 / 35 B. Beckert – Grundlagen d. Theoretischen Informatik: Organisatorisches Webseite Übungen Termine und Einteilung http://www.uni-koblenz.de/˜beckert/Lehre/TheoretischeInformatik/ Stehen noch nicht endgültig fest Webseite beachten: MeToo-Registrierung sobald Termine feststehen! Alle relevante Information auf der Webseite Folien Übungsblätter Weitere Materialien Wöchentlich, jeden Montag Termine usw. Dürfen – müssen aber nicht – abgegeben werden Werden in den Übungen der darauffolgenden Woche besprochen Kein Einfluss auf Scheinvergabe B. Beckert – Grundlagen d. Theoretischen Informatik: Organisatorisches SS 2007 5 / 35 Prüfungen und Scheinvergabe B. Beckert – Grundlagen d. Theoretischen Informatik: Organisatorisches SS 2007 6 / 35 Prüfungen und Scheinvergabe Teilklausuren während des Semesters Während des Semesters drei Teilklausuren (je ca. 30-40 Minuten) jeweils Mitte Mai, Mitte Juni, Mitte Juli Schein bei 50% der insgesamt in den drei Teilklausuren zu erzielenden Punkte Anmeldung zu und Teilnahme an der ersten Prüfung (also den Teilklausuren während des Semesters) ist Voraussetzung für die Teilnahme an der Nachklausur. Freiversuch gilt für alle Teilklausuren zusammen Wiederholung einzelner Teilklausuren nicht möglich Zudem darf an der Nachklausur (wie auch an den Teilklausuren) teilnehmen, wer an einer Prüfung zu „Einführung in die Theoretische Informatik I“ in frühren Semestern teilgenommen und diese nicht bestanden oder einen Freiversuch gesetzt hat. Nachklausur zum Ende der Semesters Gegen Ende des Semesters (Ende September) Nachklausur hat gleichen „Wert“ wie alle Teilklausuren zusammen 90 Minuten Dauer Schein bei 50% der Punkte in der Nachklausur B. Beckert – Grundlagen d. Theoretischen Informatik: Organisatorisches SS 2007 7 / 35 B. Beckert – Grundlagen d. Theoretischen Informatik: Organisatorisches SS 2007 8 / 35 Literatur Literatur Weitere Literatur J. Hopcroft, R. Motwani, and J. Ullman (2002). Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie. Pearson. Buch zur Vorlesung Erk, Katrin and Priese, Lutz (2002). Theoretische Informatik: Eine umfassende Einführung. 2. Auflage. Springer-Verlag. G. Vossen and K.-U. Witt (2004). Grundkurs Theoretische Informatik. Vieweg. U. Schöning (1994). Theoretische Informatik: kurzgefaßt. Spektrum-Verlag. B. Beckert – Grundlagen d. Theoretischen Informatik: Organisatorisches SS 2007 9 / 35 B. Beckert – Grundlagen d. Theoretischen Informatik: Organisatorisches SS 2007 10 / 35 SS 2007 12 / 35 Theoretische Informatik befasst sich mit . . . Teil I Einführung 1 Grundlegende Konzepte der Informatik Organisatorisches Probleme und ihre Beschreibung 2 Systeme/Automaten/Maschinen, die Probleme lösen Motivation, Inhalt der Vorlesung Lösbarkeit von Problemen (Entscheidbarkeit/Berechenbarkeit und deren Grenzen) 3 Kurzer Überblick: Logik 4 Kurzer Überblick: Beweismethoden und Mathematische Konzepte B. Beckert – Grundlagen d. Theoretischen Informatik: Motivation, Inhalt der Vorlesung Schwierigkeit (Komplexität) der Lösung von Problemen SS 2007 11 / 35 B. Beckert – Grundlagen d. Theoretischen Informatik: Motivation, Inhalt der Vorlesung Teilgebiete der Theoretischen Informatik Warum Theoretische Informatik? Theoretische Informatik . . . Teilgebiete ist die Grundlage Formale Sprachen ist wichtig (bspw. für Algorithmentechnik, Software Engineering, Compilerbau) Automatentheorie Berechenbarkeitstheorie hilft, weitere Themen/Vorlesungen der Informatik zu verstehen Komplexitätstheorie veraltet nicht (Logik) B. Beckert – Grundlagen d. Theoretischen Informatik: Motivation, Inhalt der Vorlesung macht Spaß SS 2007 13 / 35 B. Beckert – Grundlagen d. Theoretischen Informatik: Motivation, Inhalt der Vorlesung SS 2007 14 / 35 Inhalt der Vorlesung Teil I Einführung 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 B. Beckert – Grundlagen d. Theoretischen Informatik: Motivation, Inhalt der Vorlesung SS 2007 15 / 35 1 Organisatorisches 2 Motivation, Inhalt der Vorlesung 3 Kurzer Überblick: Logik 4 Kurzer Überblick: Beweismethoden und Mathematische Konzepte B. Beckert – Grundlagen d. Theoretischen Informatik: Logik SS 2007 16 / 35 Logische Formeln Logische Formeln Aussagenlogische Operatoren ¬ Negationssymbol („nicht“) Formeln ∧ Konjunktionssymbol („und“) Atomare Aussagen sind Formeln ∨ Disjunktionssymbol („oder“) Seien ⇒ Implikationssymbol („wenn . . . dann“) ⇔ Symbol für Äquivalenz („genau dann, wenn“) A, B Formeln, x eine Variable, ¬A, (A ∧ B ), (A ∨ B ), dann sind (A ⇒ B ), (A ⇔ B ), ∀xA, ∃xA Formeln Zusätzliche prädikatenlogische Operatoren ∀ Allquantor („für alle“) ∃ Existenzquantor („es gibt“) B. Beckert – Grundlagen d. Theoretischen Informatik: Logik SS 2007 17 / 35 Logische Formeln B. Beckert – Grundlagen d. Theoretischen Informatik: Logik SS 2007 18 / 35 SS 2007 20 / 35 Logische Formeln Beispiel 3.2 „Alle, die in Koblenz studieren, sind schlau“ ∀ Beispiel 3.1 Variable ¬ (y ≤ x ) ⇒ ∃z (¬(z ≤ x ) ∧ ¬(y ≤ z )) | {z } | {z } Atom x (studiertIn(x , koblenz ) ⇒ schlau (x )) |{z} | {z } | Formel (Skopus) {z } Formel Skopus von ∃z „Jemand, der in Landau studiert ist schlau“ ∃ x (studiertIn(x , landau ) ∧ schlau (x )) |{z} | {z } Variable | B. Beckert – Grundlagen d. Theoretischen Informatik: Logik SS 2007 19 / 35 Formel (Skopus) {z Formel B. Beckert – Grundlagen d. Theoretischen Informatik: Logik } Eigenschaften von Quantoren Eigenschaften von Quantoren Verschiedene Quantoren kommutieren NICHT ∃x ∀y ist nicht das gleiche wie ∀y ∃x Beispiel 3.3 Quantoren gleicher Art kommutieren ∀x ∀y ∃x ∃y ist das gleiche wie ist das gleiche wie ∃x ∀y loves(x , y ) Es gibt eine Person, die jeden Menschen in der Welt liebt (einschließlich sich selbst) ∀y ∀x ∃y ∃x ∀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) B. Beckert – Grundlagen d. Theoretischen Informatik: Logik SS 2007 21 / 35 B. Beckert – Grundlagen d. Theoretischen Informatik: Logik SS 2007 Eigenschaften von Quantoren Eigenschaften von Quantoren Verschiedene Quantoren kommutieren NICHT Dualität der Quantoren ∃x ∀y ∀x . . . ist das gleiche wie ¬∃x ¬ . . . ∃x . . . ist das gleiche wie ¬∀x ¬ . . . ist nicht das gleiche wie ∀y ∃x 22 / 35 Beispiel 3.4 ∀x ∃y mutter (y , x ) Jeder hat eine Mutter Beispiel 3.5 (richtig) ∃y ∀x mutter (y , x ) Es gibt eine Person, die die Mutter von jedem ist B. Beckert – Grundlagen d. Theoretischen Informatik: Logik (falsch) SS 2007 23 / 35 ∀x mag (x , eiskrem) ist das gleiche wie ¬∃x ¬mag (x , eiskrem) ∃x mag (x , broccoli ) ist das gleiche wie ¬∀x ¬mag (x , broccoli ) B. Beckert – Grundlagen d. Theoretischen Informatik: Logik SS 2007 24 / 35 Eigenschaften von Quantoren Eigenschaften von Quantoren ∀ distributiert NICHT über ∨ ∀x (. . . ∨ . . .) ist NICHT das gleiche wie ∃ distributiert NICHT über ∧ ∃x (. . . ∧ . . .) ist NICHT das gleiche wie (∀x . . .) ∨ (∀x . . .) (∃x . . .) ∧ (∃x . . .) Beispiel 3.6 Beispiel 3.7 ∀x (eiskrem(x ) ∨ broccoli (x )) ist NICHT das gleiche wie (∀x eiskrem(x )) ∨ (∀x broccoli (x )) ∃x (gerade(x ) ∧ ungerade(x )) ist NICHT das gleiche wie (∃x gerade(x )) ∧ (∃x ungerade(x )) B. Beckert – Grundlagen d. Theoretischen Informatik: Logik SS 2007 25 / 35 Beispiele: Familienverhältnisse B. Beckert – Grundlagen d. Theoretischen Informatik: Logik SS 2007 26 / 35 SS 2007 28 / 35 Beispiele: Familienverhältnisse Beispiel 3.8 „Brüder sind Geschwister“ ∀x ∀y (bruder (x , y ) ⇒ geschwister (x , y )) Beispiel 3.9 Formalisierung von „Bruder, der nicht nur Halbbruder ist“ „bruder“ ist symmetrisch ∀x ∀y (bruder (x , y ) ⇔ bruder (y , x )) ∀x ∀y bruder (x , y ) ⇔ (¬(x = y ) ∧ ∃m∃v (¬(m = v ) ∧ elter (m, x ) ∧ elter (v , x ) ∧ elter (m, y ) ∧ elter (v , y ))) „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 ))) B. Beckert – Grundlagen d. Theoretischen Informatik: Logik SS 2007 27 / 35 B. Beckert – Grundlagen d. Theoretischen Informatik: Logik Wichtige Beweismethoden Teil I Einführung Deduktiver Beweis Aneinanderkettung von Argumenten/Aussagen 1 Organisatorisches 2 Motivation, Inhalt der Vorlesung 3 Kurzer Überblick: Logik 4 Kurzer Überblick: Beweismethoden und Mathematische Konzepte A = A1 , A2 , . . . , An = B Zwischenaussagen Ai müssen schlüssig aus dem Vorhergehenden folgen B. Beckert – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte SS 2007 29 / 35 Verwendet werden dürfen nur – Annahmen aus A – mathematische Grundgesetze – bereits bewiesene Aussagen – logische Schlussfolgerungen B. Beckert – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte Wichtige Beweismethoden Wichtige Beweismethoden Beispiel 4.1 (Deduktiver Beweis) Beweis durch Kontraposition ¬B ⇒ ¬A Beweis in schematischer Darstellung: Aussage x = a2 + b 2 + c 2 + d 2 a ≥ 1, b ≥ 1, c ≥ 1, d ≥ 1 a2 ≥ 1, b2 ≥ 1, c 2 ≥ 1, d 2 ≥ 1 x ≥4 2x ≥ x 2 logisch äquivalent zu SS 2007 32 / 35 A⇒B Widerspruchsbeweis Begründung Gegeben Gegeben (2) und Gesetze der Arithmetik (1), (3) und Gesetze der Arithmetik (4) und Satz aus der Analysis B. Beckert – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte 30 / 35 Beweise, dass nicht A aus der Annahme nicht B folgt: Zu beweisen: Wenn x die Summe der Quadrate von vier positiven ganzen Zahlen ist, dann gilt 2x ≥ x 2 1. 2. 3. 4. 5. SS 2007 SS 2007 31 / 35 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 B. Beckert – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte Wichtige Beweismethoden Mathematische Konzepte Induktionsbeweise Standardinduktion: Gilt A(0) und folgt A(i + 1) aus A(i ), dann gilt A(n) für alle n ∈ N Grundkonzepte (z.B. aus DAS) Elementare Mengentheorie – {x |P (x )} – ∪, ∩, \ 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 Bezug zwischen Mengen, Relationen und Funktionen (wichtig!) Elementare Gesetze der Algebra 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. B. Beckert – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte SS 2007 33 / 35 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 B. Beckert – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte SS 2007 35 / 35 Strukturen wie Listen, (endliche) Folgen, Graphen, Bäume Wörter (Strings) B. Beckert – Grundlagen d. Theoretischen Informatik: Beweismethoden und Mathematische Konzepte SS 2007 34 / 35