Skript zum Seminarteil der Vorlesung Diskrete Mathematik SS 2008 Prof. Dr. C. Schelthoff Graphentheorie und Kryptographie M. Keldenich & M. Rambadt M. Holtkötter & C. Geyer U. Stormanns & S. Weber T. Weber M. Brune & A.Erler St. Meier & St. Graf C. Druska & O. Bücker F. Gülak & S. Both V. Kronhardt B. Beuck & J. Kuhl M. Decker & R. Halver I. Adrian 7. Juli 2008 1 Vorwort Im Rahmen der Vorlesung Diskrete Mathematik wurden von den beteiligten Studenten des Diplomstudiengangs und Masterstudiengangs Technomathematik Seminarvorträge zu den Themen Graphentheorie und Kryptographie gehalten. Teil des Vortrags war die schriftliche Ausarbeitung, welche nun in zusammengefasster Form vorliegt. An dieser Stelle Dank an U. Stormanns für das Zusammenfügen und die Integration der einzelnen Ausarbeitungen. Jülich, im Juli 2008 C. Schelthoff 2 Inhaltsverzeichnis 1 Vorwort 2 2 Fibonacci 2.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Determinanteneigenschaft der Fibonacci-Zahlen 2.3 Formel von Binet . . . . . . . . . . . . . . . . . . . . . 2.4 Der goldene Schnitt . . . . . . . . . . . . . . . . . . . 2.4.1 Goldener Schnitt und Fibonacci Zahlen . . . . 2.5 Euklid‘scher Algorithmus und Satz von Lame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 9 9 11 13 14 15 3 Eulersche Graphen 3.1 Grundbegriffe . . . . . . . . . . . . . . . . . . . . . 3.1.1 Das Haus vom Nikolaus . . . . . . . . . . . 3.1.2 Was ist ein Graph? . . . . . . . . . . . . . . 3.1.3 Begriffe und Merkmale . . . . . . . . . . . . 3.1.4 Der Grad einer Ecke (Valenz) . . . . . . . . 3.1.5 Verschiedene Graphen - gleiche Graphen? . 3.1.6 Petersen Graph . . . . . . . . . . . . . . . . 3.1.7 Wege und Kreise . . . . . . . . . . . . . . . 3.1.8 Anwendungen . . . . . . . . . . . . . . . . . 3.1.9 Aufgaben Grundbegriffe . . . . . . . . . . . 3.1.10 Lösungen Grundbegriffe . . . . . . . . . . . 3.2 Eulersche Graphen . . . . . . . . . . . . . . . . . . 3.2.1 Königsberger Brückenproblem . . . . . . . 3.2.2 Leonhard Euler (1707 - 1783) . . . . . . . . 3.2.3 Eulergraph . . . . . . . . . . . . . . . . . . 3.2.4 Welche Graphen sind eulersch? . . . . . . . 3.2.5 Eulersche Touren - Hierholzer Algorithmus 3.2.6 Anwendungsbeispiele . . . . . . . . . . . . . 3.2.7 Vollständige Vielecke . . . . . . . . . . . . . 3.2.8 Aufgaben Eulersche Graphen . . . . . . . . 3.2.9 Lösungen Eulersche Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 17 17 17 18 19 20 21 22 23 23 24 25 25 25 26 27 28 29 31 32 33 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Hamiltonsche Graphen Und Grade von Ecken 4.1 Hamiltonsche Graphen . . . . . . . . . . . . . . . . . . . 4.1.1 Historisches . . . . . . . . . . . . . . . . . . . . . 4.1.2 Definitionen . . . . . . . . . . . . . . . . . . . . . 4.1.3 Das Grundproblem . . . . . . . . . . . . . . . . . 4.1.4 Hamiltonsche Kreise finden . . . . . . . . . . . . 4.1.5 Hamiltonsche Graphen neu zeichnen . . . . . . . 4.1.6 Wann ist ein Graph nicht hamiltonsch? . . . . . 4.1.7 Wie viele hamiltonsche Kreise gibt es? . . . . . . 4.2 Grade von Ecken . . . . . . . . . . . . . . . . . . . . . . 4.2.1 Es gibt immer zwei Ecken die den gleichen Grad 4.2.2 Das Handshaking lemma . . . . . . . . . . . . . . 4.2.3 Ecken mit ungeradem Grad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . haben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 35 35 35 36 36 38 38 39 39 39 40 40 5 Bäume 5.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . 5.1.1 Was sind Bäume . . . . . . . . . . . . . . . . 5.1.2 Begrifflichkeiten aus der Graphentheorie . . . 5.2 Eigenschaften von Bäumen . . . . . . . . . . . . . . 5.2.1 Grundlagen . . . . . . . . . . . . . . . . . . . 5.2.2 Kanten eines Baums . . . . . . . . . . . . . . 5.2.3 Aufspannende Bäume . . . . . . . . . . . . . 5.3 Algorithmen und Anwendungsbeispiele für Bäume . 5.3.1 Strategie zur Wegfindung in einem Labyrinth 5.3.2 Der Greedy Algorithmus . . . . . . . . . . . . 5.3.3 Der Dijkstra Algorithmus . . . . . . . . . . . 5.3.4 Die kürzeste Tour eines Briefträgers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 41 41 41 42 42 43 44 45 45 46 47 49 6 Bipartite Graphen 6.1 Liste vs. Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.1 Aufgabe 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.2 Aufgabe 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.3 Ein bipartiter Graph muss nicht zusammenhängend sein 6.2 Bipartite Kreise . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.1 Aufgabe 3 . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.2 Sind alle Kreise bipartit? . . . . . . . . . . . . . . . . . 6.2.3 Aufgabe 4 . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.4 Aufgabe 5 . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Bipartite Bäume . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.1 Aufgabe 6 . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.2 Aufgabe 7 . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4 Erkennung bipartiter Graphen . . . . . . . . . . . . . . . . . . 6.4.1 Hypothese & Beweis . . . . . . . . . . . . . . . . . . . . 6.4.2 Beweis der Hypothese . . . . . . . . . . . . . . . . . . . 6.5 Bipartite Graphen und Schach . . . . . . . . . . . . . . . . . . 6.6 Fachwerkhäuser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 50 51 51 52 52 54 54 55 55 56 56 57 58 58 59 61 61 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.7 Definition Matching . . . . . . . 6.7.1 Perfektes Matching . . . . 6.7.2 Maximales Matching . . . 6.7.3 Übung: Aufgabe 17 . . . . 6.8 Heiratsvermittlung mit Graphen 6.9 Heiratssatz . . . . . . . . . . . . 6.9.1 Beweis . . . . . . . . . . . 6.10 Folgerung aus dem Heiratssatz . 6.10.1 Beweis . . . . . . . . . . . 6.11 abschließende Übung . . . . . . . 7 Digraphen 7.1 gerichtete Graphen 7.1.1 Anwendung 7.1.2 Anwendung 7.1.3 Anwendung . . . . . . . . . . – Digraphen . . von Digraphen: von Digraphen: von Digraphen: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 64 65 66 68 69 70 71 71 73 . . . . . . . . . . . . . . Turniergraphen . . . . . kürzeste Wege Problem Teilergraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 75 78 83 84 8 Körper und Flächen 8.1 Einleitung und Motivation . . . . . . . . 8.2 Darstellung von Polyedern in der Ebene 8.2.1 Schrägbilder . . . . . . . . . . . . 8.2.2 Überdehnung einer Fläche . . . . 8.2.3 Ausdehnen einer Kugel . . . . . 8.3 Ebene und planare Graphen . . . . . . . 8.4 Ebene Graphen und Flächen . . . . . . 8.4.1 Die eulersche Formel . . . . . . . 8.5 Die platonischen Körper bzw. Graphen . 8.5.1 Parkettierung . . . . . . . . . . . 8.6 Lösung der Übungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 . 85 . 86 . 86 . 87 . 89 . 90 . 95 . 95 . 98 . 102 . 103 9 Farben 9.1 Vierfarbenproblem . . . . . . . . . . . . . . . 9.1.1 Landkarten . . . . . . . . . . . . . . . 9.1.2 Graphen . . . . . . . . . . . . . . . . . 9.2 Knotenfärbung . . . . . . . . . . . . . . . . . 9.2.1 Chromatische Zahl . . . . . . . . . . . 9.2.2 Obergrenze für die chromatische Zahl 9.2.3 Chromatische Polynome . . . . . . . . 9.2.4 Algorithmus . . . . . . . . . . . . . . . 9.3 Anwendungsbeispiele zu Konfliktgraphen . . 9.3.1 Ampelschaltungen . . . . . . . . . . . 9.3.2 Eurovision Song Contest . . . . . . . . 9.3.3 Museum . . . . . . . . . . . . . . . . . 9.4 Kantenfärbung . . . . . . . . . . . . . . . . . 9.4.1 Chromatischer Index . . . . . . . . . . 9.4.2 Satz von König . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . . . . . . . . . . . . . . . . . . . . . . 104 104 104 106 107 107 109 109 111 115 115 116 117 119 119 121 9.4.3 Lateinische Quadrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 10 Kryptographie: Grundlagen 10.1 Ziele der Kryptographie . . . . . . . . . . . 10.1.1 Einleitung . . . . . . . . . . . . . . . 10.1.2 Geheimhaltug . . . . . . . . . . . . . 10.1.3 Authentikation . . . . . . . . . . . . 10.1.4 Anonymität . . . . . . . . . . . . . . 10.1.5 Protokolle . . . . . . . . . . . . . . . 10.2 Einführung in die Kryptographie . . . . . . 10.2.1 Verschlüsselung . . . . . . . . . . . . 10.2.2 Asymmetrische Verschlüsselung . . . 10.2.3 Einwegfunktion . . . . . . . . . . . . 10.2.4 Kryptogrphische Hashfunktion . . . 10.2.5 Trapdoor-Einwegfunktion . . . . . . 10.2.6 Commitment und Bit-Commitment . 10.2.7 Digitale Signatur . . . . . . . . . . . 10.2.8 Der RSA-Algorithmus . . . . . . . . 11 Kryptographie: Protokolle 11.1 Einleitung . . . . . . . . . . . . . . . . . . . 11.1.1 Protokoll . . . . . . . . . . . . . . . 11.1.2 Protokolle und Kryptographie . . . . 11.1.3 Anforderungen an ein Protokoll . . . 11.2 Authentikationsverfahren . . . . . . . . . . 11.2.1 Passwortverfahren (Festcodes) . . . 11.2.2 Wechselcodes . . . . . . . . . . . . . 11.2.3 Challenge and Response . . . . . . . 11.3 Diskrete Exponentialfunktion . . . . . . . . 11.4 Public-Key-Protokolle . . . . . . . . . . . . 11.4.1 Diffie-Hellman-Schlüsselvereinbarung 11.4.2 ElGamal-Verschlüsselungsverfahren . 11.4.3 ElGamal-Signatur . . . . . . . . . . 11.4.4 Blinde Signaturen . . . . . . . . . . 11.5 Shamirs No-Key-Protokoll . . . . . . . . . . 11.6 Knobeln über Telefon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 124 124 124 125 126 126 126 126 130 132 133 133 134 135 138 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 142 142 142 143 143 143 144 145 147 148 148 151 152 154 154 156 12 Zero-Knowledge-Verfahren 12.1 Interaktive Beweise . . . . . . . . . . . . . . . . . . 12.1.1 Cardanosche Formeln . . . . . . . . . . . . 12.1.2 Allgemeines Prinzip nach L.Babai ( Merlin“ ” 12.1.3 Zero-Knowledge-Eigenschaft . . . . . . . . . 12.2 Zero-Knowledge-Verfahren . . . . . . . . . . . . . . 12.2.1 Die magische Tür . . . . . . . . . . . . . . . 12.2.2 Isomorphie von Graphen . . . . . . . . . . . 12.2.3 Fiat-Shamir-Algorithmus . . . . . . . . . . . . ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 159 160 161 163 164 164 165 167 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.3 Existenz von Zero-Knowledge-Beweisen . . . . . 12.4 Erweiterungen, Verbesserungen und sonstiges . . 12.4.1 Two-Prover Verfahren . . . . . . . . . . . 12.4.2 Witness-Hiding . . . . . . . . . . . . . . . 12.4.3 Nicht-Interaktive Zero-Knowledge-Beweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 171 171 171 173 13 Der Beweis des Fünffarbensatzes und Historie des Vierfarbensatzes 13.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.2 Der Vierfarbensatz . . . . . . . . . . . . . . . . . . . . . . . . . . 13.2.1 Geschichte . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.2.2 Der Beweis mittels Computer . . . . . . . . . . . . . . . . 13.3 Der Fünffarbensatz . . . . . . . . . . . . . . . . . . . . . . . . . . 13.3.1 Geschichte . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.3.2 Bezug zur Graphentheorie . . . . . . . . . . . . . . . . . . 13.3.3 Der Beweis . . . . . . . . . . . . . . . . . . . . . . . . . . 13.4 Fazit und Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 174 174 174 176 176 176 177 179 182 A Literaturverzeichniss A.1 Fibonacci . . . . . . . . . . . . . . . . . . . . A.2 Eulersche Graphen . . . . . . . . . . . . . . . A.3 Hamiltonsche Graphen und Grade von Ecken A.4 Bäume . . . . . . . . . . . . . . . . . . . . . . A.5 Bipartite Graphen . . . . . . . . . . . . . . . A.6 DiGraphen . . . . . . . . . . . . . . . . . . . A.7 Körper und Flächen . . . . . . . . . . . . . . A.8 Farben . . . . . . . . . . . . . . . . . . . . . . A.9 Kryptogaphie: Grundlagen . . . . . . . . . . . A.10 Kryptogaphie: Protokolle . . . . . . . . . . . A.11 Zero Knowledge Verfahren . . . . . . . . . . . A.12 Beweis 5 Farben Satz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 183 183 183 184 184 184 185 185 185 186 186 186 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Abbildungsverzeichnis 191 Tabellenverzeichnis 192 7 2 Fibonacci 2.1 Einleitung Als Entdecker der so genannten Fibonacci-Zahlen gilt der 1175 geborene Leonardo von Pisa, alias Fibonacci ( Sohn des Bonacci “). Heutzutage wird dieser aufgrund seiner Werke und ” Schriften als einer der bedeutensten Mathematiker des Mittelalters angesehen. Eines seiner wichtigsten Bücher heißt Liber Abaci ( Das Buch vom Abakus“). Darin stellt er folgende ” Aufgabenstellung: Betrachtet man die Vermehrung eines Kaninchenpaares unter folgenden Bedingungen: • Jedes Kaninchenpaar wird im Alter von 2 Monaten gebärfähig • Jedes Kaninchenpaar bringt ab der Gebärreife jeden Monat ein neues Paar zur Welt • Die Kaninchen sterben nicht, so dass die Gesamtanzahl an Kaninchen monoton wächst Wie berechnet man nun die Anzahl der Kaninchen im Monat n? Zur Herleitung der Formel betrachtet man zunächst die ersten 6 Monate dieser Kaninchen Vermehrung. Im ersten und im zweiten Monat existiert nur ein Kaninchenpaar, welches im dritten Monat das erste neue Paar zur Welt bringt. Es exisitieren ab dem dritten Monat also 2 Paare. Im vierten Monat wird nur ein weiteres Paar geboren. Verfolgt man diese Reihe weiter, so ergibt sich folgende Tabelle: n Fn 1 1 2 1 3 2 4 3 5 5 6 8 Tabelle 2.1: Mit n wird der Monat, mit Fn die Anzahl der Kaninchenpaare im Monat n bezeichnet Möchte man Fn , die Anzahl der Kaninchen im n-ten Monat, berechnen, erkennt man, dass sie sich als Summe der beiden vorherigen Monate darstellen lässt. Als Formel ergibt sich folgende Rekursion: Fn+1 = Fn + Fn−1 , für n ≥ 2 und F1 = 1, F2 = 1 Die nach dieser Formel erzeugten Zahlen werden Fibonacci-Zahlen genannt. 8 (2.1) n Fn 1 1 2 1 3 2 4 3 5 5 6 8 7 13 8 21 9 34 10 55 11 89 12 144 13 233 Tabelle 2.2: Die ersten 13 Fibonacci Zahlen 2.2 Beispiel Die auf diese Weise gefundenen Fibonacci-Zahlen lassen sich auf verschiedene Alltagsfragen anwenden. Dabei wird die Logik, die hinter dieser Zahlenfolge steht, deutlich. Betrachtet man beispielsweise eine Treppe mit n Stufen. Man möchte nun die Anzahl der verschiedenen Möglichkeiten errechen diese Treppe hinaufzusteigen. Dabei ist zu beachten, dass die erste Stufe immer gegangen und danach in Einer- oder Zweierschritten weiter gegangen wird. Für eine Treppe mit 6 Stufen sind die Möglichkeiten in folgender Tabelle aufgetragen: Möglichteit 1 2 3 4 5 6 7 8 Schrittfolge 1,1,1,1,1,1 1,2,1,1,1 1,1,2,1,1 1,1,1,2,1 1,1,1,1,2 1,1,2,2 1,2,1,2 1,2,2,1 Aus der Tabelle wird ersichtlich, dass es 8 Möglichkeiten gibt, die Treppe hinaufzugehen, also gilt F6 = 8. Betrachtet man eine Treppe mit 5 Stufen, so ergeben sich 5 Möglichkeiten, bei einer Treppe aus einer Stufe bzw. aus zwei Stufen gibt es jeweils nur eine Möglichkeit hinaufzugehen. Betrachtet man eine beliebige, n-stufige Treppe, so errechnen sich die Möglichkeiten diese hinaufzugehen aus der Fibonacci-Folge: Fn+1 = Fn + Fn−1 mit F1 = 1 und F2 = 1. Dass auch dieses Problem auf die Fibonacci-Zahlen führt ist jedoch kein Zufall. Zur Berechnung der Möglichkeiten n+1 Stufen hinaufzugehen, reicht die Betrachtung der Anzahl der Möglichkeiten die Stufen n und die Stufe n − 1 zu erreichen aus. Nur von diesen beiden Stufen ist es möglich die nte Stufe direkt zu erreichen. Addiert man also die Anzahl der Möglichkeiten diese beiden Stufen zu erreichen, erhält man direkt die Gesamtanzahl für den n-ten Schritt. 2.2.1 Determinanteneigenschaft der Fibonacci-Zahlen Nimmt man sich drei beliebige, aufeinanderfolgende Fibonacci-Zahlen, so gilt folgender Zusammenhang: Fn+1 Fn−1 − Fn2 = (−1)n (2.2) Anschaulich bedeutet dies, dass ein Rechteck mit den Seitenlängen Fn+1 und Fn−1 sich lediglich um eine Einheit von einem Quadrat der Seitenlänge Fn unterscheidet. 9 5 8 8 8 5 5 13 Abbildung 2.1: Quadrat Beweis mit vollständiger Induktion: Induktionsanfang: für n=2: F3 · F1 − F22 = 1 = (−1)2 Induktionsvoraussetzung: ∀n ≥ 2 gilt: Fn+1 Fn−1 − Fn2 = (−1)n Induktionsbehauptung: 2 dann gilt auch: Fn+2 Fn − Fn+1 = (−1)n+1 Induktionsschluss: 2 Fn+2 Fn − Fn+1 = = = = I.V. = = Fn+2 Fn − Fn+1 · (Fn + Fn−1 ) Fn (Fn+2 − Fn+1 ) − (Fn+1 · Fn−1 ) Fn2 − Fn+1 · Fn−1 −(Fn+1 · Fn−1 − Fn2 ) −(−1)n (−1)n+1 (2.3) Um diese Formel zu verdeutlichen, betrachtet man einfach ein Quadrat, mit der Seitenlänge einer Fibonacci-Zahl, je größer desto besser. Im folgenden Beispiel wird ein Quadrat der Seitenlänge 13 betrachtet: Der Flächeninhalt des Quadrates beträgt 13·13 = 169. Zerschneidet 10 13 8 5 8 5 8 13 Abbildung 2.2: rechteck man dieses Quadrat, wie in der Zeichnung vorgegeben ist und legt es zu einem Rechteck der Länge 8 und 21 zusammen, ergibt sich folgende Abbildung: Obwohl dieses Rechteck scheinbar aus den gleichen Flächen wie das Quadrat gebildet wurde, ergibt sich hier ein Flächeninhalt von 21 · 8 = 168. Es scheint also eine Flächeneinheit verloren gegangen zu sein. Wie kann das sein? Des Rätels Lösung ist lediglich eine optische Täuschung. Bei der Neuordnung der einzelen Bestandteile zum Rechteck überlagern sich zwei Einzelstücke. Für das menschliche Auge ist dies jedoch kaum wahrnehmbar. Dass dies tatsächlich so ist, wird deutlich, wenn man 5 = 0.38462) die Steigungen der Trapeze ( 38 = 0.375) mit den Steigungen der Dreiecke ( 13 vergleicht. Diese müssten bei korrekter Neuordnung übereinstimmen. 2.3 Formel von Binet Das rekursive Bildungsgesetz, Fn = Fn−1 + Fn−2 erlaubt es nicht Fibonacci-Zahlen der Größenordnung F30 oder F40 direkt auszurechnen. Stattdessen muss man zur Berechnung von F30 auch die ersten 29 Fibonacci-Zahlen berechnen. Das Ziel ist es also eine direkte Formel zu finden. Dazu betrachtet man die Fibonacci-Folge in Matrixschreibweise: Fn+1 1 1 Fn = (2.4) Fn 1 0 Fn−1 Aus dieser Formel lässt sich durch einfaches Nachrechnen folgendes Bildungsgesetz zeigen: n Fn+1 1 1 1 = (2.5) Fn 1 0 0 Das bedeutet, dass durch und anschließender Multiplikation n-fache n Matrixmultiplikation 1 1 1 der neuen Matrix Mn = mit dem Vektor 1 0 0 die Fibonacci-Zahlen direkt ausgerechnet werden können. Die einzige Problematik an dieser Formel ist die Berechnung der n-fachen Matrixmultiplikation von Mn . Zur Lösung dieses Problems berechnet man die Eigenwerte und Eigenvektoren von Mn . Die Eigenwerte ergeben sich als Nullstellen des charakteristischen Polynoms von Mn . Betrachtet man zunächst M1 = 11 √ √ 1 1 , so ergeben sich als Eigenwerte λ1 = 1+2 5 und λ2 = 1−2 5 . Aus der Tatsache, dass 1 0 det(A · B) = det(A) · det(B) gilt, folgt für die Eigenwerte von Mn : √ !n √ !n 1+ 5 1− 5 und Λ2 = . (2.6) Λ1 = 2 2 Die zugehörigen Eigenvektoren lauten: ~1 = E √ 1+ 5 2 1 ! √ 1− 5 2 ~2 = und E 1 ! (2.7) √ √ Die Zahl −1+2 5 = − 1−2 5 heißt goldener Schnitt“. Die Bedeutung dieser Zahl wird später ” noch näher erläutert. Mit Hilfe des folgenden Satzes: Satz: Sei M eine diagonalisierbare Matrix, S eine Basis von Eigenvektoren und D die Diagonalmatrix der Eigenwerte von M, dann kann die Matrix M dargestellt werden als M = S · Dn · S −1 . Also lässt sich Mn darstellen als Produkt aus der Eigenvektormatrix, der Diagonalmatrix und der Inversen der Eigenvektormatrix: 1 1 1 0 n = √ 1+ 5 2 1 √ 1− 5 2 1 ! 1+√5 n 2 0 0 √ n √1 1− 5 5 2 1 −1 √ 5−1 √2 5+1 2 ! (2.8) Wendet man diese Darstellung auf Mn an und rechnet die explizite Darstellung [2.5] aus, ergibt sich für die n-te Fibonacci-Zahl: " √ !n √ !n # 1 1+ 5 1− 5 Fn = √ − (2.9) 2 2 5 Aus der Formel [2.5] kann man zusätzlich noch folgende Darstellung ableiten: n Fn+1 Fn 1 1 = Fn Fn−1 1 0 (2.10) Mit Hilfe dieser Formel und der Tatsache, dass die Determinate eines Matrixproduktes gleich dem Produkt der einzelenen Determinaten ist, det(AB) = det(A)det(B), kann man leicht beweisen: die Determinateneigenschaft n Fn+1 Fn 1 1 2 det = Fn+1 Fn−1 − Fn und det = (−1)n Fn Fn−1 1 0 12 1-X X Abbildung 2.3: goldener Schnitt 2.4 Der goldene Schnitt Der oben bereits erwähnte goldene Schnitt beschreibt ein bestimmtes Teilungsverhältnis zweier Strecken zueinander: Betrachtet man eine Strecke der Länge 1 und unterteilt diese in zwei unterschiedlich große Strecken, wobei das Verhältnis der längeren Strecke zur Gesamtstrecke gleich dem Verhältnis des kürzeren Teilstücks zum längeren Teilstück sein muss. Also: 1 x = x 1−x Formt man diese Gleichung um, so erhält man folgende quadratische Gleichung: x2 = 1 − x ⇔ x2 + x − 1 = 0 Berechnet man die Nullstellen dieser Gleichung, so ergibt sich: √ −1 ± 5 x1,2 = 2 (2.11) (2.12) (2.13) √ Die positive Lösung, x1 = −1+2 5 ≈ 0.618, bezeichnet man als goldenen Schnitt “. Dieses ” Teilungsverhältnis kann man häufig in der Natur wieder. Betrachtet man beispielsweise den menschlichen Körper und bildet das Verhältnis zwischen der Gesamtgröße und der Höhe des Bauchnabels, so sieht man, dass dieses Verhältnis relativ genau dem goldenen Schnitt entspricht. Dieser ergibt sich ebenfalls, wenn man den Abstand des Bauches zu den Füssen im Verhälnis zum Abstand des Bauches zum Kopf setzt. Von diesem naturgegebenen Verhältnis inspiriert, malten viele Künstler ihre Bilder im goldenen Schnitt. Speziell Portaits sind oftmals so konzipiert, dass die Größe des Kopfes im Verhälnis zur Größe des Rumpfes im goldenen Schnitt steht. Ein ebenfalls fazinierendes Beispiel für das Auftreren des goldenen Schnitts, ist die Anordnung der Blätter einiger Pflanzenarten: Diese ordnen sich dabei im so genannten goldenen ” Winkel “an. Dieser entsteht, wenn man den Vollwinkel von 360◦ im Verhältnis des goldenen Schnitts teilt: φ1 = 0.618 · 360◦ ≈ 222.5◦ φ2 = 0.618 · 222.5◦ ≈ 137.5◦ 13 (2.14) Der kleinere Winkel, φ2 = 137.5◦ wird dabei als goldener Winkel bezeichnet. Wie man in obiger Graphik erkennen kann, bedeutet diese Anordnung der Blätter, dass sie in einer Spirale angeordnet werden. Auffällig ist dabei, dass es bei übereinanderliegenden Blättern nur geringfügige Überdeckungen gibt. Als möglichen Grund für die Anordnung der Blätter im goldenen Winkel, nennen Biologen das Bestreben der Pflanze möglichst alle Blätter mit einem Maximum an Sonnenlicht zu versorgen. Das bedeutet, aus dem Bestreben der maximalen Lichtversorgung der Blätter, ergibt sich als optimaler Winkel, der goldenen Winkel. 2.4.1 Goldener Schnitt und Fibonacci Zahlen Außer der Tatsache, dass der goldene Schnitt in der Formel von Binet [2.8] vorkommt, stehen dieser und die Fibonacci-Zahlen noch in einem weiterem Zusammenhang: Betrachtet man das Verhältnis von zwei aufeinander folgenen Fibonacci-Zahlen, konvergiert dieses für n gegen unendlich gegen den goldenen Schnitt. Es gilt also: √ fn −1 + 5 lim = ≈ 0.618 n→∞ fn+1 2 fn fn+1 , so (2.15) Nimmt man beispielsweise das Verhältnis der Fibonacci-Zahlen f9 = 34 und f10 = 55, so kann man die Konvergenz gegen den goldenen Schnitt bereits erkennen: f9 34 = ≈ 0.618 f10 55 14 (2.16) 2.5 Euklid‘scher Algorithmus und Satz von Lame Der Euklid‘sche Algorithmus dient zur Berechnung des größten gemeinsamen Teilers (ggT) zweier Zahlen. Er lautet folgendermaßen: Euklid‘scher Algorithmus: Gegeben seien zwei natürliche Zahlen a, b mit a > 0: 1. Berechne die Zerelgung b = q · a + r mit q, r natürliche Zahlen 2. a) Ist r = 0, dann ist (a,b) = a b) Ist r 6= 0, dann ist (b,a) = (a,r), setze b := a und a := r und springe wieder zu 1. Wendet man diesen Algorithmus auf zwei beliebige, aufeinanderfolgende Fibonacci-Zahlen an, so erkennt man, dass diese Fibonacci-Zahlen stets teilerfremd sind, also ggT (Fn+1 , Fn ) = 1. Zum Beweis betrachtet man die Definition der Fibonacci-Zahlen und die Vorgehensweise des Euklid‘schen Algorithmus: Fn+1 = 1 · Fn + Fn−1 Fn = 1 · Fn−1 + Fn−2 .. . 1(F2 ) = 1(F1 ) + 0 Man sieht, dass man zur Berechnung von ggT (Fn+1 , Fn ) genau n Schritte benötigt. Zudem wird deutlich, dass dies die maximale Anzahl an Schritten ist, die im Euklid‘schen Algorithmus benötigt werden kann. Dieses Resultat kann man verwenden, um folgendes Lemma zu beweisen: Lemma von Lame: Ist 0 < a < b, so ist die Zahl der Schritte beim euklid‘schen Algorithmus nicht größer als das fünffache der Ziffernzahl von a. Da zwei aufeinanderfolgende Fibonacci-Zahlen die maximale Anzahl von n Schritten benötigen, läuft der Beweis über die Fibonaccizahlen. Beweis: Zunächst zeigt man mit Hilfe von vollständiger Induktion, dass Fn+5 > 10Fn für n ≥ 2, gilt: Induktionsanfang: für n = 2 gilt: F7 > 10F2 , also 13 > 10 Induktionsvoraussetzung: 15 für n ≥ 2 gilt: Fn+5 > 10Fn Induktionsbehauptung: dann gelte auch: Fn+6 > 10Fn+1 für n ≥ 2 Induktionsschluß: Fn+6 = I.V. > I.V Fn+5 + Fn+4 10Fn + Fn+4 > 10Fn + 10Fn−1 = 10Fn+1 (2.17) Führt man diese Induktion fort, so sieht man, dass sich daraus folgender Zusammenhang ergibt: Fn+5l > 10Fn+5(l−1) > 102 Fn+5(l−2) > ... > 10l Fn (2.18) Nimmt man sich nun ein n mit n > 5lbzw.n ≥ 5l + 1, so ergibt sich für eine Zahl a = Fn folgende Abschätzung: a = Fn ≥ F5l+1 > 10l f1 = 10l (2.19) Diese Gleichung besagt, dass die Anzahl der Ziffern der Zahl a l + 1 beträgt. Umgekehrt folgt für a besitzt l Ziffern “, n ≤ 5l. Die Anzahl der Schritte im Euklid’schen Algorithmus ist ” also kleiner gleich dem fünfachen der Anzahl der Ziffern von a. Damit ist das Lemma von Lame bewiesen. 16 3 Eulersche Graphen 3.1 Grundbegriffe 3.1.1 Das Haus vom Nikolaus Abbildung 3.1: Nikolaus - Haus Dieses Bild kennt jeder. Man malt es mit Hilfe des Spruches “Das - ist - das - Haus - vom - Ni - ko - laus.” ohne den Stift abzusetzen und ohne eine Linie doppelt zu zeichnen. Am besten beginnt man dazu links unten (wie in Abbildung 1) oder rechts unten, weil dort drei Linien zusammentreffen. In diesen beiden Punkten fängt man an und hört auch dort auf. Bei den anderen Punkten grenzen zwei oder vier Linien an, d.h. man kann hinkommen und wieder weggehen. Einfacher wird es, wenn das Nikolaus - Haus einen “Keller” bekommt, so kann man an jedem beliebigen Punkt anfangen: Abbildung 3.2: Nikolaus - Haus mit Keller 3.1.2 Was ist ein Graph? Definition: Graph Ein Graph G ist ein Paar von endlichen Mengen E und K. E ist nicht die leere Menge. Jedem Element von K ist eine zweielementige oder einelementige Teilmenge von E zugeordnet. Die Elemente von E heißen Ecken und von K Kanten. Ein Graph besteht aus Ecken bzw. Knoten und Kanten. Jede Kante verbindet zwei Ecken. Das Nikolaus Haus besteht aus 5 Ecken und 8 Kanten und hat damit alles, was ein Graph braucht. 17 Abbildung 3.3: Nikolaus- Haus als Graph 3.1.3 Begriffe und Merkmale • Mehrfachkanten (parallele Kanten): mehrere Kanten zwischen zwei Ecken • Schlinge: eine Kante, die eine Ecke mit sich selbst verbindet • einfacher Graph: ein Graph, der keine parallelen Kanten und keine Schlingen hat Abbildung 3.4: Graph mit Besonderheiten • • • • • • endlicher Graph: Menge der Ecken und Kanten ist endlich unendlicher Graph: Menge der Ecken und Kanten ist unendlich gerichteter Graph: Kanten sind gerichtet durch Pfeile statt Linien ungerichteter Graph: Kanten als normale Linien gewichteter Graph: Kanten sind mit Gewichten/Werten versehen (k-) regulärer Graph: jede Ecke des Graphen hat den gleichen Grad k, 3-regulärer Graph heißt auch kubischer Graph • isolierte Ecke: eine Ecke, die nicht mit einer anderen Ecke verbunden ist Abbildung 3.5: Graph mit zwei isolierten Ecken • zusammenhängender Graph: ein Graph, der nicht aus mehreren Teilen besteht 18 Abbildung 3.6: zusammenhängender und nicht zusammenhängender Graph • vollständiger Graph: ein Graph, bei dem man von jeder Ecke zu jeder anderen gelangen kann (je zwei Ecken sind miteinander verbunden), es sind also keine weiteren Verbindungen mehr möglich Abbildung 3.7: Graph mit n Ecken wird mit Kn bezeichnet • Komponenten: mehrere Teile eines nicht zusammenhängenden Graphen, die jeder für sich zusammenhängend sind → maximal zusammenhängender Graph, nur ein leerer Graph hat keine Komponenten Abbildung 3.8: Graph aus 3 Komponenten • Multigraph: mehrfache Kanten zwischen den Ecken • Hypergraph: Kanten verbinden mehr als nur zwei Ecken 3.1.4 Der Grad einer Ecke (Valenz) Der Grad einer Ecke (Valenz) bezeichnet die Anzahl der Kanten, die in einer Ecke zusammentreffen. Isolierte Ecken haben den Grad 0. Eine Schlinge erhöht den Grad einer Ecke um 2. Abbildung 3.9: Graph und seine Eckengrade 19 3.1.5 Verschiedene Graphen - gleiche Graphen? Jeder Graph lässt sich durch eine Zeichnung repräsentieren. Dabei müssen die Kanten nicht notwendig als gerade Strecke gezeichnet werden, sie dürfen verbogen, gedehnt oder zusammengezogen werden. Bei einem Graphen ist also nicht die Form entscheidend. Auch die Lage der Ecken ist nicht wichtig, man kann sie beliebig verschieben. Dies kann man bei der Verwanldlung des Nikolaus-Hauses gut sehen: Abbildung 3.10: Verwandlung des Nikolaus- Hauses Definition: Isomorphie Zwei Graphen G1 (E1 , K1 ) und G2 (E2 , K2 ) heißen isomorph, wenn es eine bijektive Abbildung φ : E1 → E2 und eine bijektive Abbildung ψ : K1 → K2 gibt, die die folgende Eigenschaft hat: Wenn k ∈ K1 eine Kante zwischen den Ecken A und B von G1 ist, gilt: ψ(k) ist eine Kante zwischen den Ecken ϕ(A) und ϕ(B). Zwei Graphen sind isomorph, wenn man den einen Graph durch Umzeichnen des anderen erhält. Alle elastischen Verformungen sind erlaubt! Man darf jedoch Kanten nicht durchschneiden oder verknoten und Ecken nicht so verschieben, dass sie aufeinander fallen. Folgende Graphen sind nicht isomorph: • weil sie nicht die gleiche Anzahl von Ecken haben. • weil sie verschieden viele Kanten haben. • weil die Grade der Ecken nicht übereinstimmen. 20 • weil in dem linken Graphen die Ecken mit dem Grad 3 direkt miteinander verbunden sind, in dem rechten jedoch nicht. Einfacher ist der Nachweis der Isomorphie über eine Tabelle. In der Graphentheorie ist der übliche Name Adjazenzmatrix. Für die Repräsentation von Graphen im Computer wird häufig eine Adjazenzmatrix oder eine Adjazenzliste benutzt. Ein Graph mit n Knoten wird durch eine n×n -Matrix dargestellt. Man kann einige Eigenschaften auf einen Blick erkennen. Ob ein Graph Schlingen hat, sieht man in der Diagonale von links oben nach rechts unten. Parallele Kanten erkennt man daran, dass in der Tabelle eine andere Zahl als 0 oder 1 steht. Abbildung 3.11: nicht einfacher Graph als Zeichnung und als Tabelle Zwei Graphen sind isomorph, wenn ihre Tabellen gleich sind. Dazu müssen die entsprechenden Ecken gleich bezeichnet werden. 3.1.6 Petersen Graph Abbildung 3.12: Petersen- Graph 21 Der Petersen Graph wurde nach dem dänischischen Mathematiker Julius Petersen (1839 - 1919) benannt. Mit dem Fünfeck und dem fünfzackigen Stern in der Mitte hat dieser Graph viele interessante Eigenschaften: • • • • • • • Kubisch bzw. 3-regulär (jede Ecke hat Grad 3) Nicht planar Zusammenhängend Symmetrisch Die Länge des kürzesten Kreises ist 5 Chromatische Zahl 3 Chromatischer Index 4 3.1.7 Wege und Kreise Die Menge der Ecken darf nicht leer sein, wohl aber die Menge der Kanten. Ein kantenloser Graph besteht also aus lauter isolierten Ecken. Abbildung 3.13: kantenloser Graph Ein Kantenzug ist eine Folge von aneinander stoßenden Kanten. Man zeichnet ihn ohne den Stift abzusetzen. Es ist erlaubt, über dieselbe Kante mehrmals zu fahren und eine Ecke mehrmals zu besuchen. Ein Kantenzug darf sich also selbst überkreuzen. Der Kantenzug heißt geschlossen, wenn der Ausgangspunkt dem Endpunkt entspricht. Abbildung 3.14: abcdef bzw. abcdea ist ein Kantenzug Ein Graph heißt zusammenhängend, wenn es zu je zwei Ecken einen Kantenzug gibt, der sie verbindet. Ist ein Graph unterbrochen oder existieren isolierte Punkte, so ist der Graph nicht zusammenhäängend. Ein Kantenzug, bei dem jede Kante nur (maximal) einmal durchlaufen wird, heißt Weg, man bezeichnet ihn durch die natürliche Folge seiner Ecken. Einen geschlossenen Weg nennt man Kreis und die Länge des Weges wird durch die Anzahl der Kanten definiert. Die Länge des kürzesten Weges bezeichnet man mit Abstand oder Distanz. Der größte Abstand zwischen zwei Ecken in einem Graph heißt Durchmesser. Als Taillenweite kennzeichnet man die Länge eines kürzesten nicht trivialen Kreises. Die Länge des längsten Kreises heißt Umfang. Enthält ein Graph keinen Kreis, so habe er die Taillenweite ∞ und den Umfang 0. Eine 22 Ecke heißt zentral, wenn ihr größter Abstand von anderen Ecken möglichst klein ist. Dieser Abstand heißt Radius. Eine Ecke, die zwei andere Ecken der gleichen Komponente trennt, bezeichnet man als Artikulation. Eine Kante heißt Brücke, wenn sie ihre Endecken trennt bzw. sie auf keinem Kreis liegt. Abbildung 3.15: Graph mit Artikulation v, x, y und Brücke e = xy 3.1.8 Anwendungen Mit Graphen können Strukturen, Hierarchien, Abläufe und dergleichen dargestellt und untersucht werden. Einige Beispiele: • • • • • Verkehrswesen: Rundreiseprobleme, Flugoptimierung, Speditionseinsätze EDV: Berechnen von Netzwerken Elektronik Chemie: Moleküle, Strukturformeln Soziologie: Soziogramme 3.1.9 Aufgaben Grundbegriffe 23 1. Bestimme zum Nikolaus - Haus den Grad jeder Ecke. Ist der Graph zusammenhängend? Vollständig? 2. Sind die zwei folgenden Graphen isomorph? 3. Gesucht ist die Tabelle (Adjazenzmatrix) zu dem folgenden Graph: 3.1.10 Lösungen Grundbegriffe 1. Das Nikolaus Haus ist zusammenhängend, da keine isolierte Ecke existiert und der Graph aus einer Komponente besteht. Er ist nicht vollständig, weil 2 Kanten fehlen. 2. Diese Graphen sind tatsächlich isomorph. Jede der Ecken A, B, C ist mit jeder der Ecken D, E, F verbunden. Die Ecken A, B, C, sind untereinander nicht verbunden, ebenso D, E, F. Das gleiche gilt für U, W, Y sowie V, X, Z. 3. Tabelle: 24 3.2 Eulersche Graphen 3.2.1 Königsberger Brückenproblem In Königsberg (heute Kaliningrad) gibt es den Fluss Pregel, der sich im Stadtgebiet mehrfach teilt. Abbildung 3.16: Stadtplan von Königsberg im 18. Jahrhundert Königsberger Brückenproblem: Kann man einen Spaziergang durch die Stadt machen und dabei über jede Brücke gehen, aber nur einmal? Nach dem Spaziergang soll man zum Ausgangspunkt zurückkehren. Leonard Euler hat diese Aufgabe 1736 als erster gelöst. Seine Lösung ist auf die Graphentheorie zurückzuführen. Die Stadtteile entsprechen hierbei den Ecken und die Kanten den Spazierwegen über die Brücken. Abbildung 3.17: Stadtplan von Königsberg als Graph Lösungsidee: Alle Ecken haben ungeraden Grad. Ein Rundgang, bei dem man zum Ausgangspunkt zurückkehrt, gibt es also nicht. Die Königsberger hatten also keine Gelegenheit zu diesem Spaziergang. 3.2.2 Leonhard Euler (1707 - 1783) Leonhard Euler (geb. 15. April 1707 in Basel; gest. 18. September 1783 in Sankt Petersburg) war ein bedeutenter Mathematiker. Ab 1720 studierte er an der Universität Basel Mathematik, eine Zeit lang auch Theologie. 1727 berief ihn Daniel Bernoulli an die Universität Sankt Petersburg. 1741 wurde ihm von Friedrich dem Großen eine Stelle an der Berliner Akademie angeboten. Nach 25 Jahren kehrte er aber dann 1766 zurück nach St. Petersburg. 25 Wichtige Einzelleistungen sind: der Eulersche Polyedersatz, die Eulersche Gerade, die Eulersche Konstante, die Lösung des Königsberger Problems sowie die Feststellung, dass der Logarithmus unendlich vieldeutig ist. Ein großer Teil P der heutigen mathematischen Symbolik geht auf Euler zurück (z. B. e, π, i, Summenzeichen , f(x) als Darstellung für eine Funktion). Euler kann als Begründer der Analysis angesehen werden. Nach Euler benannte Begriffe: Euler-Bernoulli-Gleichung, Euler-Hierholzer-Satz, Eulersche Bewegungsgleichung, Eulersche Differentialgleichung, Eulersche Formel (Flächenkrümmung), Eulersche Formeln (harmonische Analyse), Eulersche ϕ -Funktion, Eulersche Identität, Eulersche Zahl: e = 2, 718.., Eulersches Polygonzugverfahren, Eulersche Pseudoprimzahl, ... Wesentliche Beiträge lieferte er auch zur Astronomie, zur Mondtheorie und Himmelsmechanik, zum Schiffsbau, zur Kartographie, Optik, Hydraulik, Philosophie und Musiktheorie. 3.2.3 Eulergraph Beim Königsberger Brückenproblem haben wir bereits, ohne es zu wissen, nach den Bedingungen eines eulerschen Graphen gesucht. Der gesuchte Kantenzug sollte folgende drei Eigenschaften erfüllen: • Keine Kante kommt mehrfach vor • Sämtliche Kanten des Graphen sind enthalten • Anfangs- und Endpunkt stimmen überein Einen solchen Kantenzug nennt man eulersche Tour und den Graphen, der diese enthält, eulerschen Graphen. Hat ein Kantenzug nur die erste Eigenschaft, wird von einer Tour gesprochen. Wie wir gesehen haben, ist beim Königsberger Brückenproblem keine eulersche Tour zu finden. Auch beim Nikolaus-Haus gelingt uns dies nicht. Zwar sind die ersten beiden Bedingungen erfüllt, aber der Kantenzug ist in keinem Fall geschlossen. Erst wenn die beiden unteren Ecken durch eine weitere Kante verbunden werden, entsteht ein eulerscher Graph. 26 Abbildung 3.18: Nikolaus-Haus mit eulerscher Tour Einen eulerschen Graphen erkennt man also daran, dass man ihn zeichnen kann ohne den Stift abzusetzen und ohne dabei eine Kante mehrmals zu zeichnen. Ausserdem endet man bei eulerschen Graphen immer im Anfangs-Knoten. Also muss jeder Knoten des Graphen immer über eine andere Kante verlassen werden, als über die man zu ihm gelangt ist. Da nur unbenutzte“ Kanten in Frage kommen, hat jeder ” Knoten eines eulerschen Graphen einen geraden Grad. Jede Ecke eines eulerschen Graphen hat einen geraden Grad. 3.2.4 Welche Graphen sind eulersch? Nun wissen wir, dass der Grad jeder Ecke eines eulerschen Graphen gerade sein muss. Aber: Reicht diese Bedingung aus, dass ein Graph eulersch ist? Die Antwort ist Nein: Zusätzlich ist zumindest zu fordern, dass der Graph zusammenhängend sein muss. Behauptung: Ein zusammenhängender Graph ist genau dann eulersch, wenn jede seiner Ecken einen geraden Grad hat. Beweis Die Gradbedingung ist offensichtlich notwendig: tritt eine Ecke k-mal in einem eulerschen Kantenzug auf (bzw. (k+1)-mal, wenn sie die Anfangs-/Endecke des Kantenzugs ist), so ist ihr Grad 2k. (also gerade) Umgekehrt sei nun der Graph zusammenhängend und alle Ecken von geraden Grad. Zu zeigen ist, dass man einen solchen Graphen immer mit einem Strich zeichnen kann und dabei jede Kante genau einmal überfährt. Schlingen kann man bei der Betrachtung außer Betracht lassen, da sie am Ende leicht einzufügen sind. Wir wählen einen Knoten u ∈ E aus und bilden einen Kantenzug, beginnend bei u , der keine Kante doppelt enthält, solange das möglich ist. Bei jedem Knoten 6= u , den der Kantenzug erreicht, gibt es eine ungerade Anzahl von Kanten mit Endknoten, die bisher vom Kantenzug noch nicht benutzt worden sind. Daher kann man bei jedem dieser Knoten den Kantenzug fortführen. Da die Zahl der Kanten endlich ist, bricht das Verfahren einmal ab. Sei der erhaltene Zug gerade Z = (u = u0 , k1 , u1 , . . . , kn , un ), dann ist un = u . Denn wäre un 6= u , so muss es außer kn eine weitere Kante kn+1 geben, dessen einer Knoten un ist, weil die Gradzahl d(un ) gerade ist. Also wäre das Verfahren noch nicht abgebrochen. Wir erhalten den geschlossenen einfachen Kantenzug (u = u0 , k1 , u1 , . . . , un−1 , kn , un = u). Sei S die Menge der Kanten dieses Kantenzugs. Ist S = K, so sind wir fertig. Sei also S 6= K, dann existiert ein Knoten v , der Endknoten einer Kante aus S und einer Kante aus K \ S ist, da der Graph zusammenhängend ist. Wir betrachten den Graphen H mit Knotenmenge E und Kantenmenge K \ S. Jeder Knoten dieses Graphen hat geraden Grad. Wir können daher, wie oben, in H einen einfachen geschlossenen Kantenzug von v nach v bilden: ( v, kn+1 , v1 , . . . , vm−1 , kn+m , v ). Da v Endknoten einer Kante aus S ist, ist v = ui für ein i ∈ {0, . . . , n} . Wir fügen nun den Kantenzug in H in den ursprünglichen Kantenzug 27 “an der Stelle v = ui ” ein: (u = u0 , k1 , u1 , . . . , ki , ui = v, kn+1 , v1 , . . . , vm−1 , kn+m , v = ui , ki+1 , . . . , kn , u). Dies liefert einen größeren, geschlossenen, einfachen Kantenzug. In dieser Weise fortfahrend erhalten wir wegen der Endlichkeit von G am Ende einen eulerschen Kantenzug. 3.2.5 Eulersche Touren - Hierholzer Algorithmus Um eulersche Touren zu finden gibt es veschiedene Ansätze/Algorithmen. Wir gehen jeweils davon aus, dass ein eulerscher Graph vorliegt und darin eine beliebige Eulertour gefunden werden soll. Hier beschränken wir uns auf den Algorithmus von Hierholzer1 , der sehr anschaulich ist. Bei diesem Algorithmus handelt es sich im Prinzip um den Beweis des Satzes von Euler (siehe oben). Hier noch einmal der Algorithmus in Kurzform: 1. Einen beliebigen Punkt A des Graphen wählen. 2. Einen geschlossenen Unterkreis mit Anfangspunkt A finden, der alle Eigenschaften einer eulerschen Tour erfüllt. 3. Alle Kanten dieses Unterkreises für die weiteren Betrachtungen vernachlässigen. 4. Die erste Ecke des Unterkreises wählen, deren Grad nun größer als 0 ist, und eine neue eulersche Tour finden. 5. Diese Schritte solange wiederholen, bis alle Kanten verwendet wurden. 6. Man erhält den Eulerkreis, indem man mit dem ersten Unterkreis beginnt und an jedem Schnittpunkt mit einem anderen Unterkreis, diesen einfügt. Anschliessend wird der erste fortgesetzt bis zum Endpunkt. 1 nach C.F.B. Hierholzer (1840-1871) 28 Zur Verdeutlichung ein einfaches Beispiel: Abbildung 3.19: Hier ist eine eulersche Tour zu finden Wir sehen, dass dieser Graph eine eulersche Tour enthält: Alle Ecken haben den Grad 4. Wir teilen den Graphen in geschlossene Touren ohne doppelte Kanten ein. In diesem Beispiel bieten sich dazu die 3 Kreise an. Beginnt man nun an einem beliebigen Punkt und wechselt, immer wenn dies möglich ist, auf einen Kreis, auf dem man noch nicht war, kann man leicht eine Euler-Tour finden. Die folgende Grafik zeigt eine mögliche Lösung. Abbildung 3.20: Eine eulersche Tour: A-B-C-A-D-E-C-F-D-B-E-F-A Durch das Anwenden dieses Algorithmus findet man also immer eine eulersche Tour, wenn wir einen Graphen mit den genannten Eigenschaften haben. 3.2.6 Anwendungsbeispiele Besuch einer Ausstellung In vielen Ausstellungen stehen/hängen Kunstwerke auf beiden Seiten der Gänge. Auf dem Rundgang durch die Ausstellung möchte man an allen Gemälden/Kunstwerken vorbeikommen, aber an jedem nur einmal und am Ende wieder an der Tür ankommen. Abbildung 3.21: Ausstellungsräume 29 Um herauszufinden, ob ein solcher Rundgang überhaupt möglich ist, betrachten wir die Ausstellung als Graphen: • Jede Seite eines Ganges wird als Kante gezeichnet • Jede Kreuzung von Gängen stellt eine Ecke des Graphen dar Abbildung 3.22: Ausstellungsräume als Graph Da der Graph, wie man leicht sieht, geschlossen ist und nur Ecken von geradem Grad hat, handelt es sich um einen eulerschen Graphen. Somit ist ein Rundgang in gewünschter Form möglich. Domino Die Aufgabenstellung lautet: Ist es möglich alle Steine eines Dominospiels zu einem geschlossenen Kreis zusammenzulegen, wobei jeweils gleiche Zahlen nebeneinander liegen? Es wird davon ausgegangen, dass ein Dominospiel aus 28 Spielsteinen, nämlich jeweils ein Spielstein jeder möglichen Kombination der Zahlen 0 - 6, besteht. Wir erstellen einen Graphen, der die Aufgabenstellung repäsentiert: Die Ziffern 0 bis 6 stellen die Ecken dar und jeder Spielstein wird durch eine Kante repräsentiert. Eine Schlinge steht für einen Stein mit 2 gleichen Ziffern. Wir erhalten somit: 30 Abbildung 3.23: Domino als Graph Da es sich hier um einen eulerschen Graphen handelt, ist auch unsere Aufgabenstellung lösbar. 3.2.7 Vollständige Vielecke Eine Verallgemeinerung des eben entwickelten Domino-Graphen sind die sogenannten vollständigen Vielecke. Der Domino-Graph stellt ein vollständiges Siebeneck dar, wenn man die Schlingen vernachlässigt, also ein Siebeneck mit allen Diagonalen. Dem Haus vom Nikolaus“ ” fehlen 2 Kanten, um ein ein vollständiges Fünfeck zu sein. Dies würde wie folgt aussehen: 31 Abbildung 3.24: Vollständiges Vieleck Wie man sieht, hat jeder Knoten den selben Grad, näämlich n-1. Folglich haben alle Ecken eines vollständigen Vielecks einen geraden Grad, wenn die Anzahl der Ecken ungerade ist. Diese Graphen sind eulersch. Vollständige Vielecke sind genau dann eulersch, wenn sie eine ungerader Anzahl von Ecken haben. 3.2.8 Aufgaben Eulersche Graphen 1. Kann man die folgenden geometrischen Figuren zeichnen, ohne den Stift abzusetzen (und ohne Kanten doppelt zu zeichnen), oder kann man gar eulersche Touren finden? 2. Ist es möglich in dieser Wohnung einen Rundgang zu machen, so dass man jede Tür einmal passiert? 3. Kann man einen Draht so biegen, dass ein Würfel entsteht? 32 4. Ein Mitarbeiter des Straßendienstes will jeden Weg des vorliegenden Straßennetzes genau einmal kontrollieren und anschliessend wieder zum Betriebshof zurückkehren. Ist das möglich? Wenn ja machen Sie einen Tourenvorschlag. 3.2.9 Lösungen Eulersche Graphen 1. Die mit einem roten Kreis markierten Ecken haben einen ungeraden Grad. • Die Graphen c), d) und e) sind eulersch und man kann sie somit auch mit einem Strich zeichnen. • Die Graphen a) und f) haben jeweils 2 Ecken mit ungeradem Grad, also kann man sie auch mit einem Strich zeichen, wenn man in jeweils einer der markierten Ecken beginnt und endet. • Graph b) lässt sich nicht auf die geforderte Art zeichnen, da er 4 Ecken mit ungeradem Grad hat. 2. Die Wohnung als Graph dargestellt: Knoten B und D haben einen ungeraden Grad, alle anderen einen geraden. ⇒ Man kann einen Rundgang finden, der durch jede Tür genau einmal führt. Allerdings 33 schafft man es nicht anschliessend auch wieder im gleichen Raum zu enden. Ein möglicher Weg ist: A-B-C-B-D-E-D-F-C-D 3. Dies ist nicht möglich, da in jeder der acht Ecken eines Würfels drei Kanten enden. 4. Da man dieses Straßennetz als eulerschen Graphen darstellen kann, ist es auch möglich eine Lösung zu finden. Geht man nach dem Hierholzer Algorithmus vor, erhält man beispielsweise: G-C-E-GD-F-H-B-F-I-A-H-I-B-G 34 4 Hamiltonsche Graphen Und Grade von Ecken 4.1 Hamiltonsche Graphen 4.1.1 Historisches William Rowan Hamilton (1805 -1865) wurde in Dublin geboren und in Irland blieb er sein Leben lang. Er galt als Wunderkind, allerdings nicht auf dem Gebiet der Mathematik, sondern wegen seiner Sprachkenntnisse. Er soll sich vorgenommen haben pro Jahr, das er lebte, eine Sprache sprechen zu können. Angeblich hat er dieses Vorhaben bis zu seinem 17. Lebensjahr durchgehalten. Erst später begann er sich intensiver mit der Mathematik und Physik zu beschäftigen. Mit 18 Jahren war er so erfolgreich, dass er bereits als irischer Newton gepriesen wurde. Mit 22 erhielt er den Lehrstuhl für Astronomie an der Universität Dublin, ohne sich dafür beworben zu haben. Hamilton arbeitete jedoch nicht als Astronom sondern als Mathematiker. Er stellte die Algebra auf ein neues Fundament und befasste sich in diesem Zusammenhang auch mit Graphen. Zu dem erfand er für die Physik eine Methode, mit der man alle pysikalischen Phänomene egal ob Licht, mechanische Bewegungen oder Kräfte beschreiben und zuverlässige Vorhersagen machen konnte. Hamilton war seit seiner Kindheit berühmt und er fühlte sich auch als Genie. Dabei war er kein ungeselliger Mensch. Jedoch war seine Ehe für ihn nicht glücklich, da seine Frau sich nicht entsprechend der damaligen Zeit verhalten wollte oder konnte, und nicht den Haushalt führte. 4.1.2 Definitionen Kanten Eine Kante verbindet zwei Ecken miteinander. Sind zwei Ecken miteinander verbunden, so sind sie benachbart. Kanten können gerichtet, gewichtet oder beides sein. Nennt man eine Kante gerichtet, so kann man sie nur in einer Richtung benutzen. Das Gewicht einer Kante wird meist mit den Kosten assoziiert, die bei der Benutzung dieser Kante entstehen. Eine Kante, die denselben Start und Endpunkt hat nennt man Schleife Ecken / Knoten Ecken oder auch Knoten können die Anfangs- bzw. Endpunkte von Kanten sein. Ein Knoten (oder eine Ecke) k von dem n Kanten ausgehen hat den Grad n. 35 Kantenzüge Ein Kantenzug beschreibt den Weg von einer Ecke zu einer beliebigen anderen Ecke über Kanten. Es kann sein, dass dabei der Weg sich selbst kreuzt, der anders ausgedrückt eine Ecke mehr als einmal benutzt. Kreise Ein Kreis ist ein geschlossener Kantenzug, der jede der in ihm enthaltenen Ecken nur einmal benutzt, sich also nicht überkreuzt und wieder bei seinem Ausgangspunkt ankommt. 4.1.3 Das Grundproblem Kann man eine Rundfahrt durch verschiedene Städte, die miteinander durch Bahnlinien verbunden sind, so planen, dass man jede Stadt nur genau einmal besucht? Dabei spielt es keine Rolle, ob jede Zugverbindung genutzt worden ist. Übertragen in einen Graph, stellen die Städte die Knoten dar und die Zugverbindungen die Kanten. Die Strecke der Rundfahrt ist ein geschlossener Kantenzug, der alle Knoten miteinander verbindet, ohne eine Kante mehr als einmal zu benutzen. Ein Graph, der einen geschlossenen Kantenzug enthält, der alle Knoten/Ecken miteinander verbindet nennt man hamiltonschen Graph, der Kantenzug heißt hamiltonscher Kreis. Definition Hamiltonscher Kreis: Ein geschlossener Kantenzug, der jede Ecke des Graphen genau einmal enthält, heißt hamiltonscher Kreis. Er geht durch jede Ecke, braucht aber nicht durch jede Kante zu führen. Definition Hamiltonscher Graph: Ein Graph, der einen hamiltonschen Kreis enthält, heißt hamiltonscher Graph. Diese Definition impliziert zugleich, dass jede Kante innerhalb des Kreises auch nur maximal einmal benutzt wird. 4.1.4 Hamiltonsche Kreise finden Um einen hamiltonschen Kreis zu finden muss man schrittweise nach dem Try & Error Prinzip vorgehen. Da man einen Kreis sucht ist die Wahl des Startpunktes sekundär. Vom Startpunkt geht man zu einem benachbarten Knoten und von dort wiederum zum nächsten. Nun hat man schon einen Kantenzug der Länge 3. Da der mittlere Knoten nicht mehr angefahren werden darf, kann man alle nicht benutzten Kanten dieses Knotens streichen (natürlich nicht die Kante vom vorherigen Knoten und auch nicht die zum nächsten). Entsteht bei einem noch nicht angefahrenen Knoten nach dem Streichen der Kanten der Grad kleiner oder gleich 1, ist der Kantenzug, den man gerade ausgewählt hat nicht Teil eines hamiltonschen Kreises. Noch einmal die Regeln zum Finden eines hamiltonschen Kreises kurz zusammen gefasst: • nach dem Passieren eines Knotens werden alle nicht benutzten Kanten gestrichen • es dürfen keine Knoten mit dem Grad 1 oder kleiner entstehen 36 Abbildung 4.1: Ein Hamiltonscher Kreis in einem Dodekaeder • es dürfen keine Teilgraphen abgespalten werden, die mit dem restlichen Graphen nicht zusammenhängen Offensichtlich ist, dass dies keine konstruktiven Regeln sind, da sie sagen was nicht getan werden darf. Bis heute hat man weder einen Algorithmus gefunden, der eine qualitative Aussage macht, ob ein Graph ein hamiltonscher Graph ist oder nicht, noch einen Algorithmus zum Finden eines hamiltonschen Kreises. Es überrascht auch nicht, dass sich die Schwierigkeit einen Hamiltonschen Kreis zu finden mit steigender Eckenzahl erhöht. Jedoch kann man heute sagen, dass wenn jeder Koten eines Graphen mit n Knoten mindestens den Grad n2 hat, dann ist er hamiltonsch. Mathematisch ausgedrückt: Erfüllt ein Graph G(E,K), wobei E die Menge der Knoten(Ecken) ist und K die Menge der der Kanten, die Bedingung: grad(x) + grad(y) ≥ |E| ∀ x, y ∈ E , mit x 6= y ∧ {x,y} ∈ /K dann ist der Graph G hamiltonsch Beweis: Durch Widerspruch Wenn der obige Satz falsch wäre, dann gäbe es mindestens einen Graphen G(E,K), der die Bedingung erfüllt aber keinen Hamilton-Kreis enthält. Man betrachte das Gegenbeispiel mit 37 Eckenmenge E, für den |K| maximal ist. Da En einen Hamiltonkreis enthält, ist G kein vollständiger Graph. G entält also mindestens eine Nichtkante, d.h. einen Knoten x,y mit x 6= y und {x, y} ∈ / K. Man nimmt sich ein beliebiges solches Paar, und fügt {x, y} als zusätzliche Kante dem Graph hinzu. Dadurch erhält man einen neuen Graph G’, der ebenfalls die oben genannte Bedingung erfüllt. Da G als maximaler Gegenbeispiel-Graph gewählt wurde, ist bekannt, dass G’ einen Hamiltonkreis C enthält. Da G einen solchen Kreis nicht enthält muss G’ die Kante {x, y} enthalten. Bei Durchnummerierung nach dem Prinzip C = (x = v1 , v2 , . . . , vn = y) und setzen von S := { vi |1 ≤ i < n, {x, yi+1 } ∈ E} und T := { vi |1 ≤ i < n, {x, yi } ∈ E} / S ∪ T und |S ∪ T | < |K| = n. Da aber —S— = grad(x) und —T— = Dann gilt, y = vn ∈ grad(y), kann laut dem Satz nur gelten, wenn S ∩ T > 0. Sei nun vi ein beliebiger Knoten in S ∩ T . Ersetzt man jetzt in C die beiden Kanten {x, y} und { vi , vi+1 } durch { x, vi+1 } und { y, vi }, so erhält man wieder einen Hamiltonkreis und damit den gewünschten Widerspruch. qed Zusammenfassend kann man sagen: Hat der Graph genügend viele Kanten, so ist er hamiltonsch, da es genügend viele Möglichkeiten gibt einen Kreis zu finden. 4.1.5 Hamiltonsche Graphen neu zeichnen Eine Eigenschaft von hamiltonschen Graphen ist, dass man sie leicht umzeichnen kann, so dass sie übersichtlich werden. Da ja alle Knoten auf einem Kreis liegen, kann man Sie als solchen anordnen. Abbildung 4.2: Ein hamiltonscher Graph wird neu gezeichnet 4.1.6 Wann ist ein Graph nicht hamiltonsch? Wenn man aus einem Graphen eine Ecke mit allen Kanten, die von ihr ausgehen entfernt und der Graph zerfällt dann in zwei oder mehr Teile, war der Graph nicht hamiltonsch. Die 38 Begründung ist einfach: Einen Kreis kann man nicht durch einen Schnitt in zwei Teile teilen. Abbildung 4.3: Erst zwei Schnitte teilen einen Kreis in zwei Teile Wird eine Ecke aus einem hamiltonschen Graphen gelöscht, dann bleibt der restliche Graph zusammenhängend. Entfernt man zwei Ecken, die nebeneinander liegen, so bleibt auch hier der verbleibende Graph zusammenhängend. Wenn zwei beliebige Ecken entfernt werden, zerfällt der Graph in höchstens zwei Teilgraphen. Das lässt sich auch allgemein so formulieren: Löscht man aus einem Graphen n Ecken, so zerfällt er in höchstens n Teilgraphen. Oder anders ausgedrückt: Wenn es möglich ist durch Entfernen von n Ecken den Graphen G in n+1 Teilgraphen zerfallen zu lassen, dann ist G kein hamiltonscher Graph gewesen. Diese Eigenschaft ist zwar auch nicht konstruktiv, aber man kann zumindest zeigen, dass ein Graph kein Hamiltonkreis enthält. 4.1.7 Wie viele hamiltonsche Kreise gibt es? In einem vollständigen Vieleck ist jede Ecke mit jeder anderen Ecke verbunden(vernetzt). Jede Ecke in einem n-Eck hat also den Grad n-1. Ein vollständiges Vieleck ist offensichtlich ein hamiltonscher Graph. Um einen Hamiltonkreis zu finden, egal von welcher Ecke man startet, gibt es n-1 Kanten über die man gehen kann. Von der zweiten Ecke sind es nur noch n-2 Möglichkeiten usw. Da man aber einen Kreis in zwei Richtungen durchlaufen kann, ist die Vermutung es gäbe (n-1)! hamiltonsche Kreise nicht ganz korrekt. Tatsächlich ist die Anzahl der hamiltonschen Kreise in einem vollständigen n-Eck (n−1)! 2 . Damit hat man auch eine obere Schranke gefunden, wie viele Hamiltonkreise es höchstens in einem einfachen Graphen mit n Ecken gibt. 4.2 Grade von Ecken 4.2.1 Es gibt immer zwei Ecken die den gleichen Grad haben Satz: In jedem einfachen Graphen gibt es mindestens zwei Ecken, die den gleichen Grad haben. Beweis: Bei einem einfachen Graphen handelt es sich um einen Graphen, der weder parallele Kanten noch Schlingen, d.h. Kanten die denselben Startecke und Endecke haben, hat. 39 In einem Graphen mit n Ecken ist der höchstmögliche Eckengrad n-1, da eine Ecke maximal zu jeder anderen Ecke verbunden sein kann. Nach Vorrausetztung kommen als möglich Gradzahlen nur Zahlen aus der Menge { 0,1,2, . . . , n - 1 } in Frage. • Falls eine der Ecken den Grad n-1 haben sollte, ist offensichlich, dass diese Ecke mit jeder anderen Ecke im Graphen verbunden sein muss. Im Umkehrschluss heißt das aber auch, dass es eine isolierte Ecke mit Grad 0 nicht geben kann. Jede Ecke muss also einen Grad aus der Menge {1, 2, . . . , n - 1} haben. Diese Menge hat die Mächtigkeit n-1, d.h. n - 1 Zahlen auf n Ecken zu verteilen. Das geht aber nur, wenn mindestens eine Zahl doppelt verwendet wird. • Hat aber keine der Ecken den Grad n - 1, ist der größtmögliche Grad n - 2. Es kann also Ecken mit verschiedenen Graden aus der Menge {0, 1, . . . , n - 2} geben. Diese Menge hat wiederum die Mächtigkeit n - 1, da es nun isolierte Ecken vom Grad 0 geben kann. D.h wie im ersten Fall gilt es n - 1 Zahlen auf n Ecken zu verteilen, das geht wie gehabt - nur wenn mindestens eine der Zahlen doppelt verwendet wird. 4.2.2 Das Handshaking lemma Satz: Die Summe der Eckengrade ist in jedem Graph eine gerade Zahl Beweis: Jede Kante eines Graphen hat zwei Enden. Hat ein Graph p Kanten, so gibt es 2p Enden. Da sich der Grad einer Ecke aus den Enden der Kanten, die die Ecke berühren bestimmt, ist 2p zugleich auch die Summe aller Grade der Ecken. Außerdem ist leicht zu erkennen: Die Summe aller Eckengrade ist doppelt so groß wie Anzahl der Kanten. 4.2.3 Ecken mit ungeradem Grad Satz: In jedem Graphen ist die Summe der Ecken mit ungeradem Grad eine gerade Zahl. Beweis: Sei u die Summe der Eckengrade, die ungerade sind und sei g die Summe der Eckengrade die gerade sind. Dann ist g + u = a. a ist Summe aller Eckengrade und wie oben gezeigt eine gerade Zahl. Auch g ist eine gerade Zahl da alle Summanden von g gerade sind. Zieht man von einer gerade Zahl eine gerade Zahl ab, ist die Differenz wieder gerade. Daraus folgt, das u eine gerade Zahl sein muss. 40 5 Bäume 5.1 Einführung 5.1.1 Was sind Bäume Bäume sind eine spezielle Form von Graphen. Sie gehören zu den für die Anwendung wichtigsten Typen von Graphen. Im täglichen Leben trifft man häufig auf Bäume, wie zum Beispiel beim Betrachten des Familienstammbaums, der Organisation von Tunieren oder der hierarchischen Struktur eines größeren Unternehmens. Gerade in der Informatik sind Baumstrukturen von fundamentaler Bedeutung, etwa zur Organisation von Daten. Hier gibt es viele nützliche Einsatzgebiete für Bäume. In der hier folgenden Ausarbeitung werde ich auf Bäume im Sinne der Graphentheorie eingehen. Die Bedeutung von Bäumen in der Informatik, speziell ihre Funktion als Datenstruktur, werden in dieser Ausarbeitung vernachlässigt. Wer diesbezüglich Informationen sucht, dem seien die ,,Algorithmen”-Bücher des Literaturverzeichnis empfohlen. [hp] Abbildung 5.1: Beispiele von Bäumen 5.1.2 Begrifflichkeiten aus der Graphentheorie Dieser Abschnitt soll nochmal Begrifflichkeiten wiederholen, die in vorangegangenen Ausarbeitungen ausführlicher erklärt wurden. .Siehe dazu die Skripte der vorangegangenen Abschnitte. Die Ansammlung der Begriffe erhebt keinen Anspruch auf Vollständigkeit. Sie soll lediglich die in diesem Skript benutzten Begriff kurz erklären. 41 Kreis: ist ein geschlossener Kantenzug, der sich nicht überkreuzt. Schlinge: ist ein Kreis der Länge eins. Weg: ist ein Kantenzug, der jede seiner Ecken höchstens einmal enthält. Grad: ist die Anzahl der Kanten die von einer Ecke ausgehen. Hamlitonscher Kreis: ist ein Kreis, der jede Ecke des Graphen genau einmal enthält. Eulerscher Graph: ist ein zusammenhängender Graph, in dem jede Ecke einen geraden Grad hat. 5.2 Eigenschaften von Bäumen 5.2.1 Grundlagen Wie schon in der Einführung erwähnt, handelt es sich bei Bäumen um eine spezielle Form von Graphen. Von einem Baum spricht man in der Graphentheorie, wenn ein Graph weder Schlingen noch Kreise besitzt. Des weiteren darf der Graph nicht aus mehreren Teilen bestehen. Es muss sich also um einen zusammenhängenden Graphen handeln. Somit erhält man folgende Definition für Bäume: Ein Baum ist ein zusammenhängender Graph, der keine Kreise oder Schlingen enthält. Aufgrund dessen, dass laut Definition in Bäumen keine Kreise zulässig sind, ergibt sich folgende Aussage: Zwei unterschiedliche Ecken in einem Baum sind durch genau einen Weg miteinander verbunden. Diese Aussage kann man leicht durch Überlegung nachvollziehen. Sollte es in einem Graphen zwischen zwei Ecken einen Hin- und einen Rückweg geben, so ist dieser Graph kein Baum. Selbst zwei Wege zwischen zwei Ecken, die sich nur um eine Ecke unterscheiden und sonst die gleichen Kanten besitzen, haben als Teilstrecke mindestens einen Kreis. Somit kann dieser Graph auch kein Baum sein. Die Umkehrung der letzten Aussage ist auch gültig. Denn sollte es in einem zusammenhängenden Graphen zwischen je zwei Ecken genau einen Weg geben, so ist dieser Graph ein Baum. Die Existenz von Schlingen ist bei diesen Graphen auch ausgeschlossen. 42 Abbildung 5.2: Zwei Wege zwischen Start und Ziel Sollte es einen Graphen geben, der nicht zusammenhängend ist und keine Kreise enthält, so spricht man von einem Wald. Dieser Name kommt daher, da der Graph aus einzelnen Bäumen besteht. [h] Abbildung 5.3: Ein Wald im Sinne der Graphentheorie Durch die speziellen Eigenschaften von Bäumen lassen sich Aussagen über die Kanten machen. Dies wird im folgenden Kapitel näher betrachtet. 5.2.2 Kanten eines Baums Dadurch, dass in Bäumen keine geschlossenen Kantenzüge vorhanden sein dürfen, lassen sich exakte Aussagen über die Anzahl der Kanten machen. Sie entspricht genau der um eins verringerten Anzahl aller Ecken eines Baums. Oder anders ausgedrückt: Hat ein Baum n Ecken, so ist n-1 die Anzahl der Kanten dieses Baums. Dies kann man leicht durch ein kleines Experiment nachvollziehen. Zeichnet man sich n Punkte auf ein Blatt und verbindet diese, ohne dabei einen geschlossenen Kantenzug zu erzeugen, so hat man genauso viele Ecken besucht, wie man Kanten gezeichnet hat. Nimmt man zu den besuchten Ecken die Anfangsecke mit hinzu, so erhält man n+1 Ecken und n gezeichnete Kanten. Was wiederum der obigen Aussage entspricht. Über die Kanten eines Baums lassen sich noch andere Aussagen treffen. Entfernt man zum Beispiel eine Kante aus einem Baum, so zerfällt er in zwei Teilbäume. Diese Teilbäume hängen nicht mehr miteinander zusammen. Die Begründung hierfür liegt in den oben geforderten Voraussetzung, die einen Graphen zu einem Baum machen. Denn sollte bei entfernen einer Kante der angebliche Baum nicht in zwei Teile zerfallen, so war der Graph vor dem entfernen der Kante kein Baum. Hieraus lässt sich eine andere Definition für Bäume herleiten: Entfernt man aus einem zusammenhängenden Graphen eine beliebige Kante, sodass der Graph nicht mehr zusammenhängen ist, so war der Graph, vor entfernen der Kante, ein Baum. Kanten, durch dessen Entfernen ein Graph in zwei Teilgraphen zerfällt, werden auch Brücken genannt. Somit kann man für Bäume feststellen, dass alle Kanten eines Baums Brücken sein müssen. Und in der Umkehrung gilt auch, dass jeder zusammenhängende Graph, dessen Kanten Brücken sind, ein Baum ist. 43 5.2.3 Aufspannende Bäume Jeder beliebige, zusammenhängende Graph enthält einen so genannten aufspannenden Baum. Ein aufspannender Baum kann aus jedem zusammenhängenden Graphen erzeugt werden. Hierzu ist es einzig und allein nötig alle Kreise des Graphen zu entfernen. Dies geschieht in dem man nach und nach einzelne Kanten der Kreise entfernt. Ist die Anzahl der Kreise im Graph auf null gesunken, hat man einen aufspannenden Baum erhalten. Dieser Baum, der alle Ecken des Graphen enthält, wird aufspannender Baum des Graphen genannt. Die Idee des aufspannenden Baums finden Anwendung in vielen praktischen Bereichen des Lebens. So sind zum Beispiel Gas-, Strom- und Wasserversorgungbetriebe darauf bedacht, dass ihr Versorgungsnetz gerade kein Baum ist. Denn falls eine Leitung ausfällt oder nicht in Betrieb ist, sollte nicht gleich das ganz Netz zusammenbrechen. Nach Ausfall einer Leitung sollte noch mindestens ein aufspannender Baum das Leitungsnetz charakterisieren. [h] Abbildung 5.4: Zwei aufspannende Bäume zum Nikolaushaus Ein Graph kann ziemlich viele aufspannende Bäume besitzen. So lassen sich z.B. bei einem Dreieck drei aufspannende Bäume finden. Es sind aber nur drei Bäume, wenn isomorphe1 Graphen unterschieden werden. Dies ist dann möglich, wenn die Kanten des Baums unterschieden werden können. Wird zwischen isomorphen Graphen kein Unterschied gemacht, so hat ein Dreieck nur einen einzigen aufspannenden Baum. Für vollständige n-Ecke(vergleiche hierzu Kapitel 1 Eulersche Graphen) lässt sich sogar die Anzahl der aufspannenden Bäume berechnen. Für vollständige n-Ecke existieren genau nn-2 aufspannende Bäume. Diese Formel kann auch auf ein anderes Problem angewandt werden. Falls es von Interesse ist, wieviele Bäume mit n Ecken es gibt, so liefert diese Formel gleich das Ergebnis. Es sind genau nn-2. Dieses Verhalten hat zuerst der engl. Mathematiker Caley erkannt. Aus diesem Grund findet man sie in der Literatur auch als Formel von Caley. [h] 1 gleiche Gestalt, gleiche Form 44 Abbildung 5.5: Aufspannende Bäume zu einem Dreieck, wenn man die Kanten unterscheidet. 5.3 Algorithmen und Anwendungsbeispiele für Bäume 5.3.1 Strategie zur Wegfindung in einem Labyrinth Die Kenntnisse über Graphen können helfen den Weg aus einem Labyrinth zu finden. Hierzu muss das Labyrinth abstrahiert werden. In dem man Gänge als Kanten und alle Kreuzungen/Verzweigungen als Ecken eines Graphen betrachtet, kann man ein Labyrinth als Graph ansehen. [h] Abbildung 5.6: Labyrinth und dazu erstellter Graph Sucht man nun an einer beliebigen Ecke des Labyrinths einen Weg zum Ausgang so empfiehlt sich folgende Strategie: Zuerst muss der Startpunkt markiert werden. Im Anschluss daran sollte eine beliebige Richtung gewählt werden. Diese Richtung sollte auch im Gang markiert werden. Die Richtung wird beibehalten, bis die nächste Ecke erreicht wird. An dieser Ecke wird die Ankunftsrichtung festgehalten. Und der Gang ausgewählt, der am weitesten rechts liegt, falls dies möglich ist. Anfang und Ende des Ganges werden wieder durch Richtungspfeile markiert. Ist dieser Gang eine Sackgasse, so geht man zurück zur vorherigen Ecke und markiert diesen Gang als Sackgasse. Gleiches gilt, falls eine schon besuchte Ecke nochmals besucht werden soll. Ist dies der Fall, so sollte der letzte Gang auch als Sackgasse markiert werden. Danach wählt man den nächsten möglichen Gang aus. Wendet man diese Strategie an, so erreicht man alle Ecken des Graphen und somit auch den Ausgang. [h] 45 Abbildung 5.7: A: Sperren einer schon besuchten Ecke B: Sperren von Sackgassen C: Sperren einer Kante eines Kreises 5.3.2 Der Greedy Algorithmus Der Greedy2 Algorithmus wird angewandt, wenn in einem bewerteten Graphen ein aufspannender Baum erstellt werden soll, der den kleinstmöglichen Wert besitzt. So ein Baum wird auch minimal aufspannender Baum genannt. [h] Abbildung 5.8: Straßennetz und die Baukosten Ein praktisches Beispiel wäre der Neubau von Straßen zwischen verschiedenen Orten. Um Kosten zu sparen soll nicht jeder Ort mit jedem verbunden werden. Es soll lediglich gewährleistet sein, dass jeder Ort von jedem anderen Ort auf einer neuen Straße erreicht werden 2 aus dem englischen greedy für gierig 46 kann. Dies bedeutet, dass das neue Straßennetz einem aufspannenden Baum entspricht. Wie Eingangs erwähnt, handelt es sich hierbei sogar um einen minimal aufspannenden Baum. Der Ablauf des Algorithmus ist denkbar einfach. Zuerst werden die Bewertungen der Kanten in aufsteigender Reihenfolge notiert. Mehrfaches Vorkommen einer Zahl wird auch mehrfach notiert. Jetzt beginnt man damit einen Baum zu erzeugen, in dem man mit den geringsten Kosten beginnt. Bei gleichen Kantenkosten hat man die freie Wahl welche man nimmt. Es macht am Schluss keinen Unterschied für die Kosten. Lediglich der Baum sieht etwas anders aus. Hat man alle Ecken miteinander verbunden, so hat man einen minimal aufspannenden Baum erzeugt. [h] Abbildung 5.9: Minimal aufspannender Baum für den gegebenen Graphen 5.3.3 Der Dijkstra Algorithmus Der Dijkstra Algorithmus ist ein sehr bekannter Graphenalgorithmus, der von Dijkstra entwickelt und nach ihm benannt wurde. Er dient zum Finden kürzester Wege in einem Graphen. Oder anders ausgedrückt, mit diesem Algorithmus lässt sich ein Verbindungsweg zwischen zwei Ecken finden, der die kleinste Bewertung hat. Die Idee des Algorithmus ist es von der Startecke einen Baum wachsen zu lassen, bis er an die Zielecke stößt. Hierbei ist beim erzeugen des Baums darauf zu achten, das nur kannten mit möglichst kleinen Bewertungen zu nutzen. Da der Algorithmus recht komplex ist, ist es am einfachsten ihn am Beispiel zu erklären. Der Ansatz des Algorithmus ist der, dass ausgehend von einer Startecke mit jedem Schritt eine neue Ecke hinzugenommen wird. Die Auswahl der Ecke geschieht so, dass die Ecke selektiert wird, die die geringste Kantenbewertung zur Startecke hat. Damit teilt sich der Graph in zwei Teile auf. Zum Einen eine Menge von Ecken für die der günstigste Weg schon ermittelt wurde. Und eine Menge von Ecken, für die der Weg noch zu ermitteln ist. Das Ordnen der direkten Verbindungen zwischen den zwei Mengen bringt die Lösung. Durch die Auswahl der jeweils günstigsten Verbindung, und das Hinzufügen der neuen Ecke zu der Menge der 47 schon betrachteten Ecken, verringert sich die Anzahl der Ecken die noch betrachtet werden müssen. Sobald man alle Ecken betrachtet hat, hat man, ausgehend von einer Startecke, zu jeder anderen Ecken einen Weg mit kleinster Bewertung gefunden. [h] Abbildung 5.10: Schritt1: U ist der Startknoten, benachbarte Knoten sind V, W, X, Schritt2: X hinzufügen, neue Nachbarknoten V,W,Y [h] Abbildung 5.11: Schritt3: V hinzufügen , Schritt4: Y hinzufügen, neue Nachbarknoten W,Z [h] Abbildung 5.12: Schritt3: W hinzufügen , Schritt4: Z hinzufügen 48 5.3.4 Die kürzeste Tour eines Briefträgers Um die Arbeitszeit von Briefträger oder Müllabfuhrmitarbeitern möglichst optimal zu nutzen, sollen die zurückgelegten Wege möglichst kurz sein. Die Graphentheorie hilft auch hier wieder um dieses Problem zu lösen. Auch hier ist es möglich den Zustellbezirk des Postboten zu einem Graphen zu abstrahieren. Wege und Straßen entsprechen wieder den Kanten, Kreuzungen und Einmündungen entsprechen den Ecken eines Graphen. Einen kürzesten Weg kann man nur finden, wenn der Graph ein bewerteter Graph ist. Die eigentliche Aufgabenstellung für dieses Problem lautet also folglich: Es wird ein geschlossener Kantenzug gesucht, der alle Straßen des Bezirks enthält und eine minimal Gesamtbewertung hat. Dieses Problem ist auch als Chinese Postman Problem3 bekannt. Nicht zu verwechseln mit dem Traveling Salesman Problem. In dem es darum ging den kürzesten hamiltonschen Kreis zu finden. Handelt es sich bei dem erstellten Graphen um einen eulerschen Graphen, so ist die Lösung denkbar einfach. Der Postbote kann jede eulersche Tour nehmen, da sie alle Straßen nur einmal enthält. Ist der Graph ein Baum, so ist leicht ersichtlich, dass jede Kante genau zweimal durchlaufen werden muss. Im Allgemeinen löst sich das Problem dadurch, dass zu jeder Paarung zweier Ecke mit ungeradem Grad ein kürzester Weg gesucht wird. Hat man diesen Weg gefunden, so werden entlang des Weges Kanten eingefügt, sodass der Graph nach und nach eulersch wird. Ist der Graph ein eulerscher Graph, so macht der Postbote eine eulersche Tour. [h] Abbildung 5.13: Links: Bezirk des Briefträgers, Rechts: minimaler eulerscher Graph zum Bezirk 3 da sich ein chinesischer Mathematiker mit diesem Problem befasste 49 6 Bipartite Graphen 6.1 Liste vs. Graph Fünf Freunde treffen sich zum Frühstücken und jeder bringt was mit. Liste: Fritz Sarah Hans Manni Gerd ??? Brötchen, Tee Butter, Marmelade Marmelade, Saft Milch, Tee Käse, Brötchen Kaffee Graph: Abbildung 6.1: Frühstücksgraph Entscheidender Vorteil des Graphen gegenüber einer Liste: • man sieht welche Lebensmittel eine Person mitbringt • man sieht welche Personen ein bestimmtes Lebensmittel mitbringen 50 • d.h. der Graph ist in beide Richtungen lesbar! Definition: Bipartiter Graph Man nennt einen Graph G = (V, E) (V Menge der Knoten, E Menge der Kanten) bipartit (oder paar), wenn die Knoten aus zwei disjunkte Teilmengen A und B bestehen, sodass zwischen den Knoten innerhalb einer Teilmenge keine Knoten miteinander verbunden sind. Definition: Vollständig bipartiter Graph G ist vollständig bipartit, falls jeder Knoten aus A mit jedem Knoten aus B verbunden ist. Allgemein: k-partiter Graph Knotenmenge in k disjunkte Teilmengen zerfällt, so dass die Knoten jeder dieser Teilmengen untereinander nicht benachbart sind. Der Graph von eben ist also bipartit, denn er enthält 2 Sorten von Ecken (Personen, Lebensmittel) und nur Kanten zwischen diesen beiden Eckenarten. Er ist nicht vollständig bipartit, da nicht jede Person alles mitbringt. 6.1.1 Aufgabe 1 Zeichnen Sie einen bipartiten Graphen dieser musikalischen Familie: Die Mutter spielt Violine und Keyboard, der Vater Bass, Keybord und Trompete. Farin spielt Gitarre, Bela spielt Schlagzeug und Bass, Rod spielt Keyboard, Ukulele und Gitarre. Abbildung 6.2: Lösungsgraph zur Aufgabe 1 6.1.2 Aufgabe 2 Zeichnen Sie alle vollständigen bipartiten Graphen mit 6 Ecken! Alle vollständigen bipartiten Graphen mit 6 Ecken: 51 Abbildung 6.3: Alle Lösungsgraphen zur Aufgabe 2 6.1.3 Ein bipartiter Graph muss nicht zusammenhängend sein Graph: Abbildung 6.4: Komponenten eines bipartiten Graphen Wie man in dem obigen Graphen sehen kann, besteht dieser bipartite Graph aus 3 Komponenten (rot, blau, schwarz). Es können sogar isolierte Kanten auftreten. Ein Extremfall wäre es, wenn alle Ecken isoliert sind. 6.2 Bipartite Kreise Manche Graphen sollte man umzeichnen um die Bipartitheit besser zu erkennen, da sie oft nicht offensichtlich ist wie z.B. bei einem viereckigen Graphen: 52 Abbildung 6.5: Viereck umzeichnen Am einfachsten ist es, wenn man die Ecken der einen Menge auf eine Seite zeichnet und die Ecken der anderen Menge auf die andere Seite, z.B: Abbildung 6.6: Graphen umzeichnen Anstatt einen Graphen umzuzeichnen, was sich besonders bei komplexeren Graphen als mühsam gestaltet, kann man auch die Ecken einfärben. Wenn man es mit 2 Farben schafft, dass benachbarten Ecken verschiedene Farben erhalten, so ist der Graph bipartit. Abbildung 6.7: Graphen färben 53 6.2.1 Aufgabe 3 Sind folgende Graphen biparitit? (Zeichnen Sie sie geeignet um oder verwenden Farben) Abbildung 6.8: Lösung zur Aufgabe 3 6.2.2 Sind alle Kreise bipartit? Durchläuft man einen Kreis und färbt abwechselnd die Ecken weiß bzw. schwarz, so ist klar, dass nur Kreise mit gerader Eckenzahl bipartit sein können. Denn bei Kreisen mit ungerader Länge, liegen irgendwo 2 Ecken mit der selben Farbe nebeneinander. Definition: nicht bipartiter Kreis Alle Kreise mit ungerader Eckenzahl sind nicht bipartit. Definition: bipartiter Kreis Alle Kreise mit gerader Eckenzahl sind bipartit. Abbildung 6.9: Achteckiger Kreis 54 6.2.3 Aufgabe 4 Welche Eigenschaften im Bezug auf bipartit und eulersch haben diese Graphen? Abbildung 6.10: Graphen zur Aufgabe 4 a) bipartit, eulersch; b) bipartit, nicht eulersch; c) nicht bipartit, eulersch; d) nicht bipartit, nicht eulersch; 6.2.4 Aufgabe 5 Welche Eigenschaften im Bezug auf bipartit und hamiltonsch haben diese Graphen? Abbildung 6.11: Graphen zur Aufgabe 5 a) bipartit, hamiltonsch; b) bipartit, nicht hamiltonsch; c) nicht bipartit, hamiltonsch; d) nicht bipartit, nicht hamiltonsch; 55 6.3 Bipartite Bäume In einem Baum existieren keine Kreise. Wenn man den Baum durchläuft und mit 2 Farben anmalt, so haben benachbarte Ecken immer unterschiedliche Farben. Beispiel: Abbildung 6.12: Bipartiter Baum Definition: Bipartite Bäume Jeder Baum ist bipartit. Sprechweise: Bipartiter m-n-Graph Man nennt einen bipartiten Graphen einen m-nGraph, wenn m die Anzahl der Knoten in A und n die Anzahl der Knoten in B ist. Bemerkung: Die Knotenmengen in einem bipartiten hamiltonischen Graphen müssen gleich groß sein, weil bipartite Graphen nur gerade Kreise enthalten. 6.3.1 Aufgabe 6 Wie viele bipartite 2-2-Graphen ohne parallele Kanten gibt es? Wie viele davon sind zusammenhängend? Es gibt 6 bipartite 2-2-Graphen ohne parallele Kanten, von denen 2 zusammenhängend sind. 56 Abbildung 6.13: Lösungsgraphen zur Aufgabe 6 6.3.2 Aufgabe 7 Begründen sie mit der obigen Bemerkung, dass der folgende Graph nicht hamiltonsch ist: Abbildung 6.14: nicht hamiltonscher Graph Es handelt sich um einen bipartiten 4-5-Graphen, da die Eckenmengen nicht gleich groß sind. 57 Abbildung 6.15: nicht hamiltonscher Graph (gefärbt) 6.4 Erkennung bipartiter Graphen Kreise mit ungerader Eckenanzahl sind nicht bipartit ⇒ Graphen die solche Kreise enthalten sind ebenfalls nicht bipartit Beispiel: Abbildung 6.16: nicht bipartiter Graph mit ungeradem Kreis 6.4.1 Hypothese & Beweis Hypothese: Alle Graphen ohne Kreise mit ungerader Eckenanzahl sind bipartit Beweis: Graph ohne Kreise mit ungerader Eckenzahl (Fallunterscheidung): 1.Fall: Graphen ohne Kreise ⇒ Baum, d.h. ist bipartit 2.Fall: Graph enthält Kreise mit gerader Eckenanzahl 58 6.4.2 Beweis der Hypothese 2.Fall: Wir lassen so viele Kanten weg, bis ein Baum übrig bleibt. Färbt man nun alle Knoten abwechselnd ein, so wird folgendes klar: Abbildung 6.17: Baum der durch teilweise Kantenlöschung eines Graphen entstand Fügt man die weggelassenen Kanten wieder ein, so konnten diese nur Knoten unterschiedlicher Farbe verbunden haben, wegen der Vorraussetzung, dass nur gerade Kreise im Graphen enthalten sind. In der folgenden Abbildung sieht man, dass bei den hier verbundenen gleichfarbigen Kanten ein Kreis der Länge 7 herauskommt. Ganz egal welche Kanten man zum Wiedereinfügen“ ” wählt, wenn sie die selbe Farbe haben, so würde ein ungerader Kreis entstehen. 59 Abbildung 6.18: Baum mit hypothetisch hinzugefügter Kante Ergebnis: Die Hypothese ist korrekt Ein Graph ist bipartit ⇔ er enthält keine Kreise ungerader Länge. 60 6.5 Bipartite Graphen und Schach Für einen Turm ist das Schachbrett ein bipartiter Graph, wobei die weißen bzw. schwarzen Felder je eine Menege darstellen. Ein Zug sieht dann so aus: Abbildung 6.19: Zug des Turms in 3D und im bipartiten Graphen 6.6 Fachwerkhäuser Im folgenden wird ein Fachwerkhaus betrachtet: Dieses kann nicht ausschließlich aus senkrechten und waagerechten Balken bestehen, da es sonst einer Belastung nicht standhalten würde. Zunächst betrachten wir ein Rechteck. 61 Abbildung 6.20: Schlechtes Fachwerk Hier kann man sehen, wie sich ein Fachwerk unter Belastung verhalten würde. Durch Hinzufügen weiterer Streben lässt sich ein stabile Konstruktion eines Rechtecks und somit auch des kompletten Fachwerks erreichen: Abbildung 6.21: Stabiles Fachwerk Nun stellt sich die Frage, ob es wirklich nötig ist, alle Rechtecke mit zusätzlichen Streben auszustatten, dies könnte dann so aussehen und die Folge ist ein instabiles Fachwerkhaus. Abbildung 6.22: Sparsames Fachwerk mit Bruch Man könnte allerdings auch die sparsame Variante um eine Strebe erweitern und erhält ein stabiles Fachwerkhaus, wie in folgender Abbildung gezeigt wird. 62 Abbildung 6.23: Stabiles sparsames Fachwerk Nun untersuchen wir die Kriterien für die Stabilität von Fachwerkhäusern genauer. Dazu unterteilen wir die Rechtecke in Fächer. In unserem Fall also 6 Fächer, aufgeteilt auf 2 waagerechte Zeilen und 3 senkrechte Spalten. Bei c) verbindet also die zuletzt hinzugefügte Strebe die 1. Zeile mit der 2. Spalte. Stabilitätsbedingung für ein Fachwerk: Ein Fachwerk ist stabil, wenn jede Zeile mit jeder Spalte durch eine Strebe indirekt verbunden ist. Indirekt verbunden bedeutet: z.B.die 2. Zeile nicht direkt mit der 3. Spalte verbunden ist, da das Fach rechts unten keine Strebe besitzt. Nun ist aber die 2. Zeile mit der 2. Spalte verbunden, die 2. Spalte mit der 1. Zeile und die 1. Zeile mit der 3. Spalten. Zur Veranschaulichung kann man dies in bipartiten Graphen darstellen, wobei die Zeilen und Spalten die Ecken darstellen und die Streben die Kanten. Für die oben konstruierten Fachwerkhäuser könnte das wiefolgt aussehen: Abbildung 6.24: Graphen zu den konstruierten Fachwerkhäusern • zu a) jede Zeile ist mit jeder Spalte verbunden ⇒ vollständiger bipartiter Graph • zu b) zwischen der 1.Zeile und der 2. Spalte besteht keine Verbindung ⇒ nicht zusammenhängender Graph 63 • zu c) hier sind alle Ecken direkt bzw.indirekt durch Kanten verbunden; von Z2 gelangt man beispielweise über S2 und Z1 zu S1 Dadurch können wir folgende Schlussfolgerung ziehen: Ein Fachwerk ist genau dann stabil, wenn der entsprechende bipartite Graph zusammenhängend ist. Man kann auch noch weitere Folgerungen ziehen: Beispielsweise ist der Graph c) zusammenhängend, wenn man jedoch eine Kante weglässt, ist er es nicht mehr und das Fachwerk wäre nicht mehr stabil. Der Graph für das stabile Fachwerk mit dem geringsten Materialverbrauch ist ein Baum. Falls der Graph Kreise hat, kann man in den Kreisen solange Kanten weglassen bis ein Baum übrig bleibt. Auf das Fachwerk übertragen heißt das, dass man entsprechenden Streben weglassen kann. Diese Veranschaulichung kann man auch auf andere Konstruktionsbereiche wie Baugerüste, Brücken, usw. verallgemeinern. 6.7 Definition Matching Für das nächste Kapitel ist der Begriff Matching wichtig, wir führen ihn nun ein: Eine Untermenge M von E, d.h. eine Untermenge M der Kanten von dem Graphen G heißt Matching (Paarung) von G, wenn keine zwei Kanten aus M adjazent sind, oder anders gesagt, wenn keine zwei Kanten aus M einen gemeinsamen Endknoten haben. In den folgenden Abbildungen stellen die verstärkten Linien die Matchings dar. Abbildung 6.25: Haus vom Nikolaus mit Matchinglinien 6.7.1 Perfektes Matching Unter einem perfekten Matching versteht man, wenn ein Graph aus Teilgraphen dargestellt werden kann, welche sämtliche Ecken in dem Graphen abdecken. Der Teilgraph darf jedoch nicht aus isolierten Kanten bestehen; somit hat jede Ecke in einem perfekten Matching den Grad 1. 64 Abbildung 6.26: Haus vom Nikolaus Perfektes Matching 6.7.2 Maximales Matching Unter einem maximalen Matching versteht man, dass man keine zusätzliche Kante hinzunehmen kann, ohne die Bedingung für ein Matching zu verletzen. Im Gegensatz zum perfekten Matching sind hier auch isolierte Kanten als Teilgraphen erlaubt. Anschaulich bedeutet dies: Man kann keine weitere Verbindung zwischen Ecken des Graphens zeichnen, ohne dass sich der Grad an mindestens einer der Ecken auf 2 erhöht. Abbildung 6.27: Haus vom Nikolaus Maximales Matching I Abbildung 6.28: Haus vom Nikolaus Maximales Matching II 65 Folgerungen: Jedes perfekte Matching ist maximal, da alle Ecken durch Teilgraphen abgedeckt sind, jede Ecke also den Grad 1 besitzt und durch Hinzunehmen einer Kante, also durch Verbinden zweier Ecken, jede dieser Ecken danach den Grad 2 besitzt und somit kein Matching mehr darstellt. Dahingegen ist nicht jedes maximale Matching ein perfektes Matching, da bei maximalen Matchings auch isolierte Kanten erlaubt sind, was im Widerspruch zur Definition des perfekten Matchings steht. 6.7.3 Übung: Aufgabe 17 Finden Sie zu dem folgenden Graphen ein perfektes Matching! Abbildung 6.29: Graph zur Übung 17 Lösung: 66 Abbildung 6.30: Lösung zur Übung 17 - perfektes Matching 67 6.8 Heiratsvermittlung mit Graphen Ein weiteres Beispiel für bipartite Graphen ist das bekannte Heiratsproblem. Bei einer Heiratsvermittlung werden die Kunden in zwei Kategorien eingeteilt; in Männer und in Frauen. Zudem werden persönliche Wünsche bzgl. des Partners mit angegeben. Bei Ermittlung der darauf basierender Paarungen, stellt sich raus, dass nicht nur ein Mann zu einer Frau passt und umgekehrt. Dies kann man zunächst in einer Tabelle darstellen aber auch in einem bipartiten Graphen. Dafür konstruiere man einen bipartiten Graphen G mit der Zweiteilung V (G) = X ∪ Y , wobei X = {x1 , x2 , ..., xn } die Menge der n Männer repräsentiert und Y = {y1 , y2 , ..., yn } die Menge der n Frauen darstellt. Eine Kante verbindet den Knoten xi mit dem Knoten yi nur dann, wenn xi zu yi passt. Die Kanten des Graphen zeigen die möglichen Verbindungen der beiden Geschlechter. Abbildung 6.31: Heiratsbeispiel 1 Die Verkupplung entspricht dann der Ermittlung von Bedingungen für die Existenz eines Matchings in G. Gesucht ist nun eine Lösung bei der jeder Kunde einen Partner findet. Dies könnte folgendermaßen aussehen: 68 Abbildung 6.32: Heiratsbeispiel 2 Es gibt jedoch nicht immer eine Lösung, auch wenn es genauso viele Männer wie Frauen gibt, wie das folgende Beispiel zeigt: Zu den drei Männern Thomas, Lars und Michael passen insgesamt nur zwei Frauen, so dass einer der drei unverheiratet bleibt. Abbildung 6.33: Heirat ohne Erfolg 6.9 Heiratssatz Um nun jeden Mann verheiraten zu können, muss es zu jeder Menge von Männern eine mindestens ebenso große Menge an Frauen geben, die zu ihnen passen könnten. Die Umkehrung ist nicht so leicht einzusehen: Wenn der Graph jeder Menge von Männern eine mindestens gleich große Menge passender Frauen zuordnet, dann kann jeder Mann ein Frau finden. Dies gibt folgender Satz wieder: In einem bipartiten Graph mit den Mengen M und N gibt es genau dann ein Matching, in dem alle Elemente von M berücksichtigt werden, wenn für jede beliebige Teilmenge T von M 69 gilt: Die Kanten, die in T beginnen, haben in der Menge N mindestens so viele Enden wie T Elemente hat. 6.9.1 Beweis Beweis (per vollständiger Induktion). Wir bezeichnen die Menge X als die Menge der Männer und Y als die Menge der Frauen, und es sei n = |X|. Dann ist für jedes k, 1 ≤ k ≤ n eine Untermenge S von k Männern gegeben, die nur dann alle heiraten können, wenn sie mindestens k Freundinnen haben, d.h. |N (S)| ≥ |S|. (*) Dies zeigt, dass die Bedingung(*) dann erfüllt sein muss, wenn es eine Lösung des Heiratsproblem gibt, d.h., wenn es ein Matching in G gibt, so dass jeder Knoten ein Endknoten einer Kante ist,. Nehmen wir umgekehrt an, dass die Bedingung(*) erfüllt ist. Wir wollen nun durch vollständige Induktion nach der Anzahl der Männer beweisen, dass jeder Mann mit einer seiner Freundinnen(mögliche Partnerinnen) verheiratet werden kann. Induktionsanfang: Wenn n = 1, gibt es nur einen Mann, den wir x nennen wollen. Dann besagt(*) mit S = {x}, dass er mindestens eine Freundin hat. Damit können wir ihn verheiraten und haben den Beweis für n = 1 erbracht. Nehmen wir nun an, dass das Ergebnis für alle Mengen von t Männern richtig ist, wobei t = 1,2,...,n-1 ist. Wir wollen zeigen, dass das Ergebnis für eine Menge von n Männern richtig ist und betrachten zwei Fälle. Induktionsschluss: Fall a. Nehmen wir zunächst an, dass für jedes beliebige k mit 1 ≤ k ≤ n, jede Menge von k Männern zusammen mindestens k+1 Freundinnen hat. Dies bedeutet, dass wir für jede Untermenge S von X mit |S| < n, |N (S)| ≥ |S + 1| erhalten, d.h., die Bedingung (*) ist erfüllt, wobei eine Freundin “übrigbleibt“. Wird nun ein beliebiger Mann mit einer seiner Freundinnen verheiratet, verbleiben noch n-1 zu verheiratende Männer. Für jede beliebige, aus k Männern bestehende Untermenge der verbleibenden n-1 Männern, haben durch dieses Verfahren möglicherweise eine ihrer Freundinnen verloren, nämlich die eine, die den ersten Mann geheiratet hat. Damit könnten wir die übriggebliebene Frau“verloren ” haben, aber die Bedingung(*)ist für die Untermenge der n-1 Jungen noch nicht erfüllt. Gemäß unserer Induktionsvoraussetzung können wir daher jeden dieser n Männer mit einer seiner Freundinnen verheiraten. Fall b. Nehmen wir nun an, dass es eine Menge k dieser n Männer gibt, mit k < n, die gemeinsam genau k Frauen kennt. (Das besagt, dass (*) gültig ist, aber der vorherige Fall (a) nicht.) Da k < n, ermöglicht es unsere Induktionsannahme, diese k Männer zu verheiraten. Es verbleiben n-k Männer, die noch unverheiratet sind. Aber jede Auswahl von h dieser n-k Männer(mit 1 ≤ h ≤ n − k ) muss mindestens h Freundinnen aus der Anzahl der verbleibenden Frauen haben, da andernfalls diese h Männer zusammen mit der obigen Auswahl der k Männern(h+k Männer insgesamt)im Widerspruch zu Bedingung(*) weniger als h+k Freundinnen haben würden. Es folgt, dass die Bedingung(*)auch für die verbleibenden Männer zutrifft und wir somit 70 gemäß unserer Induktionsvoraussetzung jeden dieser n Männer ebenfalls mit einer Freundin verheiraten können. Unter der Annahme, dass das Ergebnis für 1,...,n-1 richtig ist, konnten wir beweisen, dass es auch für n richtg ist. Daher ist das Ergebnis gemäß der vollständigen Induktion für alle Werte von n richtig. q.e.d 6.10 Folgerung aus dem Heiratssatz Zunächst eine kurze Definition, die wir im Folgenden benötigen: Ein Graph ist regulär, wenn alle Ecken den gleichen Grad haben. Eine Folgerung aus dem Heiratssatz ist die, dass man immer ein Matching findet, dass alle Ecken berücksichtigt, falls der bipartite Graph regulär ist. 6.10.1 Beweis Zunächst wieder einige Bezeichnungen: Die beiden Teilmengen, die den bipartiten Graphen darstellen, nennen wir M und N. Der Grad der Ecken, die hier gleich groß sein sollen, nennen wir r. Mit |M | bezeichnen wir wieder die Anzahl der Ecken von M. Somit ist die Anzahl aller Kanten, die von allen Ecken von M ausgehen insgesamt r * |M | Gleichermaßen gibt es r * |N | Kanten, die von N nach M führen. Wenn der Graph G bipartit ist, verläuft jede Kante von M nach N (dieselbe wie von N nach M ) und somit gilt: r *|M | = r * |N | Da k > 0, führt das Kürzen zu: |M | = |N |. Dies bedeutet, dass die Mengen M und N gleich viele Ecken besitzen. Im Folgenden wird der Heiratssatz angewendet. Dazu betrachten wir eine beliebige Teilmenge T von M (in der folgenden Abbildung verdeutlicht durch zusätzlichen Kreis um die Ecke). Von T aus gehen also einige Kanten zu Ecken von N. Die erreichten Ecken bilden die Menge U (in der folgenden Abbildung sind diese auch durch zusätzliche Kreise um die Ecken von N gekennzeichnet. Wie man sieht, beginnen in T r * |T | Kanten. Von U gehen in diesem Beispiel jedoch mehr Kanten aus als von der Menge T. Es gilt also: r ∗ |U | ≥ r ∗ |T | gekürzt also |U | ≥ |T | Das ist gerade die Bedingung für die Verwendung des Heiratssatz. 71 Abbildung 6.34: Folgerung Heiratssatz 1 Es folgt also: Ist ein bipartiter Graph regulär, so gibt es ein Matching, dass alle Ecken von M und N berücksichtigt. (M und N sind dabei die Eckenmengen, aus denen der Graph besteht.) Also gibt es in jedem regulären bipartiten Graphen ein perfektes Matching. Für unser Beispiel: 72 Abbildung 6.35: Folgerung Heiratssatz - perfektes Matching 6.11 abschließende Übung Wir haben gelernt, dass jeder reguläre bipartite Graph ein perfektes Matching hat. Es stellt sich die Frage, ob jeder reguläre Graph ein perfektes Matching besitzt. Die Antwort lautet nein. Die Begründung liefert der folgende Graph. Woran kann man erkennen, dass er 1. nicht bipartit ist 2. regulär ist 3. kein perfektes Matching besitzt Abbildung 6.36: Graph zur Übung 18 Lösung: • nicht bipartit: Er besitzt Dreiecke • regulär: Alle Ecken haben den Grad 3 • kein perfektes Matching: Von diesen drei Kanten kann nur eine zum Matching gehören, die beiden anderen also nicht. Sie müssen von den anhängenden Quadraten versorgt“ ” werden. Diese Quadrate haben aber fünf Ecken, so dass es für sie kein perfektes Matching geben kann. 73 Abbildung 6.37: Lösungsgraph zur Übung 18 74 7 Digraphen 7.1 gerichtete Graphen – Digraphen In den vorangegangenen Kapiteln haben wir Graphen kennengelernt, in denen es ausreichte zu wissen, dass zwischen zwei Knoten eine Verbindung besteht. Es gibt aber auch viele Problemstellungen, bei denen dieses Wissen nicht genügt bzw. nicht eindeutig zu bestimmen ist. Wenn man z.B. die Straßen einer Stadt nimmt, kann es sein, dass man von Kreuzung A nach Kreuzung B direkt gelangt, aber die umgekehrte Richtung nicht möglich ist, da es sich um eine Einbahnstraße handelt. In diesem Fall gibt es eine Kante von A nach B, aber nicht umgekehrt. Zur eindeutigen Kennzeichnung wird die Kante in Form eines Pfeils gezeichnet. Demnach benötigt man für normale Straßen zwei Kanten, eine für jede Richtung. A B c Google Maps) Abbildung 7.1: Stadtplan von Jülich City ( Stellt man den Stadtplan nach dieser Art dar, erhält man einen so genannten gerichteten“ ” 75 Graphen, der allgemein auch als Digraph 1 bezeichnet wird. Definition 1 (Digraphen) Gegeben sind eine endliche Menge Knoten V und eine Relation K ⊆ V × V , wobei k = (u, v) ∈ K eine gerichtete Kante von Knoten u nach Knoten v ist, ~ dann bezeichnet man G(V, K) als gerichteten Graphen bzw. Digraphen. Bemerkung 2 Jeder ungerichtete Graph ist auch ein Digraph, aber nicht jeder Digraph ist ein ungerichteter Graph. 1 2 1 2 3 4 3 4 Abbildung 7.2: Übergang vom ungerichteten zum gerichteten Graphen Jeder ungerichtete Graph kann in einen Digraph umgewandelt werden, indem jede Kante durch zwei gerichtete Kanten ersetzt wird, wie es in Abbildung 7.2 dargestellt ist. Durch die Richtung erhalten die Knoten jetzt ein weiteres Charakteristikum. Und zwar kann man zählen, wie viele Kanten von einem Knoten abgehen bzw. an einem Knoten ankommen. Definition 3 Die Anzahl der zu einem Knoten hinführenden Kanten nennt man Eingangsgrad eines Knoten. Entsprechend nennt man die Anzahl Kanten, die von einem Knoten wegführen, den Ausgangsgrad. Das bedeutet auch, ein Knoten erhält durch eine Schlinge einen Ausgangs- und einen Eingangsgrad hinzu, weil die Kante beim Knoten beginnt und wieder endet. Eine weitere Konsequenz der gerichteten Kanten ist, dass die Adjazenzmatrix eines Digraphen nicht mehr notwendigerweise symmetrisch ist (Siehe Abbildung 7.3). A C B A → B C D D A 0 0 0 1 B 1 1 0 0 C 1 0 0 1 D 1 0 0 0 Abbildung 7.3: Adjazenzmatrix eines Digraphen Ausserdem hat die Ergänzung eines Graphen durch Richtungen Auswirkungen auf die Frage, ob zwei Digraphen isomorph zueinander sind. Den Isomorphismus bei ungerichteten Graphen haben wir bereits im ersten Kapitel über Eulersche Graphen kennengelernt. 1 Digraph kommt aus dem Englischen und steht für directed graph 76 Bemerkung 4 Zwei Digraphen sind isomorph, wenn die zugrunde liegenden ungerichteten Graphen isomorph sind, und die Knoten den gleichen Eingangs- und Ausgangsgrad besitzen. In Abbildung 7.4 sind die beiden Digraphen ➊ und ➌ isomorph zueinander. Die Digraphen ➊ und ➋ sind es nicht , weil im zweiten Graph u.a. ein Knoten mit Eingangsgrad drei existiert, der im ersten nicht vorkommt. 1 2 3 Abbildung 7.4: Isomorphie bei Digraphen Kommen wir zurück auf das Beispiel mit dem Straßenplan, der teilweise aus Einbahnstraßen besteht. Die Frage, die man sich jetzt stellen könnte, ist: Können alle Straßen durch Einbahnstraßen ersetzt werden, so dass ein Autofahrer trotzdem noch alle Punkte in der Stadt erreichen kann? Definition 5 Gibt es in einem Digraph von jedem Knoten einen gerichteten Weg über alle anderen Knoten, so bezeichnet man ihn als stark zusammenhängend. Nicht jeder Straßenplan lässt sich in ein Einbahnstraßensystem umwandeln, das diese Eigenschaft besitzt. Wenn zum Beispiel zwei Stadtteile nur durch eine einzelne Brücke miteinander verbunden sind, darf diese nicht zur Einbahnstraße gemacht werden. Ansonsten könnten die Bewohner der einen Seite die auf der anderen nicht besuchen, nur umgekehrt. Sackgassen sind die einfachste Art einer Brücke. Noch eindeutiger ist der fehlenden Zusammenhang, wenn eine Stadt – wie früher Berlin – in zwei Teile unterteilt ist und es überhaupt keine Verbindung zwischen den Teilen gibt. In Abbildung 7.5 on the next page sind Digraphen dargestellt, die nicht stark zusammenhängend sind, weil sie entweder Brücken besitzen(➊,➋) oder gar nicht verbunden sind(➌). Bemerkung 6 Ein Graph kann genau dann zu einem stark zusammenhängenden Digraphen gemacht werden, wenn er zusammenhängend ist und keine Brücken enthält. Der Beweis für diesen Satz geht analog dem Beweis aus Abschnitt 7.5 on the following page, nur das bei gerichteten Graphen noch die Richtung der Kante berücksichtigt werden muss. Sowohl eulersche Graphen (Vgl. Königsberger Brückenproblem [?]) als auch hamiltonsche Graphen (Vgl. Traveling Salesman Problem [?]) erfüllen diese Bedingung. Um einen eulerschen Digraphen zu erhalten, muss bei einem eulerschen Graphen die Richtung der Kanten berücksichtigt werden. Folgt man dem eulerschen Weg, muss die Anzahl der Eingangsgrade jedes Knotens gleich der Anzahl der Ausgangsgrade sein. Umgekehrt kann mit 77 1 2 3 Abbildung 7.5: Brücken und Einbahnstraßen dem Algorithmus von Hierholzer ([?]) gezeigt werden, dass immer ein gerichteter eulerscher Weg gefunden wird, wenn in einem Digraph in jedem Knoten die Eingangsgradzahl gleich der Ausgangsgradzahl ist. Definition 7 (eulerscher Digraph) Ein Digraph ist genau dann eulersch, wenn er zusammenhängend ist und in jedem Knoten der Eingangsgrad gleich dem Ausgangsgrad ist. Abbildung 7.6: eulerscher Digraph (links) und hamiltonscher Digraph (rechts) Ähnlich kann die hamiltonsche Eigenschaft von Graphen auf Digraphen übertragen werden. Definition 8 (hamiltonscher Digraph) Ein hamiltonscher Digraph ist ein Digraph, bei dem ein gerichteter Rundweg über alle Knoten existiert. Ein eulerscher und ein hamiltonscher Digraph sind in Abbildung 7.6 zu sehen. 7.1.1 Anwendung von Digraphen: Turniergraphen Ein Turnierverlauf, bei dem jeder Spieler einmal gegen jeden Gegenspieler antritt und es immer einen Sieger pro Duell gibt, kann durch einen Digraphen dargestellt werden. Die Spieler werden durch die Knoten repräsentiert und zwischen je zwei Knoten wird eine gerichtete Kante vom Sieger zum Verlierer eingetragen. 78 Definition 9 Ein Digraph, bei dem es zwischen je zwei Knoten genau eine gerichtete Kante gibt und keine Kante existiert, die von einem Knoten auf sich selber zeigt (Schlinge), bezeichnet man als Turniergraph. Zwei Beispiele von Turniergraphen sind in Abbildung 7.7 on the following page zu sehen. Die Frage ist nun: Kann man aus einem Turniergraphen erkennen, wer der beste Spieler ist? Natürlich ist der Spieler Turniersieger, der die größte Ausgangsgradzahl hat. Nur muss dass nicht immer eindeutig sein. Um festlegen zu können, wer Sieger des Turniers ist, muss daher eine Rangfolge erstellt werden. Bemerkung 10 In jedem Turniergraph gibt es mindestens einen gerichteten Weg, der durch sämtliche Knoten führt. Beweis: vollständige Induktion Induktionsanfang: Es gibt eine Menge mit zwei Knoten {A1 , A2 } und o.B.d.A. gilt: A1 A2 Induktionsbehauptung: n Knoten {A1 , . . . An } bilden einen Turniergraphen, in dem es einen gerichteten Weg über alle Knoten gibt: Ai(2) Ai(1) A... Ai(n) Induktionsschritt: Wird An+1 hinzugefügt, müssen drei Fälle unterschieden werden. 1. Fall: An+1 → Ai(1) : Es existiert ein Weg! Ai(1) Ai(n) A... An+1 2. Fall: Ai(n) → An+1 : Es existiert ein Weg! Ai(1) A... Ai(n) An+1 3. Fall: Es gilt: Ai(1) → An+1 und An+1 → Ai(n) => Es muss ein Knoten-Tupel (Ai(k) , Ai(k+1) ) geben, so dass (Ai(k) → An+1 → Ai(k+1) ), denn ansonsten müssten alle Beziehungen An+1 → Ai(∗) bzw. Ai(∗) → An+1 sein, was aber laut Vorraussetzung nicht sein kann. Ai(1) Ai(k+1) Ai(k) An+1 79 Ai(n) Haben wir somit immer einen eindeutigen Sieger? Nein, denn nimmt man z.B. drei Spieler A, B und C und gewinnt A gegen B, B gegen C und C gegen A, so kann sich jeder als Sieger fühlen, da er jeden anderen direkt oder indirekt geschlagen hat. Er findet einen Weg durch den Turniergraphen zu allen Knoten, der bei ihm selbst beginnt. So eine Konstellation bezeichnet man als Kreis im Turniergraph, der Graph ➊ in Abbildung 7.7 ist ein Beispiel dafür 1 2 Abbildung 7.7: Beispiele für Turniergraphen: Turniergraphen mit drei Knoten Wie man in der Abbildung 7.8 sieht, ist dort zwar der Sieger eindeutig bestimmt, die restlichen Spieler bilden aber wieder einen Kreis. Auch hier kann keine eindeutige Reihenfolge festgelegt werden. S Abbildung 7.8: Turniergraph mit eindeutigem Sieger Damit das möglich ist, darf es nur genau einen Weg durch den Turniergraphen geben. Transitive Turniergraphen erfüllen diese Eigenschaft. Definition 11 (transitiver Turniergraph) Ein Turniergraph ist transitiv, wenn für alle Knoten A, B, C ∈ {Knoten des Graphen} gilt: A→B und B→C => A→C Das bedeutet zusätzlich, dass zwei transitive Turniergraphen, die in der Anzahl ihrer Knoten übereinstimmen, isomorph sind. Denn aus der Bedingung für die Transitivität kann es nur eine Darstellung für den Turniergraphen geben. 80 A1 A2 A3 Ak Ak+1 An-1 An Abbildung 7.9: transitiver Turniergraph Ein Beispiel für einen transitiven Turniergraphen finden wir in Abbildung 7.9 und auch in in Abbildung 7.7 on the preceding page in Graph ➋ In Abbildung 7.9 wird zudem gezeigt, dass man jeden transitiven Turniergraphen so zeichnen kann das alle Kanten von links nach rechts führen. Könige und Vizekönige Mit Turniergraphen können auch soziale Beziehungen in einer Personengruppe dargestell werden (Soziogramm), sofern man den Idealfall der partnerschaftlichen Gleichberechtigung außer Acht lässt. Wie in Bemerkung 10 on page 79 bereits erwähnt, gibt es immer einen Weg durch den ganzen Digraphen, doch der muss nicht eindeutig sein. Wer hat also jetzt das Sagen in der Gruppe? Betrachten wir dazu die Ausgangsgrade der Knoten. Ohne Beschränkung der Allgemeinheit können wir sagen, dass es einen Knoten M - den König - gibt, der den größten Ausgangsgrad hat. Der einfachste Fall ist, wenn der Knoten M nur abgehende Kanten hat. Diese Person ist allen anderen übergeordnet, hat also die Position eines Diktators. Wenn dem nicht so ist, können wir die anderen Knoten in zwei Gruppen einteilen. Die Ein” gangsmenge“ E enthält alle Personen, die Einfluss auf M haben, und in der “Ausgangsmenge“ A sind alle die, die M kontrolliert. Betrachten wir nun die Gruppe E. Kann es eine Person in dieser Gruppe geben, die alle Personen der Gruppe A direkt beeinflussen kann? Nein, denn dann wäre der Ausgangsgrad dieses Knotens größer als der von M , was nicht sein kann. Also wird jede Person aus E von mindestens einer Person aus A kontrolliert. Damit wissen wir von König M , dass er jeden anderen direkt oder über einen Mittelsmann - einem Vizekönig - beherrscht. Bemerkung 12 In jedem Turniergraphen gibt es mindestens einen Knoten, von dem aus man jeden anderen Knoten in höchstens zwei Schritten erreichen kann. Ein Beispiel dazu findet sich in Abbbildung 7.10 on the next page. Diese Person muss nicht eindeutig sein. Es ist sogar so, dass fast immer eine Konstellation konstruiert werden kann, so dass jeder Knoten alle anderen in ein oder zwei Schritten erreichen kann. Bemerkung 13 Für jede Knotenzahl gibt es einen Turniergraphen, in dem man von jedem Knoten zu jedem anderen in höchstens zwei Schritten gelangen kann, außer für n = 2 und 4 81 k K Abbildung 7.10: K ist ein König, k ein Vizekönig N = 2 ist der triviale Fall, denn zwischen den beiden Knoten gibt es nur eine gerichtete Kante, und damit gibt es keine Möglichkeit vom Unterlegenen einen Weg zum Sieger zu finden. Für vier Knoten sind in Abbildung 7.11 alle möglichen Turniergraphen (bis auf die isomorphen Kombinationen) aufgezeichnet, und wie man sieht gibt es keine Lösung, so dass alle Knoten König sein können. 3-1-1-1 2-2-2-0 3 - 2 - 1- 0 2-2-1-1 Abbildung 7.11: Turniergraphen mit vier Knoten (Die Zahlen entsprechen dem Ausgangsgrad der Knoten) Warum gibt es denn für alle anderen Knotenzahlen eine Lösung? Turniergraphen für 3, 5 und 6 Knoten, die diese Bedingung erfüllen, sind in Abbildung 7.12 on the next page angegeben. Angenommen, für n Knoten gibt es eine Lösung. Dann nehmen wir zwei Knoten hinzu: A und B Ohne Beschränkung der Allgemeinheit können wir festlegen, dass B A schlägt. Wenn dann A alle n Knoten besiegt, aber B von allen geschlagen wird, wie in Abbildung 7.13 on the following page dargestellt, dann haben wir wieder einen Turniergraphen, wo jeder Knoten jeden anderen in spätestens zwei Schritten erreichen kann. Da wir damit den Beweis von n → n + 2 gezeigt haben, und es für 5 und 6 nachgewiesen haben, gilt die Aussage für alle Knotenzahlen n ≥ 5. 82 Abbildung 7.12: Turniergraphen mit drei, fünf und sechs Knoten A B ... (je n-2 Kanten) Turniergraph mit n-2 Ecken Abbildung 7.13: Turniergraphen mit n Knoten 7.1.2 Anwendung von Digraphen: kürzeste Wege Problem Eine weitere Anwendung von Digraphen findet sich bei der Suche nach dem kürzesten Weg von einem Knoten zu einem bestimmten anderen Knoten. Wenn man z.B. in einer großen Stadt mit der Straßenbahn zu einem bestimmten Ziel fahren möchte, kann es sein, dass es mehrere Wege gibt, die dort hin führen. Nur welcher ist der kürzeste? 9M H4 ten 8 Minuten Ziel H6 inu H3 10 Min ute n M in ut en 7 Minuten 12 4 Minuten H1 H2 4 Minuten 15 Start n ute Min H5 ten inu M 14 Abbildung 7.14: Fahrstrecke vom Start zum Ziel als gewichteter Digraph Um das Problem zu lösen, stellt man die Haltestellen als Knoten eines Digraphen dar. Wenn zwei Haltestellen direkt miteinander verbunden sind, zeichnet man zwischen ihnen eine Kante. Um nun die Fahrdauer zu berücksichtigen, wird die entsprechende Kante mit der Zeit gewichtet. In der Abbildung 7.14 ist ein Beispiel dargestellt. Ein Lösungsansatz ist der Dijkstra-Algorithmus, der für allgemeine Graphen bereits beschrieben wurde. In diesem Beispiel muß wie folgt vorgegangen werden. Man geht von dem Start-Knoten H1 als Anfangsmenge aus und merkt sich alle Knoten in einer Liste, die direkt erreicht werden können: H2 : 15 Minuten H3 : 9 Minuten Der mit der kürzesten Fahrzeit wird mit in die Menge aufgenommen: {H1, H3} Die Liste aus dem ersten Schritt wird um die Knoten erweitert, die über den gerade hinzugewonnenen Knoten zu erreichen sind. Dabei muss bei der Fahrzeit die Zeit bis zu der 83 neuen Haltestelle berücksichtigt werden. Wird jetzt ein Knoten, der bereits in der Liste ist, noch schneller über den neuen Knoten erreicht, muß diese neue Zeit behalten werden: H2 : 13 Minuten H4 : 21 Minuten H5 : 17 Minuten Die Haltestelle mit der insgesamt kürzesten Fahrzeit wird in unsere Menge aufgenommen: {H1, H3, H2 über H3} So fährt man fort, bis man am Zielknoten angekommen ist. Als Ergebnis erhält man den kürzesten Weg vom Start- zum Zielpunkt und die Fahrzeit. In diesem Beispiel kommt man am schnellsten ans Ziel, wenn man von H1 über H3 nach H2, weiter nach H4 und letztlich nach H6 fährt. Die Fahrzeit beträgt 30 Minuten. 7.1.3 Anwendung von Digraphen: Teilergraph Für jede natürliche Zahl kann ein sogenannter Teilergraph erstellt werden. Dabei fängt man mit der Zahl selber an und teilt diese durch ihre Primteiler. In Abbildung 7.15 hat die Zahl 50 die möglichen Primteiler 2 und 5. Die Zahl 50 geteilt durch 2 ergibt 25, und wird als neuer Knoten eingetragen. Mit den neuen Knoten fährt man nach selben Prinzip fort, bis die Ergebnisse selber Primzahlen sind. 50 2 5 25 10 5 2 5 2 5 Abbildung 7.15: Teilergraph Diese Darstellung für die Zahl 50 sagt etwas über die Struktur der Zahl aus. Nimmt man sich zwei beliebige Knoten heraus - z.B. die 25 und die 10, und folgt diesen Knoten nach unten bis sich die Wege in einem Knoten treffen, hat man den größten gemeinsamen Teiler (ggT) gefunden (5). Geht man statt nach unten nach oben - z.B. von der 2 und 5, dann treffen sich die Wege im kleinsten gemeinsamen Vielfachen (kgV), hier der 10. 84 8 Körper und Flächen 8.1 Einleitung und Motivation Bisher betrachtete Graphen waren Zeichnungen in der Ebene, d.h. zweidimensionale Gebilde. Aber da unsere Welt um uns herum dreidimensional ist, sollten wir versuchen, auch den Begriff des Graphen auf die dritte Dimension auszuweiten. Ecken und Kanten können wir uns auch im Raum vorstellen. Dabei sind Ecken Punkte im Dreidimensionalen und die Kanten stellen die Verbindungen zwischen diesen Punkten dar. Auf diese Art und Weise können wir nun auch Körper als Graphen ansehen. Dabei interessieren wir uns hier nicht für Volumen, Winkel oder Längen von Kanten und Größen von Flächen. Vielmehr soll es in diesem Kapitel um die Beziehungen zwischen Ecken und Kanten eines als Graphen aufgefassten Körpers gehen. Die folgende Abbildung zeigt zwei Beispiele für Graphen im dreidimensionalen Raum. Abbildung 8.1: Räumliche Graphen. Ohne große Vorkenntnisse können wir jedoch bereits an dieser Stelle feststellen, dass sich gewisse Körper nicht in einem Graphen darstellen lassen. Eine Kugel beispielsweise besitzt keine Kanten. Ein Zylinder hingegen besitzt zwar Kanten, diese sind aber nicht durch Ecken begrenzt. Wir müssen daher die Gruppe der Körper, die wir uns in diesem Kapitel näher ansehen wollen, einschränken. Wir beschäftigen uns im Weiteren mit endlichen Polyedern, d.h. mit Körpern, die durch ebene Flächen begrenzt werden. Außerdem schließen wir bei den im Folgenden zu betrachtenden Körpern durchgehende Löcher wie in Abbildung 8.2 aus. Abbildung 8.2: Körper mit Löchern werden nicht untersucht. 85 8.2 Darstellung von Polyedern in der Ebene Nachdem wir im letzten Abschnitt festgelegt haben, welche Art von Gebilden wir näher betrachten wollen, stellt sich die Frage, wie man dreidimensionale Graphen in der zweidimensionalen Zeichenebene darstellen kann. 8.2.1 Schrägbilder Eine bekannte Möglichkeit Körper zu zeichnen, bietet die Verwendung von Schrägbildern. Bei der Konstruktion von Schrägbildern ist es sinnvoll, zunächst die Grundfläche zu zeichnen. Dabei beginnt man mit einer beliebig gewählten Grundseite. Diese wird horizontal und in der vorgegebenen Länge gezeichnet. Anschließend konstruiert man die Tiefenkanten, welche je an den beiden Eckpunkten der Grundseite um 45◦ geneigt angesetzt werden. Damit wird ein dreidimensionalen Effekt erzielt. Des Weiteren konstruiert man die Tiefenkanten um die Hälfte des vorgegebenen Maßes gekürzt, da man in der Wirklichkeit aus dieser schrägen Perspektive auch nur die Hälfte der Tiefenkanten erkennen kann bzw. es kommt einem so vor als wären sie nur halb so lang wie sie wirklich sind. Wenn nun die Konstruktion der Grundfläche abgeschlossen ist, sind die Höhenkanten an der Reihe. Sie werden in wahrer Länge vertikal zu den Breitenkanten gezeichnet, wobei auf jeden Eckpunkt jeweils eine Höhenkante gesetzt“ wird. Zuletzt verbindet man noch diese miteinander, sodass man die Deckfläche des ” Körpers erhält und dieser somit fertig dargestellt ist. Wenden wir dieses Verfahren auf unseren Würfel an, so erhalten wir das bereits auf der linken Seite in Abbilung 8.1 gezeigte Ergebnis. Bei Schrägbildern kann es jedoch zu einer Art optischen Täuschung kommen, da einzelne Flächen und ihre Formen nicht deutlich zu erkennen sind und unser Gehirn ggf. das Gesehene falsch interpretiert. Verstärkt wird dieser Effekt durch die Tatsache, dass die Schnittpunkte gezeichneter Linien nicht immer auch Ecken des Körpers sind (s. Abb. 8.3). Abbildung 8.3: Schrägbilder von Graphen, in denen sich die Kanten schneiden (rote Markierungen). Wünschenswert sind also Darstellungen, in denen sich die Kanten nur in wirklichen Ecken schneiden. Eine solche Art von Darstellung nutzen beispielsweise auch Elektrotechniker. Auf ihren Schaltplänen dürfen sich, wie in Abbildung 8.4 zu erkennen, Leitungen ohne weiteres überkreuzen. In der technischen Ausführung, also beispielsweise auf den Leiterplatten (siehe Abb. 86 8.5), sollten solche Kreuzungen möglichst vermieden werden, um Kurzschlüsse auszuschließen. Abbildung 8.4: Schaltplan, in dem sich Leitungen kreuzen. Abbildung 8.5: Vorlage für die Beschichtung einer Leiterplatte nach dem Schaltplan aus Abbilung 8.4. 8.2.2 Überdehnung einer Fläche Zur Darstellung von dreidimensionalen Graphen, in denen sich keine Kanten schneiden, überdehnen wir eine Fläche. Betrachten wir dazu als Beispiel den Würfel aus Abbildung 8.1 und stellen uns vor, dass wir ihn beliebig dehen könnten. Dehnen wir die vordere Fläche nach allen Seiten aus, werden die angrenzenden Seitenflächen jeweils nur an einer Kante mitgedehnt und so in Trapeze überführt. Abschließend werden alle Ecken in die Frontfläche vorgezogen. Wie in Abbildung 8.6 zu erkennen, liegen abschließend alle Ecken und somit auch die verbindenden Kanten in einer Ebene. Abbildung 8.6: Dehnen eines Würfels - Abschließend liegen alle Ecken und Kanten auf einer Ebene. 87 Mit dieser Plättung“ wurde nun erreicht, dass sich die Kanten nur noch in Ecken schnei” den. Allerdings geht so der räumlichen Eindruck ein wenig verloren. Außerdem gewinnt man den Eindruck, dass der Würfel jetzt nur noch fünf statt vorher sechs Seitenflächen besitzt. Die Ursache liegt in der stark gedehnten Vorderseite, so dass sie alle anderen Flächen überdeckt. Aus diesem Grund wird als Frontfläche nicht die Fläche innerhalb der äußersten Ecken definiert, sondern die Fläche um unser Gebilde herum. Anschaulich kann man auch sagen, man schneidet ein Loch in die Vorderseite und zieht den Rand des Loches nach außen. Die Vorderseite wird bei diesem Vorgehen quasi ins Unendliche ausgedeht, aber besitzt immer noch die gleich Anzahl an Ecken und Kanten - in unserem Beispiel jeweils vier. Aus diesem Vorgehen können wir nun einen Algorithmus zur Darstellung von endlichen Polyedern herleiten: • Eine beliebige Seitenfläche nach allen Seiten dehnen. • Die übrigen Ecken und Kanten in die Ebene dieser Fläche drücken. • In die Vorderfläche ein Loch stechen und die Ränder nach außen ziehen. Dass die so erzielte Darstellung nicht gradlinige Kanten besitzen muss, zeigt das nächste Beispiel. Abbildung 8.7: Dehnen einer vierseitigen Pyramide. Abbildung 8.7 zeigt das Ergebnis unseres Algorithmus angewendet auf eine vierseitige Pyramide. Dabei wurde eine der vier Dreiecksflächen als Außenfläche gewählt. Durch das Überdehnen verbeulen einige der Dreiecksflächen, was aber im Rahmen der hier betrachteten Graphentheorie keine Rolle spielt. Man kann aber auch wie im Fall des Würfels die Pyramide mit gradlinigen Kanten darstellen, wie Abbildung 8.8 zeigt. Abbildung 8.8: Vierseitige Pyramide mit geradlinigen Kanten. Diese einfachen Beispiele zeigen jedoch schon, worauf es bei der graphentheoretischen Betrachtung von Polyedern ankommt: 88 • Kanten und begrenzende Ecken bleiben eine Einheit. • Verschiedene Kanten schneiden sich nur in Ecken, die auch tatsächlich im Körper vorhanden sind. • Die wesentlichen Charakteristika (Grad jeder Ecke, Anzahl der Ecken für jede Fläche, Anzahl aller Ecken) eines Graphen bleiben erhalten. 8.2.3 Ausdehnen einer Kugel Eine weitere Möglichkeit, einen dreidimensionalen Graphen auf eine zweidimensionalen Ebene abzubilden, ohne dass sich Kanten kreuzen, ist die Methode der ausdehnenden Kugel. Hierzu stelle man sich eine Kugel in einem Polyeder vor. Unter der Voraussetzung, dass die Kanten des Polyeders biegsam sind, kann sich diese Kugel ausdehnen. Die Kanten und Ecken legen sich auf die Oberfläche der Kugel. Abbildung 8.9: Darstellung eines Würfels als platter Graph mittels einer sich ausdehnenden Kugel - hier mit einem Luftballon. Nachdem sich alle Ecken und Kanten auf der Oberfläche der Kugel befinden, kann man die Oberfläche der Kugel aufschneiden und platt auf eine Ebene legen. Bei dieser Methode wird auch klar, warum der ursprüngliche Körper, wie in Abschnitt 8.1 auf Seite 85 vorausgesetzt, keine durchgehenden Löcher besitzen darf. Dann wäre die gerade vorgestellte Methode nicht durchführbar gewesen. Eine weitere Möglichkeit für die Darstellung dreidimensionaler Graphen in einer zweidimensionalen Ebene bietet die stereographische Projektion (auch konforme azimutale Projektion genannt). Dies ist ein winkeltreues Abbildungsverfahren zum mathematischen Entwurf von Kartennetzen. Häufig wird diese Methode genutzt, um die Erdkugel in Atlanten darzustellen, wobei das Projektionszentrum jener Punkt ist, der dem Hauptpunkt/Mittelpunkt der geplanten Landkarte gegenüber liegt. Im Fall des Plättens eines Graphen kann man sich anschaulich vorstellen, dass der Graph in eine Kugel gesteckt und in der Mitte des Graphen (dem Hauptpunkt) eine Lampe eingeschaltet wird. Die Schatten des Graphen fallen auf die Kugel. Danach kann man dann wieder die Kugel zerschneiden und platt auf eine Ebene legen. 89 Aufgabe 1: Zeichnen Sie einen Graphen für das nebenstehende Haus, wobei die Bodenplatte des Hauses die Außenfläche sein soll. Lösung auf Seite 103 8.3 Ebene und planare Graphen Im letzten Kapitel wurde gezeigt wie man einen Polyeder zeichnet, ohne dass sich zwei Kanten (außer in den Ecken) schneiden. Diese Eigenschaft wollen wir nun definieren. Definition 14 Ein Graph heißt eben, wenn seine Kanten keine gemeinsamen Punkte haben, außer in den Ecken. Außerdem legen wir fest, wann zwei Graphen isomorph heißen. Definition 15 Zwei Graphen G1 = (E1 , K1 ) und G2 = (E2 , K2 ) sind isomorph, wenn es eine bijektive Abbildung φ : E1 → E2 gibt, so dass (v, w) ∈ K1 ⇔ (φ(v), φ(w)) ∈ E2 Bemerkung 16 Isomorphe Graphen haben gleiche graphentheoretische Eigenschaften: • Gleiche Anzahl von Knoten. • Gleiche Anzahl von Kanten. • Gleiche Anzahl von Knoten eines bestimmten Grades. • Speziell: Zwei vollständige Graphen mit gleicher Knotenanzahl sind isomorph. Abbildung 8.10: Ebene Graphen. Ob ein Graph als eben bezeichnet werden kann, hängt davon ab, wie man den Graphen zeichnet. Selbst isomorphe Graphen können, wie in Abbildung 8.11 zu erkennen ist, je nach Art der Zeichnung eben oder nicht eben sein. Definition 17 Ein Graph wird als planar oder plättbar bezeichnet, wenn er zu einem ebenen Graphen isomorph ist. Wie zu Anfang dieses Kapitels gesagt, können alle Polyeder als ebene Graphen dargestellt werden. Daher gilt der folgende Satz. Satz 18 Alle Polyeder sind plättbare Graphen. 90 nicht eben eben Abbildung 8.11: Zwei isomorphe Graphen - einmal eben und einmal nicht. Sind alle Graphen plättbar? Es stellt sich nun die Frage, ob alle Graphen plättbar sind. Und es zeigt sich, dass nicht alle Graphen plättbar sind. Beweis 19 Wir zeigen, dass ein vollständiges Fünfeck nicht plättbar ist. Ein vollständiges Fünfeck besteht aus fünf Seitenkanten und fünf Diagonalen (siehe Abbilung 8.12). Die Seitenkanten teilen die Zeichenebene in zwei Bereiche: das Innere des Fünfecks und die Fläche außerhalb des Fünfecks. Im Inneren des Fünfeck können sich maximal zwei Abbildung 8.12: Beweis, dass ein follständiges Fünfeck nicht plättbar ist. Diagonalen befinden, die sich nicht kreuzen. Gleiches gilt für nach Außen verlegte Diagonalen. Es ist also maximal möglich, vier Diagonalen zu zeichnen, ohne dass sich welche kreuzen. Ein vollständiges Fünfeck besitzt jedoch fünf Diagonalen. Somit wurde ein Beispiel eines nicht plättbaren Graphen gefunden, d.h. nicht alle Graphen sind plättbar. Aus diesem Beweis können wir nun ableiten, dass alle Graphen, die ein vollständiges Fünfeck (im Folgenden mit K5 bezeichnet) als Teilgraph enthalten, ebenfalls nicht plättbar sind. Aufgabe 2: Welche der folgenden Graphen sind eben und welche plättbar? Lösung auf Seite 103 91 a) b) e) c) d) Neben dem K5 gibt es aber noch eine weitere Familie von Graphen, die nicht plättbar sind, die bipartiten Graphen. Definition 20 Ein einfacher Graph G = (E, K) (E Menge der Ecken, K Menge der Kanten) heißt bipartit, falls sich seine Ecken in zwei disjunkte Teilmengen A und B aufteilen lassen, sodass zwischen den Knoten innerhalb beider Teilmengen keine Kanten verlaufen (siehe auch Abbilung 8.13). Teilmenge A Teilmenge B Abbildung 8.13: Bipartiter Graph - In zwei disjunkten Mengen der Ecken befinden sich keine vollständigen Kanten. Beispiel 21 Energie- und Wasser-Versorgung Ein regionales Versorgungsunternehmen bekommt den Auftrag, drei Häuser an das Gas-, Wasser- und Strom-Netz anzuschließen. Aus Sicherheitsgründen dürfen sich die drei Leitungen nicht kreuzen. Hierbei entsteht ein sogenannter K3,3 -Graph. Die erste Teilmenge beinhaltet die drei Häuser, die untereinander nicht mit Leitungen verbunden sind, und die zweite Teilmenge beinhaltet die drei Versorgungsarten, die ebenfalls nicht untereinander verbunden sind. Die Suche nach der Lösung des Problems führt zum folgenden Satz 92 Abbildung 8.14: Auftrag zur Versorung von drei Häusern mit Gas, Wasser und Strom. Satz 22 Ein K3,3 -Graph (als Spezialfall eines bibartiten Graphen) ist nicht plättbar. Beweis 23 Der Beweis ähnelt dem Beweis, dass K5 nicht plättbar ist. Ein K3,3 -Graph besteht aus sechs Seitenkanten und drei Diagonalen (Verbindung zweier Knoten über den Mittelpunkt, siehe Abbildung 8.15). Die Seitenkanten teilen die Zeichenebene in zwei Bereiche: das Innere des Graphen und die Fläche außerhalb. Im Inneren des Graphen 3 Haus 3 S G 3 2 S G 3 2 S G 2 Haus 2 1 W 1 W 1 W Haus 1 Abbildung 8.15: Beweis, dass ein K3,3 -Graph nicht plättbar ist. kann sich maximal eine Diagonale befinden, ohne, dass sie sich mit einer anderen kreuzt. Auch außerhalb des Graphen kann auch nur eine Diagonale kreuzungsfrei untergebracht werden. Es können also maximal zwei Diagonalen kreuzungsfrei gezeichnet werden. Der K3,3 - Graph besitzt jedoch drei Diagonalen. Somit wurde ein weiteres Beispiel für einen nicht plättbaren Graphen gefunden. Auch bei K3,3 gilt analog zu K5 , dass alle Graphen, die einen bipartiten Graphen als Teilgraphen enthalten, nicht plättbar sind, daher der folgende Satz. Satz 24 Alle Graphen, die einen K5 - oder K3,3 -Graphen enthalten, sind nicht plättbar. Durch Unterteilung von Graphen, die dadurch entstehen, dass man auf Kanten noch zusätzliche Ecken einfügt, kann man weitere Graphen erzeugen (siehe Abbildung 8.16). Jedoch können zusätzliche Ecken nicht bewirken, dass ein vorher nicht plättbarer Graph plättbar wird. Dass es neben den beiden bekannten nicht plättbaren Graphen und Graphen, die einen dieser beiden Graphen als Teilgraphen enthalten, keine weiteren Graphen mehr gibt, die nicht plättbar nicht, hat 1930 Kazimierz Kuratowski bewiesen. 93 Abbildung 8.16: Unterilte Graphen des K5 und des K3,3 . Kazimierz Kuratowski (* 2.2.1896, † 18.6.1980) war Sohn eines Rechtsanwaltes und ging bis 1913 am philologischen ChrzanowskiGymnasium in Warschau zur Schule. Ursprünglich wollte Kuratowski Ingenieur werden, stellte aber während seines Studiums in Glasgow seine Freude an der Mathematik fest. Er wechselte den Studiengang und studierte bis 1914 in Glasgow Mathematik. Nach der durch die deutschen Besatzer ermöglichten Neugründung der polnischen Universität Warschau 1915, kehrte er dorthin zurück. 1918 schloss er sein Studium an der Universität Warschau ab und promovierte 1921. Während des zweiten Weltkrieges besetzten die Nationalsozialisten Polen und versuchten polnische Geistesleben zu vernichten. Kuratowski riskierte in dieser Zeit sein Leben, da er in der Untergrund-Universität in Warschau weiter lehrte. Kazimierz Kuratowski Satz 25 von Kuratowski Ein Graph ist genau dann nicht plättbar, wenn er ein vollständiges Fünfeck (K5 ), einen K3,3 -Graphen oder eine Unterteilung dieser beiden Graphen als Teilgraph enthält. Der Beweis zu diesem Satz basiert auf vollständiger Induktion über die Anzahl e der Ecken des Graphen und ist nachzulesen unter http://i11www.iti.uni-karlsruhe.de/teaching/SS 08/planalgo/skript/algo-plan.pdf Aus dem Satz von Kuratowski kann man nun einen Algorithmus zur Bestimmung der Plättbarkeit eines Graphen herleiten. Z Z Y Z Z Ist es möglich, den Graphen in einen ebenen Graphen umzuzeichnen? Der Graph ist plättbar N schrittweise den Graphen demontieren Bis ein vollständiges Fünfeck K5 oder ein bipartiter Graph K3,3 übrig bleibt Abbildung 8.17: Algorithmus zur Bestimmung der Plättbarkeit eines Graphen. 94 Um den Graphen schrittweise zu demontieren, entfernt man iterativ Kanten, Ecken mit all ihren Kanten, oder Ecken mit dem Grad zwei. Beispiel 26 Demontage eines Graphen Abbildung 8.18: Demontage eines Graphen bis ein K3,3 -Graph entstanden ist. In Abbildung 8.18 hat man zunächst zwei Ecken mit ihren Kanten und dann zwei Ecken mit dem Grad zwei entfernt. Das Ergebnis ist ein K3,3 -Graph, von dem wir wissen, dass er nicht plättbar ist. Somit ist auch der ursprüngliche Graph nicht plättbar. 8.4 Ebene Graphen und Flächen Definition 27 Ebene Graphen unterteilen die Ebene in verschiedene Gebiete. Diese Gebiete nennen wir Flächen. Eine Fläche wird durch Kanten des Graphen begrenzt. Abbildung 8.19: Der linke Graph besitzt zwei Flächen - der rechte eine. 8.4.1 Die eulersche Formel Nachdem nun die Flächen definiert wurden, suchen wir nach einem Zusammenhang zwischen den Anzahlen von Ecken, Kanten und Flächen eines Polyeders. Hierzu betrachten wir die entsprechenden Zahlen an einigen Beispielen: Ecken e Flächen f Kanten k Ecken + Flächen Würfel 8 6 12 14 Tetraeder 4 4 6 8 Kuboktaeder 12 14 24 26 Ikosaederstumpf (Fußballkörper) 60 32 90 92 Die Vermutung, dass die Summe aus der Anzahl von Ecken und Flächen immer um zwei größer ist, als die Anzahl der Kanten, wird durch die eulersche Formel bestätigt. Satz 28 (Die eulersche Formel) Für alle zusammenhängenden und ebenen Graphen gilt e + f − k = 2. 95 Beweis 29 Als einfachste Form eines zusammenhängenden und ebenen Graphen wird zunächst der Baum betrachtet. Aus den vorherigen Kapiteln ist bekannt, dass bei einem Baum die Anzahl der Ecken immer um eins größer ist, als die Anzahl der Kanten. Eine weitere Eigenschaft besagt, dass ein Baum immer nur eine Fläche besitzt. Also gilt: ⇔ e + f − k = (k + 1) + 1 − k = 2 Für Bäume gilt somit die eulersche Formel. Betrachten wir nun beliebige zusammenhängende Graphen, die keine Bäume sind. Von einem solchen Graphen werden schrittweise Kanten eines beliebigen Kreises entfernt. Hierbei bleibt, wie in Abbildung 8.20 zu sehen, der Wert für die Formel e + f − k konstant. Schritt 1: e = 4 f = 3 k = 5 e = 4 f = 4 k = 6 Schritt 2: e = 4 f = 2 k = 4 Schritt 3: e = 4 f = 1 k = 3 Abbildung 8.20: Schrittweises Entfernen von Kanten eines beliebigen Graphen. Wenn kein Kreis im Graphen mehr gefunden werden kann, liegt ein Baum vor (siehe Schritt 3 in Abbildung 8.20). Dass für jeden Baum die eulersche Formel gilt, wurde bereits oben gezeigt. Somit gilt die eulersche Formel für jeden zusammenhängenden, ebenen Graphen. Aufgabe 3: Prüfen Sie die Voraussetzungen für die eulersche Formel und weisen Sie die Richtigkeit der Formel ggf. nach. Lösung auf Seite 103 a) c) b) Zu Beginn des Kapitels wurde in Satz 18 gezeigt, dass sich alle Polyeder in ebene, zusammenhängende Graphen überführen lassen. Jetzt können wir uns die Frage stellen, ob auch 96 die Rückrichtung gilt. Wir möchten also wissen, ob jeder ebene zusammenhängende Graph ein Polyeder darstellt. Wie in Abbildung 8.21 zu sehen, kann man sich leicht ebene, zusammenhängende Graphen vorstellen, die keine Körper darstellen. Abbildung 8.21: Ebene Graphen, die keine Körper sind. Es können aber Mindestanforderungen an einen Graphen gestellt werden, so dass für diese Art von Graphen die Rückrichtung von Satz 18 gilt: Satz 30 Mindestanforderungen an Graphen, die auch einen Körper darstellen: Die Ecken haben mindestens den Grad 3 und die Flächen haben mindestens 3 Ecken und 3 Kanten. Da jede Ecke Endpunkt von mindestens drei Kanten ist, kann man die Anzahl für die Kanten des Körpers mit k ≥3·e annähern. Bei dieser Annäherung wird aber jeder Kante doppelt gezählt. Somit kann die Abschätzung durch 2·k ≥3·e verbessert werden. Analog kann man die Anzahl der Kanten über die Anzahl der Flächen abschätzen: 2·k ≥3·f . Zusammengefasst erhält man folgenden Satz: Satz 31 Für alle Polyeder gilt 2·k ≥3·e und 2·k ≥3·f 97 . 8.5 Die platonischen Körper bzw. Graphen Die platonischen Körper sind die nach dem griechischen Philosophen Platon benannten besonders regelmäßigen konvexen Polyeder. Diese Körper sind dadurch charakterisiert, dass ihre Flächen zueinander kongruente, regelmäßige Vielecke sind. In den Ecken treffen immer gleich viele Flächen (und somit auch Kanten) zusammen. Daraus folgt, dass alle Kanten gleich lang und alle Winkel gleich groß sind. 98 Tetraeder Würfel Ikosaeder Oktaeder Dodekaeder Abbildung 8.22: Beispiel für platonsiche Körper. Mit einem der zu Anfang des Kapitels beschriebenen Verfahren können nun die Graphen zu den platonischen Körpern erzeugt werden. Tetraeder Würfel Oktaeder Dodekaeder Ikosaeder Abbildung 8.23: Die platonsichen Graphen zu den Körpern aus Abbildung 8.22. Zu den oben aufgezählten Eigenschaften platonischer Körper kann man analoge Eigenschaften platonischer Graphen formulieren: • Sie sind eben. • Alle Ecken besitzen den gleichen Grad (mindestens 3). • Alle Flächen haben die gleiche Anzahl Ecken (mindestens 3). Definition 32 Graphen mit den genannten Eigenschaften heißen platonische Graphen. 99 Bemerkung 33 Da die platonischen Graphen Abbildungen von Körpern sind, sind die zustätzlichen Bedingungen mindestens der Grad 3 bei jeder Ecke“ und mindestens drei Ecken pro ” ” Fläche“ notwendig. In der obigen Abbildung wurden fünf platonische Körper dargestellt. Es stellt sich nun die Frage, ob es noch weitere Körper dieser Art gibt. Da weniger Bedingungen an die platonischen Graphen als an die platonischen Körper gestellt werden, ist es einfacher zu zeigen, dass es kein weiterer platonsicher Graph existiert. Beweis 34 Neben den schon bekannten Bezeichnungen für Ecken (e), Kanten (k) und Flächen (f ), werden im Folgenden noch der Grad einer Ecke mit g und die Anzahl der Ecken jeder Fläche mit n bezeichnet. Die Anzahl der Eckengrade ist doppelt so groß wie die Anzahl der Kanten, da jede Kante zwei Ecken hat (aufgrund der Bedingungen an einen platonischen Graphen können keine Schlingen, also Kanten mit nur einer Ecke, vorkommen). e·g = 2·k ⇔ e = 2·k g Analog kann man die Anzahl der Flächen, durch die Anzahl der Kanten ausdrücken: f ·n = 2·k f = 2·k n ⇔ Mit dem Satz 28 gilt: 2·k g ⇔ ⇔ e+f −k = 2 + 2·k n −k = 2 1 1 1 1 + g n − 2 = k (8.1) Da k immer positiv ist kann man die Gleichung nach unten abschätzen: 1 g + ⇔ 1 n 1 g − 12 + n1 > 0 > 12 Aufgrund der Eigenschaften eines platonischen Graphen müssen g und n größer oder gleich drei sein. OBdA sei n beliebig aber fest. Fallunterscheidung: n = 3: 1 g + 1 3 1 g 1 g + ⇔ ⇔ g 3 4 5 n 3 3 3 > 12 > 16 g < 6 2 3 7 12 5 15 100 1 n > > > 1 2 1 2 1 2 n = 4: 1 g ⇔ ⇔ g n 3 4 n = 5: 1 g ⇔ ⇔ g n 3 5 n = 6: 1 g ⇔ ⇔ + + 1 4 1 g 1 g + + 1 g > 12 > 14 g < 4 7 12 1 n > 1 2 1 5 1 g > 12 3 > 10 g < 3.3̄ + 8 15 1 n > 1 2 1 6 1 g > 12 > 13 g < 3 Für beliebige n > 6 kann es keine Lösung geben, da g < 3 gelten muss, damit 1g + erfüllt ist. Dies ist aber ein Widerspruch zur Voraussetzung. Somit kann es nur die bereits bekannten fünf platonischen Graphen geben. 1 n > 1 2 Da es nur die fünf platonischen Graphen gibt, kann es auch nur dazu passenden fünf platonischen Körper geben. Satz 35 Es gibt genau fünf platonischen Körper: Tetraeder, Würfel, Oktaeder, Dodekaeder und Ikosaeder. Aufgabe 4: Zeichnen Sie einen nichtplatonischen Graphen mit weniger als 6 Knoten, bei dem alle Flächen Vierecke sind. Lösung auf Seite 103 Lässt man bei den platonischen Körpern die Bedingungen unberücksichtigt, die über die Bedingungen des platonischen Graphen hinausgehen (gleiche Kantenlänge und gleiche Winkel), gibt es trotzdem nicht mehr Körper, die die restlichen Eigenschaften erfüllen. Abbildung 8.24: Würfel und schiefer Körper - gleiche platonische Graphen. Mit den übriggebliebenen Bedingungen kann man zwar weitere Körper finden, die aber alle auf die bereits bekannten fünf platonischen Graphen führen. 101 8.5.1 Parkettierung Im letzten Abschnitt haben wir die Eigenschaften des dreidimensionalen platonischen Körpers auf die Eigenschaften eines platonischen Graphen projeziert. Im Folgenden wollen wir nun direkt die Eigenschaften des platonischen Körpers in der zweidimensionalen Ebene anwenden. Dies führt zum Begriff der Parkettierung. Definition 36 Eine lückenlose Belegung einer Fläche mit gleichen Vielecken, bei der in einer Ecke immer gleich viele zusammenstoßen, nennt man Parkettierung. Wenn wir an Anwendungen im Alltag denken (Parkettfußboden, Fliesenspiegel in einer Küche, Terrassenplatten o.ä.), lassen sich leicht drei mögliche Arten der Parkettierung aus Quadraten, Dreiecken bzw. Sechsecken erzeugen. Abbildung 8.25: Drei verschiedene Arten von Parkettierung. Hieraus ergibt sich die Frage, ob das alle Möglichkeiten der Parkettierung sind. Mit der Gleichung 8.1 können wir diese Frage beantworten, da sie auch für die Parkettierung gilt. Da bei der Anordnung der Vielecke unendlich viele Flächen aneinander gesetzt werden, strebt auch die Anzahl der Kanten gegen unendlich und somit die rechte Seite gegen 0. 1 g ⇔ + 1 n 1 g − 12 + n1 = 0 = 12 Wir erhalten also eine diophantische Gleichung 2n + 2g − gn = 0. Die Lösungen dieser Gleichung erhält man äquivalten zum Vorgehen im Beweis, dass es genau fünf platonische Körper gibt. g n Bedingung N ame 3 6 13 + 16 = 12 Sechseck 4 4 14 + 14 = 12 Quadrat 6 3 16 + 13 = 12 Dreieck Damit existieren nur diese drei Parkettierungsmöglichkeiten. 102 8.6 Lösung der Übungsaufgaben Aufgabe 1 Aufgabe 2 Die Graphen b), d) und e) sind eben. Plättbar sind alle Graphen. Aufgabe 3 Der Graph a) ist nicht eben. Damit ist die Flächenanzahl für die eulersche Formel nicht definiert. Der Graph b) ist nicht zusammenhängend. Damit gilt die eulersche Formel nicht: e = 6, f = 3 und k = 6 6 + 3 − 2 6= 6 c) e = 11, f = 11 und k = 20 11 + 11 − 2 = 20 Aufgabe 4 103 9 Farben 9.1 Vierfarbenproblem 9.1.1 Landkarten In der Kartografie spielen Farben und Färbungen eine wichtige Rolle. In einem Atlas sind beispielsweise überwiegend bunte Landkarten zu finden, in denen jedes Land seine eigene Farbe erhält. Es wäre dabei natürlich sehr ungünstig, für zwei benachbarte Länder die gleiche Farbwahl zu treffen, da ein Unterscheiden dieser beiden Länder kaum noch möglich wäre. Eine Möglichkeit diesem Problem entgegenzutreten wäre, jedem Land auf der Karte eine andere Farbe zu geben. Doch hier stößt man auf ein weiteres Problem: Wenn man sich zum Beispiel die Weltkarte vorstellt, erkennt man sofort, dass die Palette an Farben viel zu groß wäre. Ziel ist es somit, die Farbwahl der Länder so zu treffen, dass man erheblich weniger Farben benötigt als Länder auf der Karte eingezeichnet sind, benachbarte Länder aber unterschiedliche Farben erhalten. Als benachbarte Länder werden dabei diejenigen bezeichnet, die eine gemeinsame Grenze besitzen, nicht jedoch diejenigen mit lediglich einer gemeinsamen Ecke. Eine Veranschaulichung dafür bietet die nebenstehende Grafik: Beispielsweise dürfen jeweils A und B sowie C und D die gleiche Farbe haben, A und C müssen jedoch aufgrund ihrer gemeinsamen Grenze unterschiedlich gefärbt werden. Jahrhundertelang haben sich Mathematiker an der Aufgabe versucht, herauszufinden, wieviele Farben maximal ausreichen, um eine beliebige Landkarte zu färben. Schaut man sich beispielsweise die Länder Deutschland, Belgien, Luxemburg und Frankreich an, so erkennt man, dass 3 Farben nicht zum Färben ausreichen, da jedes der 4 Länder mit allen drei übrigen Ländern durch eine gemeinsame Grenze verbunden ist. In diesem Fall wären 4 Farben eine sinvolle Wahl, was die folgende Karte zeigt: Alle Versuche der Mathematiker führten immer wieder zu der maximalen Zahl 4, so kompliziert ihre Landkarten-Darstellung auch gewählt worden war. Francis Guthrie stellte 1852 erstmals die Vermutung auf, dass 4 Farben tatsächlich reichen. Doch der Beweis für dieses sogenannte Vierfarbenproblem erwies sich als ziemlich problematisch und führte zu fehlerhaften Ergebnissen. Im Jahre 1890 gelang es dem britischen Mathematiker Percy Heawood 104 Abbildung 9.1: Beispiel Färbung einer Landkarte erstmals einen Beweis mittels vollständiger Induktion für das Fünffarbenproblem aufzustellen, welches zwar schwächer doch wesentlich leichter zu belegen ist und eine obere Grenze für die Färbung von Landkarten darstellt. Dieser besagt, dass fünf Farben für die Färbung einer beliebigen Landkarte ausreichen. Aber der Beweis für das eigentliche Problem konnte erst 1976 durch Kenneth Appel sowie Wolfgang Haken aufgestellt werden und war das erste große mathematische Problem, das mit Hilfe von Computern gelöst wurde. Sie bestätigten mit dem Vierfarbensatz, dass alle beliebigen Landkarten in der euklidischen Ebene mit maximal 4 Farben gefärbt werden können, so dass keine zwei angrenzenden Länder die gleiche Farbe erhalten. In der folgenden Karte wird dies am Beispiel von Deutschland gezeigt: Abbildung 9.2: Anwendung des Vierfarbensatzes 105 Der Vierfarbensatz gilt allerdings unter der Bedingung, dass keine Exklaven1 vorhanden sind und findet sowohl in der Kartografie, Topologie sowie in der Graphentheorie Anwendung. Ist (so wie in der Realität häufig der Fall) ein Land auf mehrere nicht-angrenzende Gebiete verteilt, dann ist der zugehörige Graph nicht unbedingt planar 2 und es sind möglicherweise mehr als vier Farben zur Färbung notwendig. 9.1.2 Graphen Mit Hilfe von Graphen kann das Problem des Färbens vereinfacht und formal dargestellt werden. Um auf das Beispiel mit den Landkarten zurückzukommen, wird jedes Land durch jeweils einen Knoten ersetzt. Knoten, welche benachbarte Länder darstellen, werden durch Kanten miteinander verbunden. Es entstehen somit ebene Graphen, da sich die Kanten nicht überschneiden. Zur Färbung des Graphen geht man analog zur Landkarte vor, wobei beachtet werden muss, dass Knoten mit einer gemeinsamen Kante unterschiedliche Farben erhalten müssen. In der nebenstehenden Abbildung wird deutlich, dass die Färbung durch das Übertragen von der Landkarte zum ebenen Graphen nicht beeinflusst wird. Auch hier gilt weiterhin der Vierfarbensatz. Da jeder plättbare Graph 3 durch Umzeichnen zum ebenen Graphen gemacht werden kann, gilt der Satz sogar für alle plättbaren Graphen. 1 Teil eines politischen Gebietes, das vom Rest des Gebietes räumlich abgetrennt ist Ein Graph, der auf einer Ebene so dargestellt werden kann, dass sich die Kanten nicht schneiden (isomorph zu einem ebenen Graphen) 3 siehe planarer Graph 2 106 Die Graphentheorie bietet eine Möglichkeit, zu zeigen, warum vier Farben ausreichen. Da es sich um ebene Graphen handeln muss und keine Exklaven vorhanden sein dürfen, kann wie folgt argumentiert werden: Damit mindestens 5 Farben notwendig sind, ist es erforderlich, dass 5 Länder alle untereinander benachbart sind, was heißt, dass es sich um einen vollständigen Graphen mit 5 Knoten handeln muss. Dass dies nicht möglich ist, zeigt die Abbildung rechts, denn ein vollständiger Graph mit mehr als 4 Knoten ist nicht plättbar. Es kann somit keine 5 Länder geben, bei welchen sich jedes Land mit jedem eine Grenze teilt. Der Vorteil ist, dass sich viele mathematische Probleme als Graphfärbungsprobleme formulieren lassen. Sie finden beispielsweise beim Stundenplanproblem, bei Register-Zuwei- sungsProblemen in Prozessoren, bei Bandbreitenzuweisungs-Problemen sowie bei der Suche nach Wegen durch ein Labyrinth Anwendung. Die Graphendarstellung lässt sich ebenfalls auf Körper anwenden. Wenn man sich nun ein beliebiges Polyeder vorstellt, so ist bekannt, dass dieses zu einem ebenen Graphen umgezeichnet werden kann. Somit gilt wiederum, dass die Flächen jedes Polyeders mit höchstens vier Farben ausgemalt werden können. Es stellt sich nun die Frage, ob man auch alle anderen Graphen auf diese Art und Weise färben kann. Am Beispiel der Schlinge, die rechts (oben) im Bild dargestellt ist, erkennt man deutlich, dass dies nicht der Fall ist, denn der einzige vorhandene Knoten müsste bereits 2 verschiedene Farben aufweisen, was bei der Graphenfärbung nicht zulässig ist. Parallele Kanten hingegen weisen keine Probleme auf, da man eine der beiden Kanten ohne Informationsverlust entfernen kann. Folglich ist es angebracht, sich auf einfache Graphen ohne Schlingen und ohne Parallelen zu beschränken, damit die Färbungs-Regeln, dass Knoten mit einer gemeinsamen Kante eine unterschiedliche Koloration erhalten und dabei möglichst wenig Farben zum Einsatz kommen, problemlos eingehalten werden können. 9.2 Knotenfärbung 9.2.1 Chromatische Zahl Nun sei E die Menge aller Knoten ei , V die Menge aller Kanten vi und G = (E, V ) ein ungerichteter Graph ohne Mehrfachkanten. Ist fE zusätzlich eine Abbildung von E in die Menge der natürlichen Zahlen N0 , so wird fE als Knotenfärbung von G bezeichnet. Verbal ausgedrückt bedeutet das, dass fE jedem Knoten des Graphen genau eine der Farben { f1 , f2 , ..., fk } zuordnet. Die Abbildung ist genau dann gültig (zulässig oder konfliktfrei), falls für zwei Knoten ei und ej , die mit einer Kante verbunden sind, gilt, dass diese unterschiedlich 107 gefärbt werden; also fE (ei ) 6= fE (ej ). Das fk mit dem kleinsten k, für das G eine konfliktfreie Färbung aufweist, wird als chromatische Zahl oder Knotenfärbungszahl χ(G) bezeichnet. In den Beispielen rechts wird dies noch- einmal veranschaulicht: Im ersten Graphen stellt E die Menge bestehend aus dem roten, dem grauen und dem schwarzen Knoten dar. Die Abbildung fE ordnet nun jedem Knoten eine Zahl zu, wobei im ersten Fall k = 3 ist, da alle drei Knoten benachbart sind. Die chromatische Zahl lautet somit χ(G) = 3. Der dritte Graph hat die Knotenfärbungszahl 4, da es sich ebenfalls um einen vollständigen Graphen 4 handelt. Dies bedeutet, dass jeder Graph, der einen vollständigen Teilgraphen mit n Knoten enthält, mindestens eine chromatische Zahl von n besitzt. Ist die Knotenzahl beim Kreis, wie im vierten Bild zu sehen ist, gerade, so ist χ(G) = 2. Bei ungerader Eckenanzahl lautet die chromatische Zahl 3. Zur Erinnerung war ein bipartiter Graph ein einfacher Graph, dessen Knoten sich in zwei disjunkte Teilmengen A und B aufteilen lassen, so dass kein Knoten mit einem anderen Knoten aus der gleichen Teilmenge durch eine Kante verbunden ist. Dementsprechend hat jeder bipartite Graph die chromatische Zahl 2, denn wie im Bild rechts zu sehen ist, kann man jedem Knoten aus der ersten Teilmenge die Farbe fi zuordnen und jedem Knoten der zweiten Menge die Farbe fj mit i 6= jgeben. Kein Knoten wäre mit der gleichen Farbe benachbart. Umgekehrt kann man jeden Graphen mit der chromatischen Zahl 2 ebenfalls als bipartiten Graphen betrachten. Dazu legt man die erste Teilmenge mit den Knoten der gleichen Farbe fest, die zweite Teilmenge besteht somit aus den übrigen Knoten. 4 In einem vollständigen Graphen ist jeder Knoten mit jedem anderen Knoten durch eine Kante verbunden 108 In der folgenden Abbildungist dies nocheinmal veranschaulicht: Abbildung 9.3: Anwendung auf einen bipartiten Graphen Folglich stimmt die Behauptung, dass jeder Graph bipartit ist, wenn dieser keinen Kreis enthält, der eine ungerade Anzahl von Knoten besitzt. 9.2.2 Obergrenze für die chromatische Zahl Bei größeren oder weniger überschaubaren Graphen ist die Bestimmung der chromatischen Zahl nicht mehr ganz so einfach. Dafür ist es sinnvoll, eine geeignete obere Schranke zu finden. Diese Obergrenze setzt sich dann folgendermaßen zusammen: Man bestimmt den höchsten Grad gmax eines Knotens im Graphen und addiert eine 1 hinzu. Die chromatische Zahl ist somit höchstens gmax + 1. Um diesen Satz zu erklären, werden die geordneten Mengen E, welche die Knoten (e1 , e2 , ..., ek ) enthält, und f , welche die Farben (f1 , f2 , ..., fk ) beinhaltet, definiert. Nun wird jedem Knoten ei eine Farbe fj (i,j = 1, ..., k) zugeordnet, wobei der erste Knoten e1 die Farbe f1 erhält. Ist der zweite Knoten e2 mit e1 verbunden, so bekommt dieser die Farbe f2 , andernfalls wieder f1 . So fährt man bis zur letzten Ecke ek fort, so dass allerdings immer die kleinst mögliche Farbzahl aus der Menge verwendet wird. Hat ein Knoten ei den maximalen Grad gmax und somit auch gmax Nachbarknoten, und haben beispielsweise alle Knoten unterschiedliche Farben, so braucht man allein schon gmax Farben für die Nachbarknoten. Eine weitere Farbe wird für den Knoten ei mit dem Grad gmax benötigt. Das bedeutet, dass man für Graphen, die einen vollständigen Teilgraphen enthalten, immer genau gmax + 1 Farben verwenden muss. Beispielsweise müssten in einem vollständigen Dreiecks-Graphen, dessen Knoten alle den Grad 2 haben, drei Farben zum Ausmalen benutzt werden, also χ(G) = gmax + 1 = 2 + 1 = 3. Für alle anderen Graphen reichen bereits weniger Farben aus. Somit ist mit gmax eine obere Grenze gefunden worden. 9.2.3 Chromatische Polynome Nun stellt sich die Frage, wie viele verschiedene Färbungen möglich sind, wenn eine bestimmte Anzahl von Farben zur Verfügung steht. 109 Im Beispiel rechts sollen drei Flächen mit zwei Farben koloriert werden. Wenn man dies auf einen Graphen überträgt, erkennt man sofort, dass es sich um eine Kette handelt. Es gibt genau 2 · 1 Färbungsmöglichkeiten, denn für den ersten Knoten stehen 2 Farben zur Wahl und es bleibt für den zweiten noch eine Farbe übrig. Anzunehmen ist, dass die Zahl der Möglichkeiten wächst, wenn mehr Farben zur Verfügung gestellt werden. Sei nun x die Anzahl der zu verwendenden Farben, so geht man analog zum eben erwähnten Beispiel vor: Der erste Knoten A kann auf x verschiedene Weisen gefärbt werden. Wählt man nun für diesen Knoten eine bestimmte Farbe f1 , so kann diese Farbe für den zweiten Knoten B nicht mehr verwendet werden. Man hat also nur noch x − 1 Möglichkeiten, diesen Knoten zu färben. Man wählt demnach f2 . Da es sich um eine Kette handelt und der Knoten C nur mit B verbunden ist, darf C alle Farben außer f2 erhalten. Es stehen dem Knoten dann wiederum x − 1 verschiedene Farbmöglichkeiten zur Verfügung. Um den folgenden Graphen zu färben, gibt es folglich x · (x − 1) · (x − 1) = x · (x − 1)2 verschiedene Möglichkeiten. Abbildung 9.4: Chromatisches Polynom einer Kette Diese Methode kann man jetzt auch auf Ketten mit n Knoten ausweiten: Jede Kette mit n Knoten kann auf x · (x − 1)n−1 verschiedene Arten koloriert werden. Bei einem Baum sieht dies ähnlich aus: Bekanntlich können alle Verzweigungen die gleiche 110 Farbe erhalten, da diese untereinander nicht verbunden sind. Sie können also alle Farben außer die des Vater-Knotens erhalten. Man hat somit wie bei einer Kette x · (x − 1)n−1 verschiedene Färbungsmöglichkeiten bei n Knoten und x zur Verfügung stehenden Farben. Da es sich jeweils um Polynome handelt, werden diese Ausdrücke zur Bestimmung der Anzahl der Färbungsmöglichkeiten als chromatische Polynome bezeichnet. Doch wie sieht die Anzahl der Färbungsmöglichkeiten bei einem beliebig anderen Graphentypen aus? Zur Veranschaulichung batrachtet man ein Dreieck und nimmt an, dass 10 Farben zum Färben der Knoten verwendet werden dürfen. Um nun beispielsweise den Knoten A zu färben stehen noch alle 10 Farben zur Verfügung. Die Ecke B hingegen muss eine andere Koloration erhalten als A, da die beiden Knoten benachbart sind. Es bleiben lediglich noch 9 Farben übrig. Da der Knoten C sowohl mit A als auch mit B verbunden ist, benötigt man eine weitere Farbe und es stehen nur noch 8 Farben zur Wahl. Somit ergibt sich eine Anzahl von 10 · 9 · 8 = 720 verschiedenen Färbungsarten. Nimmt man nun an, dass es sich um ein vollständiges n-Eck handelt und stehen statt 10 Farben x Farben zur Wahl, so geschieht die Färbung analog: Für den ersten Knoten ist die Auswahl mit x Farben wieder vollständig. Jede weitere Ecke, die als nächstes koloriert wird, ist in der Farbwahl eingeschränkt, da sie sich mit dem ersten Knoten definitiv eine Kante teilt. Es gibt also nur noch x − 1 Möglichkeiten. Da alle Knoten untereinander verbunden sind, wird die Auswahl der Farben pro Knoten immer um 1 geringer. Es lässt sich folgender Satz formulieren: In jedem vollständigen n-Eck gibt es Färbungen bei x Farben. x! (x−n)! = x · (x − 1) · (x − 2) · ... · (x − (n − 1)) verschiedene Ist x = n, so gibt es genau n! verschiedene Weisen, den Graphen zu kolorieren. Bei Graphen, deren Knoten alle isoliert sind, hat man xn verschiedene Färbungsmöglichkeiten, da jeder Knoten beliebig gefärbt werden kann. Zusätzlich ist für die chromatischen Polynome erwähnenswert, dass die kleinste natürliche Zahl x, für die das chromatische Polynom ein positives Ergebnis liefert, ebenfalls die chromatische Zahl des Graphen repräsentiert. Setzt man eine kleinere Zahl für x ein, so ist das Ergebnis immer 0, da der Graph mit weniger Farben nicht ausgefüllt werden kann. 9.2.4 Algorithmus Nicht immer sind die Graphen so übersichtlich und leicht zu färben. Daher wäre es ziemlich vorteilhaft, einen Algorithmus aufzustellen, mit welchem die Färbungen in einem beliebigen Graphen gefunden werden können. Ein solcher wird im Folgenden anhand eines Beispiels 111 beschrieben: Der erste Schritt des Algorithmus betrifft das Löschen von Kanten. Warum das sinnvoll ist, wird aus dem unten abgebildeten Graphen deutlich: Abbildung 9.5: Erster Schritt des Algorithmus Durch das Löschen der Kante AB wird der Graph kleiner, übersichtlicher und die Anzahl der Färbungen, die bereits mit x · (x − 1)(n−1) bekannt ist, da es sich um eine Kette handelt, vergrößert sich, denn B ist nicht mehr direkt von A abhängig. Der entstandene Graph wird als G1 bezeichnet und besitzt alle Färbungsmöglichkeiten vom Ursprungsgraphen G und zusätzlich alle Färbungen mit fE (A) = fE (B) (fE ist wieder die Knotenfärbung), die bei G aufgrund der gemeinsamen Kante nicht zulässig sind. Im zweiten Schritt wird ein weiterer Graph G2 erstellt, welcher durch das Verlagern (Kontraktion5 ) von B nach A (folgende Abbildung) entsteht und exakt diese zusätzlichen Färbungen von G1 aufweist. Abbildung 9.6: Zweiter Schritt des Algorithmus Sei F nun die Anzahl der Färbungen eines Graphens, so lässt sich folgender Ausdruck festlegen: F (G1 ) = F (G) + F (G2 ) 5 Zusammenziehen eines Objekts 112 ⇔ F (G) = F (G1 ) − F (G2 ) Da für G1 die Anzahl bereits bekannt ist, muss das Verfahren nur noch für G2 wiederholt werden: Abbildung 9.7: Erneuter Aufruf des Algorithmus Beim Löschen der Kante AC entsteht wieder eine Kette, deren Färbungszahl bekannt ist. Zieht man diese Kante zusammen, so bilden sich bei AD zwei parallele Kanten, wobei eine ohne Informationsverlust problemlos außer Betracht genommen werden kann. Es handelt sich dementsprechend erneut um eine Kette. Nun lässt sich die Anzahl der Färbungen wie folgt berechnen (chromatisches Polynom): F (G) = x · (x − 1)4 − (x · (x − 1)3 − x · (x − 1)2 ) Man kann somit das Verfahren, um bei einem beliebigen Graphen das chromatische Polynom zu berechnen, wie folgt zusammenfassen: 113 Abbildung 9.8: Darstellung des Algorithmus als Struktogramm Ein Verfahren, welches auch für beliebig große Graphen effektiv arbeitet, ist bisher nicht bekannt. 114 9.3 Anwendungsbeispiele zu Konfliktgraphen 9.3.1 Ampelschaltungen Ein für den Verkehrsablauf sowie für die Sicherheit wichtiges Problem, welches man mit Hilfe der Graphenfärbung lösen kann, stellen die Ampelschaltungen dar. Es muss dabei beachtet werden, dass sich die jeweiligen Verkehrsteilnehmer nicht gegenseitig behindern können. Im folgenden Schaubild ist eine mögliche Verkehrssituation vorgegeben. Abbildung 9.9: Beispiel Ampelschaltung Ziel ist es nun, sichere und möglichst zeitsparende Möglichkeiten für die Ampelschaltungen herauszufinden. Dazu wird jedem Verkehrsstrom ein Knoten zugeordnet. Die Kanten des Graphen verbinden Verkehrsströme, die sich gegenseitig stören. Beispielsweise dürften A und E nicht gleichzeitig grün bekommen, da die Gefahr einer Kollision bestünde. Der so entstandene Konfliktgraph sieht dann folgendermaßen aus: Abbildung 9.10: Konfliktgraph zur Ampelschaltung 115 Eine Lösung wäre zwar, jedem Verkehrsstrom einzeln freie Fahrt anzuzeigen, doch dies wäre viel zu zeitaufwendig. Man sucht nun nach einer eleganteren Lösung: Aus dem oben abgebildeten Graphen erkennt man, dass es auch Verkehrsströme gibt, die sich nicht behindern. Dementsprechend kann man für diese Verkehrsströme die Ampel zur gleichen Zeit auf grün schalten. Wenn man nun den Graphen nach den bekannten Regeln färbt, wird deutlich, dass bereits 3 Farben ausreichen. Das bedeutet für die Verkehrssituation, dass der Verkehr durch drei aufeinander folgende Grünphasen geregelt werden kann. Es gibt somit mehrere Lösungsvorschläge, da der Graph auf verschiedene Arten gefärbt werden kann. Eine Lösung wäre wie folgt: 1. B 2. A und D 3. C, E und F Doch bei weniger überschaubaren Kreuzungen wären mit dieser Methode mehrere Ampelschaltungen notwendig. Eine Verhinderung dieses Problems geht auf Kosten der Sicherheit: Man könnte beispielsweise darauf bauen, dass die Verkehrsteilnehmer Vorsicht walten lassen und folglich zwei Verkehrsströmen, die sich gegenseitig behindern, zur gleichen Zeit eine Grünphase geben. 9.3.2 Eurovision Song Contest Ein weiteres aktuelles Problem bietet der Eurovision Song Contest. In den letzten Jahren kam es immer wieder dazu, dass die teilnehmenden Länder nicht mehr nach Qualität der Lieder abstimmen, sondern nach Nachbarschaft der Länder, da eine Stimmabgabe für sein eigenes Land nicht möglich ist. Eine Möglichkeit, das Problem zu reduzieren wäre, ein Abstimmen für ein benachbartes Land ebenfalls zu verbieten. Auch dieses Problem kann man auf die Graphentheorie zurückführen: Man ordnet jedem der teilnehmenden Länder einen Knoten zu und verbindet Knoten, die benachbarte Länder darstellen, miteinander. Zwei Knoten, die mit einer Kante verbunden sind, müssen dementsprechend wieder unterschiedlich gefärbt werden. Die Knoten mit der gleichen Farbe kommen dann in eine gemeinsame Gruppe. Die teilnehmenden Länder in dieser Gruppe dürfen somit nur untereinander abstimmen, nicht jedoch für ein Land aus einer anderen Gruppe. Der folgende Graph zeigt dies anhand des diesjährigen Wettbewerbs: 116 Abbildung 9.11: Nachbarschaften ESC 2008 Dieses Beispiel entspräche einer folgenden Gruppenverteilung: Gruppe 1 (•) D IS E HR AL FIN GE ISR Gruppe 2 (•) TR AZ SRB LV UA N DK GB Gruppe 3 (•) F P BIH GR PL RO S RUS AR Auf diese Weise wird nicht nur nach Nachbarschaft kategorisiert, sondern wird zudem eine gleichmäßige Verteilung angestrebt. Somit wird ebenfalls das Problem, dass nach politischen Verbündnissen oder nach Sympathien bewertet wird, abgeschwächt. Doch diese Methode wird in der Realität möglicherweise nie Einsatz finden, da die Einschränkung viel zu groß wäre. Außerdem gäbe es das erneute Problem, dass die Wahrscheinlichkeit eines Punkte-Gleichstandes höher wäre. 9.3.3 Museum Dieses Beipiel stellt ein ziemlich praxisbezogenes Problem dar: Die Mitarbeiter eines Museums müssen darauf achten, dass kein Raum auch nur für kurze Zeit unbeobachtet bleibt. Doch wie ist dies realisierbar, so dass möglichst wenige Museumswärter eingestellt werden müssen? Auch diese Fragelässt sich mit Hilfe von Konfliktgraphen beantworten. Wenn man beispielsweise Raum 1 betrachtet, so ist relativ offensichtlich, welchen Standort der Wärter einnehmen muss, um beide Gänge im Auge zu halten. Die Position ist in der 117 Abbildung 9.12: Einfache Beispiele für Museen Abbildung oben mit einem roten Kreuz hervorgehoben. Es reicht somit lediglich ein Wärter. Beim zweiten Raum wird schnell klar, dass mehr als ein Museumswärter benötigt wird, da es zwei nicht angrenzende Gänge gibt, die nicht von einem Wärter gleichzeitig kontrolliert werden können. Auch hier sind wieder zwei mögliche Positionen in der Abbildung gekennzeichnet. Doch wie schaut es bei Räumen aus, die ein beliebiges Polygon bilden, wie das folgende Beispiel zeigt? Abbildung 9.13: Polygonstruktur eines Museums Hier kommt die Graphentheorie zum Einsatz. Zuerst wird das Museum trianguliert6 , wobei es mehrere Möglichkeiten gibt. In der folgenden Abbildung wird eine vorgestellt: Abbildung 9.14: Triangulierung der Struktur Jeder Ecke des Polygons wird ein Graphenknoten zugeordnet, die dann jeweils so verbunden werden, dass ein trianguliertes Gebiet entsteht. Nun werden die Knoten nach den bekannten Regeln gefärbt. Die chromatische Zahl bei allen triangulierten Polygonen lautet χ(G) = 3, 6 Gebiet in Dreiecke unterteilen; vom Lateinischen: Triangulum ⇒ Dreieck 118 das heißt, es werden lediglich drei Farben benötigt. Alle Knoten mit der gleichen Farbe bieten einen idealen Standort für die Wärter. Das bedeutet, dass die Wärter entweder an allen Ecken mit der Farbe fi oder mit der Farbe fj oder mit der Farbe fk (mit i, j, k verschieden) Platz nehmen können. Am sinnvollsten ist es die Farbe mit der geringsten Häufigkeit zu wählen, denn so viele Wärter werden am Ende benötigt. Hat der Graph n Knoten, so ist die Anzahl der möglichen Standorte höchstens n3 . Jedes Museum muss demnach im schlimmsten Fall n3 Wärter einstellen. 9.4 Kantenfärbung 9.4.1 Chromatischer Index Sehr eng verwandt mit der Knotenfärbung ist die Kantenfärbung von Graphen. Die Kantenfärbung wird mit den selben Regeln der Knotenfärbung durchgeführt, mit dem Unterschied, dass nun Kanten die zum selben Knoten gehören nicht die gleiche Farbe besitzen dürfen. So gelangt man schnell zu der Erkenntnis, dass mindestens die Farbanzahl des höchsten Eckengrades gmax des Graphen benötigt wird, da im Knoten mit der maximalen Kantenzahl für jede Kante eine neue Farbe verwendet werden muss. Sei demnach fV eine Kantenfärbung des Graphen G(E, V ), so muss für zwei beliebig benachbarte Kanten vi und vj folgende Bedingung gelten: fV (vi ) 6= fV (vj ). Diese Mindestanzahl der Farben bei der Kantenfärbung unter den Regeln, dass jede Kante des selben Knotens unterschiedliche Farben erhalten, nennt man chromatischer Index oder Kantenfärbungszahl und wird meist mit χ′ (G) bezeichnet. χ′ (G) ≥ gmax Mittels Kantenfärbung ist es möglich, Beziehungen zwischen den Knoten zu veranschaulichen, wie es zum Beispiel bei Bekanntschaftsgraphen der Fall ist. Dabei stellen die Knoten jeweils die Personen und die Kanten die Beziehung zwischen zwei Personen (Bekanntschaft) dar. Also werden nur die Personen verbunden, die sich kennen, wobei hier die Färbung der Kanten keine Rolle spielt. Es gibt jedoch eine bessere Möglichkeit, die mehr auf Verwendung unterschiedlicher Farben basiert. Und zwar wird zunächst unter den Personen (Knoten) ein vollständiges Vieleck erzeugt, also wird jeder Knoten mit jedem anderen verbunden und schließlich werden die Kanten, die in Beziehung stehende Knoten miteinander verbinden, mit einer anderen Farbe gefärbt. Auffällig dabei ist, dass man bei der Kantenfärbung eines vollständigen Sechsecks mit 2 Farben immer mindestens ein Dreieck erzeugt, dessen Kanten alle die gleiche Farbe haben. Dies führt zu einer interessanten Erkenntnis: Unter 6 Personen sind aufjedenfall 3, die sich alle untereinander kennen, oder 3 Personen von denen keiner den anderen kennt. Bei 5 Personen ist dies jedoch nicht immer der Fall, bei 7 Personen wiederum gilt diese Erkenntnis. Also kann man sagen: Bei der Kantenfärbung eines vollständigen n-Ecks, bei welcher 2 Farben verwendet werden, entsteht für n ≥ 6 mindestens ein einfarbiges Dreieck. Wie an diesem einleitenden Beispiel zu erkennen ist, stellt die Kantenfärbung eines vollständi- 119 gen Vielecks ein interessantes Themengebiet dar. Es stellt sich die Frage, wie der Zusammenhang zwischen Knotenzahl und chromatischem Index aussieht. Der Mathematiker Vizing fand im Jahre 1964 heraus, dass folgende Beziehung gilt: gmax (G) ≤ χ′ (G) ≤ gmax (G) + 1 Dass die Ungleichung gmax (G) ≤ χ′ (G) gelten muss, wurde schon im vorherigen Absatz geklärt, aber warum der chromatische Index nach oben mit gmax (G) + 1 beschränkt ist, wird im Folgenden bewiesen: Wenn man zunächst einfache Beispiele betrachtet, fällt auf, dass man bei einem vollständigen n-Eck ohne Kreise für gerade ng ng −1 Farben, und für ungerade nu genau nu Farben benötigt. Für den Fall einer ungeraden Knotenanzahl wird angenommen, dass nu Farben zur Verfügung stehen. Zuerst werden die Knoten symmetrisch angeordnet, so dass jedem Knoten ein anderer Knoten gegenübersteht. Da man aber eine ungerade Anzahl von Knoten betrachtet, bleibt ein Knoten e0 übrig. Die weiteren sich gegenüberstehenden Knoten kann man nun jeweils durch Kanten der gleichen Farbe f1 problemlos miteinander verbinden, da diese Kanten parallel zueinander verlaufen. Nun ist also jeder Knoten bis auf e0 mit einem anderen Knoten verbunden. Im nächsten Schritt verbindet man den Knoten e0 mit allen anderen nu − 1 Knoten und färbt alle Kanten mit unterschiedlichen Farben zwischen f2 und fn . Die Farbe f1 darf hier nicht mehr vorkommen, da jeder andere Knoten schon mit einer Kante dieser Farbe verbunden ist. Allein in dieser Situation wird deutlich, dass man mindestens nu Farben benötigt. Bis auf den Knoten e0 fehlen aber bei allen anderen Knoten noch n-3 Kantenverbindungen. Nun geht man sukzessive Knoten für Knoten vor und verbindet diese mit allen anderen Knoten (wo noch keine Verbindung besteht), so dass in keinem Knoten Kanten der gleichen Farbe enden, es wird deutlich, dass diese nu Farben zur Koloration der Kanten des vollständigen nu -Ecks ausreichen, wobei nu = χ′ (G) ≤ gmax (G) + 1 = nu gilt. Um den Satz von Vizing auch für gerade ng zu beweisen, geht man von der letzten Situation des gefärbten vollständigen nu -Ecks aus. Da in jedem Knoten nu -1 Kanten mit nu -1 unterschiedlichen Farben enden, kann man dem Graphen problemlos einen weiteren Knoten hinzufügen, so dass man eine gerade Knotenanzahl ng = nu + 1 erhält. Der neue Knoten wird mit den anderen nu Knoten durch Kanten verbunden und jeweils mit genau der Farbe gefärbt, die im jeweiligen Knoten fehlt. So kann man jedes vollständige nu -Eck um eine Ecke erweitern, ohne eine neue Farbe verwenden zu müssen. Zusammenfassend kann man sagen: Um die Kanten eines vollständigen Graphen mit n Knoten zu färben, braucht man • n Farben für n ungerade 120 • n-1 Farben für n gerade, was auch den Satz von Vizing : gmax (G) ≤ χ′ (G) ≤ gmax (G) + 1 bestätigt. 9.4.2 Satz von König Der chromatische Index für vollständige Graphen ist also mit Hilfe des Satzes von Vizing bestimmt. Auf ähnliche Weise ermittelte Dènes König7 den chromatischen Index bipartiter Graphen und legte folgenden Satz fest: Der chromatische Index jedes bipartiten Graphen ist so groß wie der maximale Eckengrad gmax . Da der Beweis dieses Satzes für allgemeine bipartite Graphen zu weit führen würde, wird dies auf einen Sonderfall der vollständigen bipartiten m-n-Graphen beschränkt. Dazu betrachtet man zwei Knotenmengen A = {A1 , ..., Am } und B = {B1 , ..., Bn }, wobei laut Definition der bipartiten Graphen die Elemente der gleichen Menge nicht miteinander verbunden sind, jedoch zwischen allen Elementen der Menge A mit den Elementen der Menge B jeweils eine Kante liegt. Mit einer geschickten Färbung dieser Kanten kann man leicht einsehen, dass der Satz von König gelten muss, so dass man mit gmax Farben auskommt. Dazu bestimmt man zunächst, welche der beiden Mengen eine kleinere Mächtigkeit besitzt. Sei hier |A| ≥ |B| also m ≥ n und somit gmax = m − 1, so beginnt man mit dem Knoten B1 und färbt alle m − 1 Kanten, die in ihm enden, der Reihe nach mit den Farben f1 , ..., fm−1 . Den Kanten, die in B2 enden, gibt man die Farben f2 , ..., fm−1 , f1 , also mit den gleichen Farben wie in B1 der Fall war, jedoch nur um eine Stelle versetzt. Führt man diesen Algorithmus bis zum letzten Knoten Bn fort, so hat man garantiert alle Kanten gefärbt und dabei keiner benachbarten Kanten die gleiche Farbe gegeben. In der Abbildung unten ist dies an einem Beispiel verdeutlicht: Abbildung 9.15: Kantenfärbung eines vollständigen bipartiten Graphen 7 Dènes König (1884 - 1944) ungarischer Mathematiker, veröffentlichte 1936 ein Buch über Graphentheorie 121 9.4.3 Lateinische Quadrate Ein lateinisches Quadrat der Ordnung n ist ein Quadrat, welches n × n Felder besitzt, die auf eine besondere Weise mit n unterschiedlichen Elementen einer Symbolmenge K besetzt sind. Und zwar befindet sich in jeder Zeile und in jeder Spalte des Quadrates jedes Element der Symbolmenge genau einmal. Die Elemente können zwischen Farben, Buchstaben, Zahlen etc. variieren, wie das Beispiel unten zeigt: Abbildung 9.16: Beispiele für lateinische Quadrate Das Ausfüllen eines lateinischen Quadrates der Ordnung n steht im starken Zusammenhang zur Kantenfärbung von vollständigen bipartiten n-n-Graphen. Analog zum Färben der Kanten werden hier die Felder des Quadrates mit Symbolen bzw. Zahlen oder Farben besetzt. Seien Z und S die Teilmengen des bipartiten n-n-Graphen, so entspricht die Menge Z den Zeilen und die Menge S den Spalten des Quadrates. Demnach stimmen die Kantenfarben mit den Farben in den einzelnen Feldern im Quadrat überein. Füllt man das Quadrat mit Farben aus, so geht man dieses Zeile für Zeile durch. Die erste Zeile wird in einer beliebigen Reihenfolge mit den Farben f1 , ..., fn ausgefüllt. Man merkt sich diese Reihenfolge und besetzt die nächste Zeile genau mit der gleichen Reihenfolge, nur um eine Position verschoben, das heißt mit den Farben f2 , ..., fn , f1 . Wenn man auf diese Weise das Quadrat Zeile für Zeile ausfült, erhält man schließlich ein lateinisches Quadrat. Um nochmals die Analogie zu verdeutlichen, betrachte man die Abbildung rechts. Man sieht beispielsweise, dass die Farbe des Feldes Z2 S3 im Quadrat mit der Farbe der Kante zwischen den Knoten Z2 und S3 übereinstimmt. Wenn man nun ein lateinisches Quadrat der Ordnung neun betrachtet und die Bedingungen zum Ausfüllen des Quadrates erweitert, so dass für die Aufteilung in neun 3 × 3-Quadrate ebenfalls gilt, dass in allen neun Quadraten alle Farben einmal vorkommen, so führt dies zu dem bekannten Zahlenrätsel Sudoku. Diese Aufteilung ist dem Rätsel am Ende des Kapitels zu entnehmen. Der einzige Unterschied ist, dass hier anstelle von Farben Zahlen von 1 bis 9 benutzt worden sind. An der Ausfüllstrategie ändert dies aber nichts. 122 Abbildung 9.17: Sonderfall eines lateinischen Quadrates (Sudoku) 123 10 Kryptographie: Grundlagen 10.1 Ziele der Kryptographie 10.1.1 Einleitung Abbildung 10.1: Sichere Komminikation? In der heutigen Zeit, in der die elektronischen Medien unentbehrlich sind, spielt die Datensicherheit eine enorme Bedeutung. Die elektronischen Daten und Informationen werden als wirtschaftliches Gut behandelt, deshalb versucht man deren Geheimhaltung und eine sichere Übermittlung zu gewährleisten. Aber die Geheimhaltung wichitger Informationen oder deren sichere Übermittlung spielte auch schon zu Zeiten von Julius Caeser sehr wichtige Rolle. Julius Caeser entwickelte eine Art Geheimcode, um seine Nachrichten an die Generäle sicher zu verschicken. Die kryptographische Wissenschaft beschäftigt sich mit diesen Problemen, und hat das Ziel diese zu lösen. In den letzten Jahren wurden diverse Methoden entwickelt, die die Ziele der Kryptographie, die im nächsten Kapitel erläutert werden, zu verwirklichen. 10.1.2 Geheimhaltug Viele Menschen, auch im Alltag, haben sich Gedanken gemacht über die Frage: Wie kann ich mit jemanden geheime Nachrichten austauschen, so dass keine unberechtigte Personen davon Kenntnis erhalten? Diese Problematik erstreckt sich über viele Bereiche, von einer heimlich vereinbarten Verlobung bis hin zur Verschickung einer EC-Geheimzahl in einem unauffälligen Briefumschlag. Man ergreift drei verschiede Maßnahmen um die Übermittlung und Speicherung der Nachricht zu sichern: • Organisatorische Maßnahmen: Um eine heimliche Verlobung zu ermöglichen, organisiert man einen einsamen Spaziergang im Wald, was wahrscheinlich einwenig veraltet ist. 124 Oder man wählt einen vertrauensvollen Boten um seine Nachricht sicher zu übermitteln. • Physikalische Maßnahmen: Hier greift man z.B.: auf eine Geheimtinte zu um die Existenz der Nachricht zu verheimlichen. Man kann die Nachricht in einem Tresor verschließen oder in einem versiegelten Brief verschicken. • Kryptographische Maßnahmen: Man versucht hier die Nachricht selbst zu entstellen, damit ist es nur dem berechtigten Empfänger möglich die Nachricht zu lesen, aber er braucht dazu eine zusätzliche Geheiminformation, die ihn als berechtigt einstuft. 10.1.3 Authentikation Das nächste Problem wäre es zu beweisen, dass die Nachricht wirklich von dem angegebenen Sender kommt, so zu sagen die Identität dieser Person soll nachgewiesen werden. Welche Methode kann man in diesem Fall anwenden? Eine Methode wenden fast alle Menschen praktisch unbewusst, zum Beispiel erkennt man einen Menschen an seinem Aussehen, Stimme oder auch an der Handschrift. Die angewandte Methoden zur Lösung dieser Probleme fasst man zu einem Bereich zusammen. Dieser Bereich wird Authentikation genannt. Grundlegend unterscheidet man zwischen zwei Arten von Authentikation. Teilnehmerauthentikation versucht die Identität einer Person oder Instanz nachzuweisen, bei der Nachrichtenauthentikation geht es nicht nur darum, die Herkunft einer Nachricht nachzuweisen, sondern auch die Veränderung der Nachricht zu erkennen. Bei der Teilnehmerauthentikation wird der Nachweis der Identität einem Rechner gegenüber erbracht. Zum Beispiel wird die richtige Eingabe der Geheimnummer bei einem Geldausgabeautomaten als sicherer Nachweis für die Identität derjenigen Person. Die Geheimzahl ist die vorhin erwähnte geheime Information, die den Empfänger als berechtigt einstuft. Man unterscheidet drei verschiedene Arten von diesen Informationen, auch “Objekte” genannt. Es gibt Objekte, die biologische Eigenschaften haben, zum Beispiel: Fingerabdruck, Stimme oder Unterschrift. Die Identität einer Person kann auch durch einzigartige Objekte nachgewiesen werden, zum Beispiel durch ein Personalausweis. In der Kryptographie wird der Nachweis der Identität durch geheimes Wissen erbracht. Dieses geheime Wissen wird unterschiedlich genannt, zum Beispiel: “Geheimzahl” oder “kryptographischer Schlüssel”. Bei Nachrichtenauthentikation wird die Authentität eines Dokumentes auf zwei Arten überprüft: • Unterschrift: Die Herkunft eines Dokumentes wird durch eine Unterschrift, ein Siegel oder einen Dienstsiegel des Ausstellers bestätigt. • Echheitsmerkmale: Die Echtheit der Geldscheine wird durch mehrere Merkmale wie Silberfaden, Wasserzeichen usw. belegt. 125 In den einzelnen Authentikationsverfahren wird danach unterschieden, ob man zur Überprüfung das Geheimnis benötigt. Ein Beispiel, bei dem die Überprüfung nicht stattfindet, ist das Signaturverfahren. 10.1.4 Anonymität Bei der Kommunikation mit Hilfe elektronischer Medien möchte man trotzdem eigene Privatsphäre schützen, d.h. dass nicht nur der Inhalt der Nachricht geheim bleiben soll, sondern auch der Sender, der Empfänger sogar deren Kommunikation. Dazu zwei Beispiele, bei dennen die Anonymität der Personen gewährleistet wird: • Bargeld-Zahlung, durch dieses Zahlungsmittel wird die Identität der zahlenden Person nicht preisgegeben. • Bei den karitativen Institutionen wie Telefonseelsorge, wird den Anrufern die Anonymität gewährleistet. Es werden sehr hohe Anforderungen nach Anonymität bei der elektronischen Kommunikation gestellt. Zunächst scheint es schwierig zu sein diese Forderungen zu erfüllen. Trotzdem stellt man fest, dass die Anonymität auf hohem Neveau geboten wird. 10.1.5 Protokolle Die Protokolle sind Regel, an die sich mehrere Personen oder Instanzen halten müssen, wenn sie ein gemeinsames Zeil erreichen möchten. Ein typisches Beispiel für ein Protokoll sind die Regel, nach denen ein Kunde sich an einem Geldausgabeautomaten Geld holen kann. In den letzten Jahren spielen die Protokolle immer mehr größere Rolle, weil die kryptographischen Public-Key-Verfahren nicht nur ihre ursprungliche Aufgabe lösen, nähmlich Schlüsselaustausch, sondern sie dienen als Grundstein für komplexe kryptographische Protokolle. Die steigende Nachfragen nach den höherwertigen Sicherheitsdienstleistungen, wie elektronische Geldbörse, verlangt die hochwertige kryptographische Protokolle. Da die elektronische Welt immer weiter wächst, steigen auch die Anforderungen an die Sicherheitsdienstleistungen, die durch das ausgefeilte Schlüsselmanagement, realisiert über entsprechende Protokolle, erfüllt werden. 10.2 Einführung in die Kryptographie 10.2.1 Verschlüsselung Verschlüsselung ist ein Vorgang bei dem eine Nachricht durch eine Umwandlung mit Hilfe einer Information geheim gehalten wird, d.h., dass die Nachricht nicht von unberechtigen Personen gelesen werden kann. Wichtig ist dabei diese geheime Information zu schützen, die nennt man Schlüssel. Und nur wenn der Empfänger diese Information besitzt, kann er die empfangene Nachricht lesen. 126 Abbildung 10.2: Symmetrische Verschlüsselung Wenn beide Kommunikationspartner den gleichen Schlüssel benutzen, spricht man in der klassischen Kryptographie von einem symmetrischen Verschlüsselungsverfahren Man verändert die Nachricht, damit sie nicht von fremden Personen gelesen wird. Vereinfacht dargestellt, wird es folgendermaßen realisiert: Der Sender legt die Nachricht in ein Tresor und schliesst mit seinem Schlüssel ab. Dann schickt er den Tresor mit der Nachricht ab. Der Empfänger kann den Tresor mit seinem Zweitschlüssel öffnen und die enthaltene Nachricht lesen. Natürlich ist es ziemlich umständlich einen Tresor zu verschicken, deshalb hat man mathematische Methoden entwickeln um eine Nachricht geheim zu verschicken. Ein Beispiel für die symmetrische Verschlüsselung ist das bekannteste Verschlüsselungsverfahren von dem römischen Feldherren G.Julius Caeser (100 - 44 v. Cr.). Er benutzte es um in Gallien geheime Nachrichten durch Feindesland an Cicero zu übermittlen. Abbildung 10.3: Dabei sind die oberen Buchstaben die des Klartextes, die unteren die des Geheimtextes. Quelle:http://www.it.fht-esslingen.de Klartext: Geheimtext: traue nie dem brutus WUDXH QLD GHP EUXWXV Eine symmetrische Verschlüsselung ist ein Verfahren, realisiert durch eine Funktion f mit zwei Eingabeparametern, dem Schlüssel k und dem Klartext m, und einen Ausgabeparameter dem Geheimtext c, der sich auf k und m ergibt. Um dem Empfänger das Lesen der Nachricht zu ermöglichen, muss die Funktion f umkehrbar sein, d.h. es muss eine Funktion f ∗ geben, welche die Wirkung von f rückgängig macht. Also 127 mit dem gleichen Schlüssel die verschlüsselte Nachricht entschlüsselt. Dieser Verfahren ist schematisch im Bild dargestellt. Abbildung 10.4: Schematische Darstellung der symmetrischen Verschlüsselung Nach dem Kerckhoffschen Prinzip sind beide Funktionen f und f ∗ bekannt. Um aber als sicher eingestuft zu werden, muss die Funktion f folgende Angriffe überstehen: • Ciphertext-only attack: Der Angreifer möchte aus einer bekannten aber begrenzten Anzahl von Geheimtexten die zugehörige Klartexte bzw. den verwendeteten Schlüssel bestimmen. • Know-plaintext attack: Der Angreifer kennt einige Geheimtexte mit den zugehörigen Klartexten, er möchte andere Geheimtexte mit dem verwendeteten Schlüssel entschlüsseln. • Chosen-plaintext attack: Der Angreifer kennt die Verschlüsselungsfunktion f aber nicht den Schlüssel k. Er kann damit bestimmte Klartexte mit Hilfe von fk verschlüsseln. Damit möchte er eigentlich andere Geiheimtexte entschlüsseln. Dieser Angriff stellt in der Public-Key-Kryptographie eine echte Bedrohung dar. • Chosen-ciphertext attack: Der Angreifer versucht mit der Funktion f ∗ , die ihm bekannt ist, einige Geheimtexte zu entschlüsseln um den Schlüssel zu berechnen. Die Algorithmen zur symmetrischen Verschlüsselung unterteilt man in zwei Arten und zwar in Blockchiffren und Stromchiffren. Bei einer Blockchiffre wird die Nachricht in Blöcke m1 , m2 , · · · fester Länge unterteilt, und jeder Block mi wird einzeln verschlüsselt mit der Formel: ci = f (k, m) für 1 = 1, 2, 3, · · · Ein aktuelles Beispiel für Blockchiffre ist der AES-Algorithmus, er wurde von J.Daemen und V.Rijmen entwickelt und am 02.10.2000 veröffentlicht. Es handelt sich dabei um Blocke der Länge 128, 192 oder 256 Bit, die Blockchiffre lässt auch die gleiche Schlüssellänge zu. Interne Darstellung: Die Daten werden als Folge von Bytes in einer vierzeiligen Matrix angeordnet. Neben der 128 Abbildung 10.5: Blockchiffre Addition entsprechender Rundenschlüssel besteht die Verschlüsselungsoperation aus einer Byte-Substitution, einer zyklischen Verschiebung der Zeilen der Matrix und einer Transformation der Spalten der Matrix. Diese Operationen werden in jeder Runde wiederholt. Inzwischen wurde der Algorithmus von AES besser untersucht. Es hat sich herausgestellt, dass man das 128-Bit-AES-Problem als Gleichungssystem mit 8000 qaudratischen Gleichungen und mit 1600 binären Unbekannten darstellen kann. Bie einer Stromchiffre wird die Nachricht zeichenweise verschlüsselt. Man erzeugt eine Zeichenfolge für den Schlüssel, der sollte die gleiche Länge haben wie der Klartext, so dass die Zeichen miteinander verknüpft werden können. Ein Beispiel für Stromchiffre ist das unten schematisch dargestellte One-Time-Pad Verfahren: Hierzu muss sowohl die Nachricht als auch der Schlüssel als Bitfolge vorliegen. Die Bitfolge des Schlüssel muss aber zufällig und unabhängig voneinander gewählt werden. Die zugehörigen Klartext-Bits werden mod 2 addiert, d.h sie werden miteinander verknüpft und zwar nach folgenden Regeln: 0 ⊕ 0 = 0, 0 ⊕ 1 = 1, 1⊕1 = 0 Abbildung 10.6: Schematische Darstellung von One-time-pad Bei diesem Beispiel verläuft die Entschlüsselung genauso wie die Verschlüsselung: Wenn zur Geheimtextfolge die Schlüsselfolge modulo 2 addiert wird, erhält man wieder die Klartextfolge, es gilt also f = f ∗ . 129 Der Verfahren gilt als absolut sicher, falls die Schlüsselbitfolge nur einmal verwedet wird, aber die gleiche Länge der Schlüsselfolge verlangsamt den Verfahren enorm. Man sollte mehrmalige Verwendung des Schlüssel vermeiden, da es sonst einem Known-Plain-Angriff nicht standhalten kann. Deswegen setzt man zur Erzeugung der Schlüsselbitfolge einen Pseudozufallsgenerator ein, dabei wird nur eine kurze geheime Information zur Initialisierung benötigt, sie wird dann vom Sender zum Empfänger übertragen. 10.2.2 Asymmetrische Verschlüsselung Jahrtausende hat man die klassische also symmetrische Verschlüsselungsverfahren angewendet, aber erst im 20.Jahrhundert hat man sich mit der Frage beschäftigt, ob man wirklich den gleichen Schlüssel benötigt, um sichere Kommunikation zu bekommen. Schliesslich hatten W.Diffie und M.Hellmann 1976 ein Konzept für ein asymmetrischen Verfahren, so genannte Public-Key-Verfahren, veröffentlicht. Der wichtigste Aspekt dabei ist, dass zwei Kommunizierende nicht den gleichen Schlüssel benutzen. Abbildung 10.7: Asymmetrische Verschlüsselung Die Vorgehensweise kann man so erklären, dass der Sender die Nachricht in dem “Briefkasten” des Empfängers wirft. Das Einwerfen entspricht der Verschlüsselung mit dem öffentlichen Schlüssel des Empfängers, und jeder Teilnehmer des Systems kann dies durchführen. Aber nur der Empfänger kann die Nachricht mit seinem geheimen Schlüssel aus dem Briefkasten rausnehmen um sie zu lesen. Mathematische Darstellung: Jedem Teilnehmer T des Systems wird ein privater Schlüssel d = dT und ein öffentlicher Schlüssel e = et zugerodnet. Dabei ist nur der private Schlüssel geheim zu halten, deshalb auch als geheimer Schlüssel zu bezeichnen, der öffentliche Schlüssel darf allen zugänglich sein. Der Algorithmus f verwendet den öffentlichen Schlüssel um aus einer Nachricht m einen Geheimtext c = fe (m) zu erhalten. Unter Verwendung eines privaten Schlüssels d = dt entschlüsselt man die Nachricht m mit 130 der Funktion f m˜ = fd (c) Dabei müssen wieder folgende Eigenschaften erfüllt werden: Korrekte Enschlüsselung: d.h. korrekte Reproduktion des Klartextes bei Entschlüsselung: m˜ = fd (c) = fd (fe (m)) = m für alle Klartexte m. Publich-Key-Eigenschaft: Auch wenn der öffentliche Schlüssel e = eT vielen Teilnehmern bekannt ist, ist es fast unmöglich daraus den privaten Schlüssel d = dT zu bestimmen. Abbildung 10.8: Schematische Darstellung der asymmetrischen Verschlüsselung Wenn man eine Nachricht einem Teilnehmer des Systems zuschicken möchte, muss man zuerst den öffentlichen Schlüssel dieser Person ermitteln. Man kann sich so vorstellen, als sucht man in einem “elektronischen” Telefonbuch. Dann wendet man die Funktion fd auf die Nachricht an und schickt den verschlüsselten Geheimtext c = fe (m) ab. Der Empfänger entschlüsselt die Nachricht mit der Funktion fd , die mit dem geheimen Schlüssel gebildet wurde. Und erhält den Klartext der Nachricht: m = fd (c) = fd (fe (m)) Der RSA-Algorithmus ist ein Prototyp der asymmetrischen Verschlüsselung, er wird im späteren Kapitel näher erläutern. 131 10.2.3 Einwegfunktion Eine Einwegfunktion ist eine sehr schwierig zu invertierbare Funktion, d.b. dass die Einwegfunktion eine Abbildung f einer Menge X in eine Menge Y ist, so dass f (x) für jedes Element von der Menge X sehr leicht zu berechnen ist, während es für jedes Element y aus Y sehr schwer ist ein Urbild x zu finden, da man versucht ein x mit f (x) = y zu finden. Falls eine Einwegfunktion f bijektiv ist, also eine Permutation ist, so wird es Einwegpermutation genannt. Weitere Eigenschaft der Einwegfunktion ist die Kollisionsfreiheit, weil es fast unmöglich ist für zwei verschieden Werte x und x́ in der Urbildmenge X zu finden mit f (x) = f (x́). Abbildung 10.9: Eine Einwegfunktion im Strassenverkehr Ein Beispiel für eine Einwegfunktion ist das Telefonbuch. Wenn der Name bekannt ist, ist es ganz einfach die passende Nummer zu finden, da die Namen alphabetisch geordnet sind, aber es ist sehr schwierig mit einer bekannten Nummer den zugehörigen Namen zu finden. Man kann zwar fast alle kryptographische Verfahren auf eine Einwegfunktion zurückführen, aber bis heute ist es nicht eindeutig bewiesen, ob es Einwegfunktion gibt. Soviel kann man behaupten, dass Einwegfunktion genau dann existieren, wenn P 6= NP gilt. Aus symmetrischen Verfahren kann man die wichtigsten Einwegfunktionen herleiten, indem man ein Verfahren der Form f (· , ·) wählt und eine feste Nachricht m0 , somit ergibt sich die Einwegfunktion: F (·) = f (· , m0 ) Der Parameter von F wird an der Stelle von Schlüssel in f (· , m0 ) eingestzt. Die Tatsache, dass es bei einem symmetrischen Verfahren, auch wenn Klartext und Geheimtext bekannt sind, nicht möglich ist den benutzten Schlüssel zu berechnen. Dies bedeutet, dass F eine Einwegfunktion ist. Bemerkung: Die beschriebene Struktur ist nicht symmetrisch bezüglich den beiden Parametern von f . Man hat hier eine feste Nachricht m0 gewählt, wählt man stattdessen einen festen Schlüssel k0 , so erhält man eine Funktion G(·) = f (k0 , ·). Die Funktion G ist keine Einweg- 132 funktion, da man für einen Wert y ein Urbild x := f ∗ (k0 , y) leicht berechnen kann. 10.2.4 Kryptogrphische Hashfunktion Man verwendet die Hashfunktionen um eine Nachricht unverkennbar zu machen. Eine EinwegHashfunktion ist eine kollisionsfreie Einwegfunktion, die eine beliebig lange Nachricht auf einen Hashwert zusammmenfasst. Dieser Wert hat eine feste Länge, z.B. 128 Bit. Dieser Vorgang entspricht der Vorstellung eines Fingerabdrucks. Aus einem Fingerabdruck kann man nicht auf die zugehörige Person schliessen und keine zwei Menschen haben denselben Fngerabdruck. Es scheint aber sehr schwer zu sein, geignete Hashfunktion zu finden. Die Prüfsummen (englisch: checksum) sind nicht gut geignet zur Bildung von Hashfunktionen. Weil die Möglichkeit verschiedene Nachrichten mit derselben Prüfsumme zu bilden, viele Angreifer lockt. Zum Beispiel: Man möchte eine Überweisung tätigen: Ein Betrag von 2580,-EURO soll auf das Konto 82677365 überweisen. Die Prüfsumme sei die Quersumme aller Ziffern, die in der Überweisung zu finden sind. Hier kann der Angreifer mit der Kontonummer 7134599 leicht manipulieren. da er nur den Betrag in 2980,- EURO ändern muss, zusätzlich zu seiner Kontonummer. Der Angriff wird garnicht bemerkt. 2 + 8 + 0} +2 59 |{z} | + 6 + 7 +{z7 + 3 + 6 + 5} = | + 5 {z Prüfsumme Betrag Kontonr. Angreifer z }| { 59 = 2 + 8 + 0} +7 |{z} | + 1 + 2 + 3{z+ 4 + 5 + 9 + 9} | + 9 {z Prüfsumme Betrag Kontonr. Alltägliches Beispiel für eine Hashfunktion ist der Übergang von einem Rezept zum Gericht oder Getränk. Man kann aus der Analyse von einem Getränk, z.B. Coca-Cola, nicht auf das Rezept schliessen, das ist genau die Einwegeigenschaft, man kann aber auch nicht ein Ersatzrezept (Kollision) für dieses Getränkt finden, was denselben Geschmack hat. 10.2.5 Trapdoor-Einwegfunktion In der modernen Kryptographie werden weiter ausgearbeitete Konzepte von Einwegfunktionen gebraucht, weil der eingeschränkte Einsatzbereich der Einwegfunktion, indem nur Berechnungen möglich sind, die von allen Teilnehmern durchgeführt werden dürfen, nicht ausreicht. So ein erweitertes Konzept ist die Trapdoor-Einwegfunktion, das ist eine Einwegfunktion mit einer Geheiminformation (“Geheimtür”, englisch: trapdoor), dadurch kann man die Funktion leicht invertieren. Zum Beispiel ist das Quadrieren x 7→ x2 mod n für n = pq eine Trapdoor-Einwegfunktion, wenn die Faktorisierung des Produktes bekannt ist, ist das Invertieren sehr einfach, umgekehrt ist fast unmöglich. 133 In jedem Fall sind die Faktoren p und q die Trapdoorinformation. Man kann dies ganz allgemein betrachten. Die Potenzfunktion x 7→ xe mod n ist für n = pq eine Trapdoor-Einwegfunktion mit der Trapdoorinformation: die Faktoren p und q. Die Trapdoor-Einwegfunktion, nur mit anderen geheimen Informationen, wird bei RSA-Algorithmus verwendet. 10.2.6 Commitment und Bit-Commitment Beim Commitment (englisch: “Festlegung”) geht es darum, dass ein Teilnehmer A eine Nachricht so hinterlegt, dass sie • von niemanden gelesen werden kann, • von niemanden, for allem nicht von A verändert werden kann. Dieses Problem wird durch die Anwendung von Einwegfunktionen gelöst. Ein Beispiel dafür wäre eine Aussreibung für ein Auftrag. Dann möchten wahrscheinlich mehrere Firmen ein Angebot einreichen. Aber wenn das erste Angebot bekannt ist, können die anderen Anbieter ihren Preis anpassen, deswegen möchte jeder Anbieter, dass sein Angebot geheim bleibt, aber er muss sich auf einen bestimmten Betrag festlegen. Vereinfacht dargestellt, kann man dieses Problem wie folgt lösen. Jede Firma hinterlegt ihren Kostenvoranschlag in einem Tresor. Dieser wird verschlossen an den Ausschreiber versendet. Erst wenn alls Tresore bei dem ausschreibenden Unternehmen angekommen sind, können die Anbieter ihre Tresorschlüssel versenden. Und so kann der geeignete Anbieter ausgewählt werden. Prinzipiell kann man ein Commitment für eine Nachricht m so erreichen, indem man eine kollisionsfreie Einwegfunktion f anwendet und den Wert c = f (m) veröffentlicht. Dabei garaniert die Einwegeigenschaft, dass niemand m berechnen kann. Die Kollisionsfreiheit sorgt dafür, dass niemand ein anderes ḿ mit f (ḿ) = c finden kann, so kann auch der Teilnehmer A seine Nachricht nicht verändern. Ein Commitment-Protokoll besteht aus zwei Zuständen, dem Festlegen und öffnen des Commitments. Ein Teilnehmer A legt einen Datensatz m fest, indem er c = f (m) berechnet, und sendet c an den Teilnehmer B. Das öffnen des Commitmets geschieht durch die Mitteilung des Urbildes von m an den Teilnehmer B. Ein Sonderfall, wenn m nur ein Bit lang ist, also aus der Menge {0, 1}, man nennt es BitCommentment-Problem, kann folgendermaßen gelöst werden: man eignet sich nicht nur auf das Bit b, sondern zusätzlich auf eine hinreichend große Zufallszahl r. Der Funktionswert f (b, r) wird veröffentlicht, dabei ist f eine Einwegfunktion, wobei die Kollisionsfreiheit nur für den ersten Parameter b gegeben ist. D.h. für alle Zufallszahlen r, s muss gelten f (0, r) 6= f (1, s) 134 Dies wird durch folgende Funktion f raliesiert f (b, r) := y b r 2 mod n, wobei n = pq das Produkt zweier großer Primzahlen und y ein fester quadratischer Nichtrest mod n mit Jacobisymbol+1 ist. Die Funktion f ist eine Einwegfunkion, die nur bezüglich des ersten Parameters kollisionsfrei ist, da f (0, r) immer ein quadratischer Rest und f (1, r) immer ein quadratischer Nichtrest ist. Die komplette Kollisionsfreiheit wird durch die Eigenschaft, dass die Zahlr r 2 insgesamt vier Quadratwurzeln modulo n besitzt, verhindert. 10.2.7 Digitale Signatur Abbildung 10.10: Scheck. Quelle: www.freewebs.com/mugumania/material/ Die Herkunft eines schriftlichen Dokumentes wird durch die handschriftliche Unterschrift des Ausstellers bestätigt. Die handschriftliche Unterschrift hat folgende Eigenschaften: • Echtheitseigenschaft: Die Eigenschaft wird erfüllt, wenn die Unterschrift auf demselben Blatt des Dokumentes steht, erfordert natürlich engen Zusammenhang zwischen Dokument und Unterschrift. • Identitätseigenschaft: Es sollte schwierig sein eine Unterschrift zu fälschen, um sicher zu sein, dass die Unterschrift von einem einzigen Menschen stammt. • Abschlusseigenschaft: Die Unterschrift am Ende eines Dokumentes bedeutet die Vollständigkeit des Dokumentes. • Warneigenschaft: Je nachdem kann die Unterschrift unangenehme Konsequenzen mit sich bringen, deshalb sollte jeder Unterschreibender wohl überlegt eine Unterschrift leisten. 135 • Verifikaitonseigenschaft: Die Echtheit einer Unterschrift kann durch ein Unterschriftsvergleich überprüft werden. Diese Eigenschaften, ausser Warneigenschaft, versucht die Digitale Signatur zu realisieren. Ein Signaturschema wird folgendermaßen definiert: Jedem Teilnehmer T des Systems sind eine Signaturfunktion sT und eine Verifikation vt zugeordnet. st sollte geheim gehalten werden, und nur T ist bekannt, die vt darf aber vielen Teilnehmern zugänglich sein. Auch wenn die Funktion vt öffentlich zugänglich ist, ist es nicht mögliche die geheime Funktion st zu bestimmen. Abbildung 10.11: Schematische Darstellung der digitalen Signatur Ein Signaturschema kann man sich in der Form eines gläsernen Tresors vorstellen. Nur der Eigentümer dessen kann eine Nachricht dort ablegen. Da nur er einen Schlüssel besitzt, kann man davon ausgehen, dass die Nachricht nur von ihm kommen kann. Diese Vorgehensweise definiert die Signatur und kann von jedem Teilnehmer bestätigt werden. Ein Beispiel: Eva möchte eine unterschrieben Nachricht m an Adam verschicken, um eine Unterschrift zu leisten, wendet sie ihre Signaturfunktion an und erhält somit die Digitale Signatur sig = sT (m) Sie sendet dann die Nachricht m und die Signatur sig an den Adam. Er überprüft die Korrektheit erhaltener Signatur und zwar mit Hilfe der öffentlichen Funktion vT , die ihm ja bekannt ist. Bei einigen Verfahren, unter andrem RSA-Algorithmus, ist die Verifikationsfunktion vT die Umkehrfunktion der Signatur, deshalb gilt: vT (sig) = m 136 Es wird geprüft, ob die Funktion vT mit erhaltenden Parameter sig die Nachricht rekonstruieren kann. Man kann aber den Verfahren der Digitalen Signatur nicht mit der Anwendung einer kryptographischen Hashfunktion vergleichen, da eine Hashfunktion öffentlich zugänglich ist. Hier ist die Identitätseigenschaft nicht erfüllt, obwohl der Hashwert vom Dokumenten abhängt. Das Verschlüsseln einer längeren Nachricht mit dem geheimen Schlüssel wird sehr viel Zeit in Anspruch nehmen. Stattdessen geht man wie folgt vor (siehe Grafik -¿ Hashfunktion): 1 Eva schreibt eine Nachricht. 2 Sie bildet den zugehörigen Hashwert, dieser Wert wird dann mit dem geheimen Schlüssel von Eva verschlüsselt. Dies ist die Digitale Signatur der Nachricht. 3 Die Signatur wird zusammen mit der Nachricht verschickt. 4 Adam zerlegt die erhaltene Email in die Nachricht und die Digitale Signatur. 5 Dann bildet er den Hashwert der Nachricht. 6 Zum Schluss entschlüsselt er Evaś Digitale Signatur mit ihrem öffentlichen Schlüssel und erhält so ihren Hashwert der Nachricht. 7 Dann vergleicht er die beiden Hashwerte miteinander, sind die gleich, kann er sicher sein, dass die Nachricht von Eva stammt, und ausserdem kann er sicher sein, dass die Nachricht unverändert bei ihm ankamm, obwohl der Text offen versendet wurde. Abbildung 10.12: Hashfunktion bei Signieren einer Nachricht Vorteile der Digitalen Signatur: • In der Digitalen Signatur sind Informationen über das signierte Dokument enthalten, somit sind nachträgliche Änderungen bemerkbar. • Die Echtheit des Absenders ist nachweisbar. 137 • Die Digitale Signatur ist einfach zu leisten. Die Digitale Signatur wurde am 13.06.1997 von Deutschen Bundestag der handschriftlichen Unterschrift durch das “Signatur”-Gesetzt rechtlich gleichgestellt. 10.2.8 Der RSA-Algorithmus RSA-Algorithmus ist ein Prototyp der asymmetrischen Verschlüsselung, wird aber auch zur Erzeugung der Digitalen Signatur verwendet. Der RSA-Algortithmus wurde 1978 von R.Rivest, A.Shamir und L.Adleman erfunden. Der RSA-Algoritmus basiert auf dem Euler-Satz: Sei n = pq das Produkt zweier verschiedener Primzahlen p und q. Dann gilt für jede natürliche Zahl m ≤ n und jede natürliche Zahl k die Gleichung mk(p−1)(q−1) mod n = m (10.1) Folgende Methode beschreibt den RSA-Algorithmus: Man wählt zwei natürliche Zahlen e und d, deren Produkt folgende Form hat: e · d = k(p − 1)(q − 1) + 1 mit k ∈ ℵ Somit gilt: (me )d mod n = mund (md )e mod = m Ein Beispiel zur Schlüsselerzeugung: Adam wählt zwei verschiedene große Primzahlen p = 7 und q = 17. Er bildet die Produkte p · q = n = 119 und ϕ(n) = (p − 1)(q − 1) = 6 · 16 = 96 Dann wählt er die Zahl e = 5 zwischen 1 und n, die teilerfremd zu ϕ(n) = 96 ist. Weiterhin berechnet er die Zahl d = 77 (mit Hilfe des erweiterten euklidischen Algorithmus) mit den Eigenschaften: e · d mod ϕ(n) = 1, e · d = 1 + k(p − 1)(q − 1) für k ∈ ℵ Der öffentliche Schlüssel besteht dann aus e und n, und d ist der geheime Schlüssel von Adam. Die Zahlen p, q und ϕ(n) sollten geheim gehalten werden. 138 Der RSA-Algorithmus als asymetrische Verschlüsselung Korrektheit der Entschlüsselung wird duch folgende Interpretation gewährleistet: Potenzieren mit e wird als Verschlüsseln und Potenzieren mit d als Entschlüsseln definiert, somit garantiert der Euler-Satz, dass korrekt entschlüsselt wird. Public-Key-Eigenschaft: Wenn die Faktoren p, q und ϕ(n) unbekannt sind, und nur die Zahl n ist bekannt ist, so ist fast unmöglich aus e die Zahl d bestimmen. Ein Beispiel zur Chiffrierung von Zahlen: Eva möchte Adam eine geheime Nachricht m = 12 schicken. Eva verschlüsselt die Nachricht, indem sie die Formel zur Verschlüsselung anwendet: Verschlüsselung fe (m) := me mod n (10.2) also fe (m) = c 125 mod 119 = 3. Dann verschickt sie diese verschlüsselte Nachricht an Adam. Adam entschlüsselt die erhaltene Nachricht, indem er die Formel anwendet: Entschlüsselung fd (c) := cd mod n Er erhält m = 37 7 mod 119 = 12. Zum Schluss prüft er die Korrektheit der Nachricht mit folgender Formel: Korrektheit fd (fe (m)) = (me )d = mod n = m und er hat wieder die ursprüngliche Nachricht erhalten: (125 )7 7 mod119 = 12 Vorteile des RSA-Algorithmus: • Kein Schlüsselaustausch notwendig, das bedeutet mehr Sicherheit. • Durch die Trennung in öffentliche und private Schlüssel kann jeder verschlüsseln, aber nur der Besitzer des privaten Schlüssels entschlüsseln. Der RSA-Algorithmus als Signaturverfahren Signaturfunktion: Man bildet die Signatur, vielleicht unter Verwendung der Hashfunktionn, indem auf die Nachricht m der geheime Schlüssel des unterschreibenden Teilnehmer T angewendet wird. sig = sT (m) : md mod n Verifikationsfunktion: Man überprüft eine Signatur, indem man den öffentlichen Schlüssel e des unterschreibenden Teilnehmer T aus die Signaturfunktion anwendet, und das Resultat mit der gesendeten Nachricht m vergleicht. ? z}|{ e vT (sig) := sig mod n = m 139 Bemerkung: Die Wahl der Faktoren (Zahlen) ist entscheident für die Sicherheit des RSA-Algorithmus. Momentan werden für n Zahlen zwischen 512 und 2048 Bit Länge verwendet, aber wird ja immer wieder versucht diese Zahl n zu faktorisieren, deshalb ist es zur Zeit empfehlenswert für den Schlüssel die Länge von 768 Bit zu verwenden. Attacken auf den RSA-Algorithmus Der RSA-Algorithmus gilt immer noch als ziemlich sicher. Nur in Sonderfällen sind Angriffe möglich, dies hilft aber zu der richtigen Wahl für Implementierungsparametern. Die Homomorphie-Eigenschaft besagt, dass für den öffentlichen Schlüssel (e, n) eines RSA-Algorithmus folgendes gilt: me1 me2 mod n = (m1 m2 )e mod n Das bedeutet, dass man die Nachricht m1 m2 verschlüsseln kann, ohne die Kenntnis über m1 und m2 zu haben. Dies ist auch bei dem RSA-Signaturverfahren möglich und zwar auf folgende Weise: aus den Signaturen md1 mod n und md2 mod n kann man eine gültige Signatur (m1 m2 )d mod n der Nachricht m1 m2 erstellen, auch dann, wenn der geheime Schlüssel nicht bekannt ist. Generieren eines gültigen Nachricht-Signatur-Paares: Aus einer Signatur kann man mit Hilfe von RSA-Verfahren eine Nachricht erzeugen, die diese Signatur hat. Dabei wählt man sig aus und berechnet dazu m := sige mod n. Die Verifizierun der Signatur md = siged mod n ergibt das richtige Ergebnis. Durch die Redundanz der Nachricht können solche Angriffe vermieden werden. Verwendung kleiner Exponente: Wird in einem System aus Effizienzgründen die gleiche Zahl für den öffentlichen Schlüssel verwendet, so kann man leicht aus den Kryptogrammen den Klartext bestimmen: Z.B.: Seien y1 y2 y3 Chiffretexte von drei verschiedenen Teilnehmern: y1 = m3 mod n1 y2 = m3 mod n2 y3 = m3 mod n3 Mit Hilfe des chinesischen Restsatzes erhält man eindeutige Lösung: y = m3 mod n1 n2 n3 Die Nachricht m muss kleiner sein als jeder der drei Moduli n1 n2 und n3 also ist m3 auch kleiner als n1 n2 n3 . Daraus ergibt sich: y = m3 mod n1 n2 n3 = m3 Die Nachricht m kann man durch die dritte Wurzel aus y ziehen berechnen. 140 Verschlüsselung von Nachrichten, die in einer algebraischen Beziehung zueinander stehen. Wenn die Chiffretexte von den Nachrichten m und m + 1 und der gängige Exponent e = 3 bekannt sind, ist es sehr leicht auf m zu kommen. Z.B.: Sei c1 = m3 mod n und c2 = (m + 1)3 mod n. Dann gilt: c2 + 2c1 − 1 (m + 1)3 + 2m3 − 1 3m3 + 3m2 + 3m = = = m c2 − c1 + 2 (m + 1)3 m3 + 2 3m2 + 3m + 3 Dieser Angriff ist ein aktuelles Beispiel und ist direkt auf die Verschlüsselung von Sequenznummern mit RSA anwendbar, Er enstand unter Mitwirkung von Don Coppersmith. 141 11 Kryptographie: Protokolle 11.1 Einleitung Das folgende Kapitel Kryptographie- Protokolle“ beschäftigt sich mit den verschiedensten ” Protokollen, die in der Kryptographie eine große Rolle spielen und stellt ihre Funktionsweise, Stärken und Schwächen dar. 11.1.1 Protokoll Bevor auf die verschiedenen Protokolle im Detail eingegangen wird, sollte zunächst der Begriff PProtokollërläutert werden: Eine Basis sind immer zwei (oder mehrere) Instanzen oder Personen, die ein gemeinsames Ziel verfolgen. Zu diesem Zweck müssen sie miteinander kommunizieren, was bestimmte Regeln voraussetzt. Diese Regeln können die Kommunikationspartner sich selbst geben oder von außen übernehmen. Als Protokoll bezeichnet man dann die Vereinbarung zwischen den Kommunikationspartnern über Art, Inhalt und Formatierung der ausgetauschten Nachrichten sowie über das Wechselspiel bei der Abwicklung eines Dialogs, also die Gesamtheit aller Regeln. 11.1.2 Protokolle und Kryptographie In der Kryptographie spielen Protokolle eine immer größer werdende Rolle. Dies liegt vor allem daran, dass die Nachfrage nach hochwertigen Sicherheitsdienstleistungen immer mehr zugenommen hat. Um diese Dienstleistungen wie z.B. die elektronische Geldbörse oder elektronische Verträge realisieren zu können, braucht man auch hochwertige kryptographische Protokolle und beschränkt sich nicht mehr nur auf einfache Verfahren zur Verschlüsselung oder Authentikation. Das Ziel ist also die Realisierung komplexer Anwendungen. Ein weiterer Grund für die verstärkte Nachfrage nach kryptographischen Protokollen liegt darin, dass die kryptographischen Dienste heutzutage auf große, offene Systeme wie z.B. das Internet angewandt werden. Da solche offenen Systeme besonders anfällig für Manipulationsversuche oder Angriffe sind, bedarf es auch hier hochwertiger Sicherheitsvorkehrungen, die über entsprechende Protokolle realisiert werden. 142 11.1.3 Anforderungen an ein Protokoll Um die Protokolle sinnvoll einsetzen zu können müssen sie bestimmte Bedingungen erfüllen. Dabei gibt es zwei Anforderungen, die von besonderer Wichtigkeit sind und auf welche die im Folgenden vorgestellten Protokolle einzeln überprüft werden. Durchführbarkeit Ein Protokoll muss immer das gewünschte Ergebnis liefern. Dies setzt natürlich voraus, dass sich alle am Protokoll beteiligten Kommunikations- oder Kooperationspartner gemäß den Spezifikationen des Protokolls verhalten müssen. Korrektheit Betrugsversuche können mit beliebig hoher Wahrscheinlichkeit erkannt werden. Versucht beispielsweise eine am Protokoll beteiligte Partei oder ein Außenstehender in irgendeiner Form zu betrügen, so kann dies erkannt und unterbunden werden. 11.2 Authentikationsverfahren Protokolle haben vielerlei Anwendungsgebiete, z.B. dienen sie häufig der Authentikation (Authentisierung). Innerhalb der Authentikationsverfahren kann weiter unterschieden werden. Häufig sind Protokolle zur Nachrichtenauthentikation vertreten. Diese finden Verwendung, wenn man beispielsweise den Ursprung einer Nachricht eindeutig erkenntlich machen möchte. Im Alltag könnte man dies mit (z.B. Dienst-)Stempeln vergleichen. Nachrichtenauthentikation spielt aber auch dann eine Rolle, wenn man Änderungen erkennen möchte. Liegt also z.B. ein Dokument mehrfach vor, kann mittels der Protokolle unterschieden werden, ob sie identisch sind oder sich unterscheiden. Dies ist unter anderem interessant für Backupsysteme. Ein zweites sehr großes und wichtiges Gebiet ist die Teilnehmerauthentikation. Hier werden Nachrichten zur Identifikation eines Teilnehmers gegenüber einer zentralen Stelle oder einem anderen Teilnehmer ausgetauscht. Zur eindeutigen Formulierung wird im Folgenden zwischen einem Teilnehmer unterschieden, der sich an einer zentralen Stelle authentisieren möchte. Ein typisches Anwendungsbeispiel ist der Login“, dem man im Internet an verschie” densten Stellen begegnet (E-Mails, Foren, Chat, ...). Im Folgenden werden mehrere Protokolle zur Teilnehmerauthentikation vorgestellt. 11.2.1 Passwortverfahren (Festcodes) Beim Passwortverfahren besitzt jeder Teilnehmer ein eigenes Geheimnis, das nur der Teilnehmer und die zentrale Stelle kennen (sollten). Zur Authentikation wird die Identität zusammen mit dem Geheimnis übertragen. Die zentrale Stelle kann anschließend prüfen, ob die übertragenen Werte stimmig sind, d.h. ob zur übertragenen Identität tatsächlich das gesendete Passwort gehört. Diese Verfahren bergen mehrere Schwächen. Ein Teil dieser Schwächen und eventuelle Lösungsansätze werden im Folgenden kurz beleuchtet. Eine Schwäche liegt in der Menschlichkeit der Teilnehmer. Menschen neigen häufig dazu 143 Passwörter zu wählen, die man sich als Mensch leicht merken kann (z.B. Name des Freundes/der Freundin, usw.). Gerade diese Art von Passwörtern ist aber sehr unsicher, da sie leicht zu erraten sind. Daher ist die Wahl eines sicheren Passwortes immer angebracht. Als sicher gelten Passwörter, die möglichst lang und unsinnig sind, sowohl Klein- und Großbuchstaben, als auch Zahlen und Sonderzeichen enthalten. Eine weitere Schwäche liegt in der zentralen Speicherung der Passwörter. Verschafft sich jemand unerlaubten Zugriff auf die Passwortdateien eines Servers, kann er sich als jeder Teilnehmer ausgeben, dessen Daten auf diesem Server gespeichert sind. Als Lösungsansatz kann an dieser Stelle eine Einwegfunktion benutzt werden. Hierzu wird auf dem Server nicht das Passwort x0 selber gespeichert, sondern der Funktionswert des Passwortes y0 = f (x0 ). Findet ein Authentisierungsvorgang statt, bildet die zentrale Stelle erneut den Funktionswert y = f (x), diesmal vom übertragenen Passwort x. Stimmen nun y und y0 überein, war die Authentikation erfolgreich. Eine dritte Schwäche ist die offene Übertragung, gepaart mit der namensgebenden Eigenschaft: Die Übertragung fester Nachrichten. Wird der offene Kanal von einem Betrüger abgehört, kann er sich in Zukunft als der Teilnehmer ausgeben. Um dem entgegenzuwirken sollten Passwörter möglichst regelmäßig geändert werden, um einen eventuellen Schadenszeitraum möglichst knapp zu halten. Optimal wäre ein Passwort, das sich mit jeder Sitzung ändert. Diese Form zur sicheren Authentikation wurde bereits realisiert, z.B. in Form von Transaktionsnummern (TANs). Allerdings kann dieses Verfahren bereits als Wechselcodeverfahren angesehen werden, welche im folgenden Kapitel behandelt werden. Das Passwortverfahren ist durchführbar, weil jedem Teilnehmer natürlich sein privates Passwort bekannt ist, bzw. sein sollte. Somit kann er mühelos die Authentikationsnachricht generieren. Solange der Teilnehmer sein Passwort wirklich geheim hält, ist das Verfahren auch korrekt, da ein Betrüger nur die Möglichkeit hätte, das Passwort zu erraten. Die Wahrscheinlichkeit, dass er das richtige Passwort auf diese Weise herausfindet, ist bei einem gut gewählten Passwort aber verschwindend gering. 11.2.2 Wechselcodes Das Ziel der Wechselcodes sind möglichst variable Nachrichten, obwohl wie bei den Festcodes ein festes Geheimnis benutzt wird. Die Lösung ist ein variabler Wert, der mit dem weiterhin statischen Geheimnis zu einem Code verrechnet wird. Dieser Code hat somit für jeden Authentikationsvorgang ein anderes Erscheinungsbild und kann also zusammen mit der Identität an die zentrale Stelle gesendet werden. Diese kennt ebenfalls sowohl das feste Geheimnis des Teilnehmers als auch den variablen Wert und kann zur Überprüfung des Codes die Berechnung wiederholen. Ein Betrüger könnte die offene Leitung in diesem Fall zwar abhören, könnte aus dem Code aber nicht auf seine Eingangsfaktoren, das statische Geheimnis und den variablen Wert, zurückschließen. Somit kann der Betrüger auch keinen validen Code für die nächste Authentisierung generieren. Zur Implementierung gibt es mehrere Möglichkeiten für den variablen Wert. Ein Beispiel wäre eine Zählvariable, deren Initialwert einmalig zwischen Teilnehmer und zentraler Stelle 144 vereinbart wird. Als Alternative kann ein Zeitstempel verwendet werden, wobei die Nachricht dann verständlicherweise nur sehr kurze Zeit gültig sein darf. In dieser Form sind die Wechselcodeverfahren durchführbar, da nur den beiden Parteien der aktuelle Schlüssel und Zählerstand bekannt ist. Korrekt ist es ebenfalls, da das Bilden des Codes ohne Kenntnis beider Informationen nahezu unmöglich ist. Eine weitere Möglichkeit der Implementation bietet noch einen ganz anderen Vorteil: Der zentralen Stelle muss das Geheimnis des Teilnehmers in diesem Fall nicht bekannt sein. Hierfür wählt der Teilnehmer beliebig einen Startwert z0 , eine obere Grenze n und eine Einwegfunktion f aus. Zur Berechnung von z1 bis zn wertet der Teilnehmer nun rekursiv die Funktion zi+1 = f (zi ) für i = 0,...,n − 1 aus. Den Wert zn sendet er zur Initialisierung an die zentrale Stelle. Auch die Funktion f muss der zentralen Stelle bekannt gemacht werden. Möchte sich der Teilnehmer beim nächsten Vorgang authentisieren, sendet er zu seiner Identität den Wert zn−1 . Diesen kann die zentrale Stelle prüfen, da gilt: f (zn−1 ) = zn . Durch die Einwegeigenschaft der Funktion f kann an dieser Stelle nicht von einem Code zi auf seinen Vorgänger zi−1 geschlossen werden, weder durch die zentrale Stelle noch durch einen Angreifer. Allerdings funktioniert dies natürlich nur bis alle Werte zi aufgebraucht sind, also n mal. Anschließend müssen neue Werte berechnet werden. In dieser Form sind Wechselcodes korrekt, da f aufgrund der Einwegeigenschaft von niemandem umgekehrt werden kann. Dies kann der Teilnehmer zwar auch nicht, er kann aber alle Werte neu berechnen, da ihm z0 bekannt ist. Aufgrund dieser Eigenschaft ist das Protokoll auch durchführbar. 11.2.3 Challenge and Response Bisher wurden sogenannte unidirektionale Verfahren vorgestellt. Der Name entspringt dem einseitigen Informationsfluss, da die zentrale Stelle dem Teilnehmer gegenüber maximal noch eine Antwortnachricht mit der Bestätigung, bzw. Ablehnung sendet. Diese Eigenschaft kann als Nachteil betrachtet werden, da die Nachrichten zumindest aus Teilnehmersicht vorhersagbar sind. Diese Schwäche wird nun beseitigt durch das bidirektionale Protokoll Challenge and Response. Dieses regelt die Authentifizierung, indem die zentrale Stelle dem Teilnehmer eine unvorhersehbare Frage stellt, die der Teilnehmer innerhalb eines bestimmten Zeitraumes beantworten muss. Hier nimmt die zentrale Stelle also eine aktive Rolle ein und bewirkt so den Informationsfluss in beide Richtungen. Zur Verdeutlichung wird ein Beispiel aus dem alltäglichen Leben dargestellt: Der Teilnehmer verliert seine Jacke und möchte nun im Fundbüro (zentrale Stelle) diese wieder abholen, falls sie gefunden wurde. Um sicher zu gehen, dass die Jacke wirklich dem Teilnehmer gehört, fordert das Fundbüro den Teilnehmer auf, die Jacke zu beschreiben, bzw. besondere Merkmale zu nennen. Diese Aufforderung entspricht der Challenge. Passt die Beschreibung des Teilnehmers (Response) auf keine der Jacken, ist die gesuchte Jacke entweder nicht gefunden worden oder der Teilnehmer versucht sich mit illegalen Mitteln eine Jacke anzueignen, die ihm gar nicht gehört. 145 Technische Realisierungen sind vielfältig vorhanden. In einer Beispielimplementation ist beiden Kommunikationspartnern ein gemeinsamer Schlüssel k und eine Einwegfunktion f bekannt. 1. Als Challenge dient eine Zufallszahl RAN D, gewählt von der zentralen Stelle. Diese sendet sie an den Teilnehmer. 2. Der Teilnehmer berechnet mittels der Zufallszahl und des Schlüssels k eine Antwort RES = fk (RAN D) und sendet diese zurück an die zentrale Stelle. 3. Diese kann dieselbe Berechnung durchführen und muss nur noch den selbst berechneten Wert mit RES vergleichen. In der Folgenden Abbildung ist das Verfahren graphisch dargestellt. Abbildung 11.1: Challenge and Response In einer anderen Implementierung werden die Werte RES und RAN D vertauscht. Als Challenge wird also ein Wert übergeben, der von einer Zufallszahl abhängt, die wiederum als Antwort erwartet wird. Dieses Vorgehen setzt aber einen sehr starken Zufallsgenerator voraus, da sich ein Angreifer sonst die Mühe sparen könnte RES zu entschlüsseln und den Wert für RAN D einfach errät. Daher ist die zuerst genannte Methode dieser vorzuziehen. Das Protokoll Challenge and Response ist korrekt, da der Betrüger im Alltagsbeispiel keine Jacke stehlen könnte. Es ist auch durchführbar, da der Besitzer der Jacke diese wahrscheinlich gut beschreiben kann oder bestenfalls noch weitere Dinge gefunden werden, die dem Teilnehmer zugeordnet werden können, z.B. das Portemonnaie in der Jackentasche. 146 11.3 Diskrete Exponentialfunktion Eine Einwegfunktion ist eine Funktion, die leicht zu berechnen ist, deren Umkehrfunktion hingegen sehr schwer auszuwerten ist. Die diskrete Exponentialfunktion ist eine besonders wirksame Einwegfunktion, weil sie nicht nur unstetig ist, sondern die Funktionswerte nahezu beliebige Sprünge machen (siehe Abbildung 11.2). Daher ist sie ist besonders gut für die Realisierung von Verschlüsselungs- oder Signaturverfahren geeignet. Die Diskrete Exponentialfunktion ist für eine Primzahl p und eine natürliche Zahl g mit g ≤ p − 1 wie folgt definiert: f (k) := gk modp(1 ≤ k ≤ p − 1) Selbst für große Zahlen ist die Funktion verhältnismäßig leicht auszuwerten, z.B. mit dem Verfahren Square and multiply“. Hierbei wird gk faktorisiert, sodass man nur noch qua” drieren und multiplizieren muss. Hier ein kleines Beispiel: k = 10 gk = g10 = ((g2 )2 )2 ∗ g2 Für diesen Fall müssen nur viermal Zahlen quadriert und einmal multipliziert werden. Für ein beliebiges k benötigt Square and Multiply“ maximal 2 ∗ log2 (k) Multiplikationen. ” Der diskrete Logarithmus ist die Umkehrfunktion zur diskreten Exponentialfunktion und wird wie folgt beschrieben: dlg (gk ) = k Das Problem des diskreten Logarithmus wird folglich so beschrieben: Gegeben seien p, g, y, dann ist k so zu bestimmen, dass gilt: y = gk mod p Aufgrund der Unstetigkeit der diskreten Exponentialfunktion ist der diskrete Logarithmus sehr schwer zu berechnen. Zwar gibt es einige Verfahren, die das Problem des diskreten Logarithmus lösen, allerdings sind diese nicht effizient. Als eines der besseren Verfahren wäre der Baby-Step-Giant-Step“-Algorithmus zu nennen, der aber bei Zahlen mit etwa einer ” Länge von 1000 Bit ca. 2500 ≈ 10150 Operationen verlangt. Zum Vergleich: Die Berechnung von gk benötigt gerade mal ca. 2000 Multiplikationen. 147 Abbildung 11.2: Graph zu y = 7x mod 229 11.4 Public-Key-Protokolle Der Sinn von Verschlüsselungsverfahren mit öffentlichem Schlüssel besteht darin, das Sicherheitsrisiko beim gegenseitigen Austausch von Schlüsseln zu minimieren. Public-Key Kryptographie basiert auf einem mathematischen Verfahren, bei dem ein Schlüsselpaar aus einem geheimen Schlüssel (Private Key) und einem dazugehörigen öffentlichen Schlüssel (Public Key) erzeugt wird. Mit dem Public Key verschlüsselte Nachrichten können nur mit dem dazugehörigen Private Key entschlüsselt werden. Hat jemand nur den Public Key, so kann er nur verschlüsseln, nicht aber entschlüsseln. Daher können die Public Keys problemlos auf unsicheren Kanälen (z.B. per Email) ausgetauscht werden. 11.4.1 Diffie-Hellman-Schlüsselvereinbarung Motivation: Da die klassische Kryptographie erst dann funktioniert, wenn die Teilnehmer einen geheimen Schlüssel ausgetauscht haben, führt also kein Weg daran vorbei, dass zur Kommunikation benötigte Geheimnisse kryptographisch ungesichert ausgetaucht werden müssen. Um trotzdem die Sicherheit gewährleisten zu können, erfolgt der Austausch der Geheimnisse in der klassischen Kryptographie über einen (geheimen) Kanal (technisch: abhörsichere Übertragung, organisatorisch: Überbringung durch Boten). In der modernen Kryptographie versucht man im Gegensatz zur klassischen Kryptographie einen geheimen Schlüssel über öffentliche Kanäle zu vereinbaren. Man möchte also die Nutzung von geheimen Kanälen vermeiden. Verdeutlichen kann man sich dies an folgendem vereinfachten Beispiel: Betrachtet man das Geschehen an einer Börse, so zeigt sich, dass es für einen Börsenmakler von Bedeutung ist, die Angebote der Konkurrenten zu kennen, er möchte jedoch seine eigenen Pläne geheim halten. Allerdings kann es auch zu der Situation kommen, dass zwei 148 Börsenmakler spontan zusammenarbeiten müssen. Sie haben also keine Möglichkeit vorher einen geheimen Schlüssel zu vereinbaren. Damit diese Zusammenarbeit funktioniert, müssen sie jedoch in der Lage sein, so miteinander kommunizieren zu können, dass die Kollegen ihre Unterhaltungen nicht deuten können. Es ist also notwendig, dass sie eine offene Unterhaltung führen können, beide das gleiche Geheimnis kennen und ihr Geheimnis nicht von den neugierigen Kollegen erraten werden kann. Um dieses Problem lösen zu können, greift man auf das Diffie-Hellman-Verfahren zur Schlüsselvereinbarung zurück. Es ist ein Austauschverfahren, bei dem die Teilnehmer auf öffentlichem Wege einen geheimen Schlüssel vereinbaren. Die Diffie-Hellman-Schlüsselvereinbarung gilt als der erste Public-Key-Algorithmus. Veröffentlicht wurde sie 1976 von W. Diffie und M. Hellman. Whitfield Diffie wurde 1944 geboren und schloss 1965 sein Studium für Mathematik am MIT ab. Er gilt noch heute als Experte für Kryptographie und arbeitet derzeit bei Sun Microsystems. Martin Hellman wurde 1945 geboren und beendete 1966 sein Studium an der Universtät zu New York. Anschließend erlangte er die Professur für Electrical Engineering“ an der Stand” ford University, wo er auch noch heute tätig ist. Funktionsweise des Algorithmus: Ziel des Diffie-Hellman-Verfahrens ist es also, dass mehrere Personen über ein unsicheres Medium (z.B. eine Kabel- oder Funkleitung) verschlüsselt kommunizieren können. Dazu brauchen sie jedoch einen geheimen Schlüssel, an den sie mittels des Diffie-Hellman-Schlüsselaustauschs gelangen. Realisiert wird das Protokoll folgendermaßen: 1. Zunächst einigen sich die Kommunikationspartner auf eine möglichst große Primzahl p und eine natürliche Zahl g mit g ≤ p − 1. Da diese beiden Parameter nicht geheim bleiben müssen, können sie über ein unsicheres Medium übertragen werden. In dem o.g. Beispiel mit der Börse bedeutet dies, dass sich die beiden Börsenmakler diese beiden Werte zuschreien können und die anderen Personen sie hören dürfen. 2. Im nächsten Schritt erzeugen sich die Kommunikationspartner jeweils einen geheimen Wert. So wählt Teilnehmer A z.B. die Zahl a und B die Zahl b. Da a und b nicht übertragen werden, bleiben sie also der jeweils anderen Partei und allen Nichtteilnehmern verborgen. 3. Die beiden Kommunikationspartner berechnen die Werte α = ga mod p bzw. β = gb mod p. Diese beiden Werte werden dann untereinander ausgetauscht, also auf öffentlichem Weg übertragen. 4. Zum Schluss berechnen A und B aus den erhaltenen Werten k = β a mod p bzw. k = αb mod p. Das errechnete Ergebnis ist für beide Partner gleich und kann daher als Schlüssel für die weiter Kommunikation verwendet werden. 149 Abbildung 11.3: Diffie-Hellman-Schlüsselvereinbarung Beispiel: 1. p = 13 und g = 2 2. Person A wählt a = 5 und Person B wählt b = 7 3. A berechnet α = 25 mod 13 = 6 und sendet α an B B berechnet β = 27 mod 13 = 11 und sendet β an A 4. A berechnet k = 115 mod 13 = 7. B berechnet k = 67 mod 13 = 7. Beide erhalten also den gleichen Wert k, den sie nun als Schlüssel verwenden können. Betrachtet man nun das Diffie-Hellman-Protokoll im Hinblick auf die zwei in der Einleitung vorgestellten Anforderungen, so wird deutlich, dass beide erfüllt sind. Das Protokoll ist durchführbar, weil A und B einen gemeinsamen Wert k erhalten. k = β a mod p = (gb )a mod p = (ga )b mod p = αb mod p = k Es ist auch korrekt, weil der gemeinsame Wert k geheim ist, ihn also nur die beiden Kommunikationspartner A und B kennen. Zwar kann ein Außenstehender durch Abhören der Unterhaltung die Werte p, g, α und β erfahren, allerdings kann er aus diesen Information nur sehr schwer auf den Schlüssel k schließen. Dazu müsste er in der Lage sein den diskreten Algorithmus von α zur Basis g berechnen zu können. Es wird also deutlich, dass die Sicherheit des Diffie-Hellman Protokolls eng mit der Berechnung des diskreten Logarithmus modulo p zusammenhängt. Gegen einen Man in the MiddleAngriff“ ist auch das Diffie-Hellman-Verfahren macht” los. Hierbei geht man von der Situation aus, dass sich unbemerkt ein Dritter in die Kommunikation eingeschlichen hat und die Nachrichten in beide Richtungen abfangen kann, während A und B im Glauben sind, sie würden sich nur untereinander unterhalten. Wie in Abbildung 11.4 zu sehen ist, generiert sich M (der Angreifer) einen eigenen privaten Schlüssel ω und führt mit beiden Teilnehmern A und B eine eigene Schlüsselvereinbarung durch. Somit existieren zwei unabhängige Schlüssel kA und kB , die beide in Besitz des Angreifers sind. Somit hat er in der folgenden Kommunikation die Möglichkeit, geheime Nachrichten zu lesen und sogar zu verändern, obwohl die Leitung für die Kommunikationspartner A und B sicher zu sein scheint. Um einen solchen Angriff auszuschließen, können z.B. Signaturen verwendet werden. 150 Abbildung 11.4: “Man in the middle“-Angriff 11.4.2 ElGamal-Verschlüsselungsverfahren Taher ElGamal, geb 1956 in Ägypten, erreichte seinen Abschluss in Computerwissenschaften ebenfalls an der Stanford-Universität. Er leitet eine Firma, die sich mit Computersicherheit befasst und ist Mitglied verschiedener Aufsichtsräte. Er ist Begründer des ElGamalKryptosystems, das das ElGamal-Verschlüsselungsverfahren sowie die ElGamal-Signatur beinhaltet. Bei dem ElGamal - Verschlüsselungsverfahren handelt es sich um einen asymmetrischen Verschlüsselungsalgorithmus, den man durch leichte Variation des Diffie-Hellman Verfahrens erhält. ElGamal beruht also wie Diffie-Hellman auf dem Problem des diskreten Logarithmus. Genau wie bei Diffie-Hellman verwendet auch ElGamal einen öffentlichen Schlüssel, der später zur Verschlüsselung dient, und einen geheimen Schlüssel, der nur dem Empfänger der Nachricht bekannt sein darf. Die ElGamal-Verschlüsselung funktioniert folgendermaßen: 1. Zunächst benötigt man wie beim Diffie-Hellman Verfahren wieder eine möglichst große Primzahl p und eine natürliche Zahl g. Beide Werte sind öffentlich, dürfen also anderen Personen bekannt sein 2. Jeder Teilnehmer, der eine Nachricht empfangen will, wählt sich seinen privaten Schlüssel, eine natürliche Zahl t, und berechnet mit Hilfe dieser Zahl τ := gt mod p. τ verwendet der Teilnehmer nun als seinen persönlichen, öffentlichen Schlüssel. Wer T eine Nachricht senden möchte, muss τ kennen, aber auch anderen Personen darf der Schlüssel bekannt sein. 3. Will nun Person A dem Teilnehmer eine Nachricht schicken, bringt er zunächst den öffentlichen Schlüssel τ des Teilnehmers in Erfahrung. Desweiteren wählt er zufällig 151 eine natürliche Zahl a und berechnet die folgenden beiden Werte: α = ga mod p und k = τ a mod p Nun kann er mit Hilfe eines symmetrischen Algorithmus f , der beiden Seiten bekannt ist, und mit dem Schlüssel k die Nachricht m verschlüsseln und das Ergebnis c := f (k, m) zusammen mit α an den Teilnehmer schicken. 4. Nun kann der Teilnehmer α mit seinem geheimen Schlüssel t potenzieren (k = αt mod p) und die empfangene Nachricht c mit dem berechneten k entschlüsseln: m = f −1 (k, c). Dadurch erhält er die ursprüngliche Nachricht m. Abbildung 11.5: ElGamal-Verschlüsselung Ein wesentlicher Unterschied zum Diffie-Hellman-Protokoll besteht darin, dass das Senden der Schlüssel bei ElGamal zeitlich entkoppelt geschieht. Hier wird der öffentliche Schlüssel τ einmal erzeugt und nie verändert. Wenn nun jemand eine Nachricht senden will, bringt der Sender den öffentlichen Schlüssel τ des Empfängers in Erfahrung und kann damit die Nachricht verschlüsseln. Im Vergleich dazu wird bei Diffie-Hellman der Wert β jedes Mal neu erzeugt und dann praktisch zeitgleich mit α übermittelt. Durch die enge Verwandschaft mit der Diffie-Hellman-Schlüsselvereinbarung ist dieses Verfahren aus denselben Gründen durchführbar und korrekt. 11.4.3 ElGamal-Signatur Im Gegensatz zum RSA-Verfahren wird beim ElGamal - Signaturverfahren eine Nachricht durch eine komplexere Operation ver- und entschlüsselt. Dadurch kann man aus der Signatur nicht mehr auf die Nachricht zurückschließen. Das Verfahren funktioniert folgendermaßen: 152 1. Wie beim ElGamal - Verschlüsselungsverfahren werden wieder ein privater Schlüssel t und der damit zu berechnende Schlüssel τ := gt mod p benötigt, wobei p wieder eine möglichst große Primzahl und g eine natürliche Zahl darstellt. 2. Erzeugung der Unterschrift für eine Nachricht m durch den Teilnehmer T: Wahl einer zu p − 1 teilerfremden Zahl r und Berechnung von: k = gr mod p 3. Danach berechnet der Teilnehmer eine Lösung s der Kongruenz: t · k + r · s ≡ m mod (p − 1) Berechnen lässt sich diese Lösung z.B. indem T mit Hilfe des erweiterten euklidischen Algorithmus das multiplikative Inverse r ′ zu r mod (p − 1) berechnet und dann s = ((m − t · k) · r ′ ) mod (p − 1) bestimmt. Die digitale Unterschrift der Nachricht m besteht nun aus dem Paar (k, s) und kann nun verschickt werden. 4. Der Empfänger der Nachricht (m, (k, s)) prüft nun die Nachricht. Wenn die beiden Werte gm mod p und τ k · ks identisch sind, ist die Signatur gültig. Abbildung 11.6: ElGamal-Signatur Die Signatur ist durchführbar, weil nach dem Satz von Fermat für jedes korrekt signierte Dokument gilt: gm ≡ gt·k+r·s ≡ τ k · ks (mod p) Aufgrund der hohen Sicherheit der diskreten Exponentialfunktion ist dieses Verfahren korrekt. Tatsächlich ist bis heute noch kein effizienter Angriff auf dieses Verfahren gefunden worden. 153 Es existieren viele Varianten des ElGamal - Signaturverfahrens. Eine besonders effiziente Variante namens Digital Signature Standard“ gilt in den USA als Norm für die Erzeugung ” digitaler Unterschriften. 11.4.4 Blinde Signaturen In den meisten Fällen ist dem Unterschreibenden der Inhalt des vorliegenden Dokumentes bekannt. Es gibt aber auch Anwendungen, in denen dies entweder nicht gewünscht ist oder bei denen es sogar notwendig ist, dass eine Person oder Instanz nicht wissen darf, was sie unterschreibt. Deutlich wird dies an folgenden beiden Beispiele: • Will eine Person z.B. bei einer Bank einen gewissen Geldbetrag abheben um sich z.B. ein neues Auto kaufen zu können, so muss die Bank durch eine Signatur bestätigen, dass das Geld zur Verfügung steht. Allerdings darf sie dabei nicht wissen, welchem Zweck das Geld dienen soll. • (Elektronische) Wahlen: Nimmt eine Person beispielsweise an einer Wahl teil, so muss sie eine Bestätigung erhalten, dass sie an der Wahl teilgenommen hat. Allerdings darf derjenige, der diese Bestätigung bzw. Signatur vornimmt, nicht wissen, was die Person genau gewählt hat. Ein Verfahren zur Erzeugung blinder Signaturen muss also gewährleisten, dass eine Person A einem Unterzeichner B ein Dokument vorlegen kann, wobei • B die Nachricht nicht sehen darf • A eine gültige Unterschrift von B erhält Mit Hilfe des RSA-Verfahrens kann man die blinden Signaturen realisieren. In folgendem Szenario soll das Dokument m von B für A unterschrieben werden: 1. A wählt eine möglichst große Primzahl p und bildet x = mr·e mod p , wobei e der öffentliche Schlüssel von B ist. Danach sendet er x an B. 2. B unterschreibt den erhaltenen Wert indem er y = xd mod p berechnet, wobei d sein geheimer, zu e passender Schlüssel ist. Anschließend sendet er y an A. ′ 3. A bildet nun mit Hilfe des erhaltenen Wertes y r = md . Dadurch erhält er die unterschriebene Nachricht. Das Dokument m wurde mit der Zufallszahl r e verschlüsselt und B kann deshalb nicht von x auf m schließen. 11.5 Shamirs No-Key-Protokoll Alle bisher erläuterten Verfahren setzen voraus, dass sich beide Seiten in irgendeiner Form auf einen (teilweise gemeinsamen) Schlüssel geeinigt haben. Das No-Key-Protokoll von Shamir 154 ermöglicht eine Kommunikation ohne diese Bedingung zu fordern. Möglich wird dies durch das mehrfache symmetrische Verschlüsseln einer Nachricht. Zunächst wird der Ablauf ohne technische Details erläutert. Ein Teilnehmer A verschlüsselt eine Nachricht mit seinem geheimen Schlüssel a und sendet sie an einen Teilnehmer B. Dieser kann die Nachricht zwar nicht entschlüsseln, sie aber mit seinem eigenen Schlüssel b ein zweites Mal verschlüsseln und zurücksenden. A entfernt nun seinen Schlüssel. Damit kann A die Nachricht allerdings nicht lesen, da sie noch immer mit b verschlüsselt ist. Diese sendet A wiederum an den Teilnehmer B, der die Nachricht nun endgültig entschlüsseln und die ursprüngliche Nachricht lesen kann. Technische Realisierung: 1. Beide Kommunikationspartner einigen sich zunächst auf eine möglichst große Primzahl p. Beide Teilnehmer wählen sich nun jeweils zwei Zahlen, für die gilt: a · a′ ≡ 1 mod (p − 1), bzw. b · b′ ≡ 1 mod (p − 1). ′ ′ Daraus ergibt sich: s = sa·a mod p und s = sb·b mod p. 2. Der Teilnehmer A verschlüsselt seine Nachricht s mittels der diskreten Exponentialfunktion, also x = sa mod p. Die verschlüsselte Nachricht geht an B. 3. Teilnehmer B verwendet wiederum die diskrete Exponentialfunktion, um die bereits von A verschlüsselte Nachricht zusätzlich mit seinem privaten Schlüssel b zu versehen: y = xb mod p. 4. A erhält y, das er mittels des vorher berechneten multiplikativen Inversen wieder von ′ seinem eigenen Schlüssel befreien kann: z = y a mod p. 5. Die Nachricht z wird als Letzte übertragen und am Schluss von B mittels b′ endgültig entschlüsselt: ′ ′ ′ ′ ′ z b mod p = sa·b·a ·b mod p = (sa·a )b·b mod p = s Wie an dieser Gleichung zu erkennen ist, dient die diskrete Exponentialfunktion hier als symmetrische Verschlüsselung, was allgemein bedeutet: fa (fb (x)) = fb (fa (x)) Dies bedeutet aber auch, dass dieses Verfahren maximal so sicher ist wie das Problem des diskreten Logarithmus. Könnte man diesen also in kurzer Zeit berechnen, kann man beispielsweise auch schnell von x auf s rückschließen. Die einzige Voraussetzung für beide Parteien ist die Einigung auf die Primzahl p, die durchaus öffentlich sein darf. Jeder Teilnehmer kann sein privates Schlüsselpaar bilden, was dieses Verfahren durchführbar macht. Es ist auch so lange korrekt wie die Berechnung des diskreten Logarithmus noch so zeitaufwendig ist wie oben erklärt wurde. Der Entwickler dieses Protokolls ist Adi Shamir, geb. 1952 in Tel-Aviv. Den Master of Science 155 Abbildung 11.7: Shamirs No-Key-Protokoll sowie den Doktortitel erreichte er am Weizmann-Institut für Wissenschaften, die Professur erlangte er am MIT. Er hat neben diesem Protokoll viele weitere Dienste vor allem für den Bereich der Kryptographie geleistet, z.B. war er einer der Erfinder des RSA-Kryptosystems. 2002 wurde er für seine Leistungen mit dem Turing-Award ausgezeichnet. 11.6 Knobeln über Telefon Ein letztes Protokoll soll an dieser Stelle ganz ohne Hinweise auf eine mögliche technische Realisierung auskommen. Man stelle sich folgendes Problem vor: Zwei Personen A und B wollen etwas über das Telefon ausknobeln. Sie wollen über das bekannte Spiel Schere - Stein ” - Papier“ den Gewinner ermitteln. Da sich die Parteien auf ein Element einer vorgegebenen Menge festlegen müssen, wird hier von (Bit-)Commitment-Techniken gesprochen. Nun ergibt sich folgende Problematik: Da sich dich die Teilnehmer nicht sehen können, können sie auch nicht prüfen, welches Handzeichen der jeweils andere gerade vorzeigt. Ein gleichzeitiges Aufsagen des eigenen Handzeichens ist ebenfalls nicht möglich, da sich die Teilnehmer dann nicht verstehen würden. Also müssen sie nacheinander ihre Entscheidung kundgeben. Dies hat natürlich den gravierenden Nachteil, dass beispielsweise B seine Entscheidung noch ändern kann, da er nun schon weiß, was A gewählt hat. An dieser Stelle sei erwähnt, dass die Art und Weise des Knobelns hier eine untergeordnete Rolle spielt. Also wären Knobelarten wie der Münzwurf ebenfalls anwendbar, da alle Möglichkeiten dieselben Probleme aufweisen und auf dieses Beispiel übertragbar sind. Als Lösung können sich die Kommunikationspartner in obigem Beispiel auf drei nichtisomorphe Graphen einigen, die die jeweilige Entscheidung repräsentieren, also hier die Elemente Schere“, Stein“, Papier“. In Abbildung 11.8 sind drei Beispielgraphen darge” ” ” stellt, allerdings sind diese zu klein. Die Graphen sollten möglichst umfangreich sein, um mit bloßem Auge keine Chance zu haben, eine Permutation zu erkennen. 156 Sobald der Teilnehmer A sich entschieden hat, permutiert er den zugehörigen Graphen auf beliebige Weise und lässt B diesen zukommen. B könnte nur mit erheblichem Aufwand herausfinden, zu welchem der Ausgangsgraphen die Permutation isomorph ist. Dafür hat B aber nicht genug Zeit, also muss er seine Entscheidung ebenfalls willkürlich treffen und A mitteilen. Abschließend kann A seine Entscheidung auflösen und die Permutation nachvollziehbar rekonstruieren. 157 Abbildung 11.8: 3 Beispielgraphen für Knobeln über Telefon An dieser Stelle kann A nicht mogeln, da nur einer der Graphen zu dem übertragenen Ergebnis führen kann, daher ist das Verfahren als korrekt zu betrachten. Es ist auch durchführbar, da die Graphen vorher durch beide Parteien vereinbart wurden und daher nur diese gültig sind. 158 12 Zero-Knowledge-Verfahren Zero-Knowledge-Verfahren ist ein relativ neuer Begriff aus der Krytographie. Hinter dem Begriff verbirgt sich ein Modell für Authentifizierungsverfahren. Aber um zu verstehen, wie ein solches Zero-Knowledge-Verfahren arbeitet und funktioniert, sollte man zuerst eine andere Art des mathematischen Beweises kennenlernen, den interaktiven Beweis. Über diesen kommt man schließlich, über den Begriff der Zero-Knowledge-Eigenschaft, zu den Zero-KnowledgeVerfahren. Und genau so werden wir in diesem Kapitel versuchen einen Einstieg in dieses Thema zu geben. Zunächst werden wir auf interaktive Beweise eingehen, um von dort auf die Zero-Knowledge-Eigenschaft und schließlich auf Verfahren, die diese Eigenschaft besitzen einzugehen. Am Ende werden dann noch Erweiterungen und weitere Eigenschaften von ZeroKnowledge-Verfahren beschrieben. 12.1 Interaktive Beweise Beweise in der Mathematik sind normalerweise logisch lückenlose Argumentationsketten, mit denen man Objekte, meist Definitionen, Sätze oder Lemmata verknüpft. Dazu wird für eine Aussage, die bewiesen werden soll, versucht diese entweder aus Axiomen oder schon zuvor bewiesenen Sätzen, Lemmata oder Definitionen herzuleiten. Der Beweis ist dann, sofern verständlich notiert, für jeden nachvollziehbar, dem die zugrundeliegenden Axiome, Sätze, Lemmata oder Definitionen bekannt sind. Im folgenden wird die Nachvollziehbarkeit an der sogenannten pq-Formel“ dargestellt: ” q p 2 pq-Formel 1 Die Gleichung x + px + q = 0 hat die Lösungen x1,2 = − 2 ± ( p2 )2 − q Um diese Behauptung zu beweisen (nicht sie herzuleiten!), muss man nur x1 und x2 einzeln in die Formel x2 + px + q = 0 einsetzen und überprüfen, ob das Ergebnis 0 ist. Für x1 wird dies nun gezeigt, für x2 verhält sich der Beweis analog: Beweis 37 (Beweis für x1 der pq-Formel) x21 + px + q = q 2 q − p2 + ( p2 )2 − q + p · − p2 ± ( p2 )2 − q + q q 2 q = p2 )2 − p · ( p2 )2 − q + p2 )2 − q + − p2 ± ( p2 )2 − q + q q q 2 = ( p2 )2 + ( p2 )2 + p2 + (−p · ( p2 )2 − q + p · ( p2 )2 − q) + (−q + q) =0 Wie zu sehen ist, liefert das Einsetzen das gewünschte Ergebnis. Wodurch die Behauptung gezeigt ist, da weder spezielle Zahlen verwendet wurden, noch an irgendeiner Stelle geschum” melt“ wurde (z.B. durch absichtlich falsches Rechnen). Ausserdem wurden zum Beweis nur die schon bewiesenen Grundrechenregeln herangezogen (Addition, Subtraktion, Multiplikation und Division). 159 12.1.1 Cardanosche Formeln In der Einleitung wurde die in der Mathematik übliche Beweismethode vorgestellt. Auch wenn es oft so aussieht, als sei dies die einzige Möglichkeit Beweise durchzuführen, so gibt es in der Geschichte der Mathematik des 16. Jahrhunderts eine Begebenheit, die zeigt, dass es auch anders möglich ist, Behauptungen in der Mathematik zu beweisen. Zu Beginn des 16. Jahrhunderts fand der Mathematiker Scipione Del Ferro ein Lösungsverfahren für kubische Gleichungen der Form x3 + ax = b, welches er erst auf dem Sterbebett an seinen Schüler Antonio Maria Fior weitergab. 1535 kam es zwischen Fior und einem venezianischen Mathematiker namens Nicòlo Fontana, genannt Tartaglia (ital. der Stotterer), zu einem Disput darüber, wer zuerst in der Lage gewesen sei, kubische Gleichungen zu lösen. Da es zu dieser Zeit keine veröffentlichte Lösungsformel zu diesem Problem gab und gemeinhin kubische Gleichungen aller Art als unlösbar galten, war dies eine wichtige Frage. Tartaglia hatte nun gegenüber Fior einen entscheidenen Vorteil, er kannte nicht nur die Formel zur Lösung kubischer Gleichungen obriger Art, sondern auch die Lösungsformel für Gleichungen der Art x3 + ax2 = b. Abbildung 12.1: Niccolo Tartaglia“ Fontana (1499-1557) ” Der folgende Wettstreit sollte nun dadurch entschieden werden, dass beide Kontrahenten je 30 Probleme verfassten und dem jeweils anderen diese zur Lösung vorlegten. Da Fior überzeugt war, dass Tartaglia seine Art der kubischen Gleichungen nicht lösen könne, legte er diesem 30 Gleichungen seiner Art vor. Diese konnte Tartaglia ohne Probleme lösen. Da er seinerseits aber Fior sehr verschiedenartige Probleme vorlegte, die dieser kaum oder gar nicht lösen konnte, gewann er den Wettstreit. wenn auch das sicherlich nicht die Frage nach der Zeit des Entdeckens der Lösung offenbarte, war Fior dadurch in den Augen der akademischen Welt diskreditiert. Seine Formel veröffentlichte Tartaglia danach nicht, so dass bis zur Veröffentlichung der so genannten Cardano-Tartaglia-Formel durch Gerolamo Cardano 1 keine Lösung für kubische Formeln bekannt war. Für weitere Hintergrundinformationen zu diesem Thema empfehlen wir das Studium der angegebenen Quellen und weiterer Literatur. Für unser Thema ist dieser Wettstreit aus einem anderen Blickwinkel viel interessanter: 1 Die Angaben über den Verlauf des Wettstreites und die Art der Veröffentlichung der Cardano-TartagliaFormel widersprechen sich je nach Quelle (Quellen: 1-3) 160 Während des Wettstreites konnte zwar gezeigt werden, dass Tartaglia in der Lage war kubische Gleichungen der Form x3 + ax = b zu lösen. Dennoch konnte anhand des Wettstreites niemand auf die dazu verwendete Formel schließen. Somit wurde bewiesen, dass eine Formel existiert, die bestimmte kubische Gleichungen löst, ohne dass diese bekannt wurde. Diese Art eines Beweises unterscheidet sich grundlegend von den zuvor beschriebenen mathematischen Beweisen: Es findet keine streng logische Zurückführung auf Axiome, Sätze oder andere bewiesene Behauptungen statt, stattdessen ließ Tartaglia seine Behauptung, dass er kubische Gleichungen lösen könne, durch Aufgaben auf die Probe stellen. Diese Art eines Beweises nennt man interaktiven Beweis. Durchführbarkeit Korrektheit Für jede Gleichung, die die Bedingung x3 + ax2 = b oder x3 + ax = b erfüllt, kann Tartaglia eine Lösung errechnen (Allgemein: Der Prover kann alle Anfragen des Verifiers richtig beantworten) Ausgehend von damaligem Wissensstand kann niemand außer Tartaglia eine Lösung für Gleichungen der 1. Art angeben, ohne zu raten und das zwar mit je nach Gleichung schwankender Wahrscheinlichkeit aber insgesamt verschwindend geringer Wahrscheinlichkeit. (Allgemein: Bei wiederholten Versuchen konvergiert die Wahrscheinlichkeit eines erfolgreichen Betrugs gegen 0) Tabelle 12.1: Definitionen von Durchführbarkeit und Korrektheit 12.1.2 Allgemeines Prinzip nach L.Babai ( Merlin“ ) ” Das Vorgehen während des Wettstreits aus dem vorigen Abschnitt erfüllt Forderungen, die an ein gutes kryptographisches Verfahren gestellt werden: Außer diesen beiden Eigenschaften hat Tartaglias Auftritt bei dem Wettstreit noch eine dritte Eigenschaft: Die Fähigkeit eine Behauptung zu beweisen, ohne sein eigenes Wissen offenbaren zu müssen. Aber erst spät im 20. Jahrhundert wurde diese Art von Beweisführung in der Mathematik weiter untersucht. Aus diesen Untersuchungen resultierten 1985 die sogenannten ZeroKnowledge-Beweise. Im folgenden soll ein einprägsames Beispiel von L. Babai vorgestellt werden, in dem es um ein auf klassischem Wege kaum zu beweisendes Problem geht: Es sind zwei Graphen G0 und G1 gegeben, von denen behauptet wird, sie seien nicht isomorph. Ferner haben die Graphen so viele Ecken, dass die Isomorphie nicht sofort erkennbar sei, ein Beispielswert hierfür sind 100 Ecken je Graph. Bei dieser Anzahl oder mehr Ecken, ist der Aufwand, um alle möglichen Permutationen zu finden, enorm. Das heißt, schriebe man alle möglichen Permutationen eines der beiden Graphen bei 100 Ecken je Graph auf, so müsste man 9.33 · 10157 Permutationen notieren. Um den interaktiven Beweis führen zu können wird eine Instanz vorausgesetzt, die in der Lage ist, Isomorphien von Graphen sofort 161 erkennen zu können. Eine solche Instanz ist aber nur theoretischer Natur. Das einprägsame Bild, welches hierfür von Babai verwendet wurde war das Bild von Merlin, dem Zauberer, der die Rolle der allwissenden“ Instanz übernimmt, während Arthur als ” Normalsterblicher die Rolle eines Prüfers übernimmt. Abbildung 12.2: Kommunikation von Merlin und Arthur Um die Behauptung Merlins, dass die Graphen G0 und G1 von oben nicht isomorph sind, zu überprüfen, wählt Arthur zufällig einen der beiden Graphen und unterwirft ihn einer zufälligen, nur ihm bekannten Permutation π und erzeugt so den Graphen H. Dann legt er Merlin H vor und lässt diesen bestimmen, zu welchem Graphen H isomorph ist. Merlin erkennt nun sofort zu welchem Graphen H isomorph ist, falls G0 nicht isomorph zu G1 ist. Daraus ergeben sich folgende Möglichkeiten: H isomorph G0 H isomorph G1 Behauptung G0 nicht isomorph G1 falsch Merlin muss raten, welchen Graphen Arthur zuvor gewählt hat, Erfolgschance (50%) Merlin muss raten, welchen Graphen Arthur zuvor gewählt hat, Erfolgschance (50%) Behauptung G0 nicht isomorph G1 richtig Merlin antwortet korrekt G0 Merlin antwortet korrekt G1 Tabelle 12.2: Merlins mögliche Antworten Wird dieser Vorgang von Arthur nun t-mal wiederholt, so kann Merlin im Betrugsfall, Arthur nur mit einer Wahrscheinlichkeit von ( 12 )t immer die Wahrheit sagen. Somit ist auch für dieses Beispiel die Korrektheit des Verfahrens gezeigt. Da Arthur die Antwort, die Merlin ihm gibt, immer mit seiner Anfrage abgleichen kann, ist das Verfahren auch durchführbar. Anhand dieses Beispieles kann man noch einige Begriffe einführen. So wird die Rolle, die Arthur einnimmt Verifizierer“ (Verifier) und die Rolle des Merlin Beweisführer“ (Prover) ” ” genannt. 162 12.1.3 Zero-Knowledge-Eigenschaft Im letzten Teil dieses Abschnittes über Interaktive Verfahren wird nochmals kurz auf die Zero-Knowledge-Eigenschaft eingegangen. Diese Eigenschaft wurde im ersten Teilabschnitt kurz erwähnt aber nicht weiter erläutert. In diesem Abschnitt wird nun eine kurze Erläuterung für diesen Begriff gegeben. Tartaglia sollte seine Behauptung, dass er kubische Gleichungen lösen könne beweisen. Dies tut er, ohne dass er sein Wissen offenbart, aber dennoch kann der Verifizierer (Fior) mit einer sehr hohen Wahrscheinlichkeit nach 30 Prüfungen beurteilen, ob er die Wahrheit sagt, oder nicht. Abschließend eine Definition des Begriffes: Zero-Knowledge-Eigenschaft 1 Aus der Interaktion zwischen dem Beweiser und dem ” Verifizierer darf nicht mehr Wissen als die (Un)Gültigkeit der zu beweisenden Aussage gewonnen werden.“ 2 2 aus (4) 163 12.2 Zero-Knowledge-Verfahren Die Zero-Knowledge-Eigenschaft eignet sich nun hervorragend für Authenifizierungsprotokolle, in denen sich eine Partei A gegenüber einer Partei B identifizieren möchte, da: • Partei B das Geheimnis von Partei A vorher nicht kennen muss • und es auch nach dem Identifizierungsvorgang nicht kennen wird Der klare Vorteil davon ist, dass sich B so nie als A ausgeben kann, jedenfalls nicht mit einer ausreichend hohen Sicherheit, aber die Identität von A mit einer beliebig hohen Wahrscheinlichkeit bestätigen kann. Im Folgenden werden nun ein Beispiel für Zero-Knowledge-Verfahren und zwei praktsch verwendbare Zero-Knowledge-Verfahren vorgestellt: Die magische Türe (12.2.1), Isomorphie von Graphen (12.2.2) und der Fiat-Shamir-Alogrithmus (12.2.3)3 . Alle diese Verfahren benötigen drei Eigenschaften, um als sinnvolle Zero-Knowledge-Verfahren anerkannt zu werden: Durchführbarkeit, Korrektheit und die Zero-Knowledge-Eigenschaft. Natürlich ist die Grundvoraussetzung für ein Zero-Knowledge-Eigenschaft nur die ZeroKnowledge-Verfahren, aber ohne die anderen beiden kann man ein solches Verfahren nicht sinnvoll einsetzen. 12.2.1 Die magische Tür Im Beispiel der magischen Türe geht es darum, dass eine Partei A einer Partei B beweisen will, dass sie das Geheimnis zur Öffnen der magischen Türe kennt. Das folgende Verfahren findet in einem Gebäude mit folgendem Grundriss statt. In diesem Gebäude wird Partei A durch folgendes Vorgehen geprüft: 1. A betritt den Vorraum, schließt hinter sich die Eingangstüre und geht zufällig nach links oder rechts und schließt auch dort wieder die Türe hinter sich 2. Dann betritt B den Vorraum, steht vor zwei geschlossenen Türen nach rechts und links und entscheidet sich zufällig für eine Seite und ruft diese als links“ oder rechts“ in ” ” den Raum. 3. A muss diesen Wunsch nun erfüllen, wobei dies kein Problem ist, sollte A sich bereits auf der gewünschten Seite befinden. Sollte A auf der anderen Seite sein, so muss A das Geheimnis des Codes der magischen Türe verwenden, um den Wunsch zu erfüllen. Dieses Vorgehen wird t-mal wiederholt. Sollte A bei jedem Durchlauf aus der korrekten Türe kommen, so ist B davon überzeugt, dass A das Geheimnis kennt. Betrachten wir nun die drei Eigenschaften, die darüber entscheiden, ob das Verfahren wirklich ein brauchbares ZeroKnowledge-Verfahren ist. Zunächst betrachten wir die Durchführbarkeit. Diese ist dadurch gegeben, dass A durch Kenntnis des Codes der magischen Türe die Wünsche von B immer erfüllen kann. Zur Beurteilung der Korrektheit des Verfahrens schauen wir uns an, wie wahrscheinlich es ist, dass eine Partei à sich als A ausgeben kann. Um sich als A auszugeben, müsste à jedes 3 Verfahren aus (1) 164 mal aus der von B gewünschten Seite kommen. Da à aber nicht das Geheimnis der magischen Türe kennt, kann à nur aus der Seite kommen, zu der sie zu Beginn des Verfahrens gegangen ist. Da es zwei Seiten zur Auswahl gibt ist die Wahrscheinlichkeit, dass es à nun gelingt auf der richtigen Seite zu erscheinen 12 . Bei t Durchführungen des Verfahrens ist die Wahrscheinlichkeit, immer auf der richtigen Seite zu erscheinen, somit ( 12 )t . Das heisst, dass es je mehr Versuche t es gibt, in denen à sich identifizieren soll, die Wahrscheinlichkeit, dass à erfolgreich betrügt immer weiter gegen 0 konvergiert ( lim ( 12 )t = 0). t→∞ magische Tür rechte Tür linke Tür Vorraum Abbildung 12.3: Grundriss des Gebäudes mit der magischen Türe Als letztes beurteilen wir die Zero-Knowledge-Eigenschaft des Verfahrens. Wie in der Definition (S. 163) gefordert wird, darf B nichts über das Geheimnis von A erfahren, wenn das das Verfahren durchgeführt wird. In unserem Beispiel bedeutet das, dass B mit Hilfe einer weiteren Partei C die Kommunikation mit A nachstellen kann, aber C dennoch nichts über das Geheimnis von A weiß. Dies ist aber nur möglich, falls B und C alle Fehlschläge ignorieren und nur erfolgreiche Versuche festhalten. Das so erstellte Protokoll kann nicht von einer echten Kommunikation zwischen A und B unterschieden werden. Dadurch steckt im Protokoll der Kommunikation zwischen A und B keine Information über das Geheimnis von A. Somit ist die geforderte Zero-Knowledge-Eigenschaft für das Verfahren gegeben. 12.2.2 Isomorphie von Graphen Für dieses Verfahren wird die Annahme, dass es im Allgemeinen unmöglich ist, einen Isomorphismus für zwei große Graphen zu finden, zu Grunde gelegt. Für das Verfahren benötigt Partei A nun ein Graphenpaar (G0 , G1 ), das isomorph ist und den entsprechenden Isomorphismus σ zwischen beiden. Wird nun nach folgendem Verfahren vorgegangen, so kann B sich davon überzeugen, dass A den Isomorphismus kennt, ohne dass A diesen verraten muss: 1. A wählt zufällig einen der beiden Graphen aus, zum Beispiel durch zufällige Wahl des Bits b ∈ {0, 1}. Auf diesen wendet A nun eine weitere zufällige Permutation τ an, so dass ein neuer Graph H entsteht. Diesen Graphen bekommt B zur Verfügung gestellt. 165 Abbildung 12.4: Ablauf beim Verfahren der isomorphen Graphen (12.2.2) 2. B wünscht sich nun den Isomorphismus von H zu entweder G0 oder G1 , da H isomorph zu beiden Anfangsgraphen ist und formuliert den Wunsch seinerseits wieder als Bit c ∈ {0, 1}, das den Index des Graphen angibt, zu dem B den Isomorphismus zu H wissen will. 3. A antwortet entweder mit α = τ , τ σ −1 oder τ σ, je nachdem ob H aus G0 oder G1 erzeugt wurde. Desweiteren hängt es natürlich von der Wahl von c ab, die B getroffen hat. 4. B prüft nun, ob mit der Antwort von A wirklich ein Isomorphismus gegeben ist. Dieser Vorgang wird t-mal wiederholt. Betrachten wir nun wieder die Eigenschaften, die zuvor als Bedingung für ein brauchbares Zero-Knowledge-Verfahren festgelegt wurden. A kennt die Abbildungen σ und τ und kann so sowohl τ σ, als auch τ σ −1 bilden und auf diese Weise B alle Wünsche innerhalb des Verfahrens erfüllen, womit die Durchführbarkeit des Verfahrens gegeben ist. Bei der Betrachtung der Korrektheit gehen wir davon aus, dass ein Hochstapler Ã, der den Platz von A einnehmen will, entweder τ oder τ σ kennt. Wären à beide Permutationen bekannt, könnte à daraus σ berechnen: τ −1 (τ σ) = σ bzw. (τ σ −1 )−1 τ = (στ −1 )τ = σ c=0 c=1 b=0 τ (korrekt) τ σ (à kann nur raten) b=1 τ σ −1 (à kann nur raten) τ (korrekt) Tabelle 12.3: Die möglichen Antworten von Ã, falls τ bekannt ist und H aus G0 erzeugt wurde Folglich kann à nur einen von den Wünschen, die B äußern könnte, korrekt beantworten. Da B zwei verschiedene Wahloptionen hat, kann à mit einer Wahrscheinlichkeit von 12 pro Durchgang betrügen, ohne aufzufallen. Insgesamt ist somit die Wahrscheinlichkeit, dass à erfolgreich betrügen kann nach oben durch 166 1 2 beschränkt. Nehmen wir nun die t-fache Durchführung des Vorgehens hinzu, so erhalten wir, wie zuvor die Wahrscheinlichkeit ( 12 )t als Betrugswahrscheinlichkeit und sehen, dass somit auch die Korrektheit des Verfahrens gegeben ist. Das Verfahren kann auch dieses Mal von B und C nachgestellt werden. Wie der Tabelle zu entnehmen ist, kann à aber nur dann korrekt antworten, wenn b = c gilt. Für eine erfolgreiche“ ” Simulation muss also wahrscheinlich die Hälfte aller Anfragen verworfen werden. Somit kann ein Dialog mit A nachgestellt werden, der von einem Originaldialog nicht zu unterscheiden ist. Dadurch ist die Zero-Knowledge-Eigenschaft gewahrt. 12.2.3 Fiat-Shamir-Algorithmus A wählt Zufallszahl r x=r^2 mod n B x b bildet y=rs^b y wählt zufälliges Bit b prüft ob y^2=xv^b mod n Abbildung 12.5: Kommuniktion beim Fiat-Shamir-Algorithmus (12.2.3) Wurzeln in Z∗n Bevor wir das Fiat-Shamir-Verfahren betrachten, zuerst eine kurze Erläuterung zu Wurzeln im Körper Z∗n . Im Folgenden bezeichnet Wurzel “ immer die Quadratwurzel. Der Körper ” Z∗n besteht aus einer Teilmenge der Zahlen {1, . . . , n − 1}, den Modulo-Resten des Moduls n, außer der 0. Durch die Körpereigenschaft hat jedes Element in Z∗n ein multiplikatives Inverses. Nun ist die Berechnung einer Wurzel in diesem Körper in ihrer Komplexität stark vom Modul n abhängig. Ist n prim, so gibt es schnelle Verfahren, während es im anderen Fall sehr aufwändig ist, Wurzeln zu bestimmen. Dieses Problem hängt eng mit dem Problem der Faktorisierung großer Zahlen zusammen. Desweiteren gibt es in Z∗n drei unterschiedliche Möglichkeiten, wieviele Wurzeln eine Zahl haben kann. Ist der Radikant r prim, so hat r genau 2 Wurzeln, ist r nicht prim, so kann r entweder gar keine oder vier Wurzeln (x, y, n − x, n − y) haben. Desweiteren ist die Berechnung dieser Wurzel, wie zuvor erwähnt, recht aufwändig, falls n keine Primzahl ist. In unseren Betrachtungen gilt n = pq mit p, q prim. 4 Für unsere folgenden Betrachtungen des Fiat-Shamir-Algorithmus sei hier hier noch erwähnt, was ein quadratischer Rest modulo n ist. Wie oben beschrieben, gibt es im Z∗n Wurzeln. Eine Zahl a ∈ Z∗n ist quadratischer Rest, falls es eine Zahl b ∈ Z∗n gibt, für die gilt5 : b2 ≡ b · b ≡ a (mod n) 4 5 nach (1), S.122 siehe (1),S.122 167 Aber nicht nur das Berechnen von Wurzeln ist im Z∗n schwierig, sondern auch das Bestimmen ob eine Zahl ein quadratischer Rest ist, oder nicht. 6 Wichtig ist in dem Zusammenhang also, dass es fast unmöglich ist, zu bestimmen, ob eine Zahl quadratischer Rest modulo n ist und dass es genauso schwierig ist Quadratwurzeln in Z∗n zu berechnen. Letzteres ist die wichtigste Grundannahme für den Fiat-Shamir-Algorithmus, der im folgenden beschrieben wird. Der Fiat-Shamir-Algorithmus In der heutigen Kryptographie ist der Fiat-Shamir-Algorithmus das wichtigste praktisch eingesetze Zero-Knowledge-Verfahren. Die zuvor beschriebene Schwierigkeit, Wurzeln in Z∗n zu bestimmen, liefert hier die Grundlage für die Korrektheit des Verfahrens. Aber bevor wir diese genauer betrachten, stellen wir zuerst einmal den Ablauf vor, der sich in zwei Phasen aufteilt. Zunächst muss Partei A einen geheimen Schlüssel erzeugen. Dies geschieht, indem A zwei große Primzahlen p und q erzeugt und das Produkt n = pq bildet. A veröffentlicht n und hält die Primfaktoren p und q geheim, bzw. vernichtet sie. Da es bei großen Zahlen fast unmöglich ist, die Primfaktoren schnell und effizient zu bestimmen, sind p und q nicht ohne weiteres herauszufinden. Nun wählt A eine Zufallszahl s aus Z∗n und bildet dann v := s2 mod n. Von diesen Zahlen veröffentlicht A nun v und behält s für sich. Wie zuvor erwähnt, lässt sich s nicht ohne weiteres aus v berechnen. Dadurch ist das Geheimnis s sicher. Zentraler Punkt des folgenden Verfahrens ist also, dass p, q und s von A geheimgehalten werden. Das Verfahren zur Identifikation von A, anhand von n und v läuft nun wie folgt ab: 1. A wählt ein zufälliges Element r aus Z∗n und quadriert dieses x := r 2 mod n. x wird dann an den Verifizierer B geschickt 2. B wählt ein Bit b ∈ {0, 1} und antwortet mit diesem 3. A antwortet mit y := rsb 4. B prüft nun, ob y 2 ≡ xv b ist Zur Durchführbarkeit des Fiat-Shamir-Algorithmus ist zu sagen, dass diese durch folgenden Zusammenhang in Z∗n gegeben ist. y 2 ≡ (rsb )2 ≡ r 2 s2b ≡ r 2 v b ≡ xv b mod n Somit kann A immer auf alle Anfragen von B antworten. Nun betrachten wir die Erfolgswahrscheinlichkeit einer Partei Ã, die den Platz von A einnehmen will. Als erstes stellen wir fest, dass à höchstens für eine der Anfragen, die B stellen kann, eine korrekte Antwort haben kann, da gilt: y02 = x und y12 = xv. Hieraus folgt aber auch y1 y1 ( )2 = v = s2 =⇒ ≡ s mod n y0 y0 Daraus folgt, dass à aber nur in jeder Runde eine Betrugschance von 168 1 2 hat. b=0 b=1 à kann nur raten c=0 y = r (korrekt) à kann nur raten c=1 y = r (korrekt) 2 c wird zufällig von à gewählt und in x := r v −c mod n eingesetzt Tabelle 12.4: Die möglichen Antworten von à beim Fiat-Shamir-Algorithmus Wie man in der Tabelle sieht, kann Ã, falls sie Vermutungen über die Fragen B hat, ein passendes c wählen. Ein solcher Betrug, würde B nicht aufallen. Insgesamt folgt also, wie in den Fällen zuvor, dass à bei t Anfragen mit der Wahrscheinlichkeit ( 12 )t betrügen kann, so dass auch hier die Korrektheit des Verfahrens gegeben ist. Wie bei den vorherigen Verfahren erfährt auch hier B nichts über das Geheimnis von A. Auch hier kann B mit Hilfe von C eine Kommunikation mit A nachstellen. In diesem Fall müsste B alle Fälle, in denen b und c ungleich gewählt wurden ignorieren und die Kommunikation neu zu starten. Somit ist die Zero-Knowledge-Eigenschaft des Fiat-Shamir-Verfahrens gezeigt. Sonstiges zum Fiat-Shamir-Verfahren Aktuell gehört das Fiat-Shamir-Verfahren zu den am häufigsten verwendeten und bekanntesten Zero-Knowledge-Verfahren. Gründe dafür sind die geringe, benötige Rechenleistung, sowie die Tatsache, dass das Verfahren ein Public-Key-Verfahren ist. Diese Eigenschaften haben ihn sehr attraktiv für Authentifizierungen gemacht, in denen ein Teilnehmer von einem System schnell identifiziert werden soll, ohne dass das System das Geheimnis kennen muss. Aus diesen Gründen wurde das Fiat-Shamir-Verfahren recht schnell in praktische Verfahren umgesetzt. Ein Beispiel hierfür ist das sogenannte VideoCrypt “-Verfahren, welches beim ” Bezahlfernsehen eingesetzt wird. Bei diesem wird es eingesetzt, um die Echtheit einer verwendeten Chipkarte im Decoder zu erkennen.7 12.3 Existenz von Zero-Knowledge-Beweisen Problemstellungen kann man im Allgemeinen unterteilen, indem man die Komplexitität ihrer Lösung betrachtet. Damit gemeint ist die Idee, dass es für jede Problemstellung einen äquivalenten Algorithmus gibt, mit dem eine Turingmaschine das jeweilige Problem lösen kann. Die Unterteilung verläuft nun anhand der Komplexität dieses Algorithmus. Zur Menge P gehören nun die Probleme, die sich mit polynomialem Zeitaufwand lösen lassen. Beispiele dafür sind die Addition und Multiplikation auf den natürlichen Zahlen und alle Probleme, die sich auf einem herkömmlichen Computer exakt lösen lassen. In die Menge NP fallen nun jene Probleme, bei denen sich mit polynomialem Zeitaufwand eine Lösung verifizieren lässt. 8 6 siehe (1), S.123f Auf Grund von Implementierungsfehlern wurde das Verfahren dennoch recht schnell geknackt 8 siehe (1), S.132f. 7 169 In den späten 1980er bis Mitte der 1990er Jahre wurde beweisen, dass alle Probleme aus der Gruppe der NP-Probleme einen interaktiven Beweis (12.1) besitzen. Diese Menge an Problemen nannte man dann IP, Probleme mit interaktivem Beweis. Zunächst dachte man, dass nicht alle NP-Probleme einen interaktiven Beweis hätten, daher die Unterscheidung. Später wurde dann nachgewiesen, dass es für alle Probleme aus dieser Klasse (IP), auch einen Zero-Knowledge-Beweis gibt. Als Vorsausetzung dafür wurde herangezogen, dass es sichere Bit-Commitment-Verfahren9 gibt. Ein in (1) beschriebenes Beispiel handelt vom Zero-Knowledge-Beweis, dass ein Graph G hamiltonsch ist10 . In diesem Beispiel geht es darum, dass eine Instanz A einen hamiltonschen Kreis in G kennt und dies B beweist, indem entweder ein Isomorphismus zu einem gegebenen isomorphen Graphen H geliefert wird, oder ein hamilonscher Kreis im Graphen H. Da immer nur eins beantwortet wird, erfährt B zwar keinen hamiltonschen Kreis in G, aber dass es einen in G geben muss, da hamiltonsche Kreise bei Isomorphien erhalten bleiben. Dieses Beispiel ist erwähnenswert, da sich alle NP-Probleme immer auf das Finden von hamiltonschen Kreisen in Graphen zurückführen lassen. Dadurch ist die Existenz von ZeroKnowledge-Beweisen für alle NP-Probleme gegeben. 9 10 siehe (1),S.15f. siehe (1), S.52ff. 170 12.4 Erweiterungen, Verbesserungen und sonstiges 12.4.1 Two-Prover Verfahren Nachdem wir nun schon einige Verfahren auf Basis der Zero-Knowledge-Eigenschaft vorgestellt haben, stellen wir fest, dass alle eine Gemeinsamkeit haben: Alle diese Verfahren beruhen auf der Annahme, dass es ein mathematisch quasi-unlösbares Problem gibt, auf dem wir unser Verfahren aufsetzen können. Sei dies die Schwierigkeit Isomorphien zu finden, oder die Schwierigkeit Wurzeln in Z∗n zu berechnen. Alle diese Annahmen sind mathematisch nicht bewiesen, auch wenn sie als gesichert gelten. Die Frage ist nun, ob es möglich ist, auch ohne die Verwendung einer nicht bewiesenen Annahme, Zero-Knowledge-Beweise bzw. Protokolle zu erstellen. Bei den zuvor beschriebenen Protokollen stellt sich sofort das Problem, dass ohne die Richtigkeit einer solchen Annahme die Korrektheit eines Verfahrens nicht mehr gegeben sein würde. Zum Beispiel wird sich das Finden von Quadratwurzeln in R sicher nicht als geeignetes Problem erweisen. Dieses stellt sicher keine große Hürde für einen mathematisch gebildeten Betrüger dar. Aber um dennoch ein korrektes Protokoll ohne unbewiesene Annahmen auf die Beine zu stellen, macht man sich einen Trick zu nutze, der aus der Polizeiarbeit bekannt ist: Man befragt einen zweiten Verdächtigen“. Sollte beiden das Geheimnis bekannt sein, so werden sie keine ” Probleme damit haben, auf Anfragen korrekt zu antworten. Sollte mindestens einer betrügen wollen, so wird dies auffallen, da sich bei getrennter Befragung mit hoher Wahrscheinlichkeit Widersprüche ergeben werden. 11 Hier sei der Grund für diese Widersprüche nur kurz umrissen: Da die beiden Befragten getrennt voneinander befragt werden, können sie sich nur vor der Befragung absprechen. Zunächst lässt der Befragende den ersten Befragten eine Folge von Antworten auf zufällig gewählte Anfragen geben. Dann vergleicht er diese mit Antworten des zweiten Befragten auf die gleichen Fragen. Dabei werden sich sehr wahrscheinlich Widersprüche in den Antworten ergeben, falls mindestens ein Befragter betrügen will. Dieses Verfahren wird 2-Prover-Verfahren genannt, da hier zwei Prover zuhilfe genommen werden. Es wurde gezeigt, dass sich mit diesen Verfahren mehr Problemstellungen beweisen bzw. lösen lassen, als mit herkömmlichen Zero-Knowledge-Verfahren. Die Klasse dieser Probleme nennt man MIP. 12.4.2 Witness-Hiding Untersuchungen an Verfahren mit der Zero-Knowledge-Eigenschaft haben ergeben, dass parallel durchgeführte Anfragen an den Prover zur Folge haben können, dass genau die ZeroKnowledge-Eigenschaft verloren gehen kann. Es könnte also durch parallele Anfragen möglich sein das Geheimnis des Provers zu ermitteln. Dies stellt ein großes Problem dar, da gerade diese Parallelanfragen in der Realität viel Zeit bei Authentifizierungen einsparen. Die Idee, die nun einer Verbesserung von Zero-Knowledge-Verfahren zugrunde liegt, ist es Zeugen “ für das Geheimnis des Provers zu verbergen. Zeugen sind in diesem Sinne In” formationen, die helfen eine Behauptung zu beweisen. Ein Zeuge für die Behauptung, dass 11 In (1), S.56ff. wird ausführlich erklärt, wieso es selbst bei vorheriger Absprache zwischen den beiden Befragten sehr wahrscheinlich zu Widersprüchen kommen wird. 171 Graph G isomorph zu Graph H sein soll, wäre ein Isomorphismus zwischen beiden. Witness-Indistinguishability Bevor wir das Witness-Hiding vorstellen, müssen wir zuerst kurz auf die Ununterscheidbarkeit von Zeugen (Witness-Indistinguishability) eingehen. Diese ist wie folgt definiert: Witness-Indistinguishability 1 Ein Protokoll für die Behauptung x hat die Eigenschaft ” ” L“ ist witness-indistinguishable (hat die WI-Eigenschaft), wenn man Ausführungen des Protokolls in denen der Prover P einen Zeugen w1 benutzt, nicht von solchen unterschieden werden kann, in denen er einen anderen Zeugen w2 benutzt.“ 12 Ein Beispiel für ein Verfahren mit der WI-Eigenschaft ist das Fiat-Shamir-Verfahren, da hier der Verifier nicht erkennen kann, welche Wurzel der Zahl v der Prover verwendet hat: Seien s1 6= s2 zwei Wurzeln der Zahl v und t := vv12 mod n, dann gilt t2 = vv = 1 ( mod n) und s1 = ts2 mod n. Daraus folgt nun, dass gilt rs1 = (rt)s2 mod n. Wegen (rt)2 = r 2 t2 = r 2 = x kann der Verifier nun nicht mehr erkennen, welche Wurzel s∗ der Prover verwendet hat. Damit hat er auch keine Ahnung, welchen Zeugen der Prover verwendet hat, da der Zeuge hier der jeweiligen Wurzel entspricht. Es folgen daraus zwei Resultate: Jedes Zero-Knowledge Protokoll hat die WI-Eigenschaft.“ ” 13 und Die WI-Eigenschaft bleibt bei paralleler Ausführung eines WI-Protokolls erhalten.“ ” 14 Witness-Hiding Betrachten wir nun die Eigenschaften, die Zeugen haben können noch einmal genauer. Wie wir gesehen haben, haben alle Zero-Knowledge Protokolle die WI Eigenschaft. Damit stellen wir sicher, dass ein Verifier keine Zeugen unterscheiden kann, aber nicht, dass er definitiv keine bestimmen kann. Die Eigenschaft, die wir hierfür benötigen ist die WH-Eigenschaft, die witness hiding Eigenschaft. Diese sagt aus, dass selbst bei mehrfachem Durchführen des Verfahrens der Verifier nicht in der Lage ist, irgendeinen Zeugen zu ermitteln. Aber um ein Resultat zu erhalten, wann ein Verfahren die WH-Eigenschaft hat, müssen wir zuvor folgende Definition liefern: Wesentlich verschiedene Zeugen 1 Zwei Zeugen w1 und w2 heißen wesentlich verschieden, wenn es mit Kenntnis von w1 genauso schwer ist w2 zu bestimmen, wie ohne w1 . Das gleiche gilt analog für w2 in Bezug auf die Bestimmung von w1 . 12 (1),S.59 (1),S.60 14 (1),S.60 13 172 Mit Hilfe dieser Definition kann man nun folgendes Resultat liefern: Ein Verfahren mit der WI-Eigenschaft hat genau dann die WH-Eigenschaft, wenn es schwer ist irgendeinen Zeugen zu bestimmen und es mindestens zwei wesentlich verschiedene Zeugen gibt. Mit Verfahren mit WH-Eigenschaft kann man nun auch Verfahren konstruieren, die parallele Nachrichtenübermittlung zulassen. In (1) werden auf Seite 61f. zwei Verfahren vorgestellt, die sich witness hiding zu Nutze machen, das Fiat-Shamir-Verfahren und Verfahren, die auf dem diskreten Logarithmus beruhen. Hierbei besitzt das Fiat-Shamir-Verfahren auch ohne Änderungen schon die WH-Eigenschaft. 12.4.3 Nicht-Interaktive Zero-Knowledge-Beweise Bisher waren alle Zero-Knowledge-Beweise, die wir betrachtet haben, interaktiv. Nun stellt sich die Frage, ob es auch solche gibt, die keine Interaktivität benötigen. Theoretische Untersuchungen zu dieser Fragestellung haben ergeben, dass es diese nicht geben kann. Es wurde gezeigt, dass Beweissysteme mit zwei oder weniger gesendeten Nachrichten nicht interessant sind, da die damit lösbaren Probleme leicht für jeden Beteiligten zu lösen wären. Obwohl man die Interaktivität nicht vollständig entfallen lassen kann, kann man diese durch eine Art Pseudo-Interaktivität ersetzen. Das bedeutet, dass man die ersten beiden Interaktionen, die benötigt werden, vorausberechnen kann. Später kann der Prover dann seine Behauptung beweisen, indem eine einzige Nachricht an den Verifier übertragen wird. Eine weitere Möglichkeit Pseudointeraktivität zu generieren ist die Absprache einer, beiden Parteien bekannten, Zufallsfolge. Dadurch können beide Parteien ihre jeweiligen ersten beiden Antworten ableiten. In der Folge muss der Prover dann nur noch eine Nachricht an den Verifier senden. Beide Verfahren laufen also darauf hinaus, dass die Anzahl der übermittelten Nachrichten auf eins reduziert wird. In (1) wird das Problem des Findens von hamitonschen Graphen (170) mit diesen beiden Möglichkeiten vorgestellt (S.63ff.). 173 13 Der Beweis des Fünffarbensatzes und Historie des Vierfarbensatzes 13.1 Einleitung Verschiedene Aspekte werden bei der Gestaltung von Karten berücksichtigt, damit ein Betrachter möglichst schnell die Informationen einer Karte erfassen kann. Einer der wichtigsten Kriterien ist hierbei eine sinnvolle Farbgebung. Sie erleichtert erheblich die Lesbarkeit und das Verständnis einer Karte. Damit Regionen voneinander abgehoben werden können, müssen aneinandergrenzende Gebiete mit verschiedenen Farben gefärbt werden. Der Grundgedanke hinter der Frage, wieviele Farben minimal zur Landkartenfärbung nötig sind, kann auch auf andere Themengebiete übertragen werden. Beispiele sind: • Wieviele Tage muss ein Parlament für Ausschusssitzungen einplanen, wenn jeder Ausschuss einen Tag lang tagen möchte und die einzelnen Parlamentsmitglieder mehrere Sitzungen besuchen möchten? • Wie sieht ein Stundenplan mit möglichst kurzer Gesamtlänge aus, wenn bekannt ist, welcher Lehrer welche Klasse wie häufig unterrichten soll? • Wieviele verschiedene Frequenzen sind in einem Mobilfunknetz notwendig, damit benachbarte Sender jeweils andere Frequenzen nutzen können. 13.2 Der Vierfarbensatz Der Vierfarbensatz besagt, dass vier Farben immer ausreichen, um jede beliebige Landkarte in der euklidischen Ebene so einzufärben, dass benachbarte Länder mit unterschiedlichen Farben gefärbt werden. Der Satz hat die Einschränkungen, dass zwei Flächen, die sich in einem Punkt berühren, nicht als benachbart gelten und jedes Land aus einer zusammenhängenden Fläche bestehen muss, es also keine Exklaven geben darf. 13.2.1 Geschichte Mitte des 19. Jahrhunderts bekam der englische Mathematiker Francis Guthrie die Aufgabe, eine Landkarte von England zu kolorieren. Dabei stellte er sich die Frage, wieviele Farben 174 minimal notwendig sind um eine Karte vollständig zu färben, ohne dass benachbarte Gebiete gleichfarbig sind. Es ist offensichtlich, dass drei Farben nicht immer ausreichen, um die Bedingungen zu erfüllen. Abbildung 13.1: Färbung mit vier Farben ist notwendig1 Francis Guthrie stellte die Vermutung auf, dass vier Farben ausreichen, um jede beliebige Karte entsprechend zu färben. Damit ist er der Erfinder dieser mathematischen Fragestellung. Er testete seine Vermutung an verschiedenen Karten und kam immer wieder auf vier Farben, ohne diese Vermutung zu beweisen. Frederick Guthrie, der jüngere Bruder von Francis Guthrie, erzählte seinem Lehrer Augustus de Morgan von der Vierfarbenvermutung. Dieser fand Interesse daran und schrieb einen Brief an Sir William Rowan Hamilton, in dem er das mathematische Problem erläuterte. Dies war die erste schriftliche Notiz des Vierfarbenproblems. De Morgan beschäftigte sich weiterhin mit dem Thema. Nachdem sich fast zwanzig Jahre keine Mathematiker mehr mit der Fragestellung beschäftigt hatten, erregte Arthur Cayley wieder das Interesse mit der Frage, ob schon jemand eine Lösung gefunden hat und hielt einem Vortrag über das Problem. Etwa ein Jahr später, im Jahre 1879 fand Alfred Bray Kempe erstmals einen Beweis. Verschiedene Mathematiker machten noch Erweiterungen. Das Vierfarbenproblem galt als gelöst. Erst etwa 100 Jahre später entdeckt Percy John Heawood einen Fehler in dem vermeintlichen Beweis, ohne jedoch eine neue Beweisidee für den Vierfarbensatz zu erbringen. Heinrich Heesch entwickelte den Ansatz von Kempe weiter und ihm gelang Ende der sechziger Jahre der entscheidende Durchbruch. Er entschied, dass ein Computer für den Beweis nötig ist. Kenneth Appel und Wolfgang Haken an der University of Illinois at Urbana führten dann letztendlich diesen Beweis durch. Sie entwickelten ein Programm, welches sich selbst verbesserte und bewiesen 1976 den Vierfarbensatz. 0 0 Quelle: http://www.matheprisma.uni-wuppertal.de/Module/4FP/index.htm Bildquelle: http://www.matheprisma.uni-wuppertal.de/Module/4FP/index.htm 175 Abbildung 13.2: Four colors suffice1 13.2.2 Der Beweis mittels Computer Der Beweis besteht zunächst aus einem theoretischen Teil. Das allgemeine Problem wird auf endlich viele Probleme minimiert und ein Computerprogramm überprüft all diese Fälle. Diese revolutionäre Beweistechnik führt zu viel Aufsehen, da das erste Mal ein Computer als Beweismittel eingesetzt wurde. Einige Mathematiker erkennen den Beweis nicht an, da er nicht von einem Menschen nachvollzogen werden kann, sondern von der Korrektheit des Compilers und der Hardware abhängt. Sie wünschen sich einen eleganteren Beweis, der sich kurz und knapp fassen lässt. 13.3 Der Fünffarbensatz Der Fünffarbensatz ist eine Abschwächung des Vierfarbensatzes und besagt, dass die Flächen einer Karte immer mit fünf oder weniger Farben gefärbt werden können, so dass benachbarte Länder unterschiedlich gefärbt sind. Auch hier gibt es die Einschränkungen, dass zwei Flächen, die sich in einem Punkt berühren, nicht als benachbart gelten und jedes Land aus einer zusammenhängenden Fläche bestehen muss, es also keine Exklaven gibt. 13.3.1 Geschichte Als Percy Heawood den Fehler im vermeintlichen Beweis des Vierfarbensatzes von Alfred Kempe entdeckte, fand er mit elementaren Mitteln einen Beweis für den Fünffarbensatz. Jedoch fand man keine beispielhaften Konstruktionen von Landkarten, für die tatsächlich fünf Farben zur korrekten Färbung benötigt wurden. 176 13.3.2 Bezug zur Graphentheorie Transformation einer Landkarte in einen Graphen Bei verwinkelten Grenzen zwischen Ländern kann es sehr kompliziert sein, eine detaillierte Karte zu färben. Es eignet sich deshalb, eine Karte durch einen Graphen zu abstrahieren, indem nur die wesentlichen Informationen festgehalten sind. Auch für die Nutzung von Computerprogrammen zur Farbfindung ist diese Darstellung sehr geeignet. Einen solchen Graphen erhält man, wenn man in jedes Land einen Punkt als Ecke eines Graphen setzt und bei benachbarten Ländern die jeweiligen Ecken über Kanten miteinander verbindet. Abbildung 13.3: Landkarte als Graph dargestellt1 Solche Graphen haben bestimmte Eigenschaften. Sie sind: 1. planar - keine Kanten schneiden sich 2. einfach - ein Land kann nicht an sich selbst angrenzen und kann nur jeweils eine Grenze zu einem Nachbarland haben Bemerkung: Länder, die mittels einer Ecke verbunden sind, gelten nicht als benachbarte Länder und können somit gleich eingefärbt werden. Wichtige Begriffe • Färbung Eine Eckenfärbung eines Graphen G = (V, E) ist eine Abbildung c : V → S, so dass gilt c(u) 6= c(v) für je zwei benachbarte Ecken u, v. Die Elemente der Menge S nennt man die zur Verfügung stehenden Farben. Im Bezug zum Fünffarbensatz ist nur die Mächtigkeit von S interessant. • Chromatische Zahl Üblicherweise suchen wir die kleinste natürliche Zahl n, so dass G eine gültige Eckenfärbung 0 Bildquelle: http://de.wikipedia.org/wiki/Fünf-Farben-Satz 177 c : V → {1, ..., n} hat. Dieses n heißt die (ecken-) chromatische Zahl von G und wird mit χ(G) bezeichnet. • n-färbbar Ein Graph G mit χ(G) ≤ n heißt n-färbbar. • Zusammenhängender Graph Ein Graph G = (V, E) heißt zusammenhängend, wenn für jedes Paar von Knoten u und v ∈ V ein u-v-Pfad in G existiert. Oder auch anschaulicher ausgedrückt: Ein Graph ist zusammenhängend, wenn er ‘nicht in mehrere Teile zerfällt’. • Planarer Graph Ein Graph wird als planar bezeichnet, wenn man ihn so zeichnen kann, dass sich keine Kanten überschneiden. Im Bezug zur Graphentheorie kann der Fünffarbensatz folgendermaßen formuliert werden: Für jeden planaren Graphen G ist χ(G) ≤ 5. Grundlegende Sätze Für den Beweis des Fünffarbensatzes sind ein paar Sätze und Hilfssätze aus der Graphentheorie relevant: • Die Eulersche Polyederformel Sei G ein zusammenhängender planarer Graph mit k ≥ 1 Knoten, m Kanten und f Flächen, in die die Ebene durch den Graphen eingeteilt wird (das Außengebiet zählt mit). Dann gilt: k−m+f =2 • Hilfssatz 1 Sei G ein zusammenhängender einfacher planarer Graph mit k ≥ 3 Knoten und m Kanten. Dann gilt: m ≤ 3k − 6 • Hilfssatz 2 Jeder einfache, planare Graph enthält einen Knoten, dessen Grad höchstens fünf ist. Beweis durch einen Widerspruch: Annahme: – geg: ein zusammenhängender, planarer Graph mit k ≥ 3 – jeder Knoten hat mindestens den Grad 6, also ist G ≥ 6 so gilt: die Anzahl aller Kanten ist m ≥ G ∗ k/2 m ≥ 6 ∗ k/2 = 3 ∗ k laut Hilfssatz 1 gilt: m ≤ 3k − 6 eingesetzt ergibt das: 3k ≤ 3k − 6 und dies ist ein Widerspruch. 178 Folglich muss es immer in einem einfachen, planaren Graph eine Ecke geben, deren Grad höchstens fünf ist. 13.3.3 Der Beweis Der Fünffarbensatz kann mit Hilfe der vollständigen Induktion nach der Eckenzahl eines planaren Graphen bewiesen werden. Wir betrachten allgemein einen planaren, einfachen Graphen G mit k Ecken und m Kanten. Induktionsannahme: Alle planaren Graphen mit weniger als k Ecken sind 5-färbbar. Induktionsanfang: Planare Graphen mit weniger als sechs Ecken sind natürlich immer 5-färbbar. Abbildung 13.4: 5-färbbare Graphen Induktionsbehauptung: Alle planaren Graphen mit k Ecken sind 5-färbbar. Induktionsbeweis: Wir wissen nach Hilfssatz 2, dass eine Ecke v ∈ G existiert, die höchstens den Grad fünf hat. Wir entfernen nun v und erhalten den Graphen H mit k − 1 Ecken. Nach Induktionsannahme wissen wir, dass der Graph H := G − v mit fünf Farben gefärbt werden kann. Als nächstes wollen wir den Knoten v wieder zu H hinzufügen, so dass fünf Farben beim Färben des Graphen H + v ausreichen. Wir bezeichnen nun die Nachbarknoten von v im Uhrzeigersinn mit v1 , v2 , v3 , v4 und v5 . Hierfür betrachten wir zwei Färbungsfälle von den Nachbarknoten von v. 1. Die Nachbarknoten von v sind mit höchstens vier Farben gefärbt. Entweder es gibt weniger als fünf Nachbarknoten oder mehr als ein Nachbarknoten trägt die gleiche Farbe. Dann kann v mit der fünften Farbe gefärbt werden und wir erhalten eine gültige Färbung für den Graphen mit k Ecken. 179 Abbildung 13.5: Knoten v mit Grad 5 Abbildung 13.6: v hat nur 4 Nachbarknoten 2. v hat fünf Nachbarknoten, die mit fünf verschiedenen Farben gefärbt sind. Damit wir eine freie Farbe für v bekommen, müssen wir die einzelnen Knoten geschickt umfärben. Hierfür müssten wir also 2 Nachbarn von v finden, die wir gleich einfärben können. Die Frage ist nur, wann dies möglich ist: Färben wir zum Beispiel v1 genau wie v3 blau, so müssten wir alle daran angrenzenden blauen Knoten umfärben, sonst wären zwei benachbarte Knoten gleich gefärbt. Nehmen wir an, dass wir diese Nachbarknoten rot färben, so müssten wir wiederum alle daran angrenzenden roten Knoten z.B. blau färben. Setzen wir diesen Algoithmus bei allen Knoten fort, so erhalten wir einen rot-blau-Weg. Wichtig ist jetzt, ob v1 über einen rot-blau-Weg zu Knoten v3 führt. a) falls nein: v kann rot gefärbt werden und wir erhalten somit einen gültig gefärbten Graphen mit k Knoten. b) falls ja: Das Umfärben führt nicht zum Erfolg, da wir zwei blaue Knoten nebeneinander erhalten. Wir haben also wieder die Ausgangssituation und benötigen ein anderes 180 Abbildung 13.7: Es gibt noch keine freie Farbe für v Abbildung 13.8: Eine Umfärbung führt zum Erfolg Umfärbungsverfahren. Die Existenz des rot-blau-Weges zwischen v1 und v3 liefert aber eine andere strukturelle Eigenschaft des Graphen, die wir verwenden können. Wir betrachten die Knoten v2 und v4 . Da der Graph planar ist, können sie nur über einen Weg miteinander verbunden sein, der durch einen Knoten des Weges v1 v3 führt. Dieser Weg enthält also nicht nur gelbe oder orange Elemente, sondern auch einen roten oder blauen Knoten. Folglich können wir entsprechend umfärben, so dass v gültig gefärbt wird. q.e.d. 181 Abbildung 13.9: Ein rot-blau-Weg führt von v1 zu v2 - Umfärben ist so nicht möglich Abbildung 13.10: Das Umfärben des gelb-orange-Weges führt zum Erfolg 13.4 Fazit und Ausblick Es ist wesentlich schwieriger den Vierfarbensatz zu beweisen, da nicht die vorgestellte Beweisführung wie bei dem Fünffarbensatz verwendet werden kann. Grund hierfür ist der Hilfssatz 2 (Jeder einfache, planare Graph enthält eine Ecke, deren Grad höchstens fünf ist.). Er gilt nicht für Grad vier, was diesen Beweisweg unmöglich macht für vier Farben. Obwohl 1976 ein Beweis des Vierfarbenproblems gefunden wurde, beschäftigen sich noch viele Mathematiker damit. Sie hoffen einen schlüssigen und kurzen Beweis für den Vierfarbensatz zu finden. Wer ihn findet, steht bald in Matheskripten ;-). 182 A Literaturverzeichniss A.1 Fibonacci • • • • http://de.wikipedia.de/wiki/Fibonacci-Folge http://de.wikipedia.org/wiki/Leonardo Fibonacci http://www.ijon.de/mathe/fibonacci/ A. Beutelspacher, M.-A. Zschiegner (2002) Diskrete Mathematik für Einsteiger Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden A.2 Eulersche Graphen • Manfred Nitzsche (2005) Graphen für Einsteiger: Rund um das Haus vom Nikolaus 2. Auflage, Vieweg ISBN 3 − 8348 − 0056 − 2 • R. Diestel (1996) Graphentheorie 2. Auflage, Springer • • • • ISBN 3 − 540 − 67656 − 2 http://de.wikipedia.org/wiki/Leonhard Euler (19.05.2008) http://de.wikipedia.org/wiki/Graphentheorie (19.05.2008) http://de.wikipedia.org/wiki/Wege%2C Pfade%2C Zyklen und Kreise in Graphen (19.05.2008) http://de.wikipedia.org/wiki/Eulerkreisproblem (19.05.2008) A.3 Hamiltonsche Graphen und Grade von Ecken • Manfred Nitzsche (2005) Graphen für Einsteiger: Rund um das Haus vom Nikolaus 2. Auflage, Vieweg ISBN 3 − 8348 − 0056 − 2 • http://www.wikipedia.de • http://wikiserver.mdmt.tuwien.ac.at/lva/118149/Theorie 06.12.2005 Graphentheorie#Hamiltonsche Krei 183 A.4 Bäume • A. Beutelspacher, M.-A. Zschiegner(2002) ,,Diskrete Mathematik für Einsteiger” Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden • Manfred Nitzsche (2005) Graphen für Einsteiger: Rund um das Haus vom Nikolaus 2. Auflage, Vieweg ISBN 3 − 8348 − 0056 − 2 • V. Sander, Skript zur Vorlesung: ,,Next Generation Internet” • R. Sedgewick ,,Algorithmen”, Pearson Education Deutschland GmbH, 2002 • G. Saake, K.-U. Sattler ,,Algorithmen und Datenstrukturen”, dpunkt.verlag GmbH, Heidelberg, A.5 Bipartite Graphen • J. Clark, D. A. Holton (1994) ,,Graphentheorie - Grundlagen und Anwendungen” Spektrum Verlag GmbH, Heidelberg erschienen ISBN 3 − 8602 − 5331 − X • Manfred Nitzsche (2005) Graphen für Einsteiger: Rund um das Haus vom Nikolaus 2. Auflage, Vieweg ISBN 3 − 8348 − 0056 − 2 A.6 DiGraphen • Königsberger Brückenproblem (Wikipedia) • Traveling Salesman Problem - Problem des Handlungsreisenden (Wikipedia) • Algorithmus von Hierholzer (Wikipedia) 184 A.7 Körper und Flächen • Manfred Nitzsche (2005) Graphen für Einsteiger: Rund um das Haus vom Nikolaus 2. Auflage, Vieweg ISBN 3 − 8348 − 0056 − 2 • Dorothea Wagner (2008) Vorlesungsskript: Algorithmen für planare Graphen http://i11www.iti.uni-karlsruhe.de/teaching/SS 08/planalgo/skript/algo-plan.pdf Universität Karlsruhe • Peter Steinberg (2005) Graphiken zu den Platonischen Körpern • http://www.wikipedia.de A.8 Farben • Manfred Nitzsche (2005) Graphen für Einsteiger: Rund um das Haus vom Nikolaus 2. Auflage, Vieweg ISBN 3 − 8348 − 0056 − 2 • http://www.wikipedia.de A.9 Kryptogaphie: Grundlagen • Beutelspacher, Schenk, Wolfenstetter (2006) Moderne Verfahren der Kryptographie ISBN 3 − 8348 − 0083 − X • http://www.it.fht-esslingen.de Spektakuläre Ereignisse in der Geschichte der Kryptographie Hr.Schmidt • www.mathematik.uni-osnabrueck.de Codierungstheorie und Kryptographie H.W.Bruns 185 A.10 Kryptogaphie: Protokolle • Beutelspacher, Schenk, Wolfenstetter (2006) Moderne Verfahren der Kryptographie ISBN 3 − 8348 − 0083 − X • http://www.wikipedia.de A.11 Zero Knowledge Verfahren • Beutelspacher, Schenk, Wolfenstetter (2006) Moderne Verfahren der Kryptographie ISBN 3 − 8348 − 0083 − X • http://de.wikipedia.org/wiki/Niccolo Fontana Tartaglia • http://www-groups.dcs.st-and.ac.uk/ history/Biographies/Tartaglia.html • http://de.wikipedia.org/wiki/Zero Knowledge A.12 Beweis 5 Farben Satz • Steger Diskrete Strukturen - Band 1 ISBN: 978-3-540-46660-4 2007 • R. und G. Fritsch Der Vierfarbensatz - Geschichte, Topologische Grundlagen und Beweisidee ISBN: 3-411-15141-2 1994 • R. Diestel (1996) Graphentheorie ISBN: 3-540-60918-0 • Das Vierfarbenproblem - mehr als Malen nach Zahlen http://www.matheprisma.uni-wuppertal.de/Module/4FP/index.htm • http://de.wikipedia.org/wiki/Fünf-Farben-Satz • Jörn Steuding Der Beweis des Fünffarbensatzes http://www.mathematik.uni-wuerzburg.de/ steuding/elsesser.doc 186 Abbildungsverzeichnis 2.1 2.2 2.3 Quadrat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . rechteck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . goldener Schnitt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 11 13 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 3.23 3.24 Nikolaus - Haus . . . . . . . . . . . . . . . . . . . . . . . . . Nikolaus - Haus mit Keller . . . . . . . . . . . . . . . . . . . Nikolaus- Haus als Graph . . . . . . . . . . . . . . . . . . . Graph mit Besonderheiten . . . . . . . . . . . . . . . . . . . Graph mit zwei isolierten Ecken . . . . . . . . . . . . . . . zusammenhängender und nicht zusammenhängender Graph Graph mit n Ecken wird mit Kn bezeichnet . . . . . . . . . Graph aus 3 Komponenten . . . . . . . . . . . . . . . . . . Graph und seine Eckengrade . . . . . . . . . . . . . . . . . Verwandlung des Nikolaus- Hauses . . . . . . . . . . . . . . nicht einfacher Graph als Zeichnung und als Tabelle . . . . Petersen- Graph . . . . . . . . . . . . . . . . . . . . . . . . kantenloser Graph . . . . . . . . . . . . . . . . . . . . . . . abcdef bzw. abcdea ist ein Kantenzug . . . . . . . . . . . . Graph mit Artikulation v, x, y und Brücke e = xy . . . . . Stadtplan von Königsberg im 18. Jahrhundert . . . . . . . . Stadtplan von Königsberg als Graph . . . . . . . . . . . . . Nikolaus-Haus mit eulerscher Tour . . . . . . . . . . . . . . Hier ist eine eulersche Tour zu finden . . . . . . . . . . . . . Eine eulersche Tour: A-B-C-A-D-E-C-F-D-B-E-F-A . . . . . Ausstellungsräume . . . . . . . . . . . . . . . . . . . . . . . Ausstellungsräume als Graph . . . . . . . . . . . . . . . . . Domino als Graph . . . . . . . . . . . . . . . . . . . . . . . Vollständiges Vieleck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 17 18 18 18 18 19 19 19 20 21 21 22 22 23 25 25 26 29 29 29 30 31 32 4.1 4.2 4.3 Ein Hamiltonscher Kreis in einem Dodekaeder . . . . . . . . . . . . . . . . . . Ein hamiltonscher Graph wird neu gezeichnet . . . . . . . . . . . . . . . . . . Erst zwei Schnitte teilen einen Kreis in zwei Teile . . . . . . . . . . . . . . . . 37 38 39 5.1 5.2 5.3 5.4 Beispiele von Bäumen . . . . . . . . . . . . . Zwei Wege zwischen Start und Ziel . . . . . . Ein Wald im Sinne der Graphentheorie . . . . Zwei aufspannende Bäume zum Nikolaushaus 41 42 43 44 187 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5 5.6 5.7 5.11 5.12 5.13 Aufspannende Bäume zu einem Dreieck, wenn man die Kanten unterscheidet. Labyrinth und dazu erstellter Graph . . . . . . . . . . . . . . . . . . . . . . . A: Sperren einer schon besuchten Ecke B: Sperren von Sackgassen C: Sperren einer Kante eines Kreises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Straßennetz und die Baukosten . . . . . . . . . . . . . . . . . . . . . . . . . . Minimal aufspannender Baum für den gegebenen Graphen . . . . . . . . . . . Schritt1: U ist der Startknoten, benachbarte Knoten sind V, W, X, Schritt2: X hinzufügen, neue Nachbarknoten V,W,Y . . . . . . . . . . . . . . . . . . . Schritt3: V hinzufügen , Schritt4: Y hinzufügen, neue Nachbarknoten W,Z . Schritt3: W hinzufügen , Schritt4: Z hinzufügen . . . . . . . . . . . . . . . . . Links: Bezirk des Briefträgers, Rechts: minimaler eulerscher Graph zum Bezirk 48 48 48 49 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 6.11 6.12 6.13 6.14 6.15 6.16 6.17 6.18 6.19 6.20 6.21 6.22 6.23 6.24 6.25 6.26 6.27 6.28 6.29 6.30 6.31 6.32 6.33 Frühstücksgraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lösungsgraph zur Aufgabe 1 . . . . . . . . . . . . . . . . . . . . . Alle Lösungsgraphen zur Aufgabe 2 . . . . . . . . . . . . . . . . . . Komponenten eines bipartiten Graphen . . . . . . . . . . . . . . . Viereck umzeichnen . . . . . . . . . . . . . . . . . . . . . . . . . . Graphen umzeichnen . . . . . . . . . . . . . . . . . . . . . . . . . . Graphen färben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lösung zur Aufgabe 3 . . . . . . . . . . . . . . . . . . . . . . . . . Achteckiger Kreis . . . . . . . . . . . . . . . . . . . . . . . . . . . . Graphen zur Aufgabe 4 . . . . . . . . . . . . . . . . . . . . . . . . Graphen zur Aufgabe 5 . . . . . . . . . . . . . . . . . . . . . . . . Bipartiter Baum . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lösungsgraphen zur Aufgabe 6 . . . . . . . . . . . . . . . . . . . . nicht hamiltonscher Graph . . . . . . . . . . . . . . . . . . . . . . . nicht hamiltonscher Graph (gefärbt) . . . . . . . . . . . . . . . . . nicht bipartiter Graph mit ungeradem Kreis . . . . . . . . . . . . . Baum der durch teilweise Kantenlöschung eines Graphen entstand Baum mit hypothetisch hinzugefügter Kante . . . . . . . . . . . . Zug des Turms in 3D und im bipartiten Graphen . . . . . . . . . . Schlechtes Fachwerk . . . . . . . . . . . . . . . . . . . . . . . . . . Stabiles Fachwerk . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sparsames Fachwerk mit Bruch . . . . . . . . . . . . . . . . . . . . Stabiles sparsames Fachwerk . . . . . . . . . . . . . . . . . . . . . Graphen zu den konstruierten Fachwerkhäusern . . . . . . . . . . . Haus vom Nikolaus mit Matchinglinien . . . . . . . . . . . . . . . . Haus vom Nikolaus Perfektes Matching . . . . . . . . . . . . . . . Haus vom Nikolaus Maximales Matching I . . . . . . . . . . . . . . Haus vom Nikolaus Maximales Matching II . . . . . . . . . . . . . Graph zur Übung 17 . . . . . . . . . . . . . . . . . . . . . . . . . . Lösung zur Übung 17 - perfektes Matching . . . . . . . . . . . . . Heiratsbeispiel 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Heiratsbeispiel 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Heirat ohne Erfolg . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 51 52 52 53 53 53 54 54 55 55 56 57 57 58 58 59 60 61 61 62 62 63 63 64 65 65 65 66 67 68 69 69 5.8 5.9 5.10 188 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 45 46 46 47 6.34 6.35 6.36 6.37 Folgerung Heiratssatz 1 . . . . . . . . . . . Folgerung Heiratssatz - perfektes Matching Graph zur Übung 18 . . . . . . . . . . . . . Lösungsgraph zur Übung 18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 72 73 74 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 7.10 7.11 7.12 7.13 7.14 7.15 c Google Maps) . . . . . . . . . . . Stadtplan von Jülich City ( Übergang vom ungerichteten zum gerichteten Graphen . . . . . Adjazenzmatrix eines Digraphen . . . . . . . . . . . . . . . . . Isomorphie bei Digraphen . . . . . . . . . . . . . . . . . . . . . Brücken und Einbahnstraßen . . . . . . . . . . . . . . . . . . . eulerscher Digraph (links) und hamiltonscher Digraph (rechts) Beispiele für Turniergraphen: Turniergraphen mit drei Knoten . Turniergraph mit eindeutigem Sieger . . . . . . . . . . . . . . . transitiver Turniergraph . . . . . . . . . . . . . . . . . . . . . . K ist ein König, k ein Vizekönig . . . . . . . . . . . . . . . . . Turniergraphen mit vier Knoten . . . . . . . . . . . . . . . . . Turniergraphen mit drei, fünf und sechs Knoten . . . . . . . . . Turniergraphen mit n Knoten . . . . . . . . . . . . . . . . . . . Fahrstrecke vom Start zum Ziel als gewichteter Digraph . . . . Teilergraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 76 76 77 78 78 80 80 81 82 82 83 83 83 84 8.1 8.2 8.3 Räumliche Graphen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Körper mit Löchern werden nicht untersucht. . . . . . . . . . . . . . . . . . . Schrägbilder von Graphen, in denen sich die Kanten schneiden (rote Markierungen). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Schaltplan, in dem sich Leitungen kreuzen. . . . . . . . . . . . . . . . . . . . Vorlage für die Beschichtung einer Leiterplatte nach dem Schaltplan aus Abbilung 8.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dehnen eines Würfels - Abschließend liegen alle Ecken und Kanten auf einer Ebene. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dehnen einer vierseitigen Pyramide. . . . . . . . . . . . . . . . . . . . . . . . Vierseitige Pyramide mit geradlinigen Kanten. . . . . . . . . . . . . . . . . . Darstellung eines Würfels als platter Graph mittels einer sich ausdehnenden Kugel - hier mit einem Luftballon. . . . . . . . . . . . . . . . . . . . . . . . . Ebene Graphen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zwei isomorphe Graphen - einmal eben und einmal nicht. . . . . . . . . . . . Beweis, dass ein follständiges Fünfeck nicht plättbar ist. . . . . . . . . . . . . Bipartiter Graph - In zwei disjunkten Mengen der Ecken befinden sich keine vollständigen Kanten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Auftrag zur Versorung von drei Häusern mit Gas, Wasser und Strom. . . . . Beweis, dass ein K3,3 -Graph nicht plättbar ist. . . . . . . . . . . . . . . . . . Unterilte Graphen des K5 und des K3,3 . . . . . . . . . . . . . . . . . . . . . . Algorithmus zur Bestimmung der Plättbarkeit eines Graphen. . . . . . . . . . Demontage eines Graphen bis ein K3,3 -Graph entstanden ist. . . . . . . . . . Der linke Graph besitzt zwei Flächen - der rechte eine. . . . . . . . . . . . . . Schrittweises Entfernen von Kanten eines beliebigen Graphen. . . . . . . . . . 85 85 8.4 8.5 8.6 8.7 8.8 8.9 8.10 8.11 8.12 8.13 8.14 8.15 8.16 8.17 8.18 8.19 8.20 189 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 87 87 87 88 88 89 90 91 91 92 93 93 94 94 95 95 96 8.21 8.22 8.23 8.24 8.25 Ebene Graphen, die keine Körper sind. . . . . . . . . . . . . . . Beispiel für platonsiche Körper. . . . . . . . . . . . . . . . . . . Die platonsichen Graphen zu den Körpern aus Abbildung 8.22. Würfel und schiefer Körper - gleiche platonische Graphen. . . . Drei verschiedene Arten von Parkettierung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 . 99 . 99 . 101 . 102 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 9.10 9.11 9.12 9.13 9.14 9.15 9.16 9.17 Beispiel Färbung einer Landkarte . . . . . . . . . . . . Anwendung des Vierfarbensatzes . . . . . . . . . . . . Anwendung auf einen bipartiten Graphen . . . . . . . Chromatisches Polynom einer Kette . . . . . . . . . . Erster Schritt des Algorithmus . . . . . . . . . . . . . Zweiter Schritt des Algorithmus . . . . . . . . . . . . . Erneuter Aufruf des Algorithmus . . . . . . . . . . . . Darstellung des Algorithmus als Struktogramm . . . . Beispiel Ampelschaltung . . . . . . . . . . . . . . . . . Konfliktgraph zur Ampelschaltung . . . . . . . . . . . Nachbarschaften ESC 2008 . . . . . . . . . . . . . . . Einfache Beispiele für Museen . . . . . . . . . . . . . . Polygonstruktur eines Museums . . . . . . . . . . . . . Triangulierung der Struktur . . . . . . . . . . . . . . . Kantenfärbung eines vollständigen bipartiten Graphen Beispiele für lateinische Quadrate . . . . . . . . . . . . Sonderfall eines lateinischen Quadrates (Sudoku) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 105 109 110 112 112 113 114 115 115 117 118 118 118 121 122 123 124 127 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1 Sichere Komminikation? . . . . . . . . . . . . . . . . . . . . . . . 10.2 Symmetrische Verschlüsselung . . . . . . . . . . . . . . . . . . . . 10.3 Dabei sind die oberen Buchstaben die des Klartextes, die unteren heimtextes. Quelle:http://www.it.fht-esslingen.de . . . . . . . . . 10.4 Schematische Darstellung der symmetrischen Verschlüsselung . . 10.5 Blockchiffre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.6 Schematische Darstellung von One-time-pad . . . . . . . . . . . . 10.7 Asymmetrische Verschlüsselung . . . . . . . . . . . . . . . . . . . 10.8 Schematische Darstellung der asymmetrischen Verschlüsselung . 10.9 Eine Einwegfunktion im Strassenverkehr . . . . . . . . . . . . . . 10.10Scheck. Quelle: www.freewebs.com/mugumania/material/ . . . . 10.11Schematische Darstellung der digitalen Signatur . . . . . . . . . . 10.12Hashfunktion bei Signieren einer Nachricht . . . . . . . . . . . . . . . . die . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . des Ge. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 128 129 129 130 131 132 135 136 137 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 . . . . . . . . . . . . . . . . 146 148 150 151 152 153 156 158 Challenge and Response . . . . . . . . . . . Graph zu y = 7x mod 229 . . . . . . . . . . Diffie-Hellman-Schlüsselvereinbarung . . . . “Man in the middle“-Angriff . . . . . . . . . ElGamal-Verschlüsselung . . . . . . . . . . ElGamal-Signatur . . . . . . . . . . . . . . Shamirs No-Key-Protokoll . . . . . . . . . . 3 Beispielgraphen für Knobeln über Telefon 190 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.1 12.2 12.3 12.4 12.5 Niccolo Tartaglia“ Fontana (1499-1557) . . . . . . . . . ” Kommunikation von Merlin und Arthur . . . . . . . . . Grundriss des Gebäudes mit der magischen Türe . . . . Ablauf beim Verfahren der isomorphen Graphen (12.2.2) Kommuniktion beim Fiat-Shamir-Algorithmus (12.2.3) . . . . . . . . . . . 13.1 Färbung mit vier Farben ist notwendig . . . . . . . . . . . . 13.2 Four colors suffice . . . . . . . . . . . . . . . . . . . . . . . . 13.3 Landkarte als Graph dargestellt . . . . . . . . . . . . . . . . 13.4 5-färbbare Graphen . . . . . . . . . . . . . . . . . . . . . . . 13.5 Knoten v mit Grad 5 . . . . . . . . . . . . . . . . . . . . . . 13.6 v hat nur 4 Nachbarknoten . . . . . . . . . . . . . . . . . . 13.7 Es gibt noch keine freie Farbe für v . . . . . . . . . . . . . . 13.8 Eine Umfärbung führt zum Erfolg . . . . . . . . . . . . . . 13.9 Ein rot-blau-Weg führt von v1 zu v2 - Umfärben ist so nicht 13.10Das Umfärben des gelb-orange-Weges führt zum Erfolg . . . 191 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 162 165 166 167 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . möglich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 176 177 179 180 180 181 181 182 182 Tabellenverzeichnis 2.1 2.2 Mit n wird der Monat, mit Fn die Anzahl der Kaninchenpaare im Monat n bezeichnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die ersten 13 Fibonacci Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . 12.1 12.2 12.3 12.4 Definitionen von Durchführbarkeit und Korrektheit . . . . . . . . . . . . . . . 161 Merlins mögliche Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 Die möglichen Antworten von Ã, falls τ bekannt ist und H aus G0 erzeugt wurde166 Die möglichen Antworten von à beim Fiat-Shamir-Algorithmus . . . . . . . . 169 192 8 9