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 Ziegler – elementare Beweismethoden – Beweise mittels Induktion – – Beispiele Sommer 2011 Professor für Angewandte Logik TU Darmstadt, Fachbereich Mathematik (Folien wesentlich basierend auf Prof. M Otto) FGdI I Sommer 2011 M.Otto und M.Ziegler 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 2011 M.Otto und M.Ziegler 2/138 3/138 FGdI I Sommer 2011 M.Otto und M.Ziegler 4/138 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 ∈ {NIL, SETH, SETM} Kapitel 0: Einführung und Beispiele Aktionen/Operationen: set, + Typische Transitionen z.B.: (h, m, NIL) (h, m, NIL) (h, m, SETH) (h, m, SETH) (h, m, SETM) (h, m, SETM) FGdI I Kap. 0: Einführung + −→ set −→ + −→ set −→ + −→ set −→ (h, m, NIL) (da nicht in Setzen Modus) (h, m, SETH) (in den H-Setzen Modus) ((h + 1)mod 24, m, SETH) (H vorstellen) (h, m, SETM) (weiter in den M-Setzen Modus) (h, (m + 1)mod 60, SETM) (M vorstellen) (h, m, NIL) (Ende Setzen Modus) Sommer 2011 M.Otto und M.Ziegler 6/138 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 2011 M.Otto und M.Ziegler 7/138 FGdI I Sommer 2011 M.Otto und M.Ziegler 8/138 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 Konkatenation von Wörtern und von Sprachen FGdI I Sommer 2011 M.Otto und M.Ziegler 10/138 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. • L3 = ∗ Σ0∗ ◦ {a} ◦ Σ0∗ ◦ {a} ◦ Σ0∗ ◦ {a} ◦ Σ0∗ , Kapitel 1: Mathematische Grundbegriffe Mengen, Relationen, Funktionen, Strukturen, . . . elementare Beweistechniken Σ0 := Σ \ {a} • a-Zähler mit Teilbarkeitstest? • Reichen endlich viele Zustände? Wieviele mindestens? • Wie verhält sich die Sprache L3 unter Konkatenation? FGdI I Sommer 2011 M.Otto und M.Ziegler 11/138 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 2011 Kap 1: Grundbegriffe M.Otto und M.Ziegler Mengen 13/138 1.1.1 Mengen/Mengenoperationen Kap 1: Grundbegriffe → Abschnitt 1.1.1 Mengen A, B, . . . Elementbeziehung: a ∈ A M.Otto und M.Ziegler Mengen 14/138 1.1.1 Boolesche Mengenoperationen bzw. a 6∈ A für “nicht a ∈ A” A, B disjunkt gdw A ∩ B = ∅ 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 M.Otto und M.Ziegler [Komplement bzgl. M] Kommutativgesetze A ∪ B = B ∪ A, A ∩ B = B ∩ A Assoziativgesetze (A ∪ B) ∪ C = A ∪ (B ∪ C ) und (A ∩ B) ∩ C = A ∩ (B ∩ C ) Distributivgesetze (A ∪ B) ∩ C = (A ∩ C ) ∪ (B ∩ C ) und (A ∩ B) ∪ C = (A ∪ C ) ∩ (B ∪ C ) Definition von Teilmengen: B := {a ∈ A : p(a)} für eine Eigenschaft p Sommer 2011 Sommer 2011 Durchschnitt: A ∩ B = {c : c ∈ A und c ∈ B} Teilmengenbeziehung (Inklusion): B ⊆ A FGdI I FGdI I 15/138 FGdI I Sommer 2011 M.Otto und M.Ziegler 16/138 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 Beispiel (reelle Intervalle): FGdI I Sommer 2011 Kap 1: Grundbegriffe S n∈N T m∈N [n − 1/m, n + 1/m] = ? Bemerkung: wir identifizieren n-Tupel über Σ mit Σ-Wörtern der Länge n und Wörter der Länge 1 mit Buchstaben, Σ1 = Σ. M.Otto und M.Ziegler Relationen 17/138 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 und M.Ziegler 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 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 2011 Relationen 18/138 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 und M.Ziegler wichtige potentielle Eigenschaften für 2-stelliges R ⊆ A2 : Kantenrelationen in Graph/Transitionssystem: (u, v ) ∈ E Sommer 2011 Kap 1: Grundbegriffe Relationen über einer Menge A n-stellige Relation: FGdI I 19/138 FGdI I Sommer 2011 M.Otto und M.Ziegler 20/138 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 (( " (( "" (( "" (( """ ( " ◦ ◦ ◦,, b ◦ ,, &&& ,, & ,, &&& ,,&& • [a] A/R FGdI I ◦ c ◦ • [b] Sommer 2011 Kap 1: Grundbegriffe A • [c] A/R M.Otto und M.Ziegler Funktionen 21/138 1.1.3 Funktionen und Operationen Funktion f von A nach B: B • YYYYYYYY~}| ~}| xyz{ xyz{ Y YYYY, f (a) A • FGdI I Kap 1: Grundbegriffe → Abschnitt 1.1.3 a◦ 0 (( ◦a ( " (( "" (( "" (( "" (( "" (( "" ◦ ◦ b ◦ ,,, ◦& ,, && ,, && ,, && ,, && , & ◦ ◦ • [a] Sommer 2011 • [b] c ◦ • [c] M.Otto und M.Ziegler Funktionen 22/138 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 2011 M.Otto und M.Ziegler 23/138 FGdI I Sommer 2011 M.Otto und M.Ziegler 24/138