Inhalt 0 Einführung Teil I: Formale Grundlagen der Informatik I – Transitionssysteme – Wörter über endlichen Alphabeten – – informelle Beispiele Endliche Automaten und formale Sprachen 1 Mengen, Relationen, Funktionen, . . . Teil II: Formale Grundlagen der Informatik II – mathematische Grundbegriffe – elementare Mengen-Operationen – algebraische Strukturen und Homomorphismen – Logik in der Informatik Martin Otto – elementare Beweismethoden – Beweise mittels Induktion – – Beispiele Sommer 2010 Professor für Mathematische Logik und Grundlagen der Informatik TUD, Fachbereich Mathematik FGdI I Sommer 2010 M Otto Inhalt: FGdI I Literatur 2 Endliche Automaten – Reguläre Sprachen J. Hopcroft, R. Motwani, and J. Ullman: Introduction to Automata Theory, Languages, and Computation, Addison-Wesley, 2nd ed., 2001. (inzwischen auch in deutscher Ausgabe) – – – – Automaten, Wörter, Sprachen – reguläre Sprachen – endliche Automaten als rudimentäres Berechnungsmodell – deterministische und nicht-deterministische Automaten Automatentheorie – Satz von Kleene – Satz von Myhill-Nerode U. Schöning: Theoretische Informatik – kurzgefasst, Spektrum, 4. Aufl., 2001. 3 Grammatiken und die Chomsky-Hierarchie – Grammatiken und Normalformen – Stufen der Chomsky-Hierarchie – kontextfreie/kontextsensitive Sprachen I. Wegener: Theoretische Informatik – eine algorithmenorientierte Einführung, Teubner, 1999. 4 Berechnungsmodelle H.R. Lewis and C.H. Papadimitriou: Elements of the Theory of Computation, Prentice Hall, 2nd ed., 1998. – endliche Automaten, Kellerautomaten, Turingmaschinen – – Turingmaschinen als universelles Berechnungsmodell – – Aufzählbarkeit, Entscheidbarkeit, Grenzen der Berechenbarkeit FGdI I Sommer 2010 M Otto 2/136 3/136 FGdI I Sommer 2010 M Otto 4/136 Kap. 0: Einführung Transitionssysteme: Beispiel Beispiel 0.0.1 Weckzeit-Kontrolle eines Weckers h ∈ H = {0, . . . , 23} m ∈ M = {0, . . . , 59} Zustände: (h, m, q) q ∈ {SETH, SETM, NIL, ERROR} Kapitel 0: Einführung und Beispiele Aktionen/Operationen: seth, setm, +, −, set, reset Typische Transitionen z.B.: seth (h, m, NIL) −→ (h, m, SETH) (in den H-Setzen Modus) set (h, m, SETH) −→ (h, m, NIL) (Ende H-Setzen Modus) seth (h, m, SETH) −→ (h, m, ERROR) (bereits in H-Setzen Modus) + (h, m, NIL) −→ (h, m, ERROR) (da nicht in Setzen Modus) + (h, m, SETH) −→ ((h + 1)mod 24, m, SETH) (H vorstellen) reset (h, m, ERROR) −→ (0, 0, NIL) (reset) FGdI I Kap. 0: Einführung Sommer 2010 M Otto 6/136 Kap. 0: Einführung Transitionssysteme: Beispiel Beispiel 0.0.2 Mann/Wolf/Hase/Kohl das vollständige Transitionssystem auf den erlaubten Zuständen Mann/Wolf/Hase/Kohl Zustände: Verteilungen von {m, w , h, k} rechts/links symbolisiert durch Objekte [m, w , h, kk ], . . . , [m, w kh, k], . . . / [w , hkm, k] 2 / [w , h, kkm] h [w , kkm, h] I 2 [m, w , kkh] { ; w c k h I h h [m, h, kkw ] i I h 5 [m, w , hkk] k ) w [hkm, w , k] I 2 m transportiert k # [w km, h, k] [kkm, w , h] Transitionen: Änderung der Verteilung durch Bootsfahrten, z.B. k I h 2 “erlaubte” Zustände: rechte und linke Seiten 6= [w , h], [h, k], [w , h, k] [m, w , h, kk ] [m, w , h, kk ] u 2 [m, hkw , k] [m, w , h, kk ] h m fährt ohne Passagier I h [ km, w , h, k] FGdI I Sommer 2010 M Otto 7/136 FGdI I Sommer 2010 M Otto 8/136 Kap. 0: Einführung [m, w, h, kk ][m, w, h, kk ] START I h Alphabete/Wörter/Sprachen h [w , kkm, h] 2 I Alphabet: nicht-leere, endliche Menge Σ; a ∈ Σ: Buchstabe/Zeichen/Symbol 2 [m, w , kkh] f 8 w x k I & Σ-Wort: endliche Sequenz von Buchstaben aus Σ, w = a1 . . . an mit ai ∈ Σ [w km, h, k] [kkm, w , h] h I h h [m, h, kkw ] k h Menge aller Σ-Wörter: Σ∗ 3 [m, w , hkk] k + [hkm, w , k] 2 I s w leeres Σ-Wort: ε ∈ Σ∗ 2 Σ-Sprache: Teilmenge L ⊆ Σ∗ , eine Menge von Σ-Wörtern [m, hkw , k] I h Definition 0.0.3 h [ km, w, h, k][ km, w, h, k] Ziel FGdI I Sommer 2010 M Otto 10/136 Kap. 0: Einführung Beispiel Übung 0.0.4 Σ Alphabet, a ∈ Σ. Aufgabe: finde ein möglichst einfaches System, das auf einen (online fortlaufenden) Strom von Signalen aus Σ zu jedem Zeitpunkt die Information bereithält, ob die Anzahl der bisher eingetroffenen a durch 3 teilbar ist. Kapitel 1: Mathematische Grundbegriffe Mengen, Relationen, Funktionen, Strukturen, . . . elementare Beweistechniken • a-Zähler mit Teilbarkeitstest? • Reichen endlich viele Zustände? Wieviele mindestens? • Wie verhält sich “Rest bzgl. Division durch 3” unter Konkatenation? FGdI I Sommer 2010 M Otto 11/136 Kap 1: Grundbegriffe Mengen 1.1.1 Kap 1: Grundbegriffe Georg Cantor (1845–1918) Eine Menge ist eine Zusammenfassung von bestimmten, wohlunterschiedenen Objekten unserer Anschauung oder unseres Denkens, welche Elemente der Menge genannt werden, zu einem Ganzen Mengen 1.1.1 Mengenbegriff (Cantor) • unstrukturierte Sammlung von Objekten (Elementen); z.B. A = {a, b, c} = {b, a, a, c} • die Gesamtheit ihrer Elemente legt die Menge fest (Extensionalität) • über naiv aufzählende Spezifikation und die einfachsten Operationen hinausgehende Prinzipien (v.a. für die Existenz unendlicher Mengen) −→ axiomatische Mengenlehre (Zermelo, Fraenkel, ZFC) Beispiele/Standardmengen ∅={} die leere Menge B = {0, 1} Menge der Booleschen (Wahrheits)werte N = {0, 1, 2, . . .} Menge der natürlichen Zahlen (mit 0) Z/Q/R Mengen der ganzen/rationalen/reellen Zahlen FGdI I Sommer 2010 Kap 1: Grundbegriffe M Otto Mengen 13/136 1.1.1 Mengen/Mengenoperationen Kap 1: Grundbegriffe → Abschnitt 1.1.1 Mengen A, B, . . . Elementbeziehung: a ∈ A FGdI I Sommer 2010 M Otto Mengen 14/136 1.1.1 Boolesche Mengenoperationen Durchschnitt: A ∩ B = {c : c ∈ A und c ∈ B} bzw. a 6∈ A für “nicht a ∈ A” A, B disjunkt gdw A ∩ B = ∅ Teilmengenbeziehung (Inklusion): B ⊆ A Vereinigung: A ∪ B = {c : c ∈ A oder c ∈ B} Mengendifferenz: A \ B = {a ∈ A : a 6∈ B} z.B. ∅ ⊆ {0, 1} ⊆ N ⊆ Z Komplement: für Teilmengen einer festen Menge M, d.h. in P(M): Potenzmenge: P(A) = {B : B ⊆ A} die Menge aller Teilmengen von A B := M \ B Mengengleichheit: A = B gdw (A ⊆ B und B ⊆ A) [genau dieselben Elemente] Extensionalität [Komplement bzgl. M] Definition von Teilmengen: B := {a ∈ A : p(a)} für eine Eigenschaft p FGdI I Sommer 2010 M Otto 15/136 FGdI I Sommer 2010 M Otto 16/136 Kap 1: Grundbegriffe Mengen 1.1.1 Kap 1: Grundbegriffe Mengen 1.1.1 Boolesche Mengenoperationen, Bemerkungen Tupel und Mengenprodukte große Vereinigungen/Durchschnitte über beliebige Familien von Mengen (Ai )i∈I : geordnete Paare: (a, b) mit erster Komponente a, zweiter Komponente b • S • T n-Tupel: (a1 , . . . , an ) mit n Komponenten A = a : a ∈ A für mindestens ein i ∈ I i i i∈I i∈I Kreuzprodukt (kartesisches Produkt): Ai = a : a ∈ Ai für alle i ∈ I Beispiele: Σ∗ = Σ+ = S A × B = {(a, b) : a ∈ A, b ∈ B} A1 × A2 × · · · × An = (a1 , . . . , an ) : ai ∈ Ai für 1 6 i 6 n Σn n∈N Σ∗ \ {ε} (n ∈ N, n > 2) = {w ∈ Σ∗ : |w | > 1} = S n>1 Σ n An = A | ×A× {z· · · × A} Menge aller n-Tupel über A. n mal Bemerkung: wir identifizieren n-Tupel über Σ mit Σ-Wörtern der Länge n und Wörter der Länge 1 mit Buchstaben, Σ1 = Σ. FGdI I Sommer 2010 Kap 1: Grundbegriffe M Otto Relationen 17/136 1.1.2 → Abschnitt 1.1.2 R ⊆ An Menge von n-Tupeln über A Beispiele: Kantenrelation eines Graphen, Präfixrelation auf Ordnungsrelationen, Äquivalenzrelationen, . . . beschreibt E -Kante u E Σ∗ , M Otto 1.1.2 Äquivalenzrelationen Reflexivität: für alle a ∈ A gilt: aRa. Symmetrie: für alle a, b ∈ A gilt: aRb ⇔ bRa. Transitivität: für alle a, b, c ∈ A gilt: (aRb und bRc) ⇒ aRc. / v Äquivalenzrelation auf R ⊆ A2 : reflexiv, symmetrisch und transitiv Beispiele: Gleichheit (über A), Längengleichheit über Σ∗ , gleicher Rest bei Division durch n über N oder Z, . . . Idee: Äquivalenzrelationen als verallgemeinerte Gleichheiten oft auch infixe Notation: aRb statt (a, b) ∈ R Sommer 2010 Relationen 18/136 z.B. Präfixrelation: reflexiv und transitiv, nicht symmetrisch Präfixrelation auf Σ∗ : u 4 v gdw. u Anfangsabschnitt (Präfix) von v 4 = (u, uw ) : u, w ∈ Σ∗ ⊆ Σ∗ × Σ∗ FGdI I M Otto wichtige potentielle Eigenschaften für 2-stelliges R ⊆ A2 : Kantenrelationen in Graph/Transitionssystem: (u, v ) ∈ E Sommer 2010 Kap 1: Grundbegriffe Relationen über einer Menge A n-stellige Relation: FGdI I 19/136 FGdI I Sommer 2010 M Otto 20/136 Kap 1: Grundbegriffe Relationen 1.1.2 Kap 1: Grundbegriffe Äquivalenzklassen: [a]R := b ∈ A : aRb Quotient A/R : die Menge aller Äquivalenzklassen von R, A/R := [a]R : a ∈ A die Äquivalenzklasse von a die natürliche Projektion wichtig: A wird durch die Äquivalenzklassen in disjunkte Teilmengen zerlegt (Lemma 1.1.8), sodass (( " (( "" (( "" (( """ ( " A/R FGdI I ◦ ◦ ◦,, b ◦ ,, &&& ,, & ,, &&& ,,&& • [a] • [b] Sommer 2010 M Otto Kap 1: Grundbegriffe A Funktionen ◦ c ◦ • [c] A/R 21/136 1.1.3 Funktionen und Operationen Funktion f von A nach B: B • YYYYYYYYxyz{ ~}| xyz{ ~}| Y YYYY, f (a) A • FGdI I Kap 1: Grundbegriffe → Abschnitt 1.1.3 a◦ 0 (( ◦a ( " (( "" (( "" (( "" (( "" (( "" ◦ ◦ b ◦ ,,, ◦& ,, && ,, && ,, && ,, && , & ◦ ◦ • [a] Sommer 2010 • [b] c ◦ • [c] M Otto Funktionen 22/136 1.1.3 Funktionen, Operationen, Beispiele n-stellige Funktion auf A: Funktion f : An → B. f : A −→ B a 7−→ f (a) n-stellige Operation auf A: Funktion f : An → A. a f (a) ist das Bild von a unter f ; a ein Urbild von b = f (a). Beispiele: Addition, Multiplikation auf N, Z, . . . Beispiel Konkatenation auf Σ∗ : · : Σ∗ × Σ∗ −→ Σ∗ (u, v ) 7−→ u · v (= uv ). wesentlich: eindeutig definierter Funktionswert f (a) ∈ B für jedes a ∈ A A: Definitionsbereich B: πR : A −→ A/R a 7−→ [a]R = b ∈ A : aRb ordnet jedem Element seine Äquivalenzklasse zu aRb gdw [a]R = [b]R A 1.1.2 Äquivalenzrelationen: Quotient, natürliche Projektion für Äquivalenzrelation R ⊆ A2 auf A, a ∈ A: a ◦( a0 ◦ ( ◦" Relationen Für u = a1 . . . an ; v = b1 . . . bm ist uv := a1 . . . an b1 . . . bm | {z } | {z } u v Zielbereich f (a) Bild von a unter f . f [A] := {f (a) : a ∈ A} ⊆ B Bild(menge) von f . FGdI I Sommer 2010 M Otto 23/136 FGdI I Sommer 2010 M Otto 24/136