Diskrete Strukturen Skript zur Vorlesung Manuel Bodirsky, Institut f¨ ur Algebra, TU Dresden, [email protected] 20. April 2015 Es handelt sich hier um eine Vorlesung, die vom Institut f¨ ur Algebra der TU Dresden f¨ ur Studierende der Informatik angeboten wird. Es werden Themen der Mathematik behandelt, die Studierende der Informatik kennen sollten. Wir gehen nicht immer auf die algorithmischen Aspekte der behandelten Gegenst¨ande ein, denn dies wird oft von weiterf¨ uhrenden Veranstaltungen im Informatikstudium abgedeckt. Allerdings sind die hier vorgestellten Konzepte wichtige Werkzeuge in der Informatik, sei es beim Entwurf und der Analyse von Algorithmen und Systemen, oder etwa beim Studium dessen, was algorithmisch nicht oder nicht effizient m¨oglich ist. Vor allem aber f¨ uhrt diese Vorlesung international und f¨ acher¨ ubergreifend g¨ ultige mathematische Sprache und Notation ein. Dieses Skript und die Vorlesung basieren auf Vorlesungen, die von Kollegen am Institut f¨ ur Algebra in den letzten Jahren gehalten wurden, und denen ich an dieser Stelle danken m¨ ochte; insbesondere gilt mein Dank Bernhard Ganter und Maja Pech. Die komplexen Zahlen werden dieses Jahr in der Vorlesung zur linearen Algebra f¨ ur Informatiker behandelt, und sind daher nicht mehr Bestandteil des Kurses Diskrete Strukturen. Auf der anderen Seite sind einige neue Bestandteile hinzu gekommen. Wir folgen dabei keinem Lehrbuch; wer aber noch erg¨ anzender Literatur sucht, den verweisen wir auf das Buch Diskrete Strukturen von Angelika Steger [7]. Wenn im Text ein Begriff hervorgehoben gedruckt ist, dann soll damit deutlich gemacht werden, dass er an dieser Stelle eingef¨ uhrt wird. Gew¨ohnlich geschieht das durch eine Definition. Eine Definition fehlt bei den undefinierten Grundbegriffen (z.B. Menge”) und ” bei Begriffen, die wir als bekannt vorraussetzen (z.b. nat¨ urliche Zahl”). Fehler, Tippfeh” ler, L¨ ucken, Kommentare, Anregungen, usw. bitte an den Autor richten, sie sind herzlich willkommen! Si bien dou´e que l’on soit, on ne fait rien de grand sans travail” ” Henri Poincar´e1 1 Henri Poincar´e, geboren am 29 April 1854 in Nancy; gestorben am 17 Juli 1912 in Paris. 1 Inhaltsverzeichnis 1 Die 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 Sprache der modernen Mathematik Die Symbole der Mengensprache . . . . Mengenangaben durch Aussondern . . . Mengenoperationen . . . . . . . . . . . . Kodieren mit Mengen . . . . . . . . . . Doppeltes Abz¨ ahlen . . . . . . . . . . . Binomialkoeffizienten . . . . . . . . . . . Die Russellsche Antinomie . . . . . . . . Die Axiome von Zermelo-Fraenkel . . . 2 Abbildungen 2.1 Notation . . . . . . . . . . . . . . . . . . 2.2 Der Satz von Cantor-Schr¨oder-Bernstein 2.3 Das Auswahlaxiom . . . . . . . . . . . . 2.4 Die Kontinuumshypothese . . . . . . . . 2.5 Permutationen . . . . . . . . . . . . . . 3 Die 3.1 3.2 3.3 3.4 natu ¨ rlichen Zahlen Die Wohlordnung der nat¨ urlichen Addition und Multiplikation . . . Teilbarkeit und Primzahlen . . . Der euklidische Algorithmus . . . . . . . . . . . . . . . . Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 5 5 6 6 7 9 9 . . . . . 11 11 12 14 14 15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 17 18 18 19 4 Modulare Arithmetik 4.1 Rechnen modulo 2 . . . . . . . . . . . . 4.2 Rechnen modulo 5 . . . . . . . . . . . . 4.3 Die Homomorphieregel . . . . . . . . . . 4.4 Uhrzeiten . . . . . . . . . . . . . . . . . 4.5 Die letzten Ziffern . . . . . . . . . . . . 4.6 Potenzieren modulo n . . . . . . . . . . 4.7 Der chinesische Restsatz . . . . . . . . . 4.8 Zufall in der Informatik (1) . . . . . . . 4.9 Anwendung: Rechnen mit großen Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 23 23 23 24 25 25 26 28 28 5 Gruppen 5.1 Beispiele . . . . . . . . . . . . . . . . 5.2 Die multiplikative Gruppe von Zn . 5.3 Zyklische Gruppen . . . . . . . . . . ¨ 5.4 Offentlich ein Geheimnis vereinbaren 5.5 Der Satz von Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 32 33 35 36 37 2 . . . . . . . . . . 5.6 5.7 Das Lemma von Euler-Fermat . . . . . . . . . . . . . . . . . . . . . . . . . . Kryptographie mit o usseln . . . . . . . . . . . . . . . . . . . ¨ffentlichen Schl¨ 6 Graphen 6.1 Knotenzusammenhang . . . 6.2 F¨ arbbarkeit . . . . . . . . . 6.3 B¨ aume . . . . . . . . . . . . 6.4 Zweifacher Zusammenhang 6.5 Der Satz von Menger . . . . 6.6 Eulersche Graphen . . . . . 6.7 Paarungen . . . . . . . . . . ¨ 7 Aquivalenzrelationen ¨ 7.1 Aquivalenz und Partition 7.2 Partitionen z¨ ahlen . . . . 7.3 Der Kern einer Abbildung 7.4 Funktionen z¨ ahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 39 . . . . . . . 43 44 45 46 47 49 51 53 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 57 58 59 60 8 Ordnungsrelationen 8.1 Lineare Erweiterungen . . . . 8.2 Quasiordnungen . . . . . . . 8.3 Transitive H¨ ulle . . . . . . . . 8.4 Ketten, Antiketten, Dilworth 8.5 Wohlquasiordnungen . . . . . 8.6 Semilineare Ordnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 62 63 63 64 65 67 9 B¨ aume z¨ ahlen 9.1 Z¨ ahlen bis auf Isomorphie 9.2 Der Satz von Cayley . . . 9.3 Die Catalanschen Zahlen . 9.4 Der Satz von Kirchhoff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 71 71 74 80 10 Planare Graphen 10.1 Die eulersche Polyederformel . . . . . . . . . . 10.2 Triangulierungen . . . . . . . . . . . . . . . . . 10.3 Zeichnungen . . . . . . . . . . . . . . . . . . . . 10.4 Polyeder . . . . . . . . . . . . . . . . . . . . . . 10.5 Der Dualgraph . . . . . . . . . . . . . . . . . . 10.6 Minoren und der Satz von Kuratowski-Wagner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 86 87 88 90 91 91 . . . . . . . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . . . . . . . . 11 Gerichtete Graphen 11.1 Tiefensuche . . . . . . . . . . . . . . 11.2 Starke Zusammenhangskomponenten 11.3 Breitensuche . . . . . . . . . . . . . 11.4 Transportnetze . . . . . . . . . . . . 11.5 Algorithmus von Edmonds-Karp . . 11.6 Nochmal Paarungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Boolsche Funktionen und Aussagenlogik 12.1 Boolsche Funktionen . . . . . . . . . . . . 12.2 Aussagenlogik . . . . . . . . . . . . . . . . 12.3 Das Erf¨ ullbarkeitsproblem . . . . . . . . . 12.4 2-SAT . . . . . . . . . . . . . . . . . . . . 12.5 Horn-SAT . . . . . . . . . . . . . . . . . . 12.6 Lineare Gleichungssysteme . . . . . . . . . 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 . 93 . 95 . 97 . 98 . 103 . 104 . . . . . . 106 106 109 111 113 117 118 . . . . . . 1 Die Sprache der modernen Mathematik 1.1 Die Symbole der Mengensprache Wir schreiben ∅ f¨ ur die leere Menge, die Menge, die kein Element hat. e ∈ M bedeutet: e ist ein Element der Menge M . e ∈ / M bedeutet: e ist nicht Element der Menge M . T ⊆ M bedeutet: T ist eine Teilmenge von M , d.h., jedes Element der Menge T ist auch Element der Menge M . Mit |M | bezeichnen wir die Anzahl der Elemente von M , auch Kardinalit¨ at 2 von M genannt . Einige wichtige Mengen und deren Bezeichnungen: • N: die Menge der nat¨ urlichen Zahlen {0, 1, 2, . . . }. • Z : die Menge der ganzen Zahlen {0, 1, −1, 2, −2, . . . }. • Q: die Menge der rationalen Zahlen (‘Bruchzahlen’). • R: die Menge der reellen Zahlen (‘Dezimalzahlen’). • C: die Menge der komplexen Zahlen. 1.2 Mengenangaben durch Aussondern Die allgemeine Form von Mengenangaben durch Aussonderung ist folgende: {x ∈ M | Bedingung(x)} . Damit ist die Menge aller Elemente in M gemeint, die die gegebene Bedingung erf¨ ullen. 1.3 Mengenoperationen Aus gegebenen Mengen A und B kann man mit Hilfe der folgenden Operationen neue Mengen konstruieren. A ∩ B := {e | e ∈ A und e ∈ B} Der Schnitt von A und B A ∪ B := {e | e ∈ A oder e ∈ B} Die Vereinigung von A und B A \ B := {e | e ∈ A und e ∈ / B} Die Differenz von A und B Hierbei bedeutet das Symbol ‘:=’, dass wir den Ausdruck auf der linken Seite (beim Doppelpunkt) durch den Ausdruck auf der rechten Seite (beim Gleichheitszeichen) definieren. 2 Was dies im Falle von unendlichen Mengen bedeutet, wird sp¨ ater thematisiert. 5 Rechenregeln f¨ ur Mengenoperationen: A∩A=A Schnitt ist idempotent A∪A=A Vereinigung ist idempotent A∩B =B∩A Schnitt ist kommutativ A∪B =B∪A Vereinigung ist kommutativ A ∩ (B ∩ C) = (A ∩ B) ∩ C Schnitte sind assoziativ A ∪ (B ∪ C) = (A ∪ B) ∪ C Vereinigungen sind assoziativ A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C) Schnitt ist distributiv u ¨ber Vereinigung A ∪ (B ∩ C) = (A ∪ B) ∩ (A ∪ C) Vereinigung ist distributiv u ¨ber Schnitt T Sei M eine Menge, und f¨ ur jedes i ∈ M sei Si S eine Menge. Dann schreiben wir i∈M (Si ) f¨ ur die Menge {x | x ∈ Si f¨ ur alle i ∈ M }, und i∈M (Si ) f¨ ur {x | x ∈ Si f¨ ur ein i ∈ M }. 1.4 Kodieren mit Mengen Mit Mengen k¨ onnen die gew¨ ohnlichen mathematischen Objekte und Konstruktionen ‘kodiert’ werden. Beispielsweise werden geordnete Paare (a, b) als Mengen der Gestalt {{a}, {a, b}} definiert. Die Produktmenge A × B zweier Mengen A, B wird definiert durch A × B := {(a, b) | a ∈ A, b ∈ B} . Es gilt |A × B| = |A| × |B|. Eine Teilmenge von A × B wird auch (bin¨ are, oder zweistellige) Relation genannt. Falls A = B, so spricht man auch von einer zweistelligen Relation auf A. Die Potenzmenge von A, geschrieben P(A), ist die Menge aller Teilmengen von A. Es gilt |P| = 2|A| . 1.5 Doppeltes Abz¨ ahlen ” La math´ematique est l’art de donner le mˆeme nom ` a des choses diff´erentes” Henri Poincar´e Das Prinzip des doppelten Abz¨ ahlens wird den Leserinnen und Lesern bereits begegnet sein: bei gegebenen Zahlen, die in einer (m × n)-Matrix angeordnet sind (etwa in einem Tabellenkalkulationsprogramm), erh¨alt man dasselbe Ergebnis, wenn man zuerst die n Zahlen jeweils einer Spalte addiert, und dann die m Ergebnisse f¨ ur jede Spalte, oder wenn man zuerst die m Zahlen jeder Zeile addiert, und dann die n Ergebnisse f¨ ur jede Zeile. Eine vielleicht u ¨berraschendere Anwendung dieses Prinzips steckt hinter dem Handschlaglemma. Hierbei ist vielleicht die Beweisidee wichtiger als die Aussage selbst, denn wir werden die gleiche Idee in vielen verschiedenen Situationen wieder verwenden k¨onnen. 6 Proposition 1 (Handschlaglemma). Auf einer Konferenz gibt es immer eine gerade Anzahl von Teilnehmern, die einer ungeraden Anzahl von Teilnehmern die Hand gibt. Beweis. Seien t1 , . . . , tn die Teilnehmer der Konferenz. Wir z¨ahlen die geordneten Paare (ti , tj ) von Teilnehmern, die sich die Hand geben, auf zweierlei Art und Weise. Sei xi die Anzahl von Personen, denen ti die HandP reicht, und sei y die Anzahl aller Handschl¨age. Auf ur jeden Teilnehmer ti ist die Anzahl der einen Seite ist die Anzahl der Paare ni=1 xi , denn f¨ der M¨oglichkeiten f¨ ur tj gleich xi . Auf der anderen Seite gibt es f¨ ur jeden Handschlag zwei geordnete Paare (ti , tj ) und (tj , ti ), also erhalten wir insgesamt 2y. Daher gilt n X xi = 2y . i=1 Aber wenn die Summe von n Zahlen gerade ist, dann muss eine gerade Anzahl dieser Zahlen ungerade sein (denn wenn wir eine ungerade Anzahl von ungeraden Zahlen und eine beliebige Anzahl von geraden Zahlen addieren, so erhalten wir ein ungerades Ergebnis). 1.6 Binomialkoeffizienten F¨ ur die Anzahl aller k-elementigen Teilmengen einer n-elementigen Menge schreiben wir n unden, ¨ber k. Aus Gr¨ k , gesprochen n u die sp¨ater klar werden, heissen diese Zahlen Binomialkoeffizienten. Bemerke, dass n0 = 1 (die leere Menge) und nn = 1 (die ganze Menge). Wir schreiben n! (lies: n Fakult¨ at”) f¨ ur n · (n − 1) · (· · · ) · 2 · 1, und definieren 0! := 1. ” Proposition 2. F¨ ur alle nat¨ urlichen Zahlen n, k gilt n n! = k k!(n − k)! Insbesondere gilt n2 = n(n − 1)/2. Beweis. Um aus einer Menge mit n Elementen k Elemente auszuw¨ahlen, w¨ahlen wir ein erstes Element, dann ein zweites, und so weiter, bis zum k-ten Element. Daf¨ ur gibt es n · (n − 1) · (· · · ) · (n − k + 1) = n!/(n − k)! M¨oglichkeiten. Nur spielt aber die Reihenfolge, in der wir die Elemente unserer Teilmenge ausgew¨ ahlt haben, keine Rolle, und jeweils k! M¨oglichkeiten f¨ uhren zur gleichen Teilmenge. Die Gleichung folgt. Wir werden in der Folge wichtige Gleichungen f¨ ur Binominalkoeffizienten sehen; diese Identit¨ aten haben in der Regel sowohl einen kombinatorischen (z.B. durch doppeltes Abz¨ahlen!) als auch einen algebraischen Beweis (z.B. durch Zuhilfenahme der Formel aus Proposition 2). 7 n = 0: 1 n = 1: 1 n = 2: 1 n = 3: n = 4: 1 1 1 2 3 4 1 3 6 1 4 1 Abbildung 1: Pascalsches Dreieck Beobachtung 1. n k = n n−k Kombinatorischer Beweis. Um aus n Spielern eine Mannschaft mit k Spielern aufzustellen, so ist es das gleiche, ob wir die k Spieler der Mannschaft ausw¨ahlen, oder ob wir die n − k Spieler ausw¨ ahlen, die nicht zur Mannschaft geh¨oren sollen. Algebraischer Beweis. Die Aussage folgt direkt aus Proposition 2. Pn n n Beobachtung 2. k=0 k = 2 Beweis. Es gibt 2n Teilmengen einer n-elementigen Menge. Proposition 3. F¨ ur alle nat¨ urlichen Zahlen n, k gilt n+1 n n = + k k−1 k Beweis. Sei M eine (n + 1)-elementige Menge, und sei x ∈ M . Um k Elemente aus M auszuw¨ ahlen, k¨ onnen wir entweder x ausw¨ahlen oder nicht. Wenn wir x ausw¨ahlen, dann n m¨ ussen weitere k − 1 Elemente aus M \ {x} gew¨ahlt werden, und daf¨ ur gibt es k−1 M¨oglichkeiten. Wenn wir x nicht ausw¨ ussen weiterhin k Elemente aus M \{x} ahlen, dann m¨ n + nk gew¨ahlt werden. Daf¨ ur gibt es nk M¨oglichkeiten. Insgesamt erhalten wir also k−1 M¨oglichkeiten, k Elemente aus M auszuw¨ahlen. Die Werte von nk k¨ onnen vorteilhaft in einer Tabelle in Dreiecksgestalt aufgetragen werden, dem sogenannten Pascalschen Dreieck, benannt nach Blaise Pascal3 . Abbildung 1 zeigt einen Ausschnitt dieses Dreiecks f¨ ur 0 ≤ k ≤ n ≤ 4. Proposition 3 zeigt, dass sich jeder Eintrag in der Tabelle als Summe der Eintr¨age links und rechts oben ergibt. 3 Blaise Pascal, geboren am 19. Juni 1623 in Clermont-Ferrand; gestorben am 19. August 1662 in Paris. 8 1.7 Die Russellsche Antinomie Bei Mengenangaben durch Aussonderung ist Vorsicht geboten: zum Beispiel f¨ uhrt der Ausdruck R := {x | x ∈ / x} zu einem Widerspruch, der Russellschen Antinomie 4 : • Falls R sich selbst enth¨ alt, dann erf¨ ullt R die Bedingung x ∈ / x, ein Widerspruch. • Falls R sich nicht selbst enth¨alt, dann erf¨ ullt R die Bedingung x ∈ / x, und enth¨alt sich damit selbst, ebenfalls ein Widerspruch. Berhard Ganter schreibt dazu im Vorl¨auferskript: Die M¨ oglichkeit von inneren Wider” spr¨ uchen in der Mathematik war ein Schock! (. . . ) In der ersten H¨ alfte des 20. Jahrhunderts gab es deshalb eine tiefe Auseinandersetzung mit den Grundlagen der Mathematik. Um der Russellschen Antinomie zu entgehen, durfte man nicht mehr v¨ ollig beliebige Mengenkonstruktionen zulassen. (. . . ) Das erforderte genaue Regeln, welche Mengen in der Mathematik erlaubt sind und welche nicht. Dies f¨ uhrte zur heute u ¨blichen axiomatischen Mengenlehre”. 1.8 Die Axiome von Zermelo-Fraenkel Die Zermelo-Fraenkel-Mengenlehre ist eine weit verbreitete axiomatische Mengenlehre, und heute Grundlage fast aller Gebiete der Mathematik. Die urspr¨ unglich nat¨ urlichsprachlichen Mengenaxiome von Zermelo5 und Fraenkel6 wurden unter dem Einfluss von Hilberts Programm 7 sp¨ ater formalisiert. Die Axiome der Zermelo-Fraenkel-Mengenlehre ohne Auswahlaxiom werden durch ZF abgek¨ urzt, mit Auswahlaxiom durch ZFC (wobei das C f¨ ur choice, also Auswahl, steht; siehe Kapitel 2.3). 1. Leere Menge: Es gibt eine leere Menge. 2. Extensionalit¨ at: Wenn zwei Mengen die gleichen Elemente haben, dann sind sie gleich. 3. Paarmenge: F¨ ur alle Mengen A und B gibt es eine Menge {A, B} mit der Eigenschaft dass C ∈ {A, B} genau dann wenn C = A oder C = B. 4. Vereinigung: F¨ ur alle Mengen M existiert eine Menge, die gleich der Vereinigung aller Mengen in M ist. 4 Bertrand Arthur William Russell, 3. Earl Russell, geboren am 18. Mai 1872 bei Trellech, Monmouthshire; gestorben am 2. Februar 1970 in Penrhyndeudraeth, Gwynedd. 5 Ernst Friedrich Ferdinand Zermelo, (geboren am 27. Juli 1871 in Berlin; gestorben am 21. Mai 1953 in Freiburg im Breisgau. 6 Abraham Halevi Fraenkel, geboren am 17. Februar 1891 in M¨ unchen; gestorben am 15. Oktober 1965 in Jerusalem. 7 David Hilbert, geboren am 23. Januar 1862 in K¨ onigsberg; gestorben am 14. Februar 1943 in G¨ ottingen. 9 5. Unendliche Mengen: Es gibt eine Menge M , die die leere Menge und die Menge {e} f¨ ur jedes e ∈ M enth¨ alt. 6. Potenzmengen: F¨ ur jede Menge M gibt es eine Menge, die genau alle Teilmengen von M enth¨ alt. 7. Ersetzungsschema: Informell: Bilder von Mengen unter definierbaren Funktionen sind selbst wieder Mengen; eine Formalisierung des Funktionsbegriffs folgt in Kapitel 2. 8. Fundierung: Jede Menge M 6= ∅ enth¨alt ein e, so dass e ∩ M = ∅. Insbesondere: Mengen enthalten sich nicht selbst. Man geht davon aus, dass ZF und ZFC widerspruchsfrei sind. Allerdings hat Kurt G¨odel8 gezeigt (in ZFC), dass wenn ZFC widerspruchsfrei ist, man die Widerspruchsfreiheit von ZFC nicht in ZFC zeigen kann. 8 Kurt G¨ odel, geboren am 28. April 1906 in Br¨ unn; gestorben am 14. Januar 1978 in Princeton. 10 2 Abbildungen Seien A und B zwei Mengen. Eine Abbildung (oder Funktion, bisweilen auch Operation) von A nach B weist jedem Element von A genau ein Element aus B zu. Formal ist eine Funktion f von A nach B ein Paar (Gf , B), wobei Gf ⊆ A × B eine Relation ist, die folgende Eigenschaft erf¨ ullt: zu jedem a ∈ A gibt es genau ein b ∈ B so dass (a, b) ∈ Gf . Die Relation Gf wird auch der Graph von f genannt. 2.1 Notation Wenn f eine Funktion von A nach B ist, so schreibt man auch f : A → B, und nennt A den Definitionsbereich und B den Zielbereich der Funktion. Statt (a, b) ∈ Gf schreibt man meist f (a) = b, und sagt, b sei das Bild von a unter f . Eine weitere u ¨bliche Schreibweise, um Funktionen zu anzugeben, sind Ausd¨ ucke der Form ‘x 7→ f (x)’. Zum Beispiel schreiben wir (x, y) 7→ x + y f¨ ur die Funktion f : N × N → N die definiert ist durch f (x, y) := x + y. Das Bild von A unter f ist die Menge aller Bilder von Elementen von A unter f . Wir schreiben f [A] f¨ ur das Bild von f ; allerdings verwenden viele Autorinnen und Autoren auch die Notation f (A). Proposition 4. Es gibt |B||A| verschiedene Funktionen von A nach B. Eine Funktion f heißt • injektiv falls f¨ ur alle a1 , a2 ∈ A mit f (a1 ) = f (a2 ) gilt dass a1 = a2 . In anderen Worten, keine zwei verschiedenen Elemente von A haben das gleiche Bild unter f ; • surjektiv falls f [A] = B ist. In anderen Worten, f¨ ur jedes b ∈ B gibt es ein ein a ∈ A mit f (a) = b; • bijektiv falls sie sowohl injektiv also auch surjektiv ist. Proposition 5. Sei A eine endliche Menge, und f : A → A eine Funktion. Dann sind equivalent: • f ist injektiv; • f ist surjektiv; • f is bijektiv. Proposition 5 ist f¨ ur unendliche Mengen falsch. Zum Beispiel ist die Abbildung f : N → N, die f¨ ur alle x ∈ N gegeben ist durch f (x) = x + 1, injektiv, aber nicht surjektiv. Und die Abbildung g : N → N, die gegeben ist durch f (x) = x/2 falls x ∈ N gerade, und f (x) = (x − 1)/2 falls x ∈ N ungerade, ist surjektiv, aber nicht injektiv. 11 0 1 2 3 4 x 0 0 2 5 9 14 ... 1 1 4 8 13 19 ... 2 3 7 12 18 25 ... 3 6 11 17 24 32 ... 4 10 16 23 31 40 ... y ... ... ... ... ... ... Abbildung 2: Illustration der Funktion f (x, y) := ((x + y)2 + 3x + y)/2. Sei f : A → B eine Funktion, und g : A0 → B so dass A0 ⊆ A, und g(a) = f (a) f¨ ur alle 0 a ∈ A. Dann heißt g die Einschr¨ ankung von f auf A . Ist f : A → B injektiv, dann definieren wir die Umkehrabbildung f −1 : f [A] → A wie folgt: es gelte f −1 (b) = a genau dann wenn f (a) = b. F¨ ur nicht injektives f definiert man f −1 : B → P(A) wie folgt: f −1 (b) = {a ∈ A | f (a) = b}. Sind f : A → B und g : B → C Abbildungen, so definiert man die Hintereinanderausf¨ uhrung (auch Komposition) g ◦ f von f und g durch g ◦ f : A → C mit (g ◦ f )(a) := g(f (a)) f¨ ur alle a ∈ A. Wir definieren f 1 := f , f 2 := f ◦ f , und induktiv f n+1 := f n ◦ f . Die Funktion id : A → A, die definiert ist durch id(a) := a f¨ ur alle a ∈ A, heißt die Identit¨ atsfunktion oder kurz Identit¨ at. F¨ ur alle f : A → A gilt klarerweise id ◦f = f = f ◦ id. Injektionen und Bijektionen werden verwendet, um Mengen bez¨ uglich ihrer Elementanzahl zu vergleichen. Denn ist f : A → B eine injektive Funktion, dann hat die Menge B mindestens so viele Elemente wie A. Und ist f : A → B bijektiv, dann hat B genau so viele Elemente wie A. Definition 6. F¨ ur Mengen A, B definieren wir |A| ≤ |B| falls es eine Injektion f : A → B gibt, und wir definieren |A| = |B| falls es eine Bijektion f : A → B gibt. Beispiel 1. Es gilt |Z| = |N|, denn die Funktion f : N → Z gegeben durch f (x) := x/2 f¨ ur x gerade, und f (x) := −(x + 1)/2 sonst, ist bijektiv. Beispiel 2. Es gilt |N × N| = |N|, denn die Funktion f : N × N → N gegeben durch f (x, y) := ((x + y)2 + 3x + y)/2 ist bijektiv. Insbesondere gilt |Q| = |Z| = |N|. 2.2 Der Satz von Cantor-Schr¨ oder-Bernstein Nun w¨ unscht man sich nat¨ urlich, dass |A| ≤ |B| und |B| ≤ |A| implizieren, dass |A| = |B| gilt; das ist der Inhalt des folgenden Satzes. Der Beweis ist dem sehr empfehlenswerten Buch der Beweise entnommen [1]. 12 Satz 7 (Satz von Cantor9 -Schr¨ oder10 -Bernstein11 ). Seien f : A → B und g : B → A Injektionen. Dann existiert auch eine Bijektion zwischen A und B. Beweis. F¨ ur jede Teilmenge T von A definieren wir die Menge F (T ) ⊆ A durch F (T ) := A \ g[B \ f [T ]] . F ist also eine Abbildung von P(A) nach P(A). Falls F einen Fixpunkt besitzt, das heißt, es ein T0 ⊆ A gibt mit F (T0 ) = T0 , dann ist die Abbildung h : A → B, definiert durch h(x) := f (x) f¨ ur x ∈ T0 und h(x) := g −1 (x) f¨ ur x 6∈ T0 , bijektiv. Betrachte die Kette 2 A ⊇ F (A) ⊇ F (A) ⊇ · · · . Wir zeigen im Folgenden, dass die Menge T0 := A ∩ F (A) ∩ F 2 (A) ∩ · · · ein Fixpunkt von F ist. Dazu stellen wir zun¨achst fest, dass f¨ ur beliebige Teilmengen T0 , T1 , T2 , . . . von A gilt dass \ \ F ( Ti ) = A \ g[B \ f [ Ti ]] nach Definition von F i∈N i∈N = A \ g[B \ \ f [Ti ]] da f injektiv i∈N =A\ \ g[B \ f [Ti ]] nach Definition der Mengenoperationen A \ g[B \ f [Ti ]] nach Definition der Mengenoperationen i∈N = \ i∈N = \ F [Ti ] nach Definition von F . i∈N Also erhalten wir F (T0 ) = F (A) ∩ F 2 (A) ∩ · · · = T0 und haben damit den gesuchten Fixpunkt von F gefunden. 9 Georg Cantor, geboren am 3. M¨ arz 1845 in Sankt Petersburg; gestorben am 6. Januar 1918 in Halle an der Saale. 10 Ernst Friedrich Wilhelm Karl Schr¨ oder, geboren am 25. November 1841 in Mannheim; gestorben am 16. Juni 1902 in Karlsruhe. 11 Felix Bernstein, geboren am 24. Februar 1878 in Halle an der Saale; gestorben am 3. Dezember 1956 in Z¨ urich. 13 2.3 Das Auswahlaxiom Im vorigen Kapitel haben wir die Existenz von Injektionen und Bijektionen verwendet, um Mengen bez¨ uglich ihrer Gr¨ oße zu vergleichen. Was l¨asst sich in diesem Zusammenhang u ¨ber die Existenz von Surjektionen sagen? Falls f : A → B eine Injektion ist, dann gibt es sicherlich eine Surjektion von f [A] nach A, n¨amlich die bereits eingef¨ uhrte Umkehrabbildung f −1 von f . Diese Umkehrabbildung k¨onnen wir beliebig auf Elemente aus B \ f [A] fortsetzen (es sei denn, A ist leer; aber das ist nat¨ urlich ein uninteressanter Fall). Eine Fortsetzung erhalten wir dann beispielsweise indem wir alle Elemente aus B \ f [A] auf dasselbe Element aus A abbilden. Falls es also eine Injektion von A to B gibt, so gibt es sicherlich eine Surjektion von B nach A. Sei nun g : B → A eine Surjektion. Falls A und B endlich sind, so gibt es auch eine Injektion von A nach B: denn f¨ ur jedes a ∈ A gibt es ein b ∈ B so dass g(b) = a, und wir definieren f (a) = b. Wenn A und B unendlich sind, so stellt sich die Frage, ob eine solche Funktion f u ¨berhaupt existiert. Und tats¨achlich ist bekannt, dass man in ZF die Existenz solcher Funktionen im allgemeinen nicht zeigen kann! Es entspricht aber der mathematischen Praxis, die Existenz solcher Funktionen anzunehmen. Und damit kommen wir zum Auswahlaxiom, welches wir in Kapitel 1.8 bereits erw¨ahnt, aber noch nicht eingef¨ uhrt haben. Das Auswahlaxiom (abgek¨ urzt AC f¨ ur englisch Axiom of choice) hat viele verschiedene aber ¨aquivalente Formulierungen. Eine davon ist die folgende. (AC) Falls g : B → A eine Surjektion ist, so gibt es auch eine Injektion f : A → B. 2.4 Die Kontinuumshypothese Wir schreiben |A| < |B| falls |A| ≤ |B| gilt, aber nicht |A| = |B|. Satz 8 (Satz von Cantor). F¨ ur alle Mengen A gilt |A| < |P(A)|, das heißt, die Potenzmenge einer beliebigen Menge hat stets strikt mehr Elemente. Beweis. Die Funktion f : A → P(A), gegeben durch f (a) = {a} f¨ ur alle a ∈ A, ist injektiv, und daher gilt |A| ≤ |P(A)|. Um zu zeigen, dass |P(A)| ≤ |A| nicht gilt, f¨ uhren wir einen Widerspruchsbeweis, und nehmen an, dass es eine Injektion von P(A) nach A gibt. Dann gibt es nach Satz 7 eine Bijektion f : A → P(A). Definiere M := {x ∈ A | x ∈ / f (x)} . Da M ∈ P(A) und weil f surjektiv ist, gibt es ein a ∈ A mit f (a) = M . Dann gilt aber dass a ∈ / M genau dann wenn a ∈ / f (a), was nach Definition von M genau dann der Fall ist wenn a ∈ M . Ein Widerspruch. Es stellt sich nun die Frage, ob es Mengen M gibt mit |N| < |M | < |P(N)|. Man weiss, dass |P(N)| = |R|, die Kardinalit¨ at der reellen Zahlen (dem Kontinuum). Die Hypothese, 14 dass es solche Mengen M nicht gibt, wird daher auch die Kontinuumshypothese genannt, und wird mit CH abgek¨ urzt. Paul Cohen12 hat 1963 gezeigt, dass CH in ZFC weder bewiesen noch widerlegt werden kann. Die Kontinuumshypothese ist damit formal unabh¨ angig von ZFC. 2.5 Permutationen Eine Permutation einer Menge X ist eine Bijektion π : X → X. Im Folgenden sei X = {1, 2, . . . , n}. Eine Permutation π wird oft in der folgenden Form angegeben 1 2 3 ··· n π(1) π(2) π(3) ··· π(n) Die Zahlen in der ersten Reihe k¨ onnen sogar in beliebiger Reihenfolge sein, solange π(x) direkt unter x steht. Proposition 9. Es gibt n! Permutationen der Menge X = {1, . . . , n}. Beweis. Es gibt n M¨ oglichkeiten f¨ ur π(1); f¨ ur π(2) gibt es dann nur noch n−1 M¨oglichkeiten, da wir nur noch aus {1, . . . , n} \ {π(1)} ausw¨ahlen k¨onnen. F¨ ur π(i) gibt es entsprechend n − i + 1 M¨ oglichkeiten, und das macht im gesamten n · (n − 1) · (· · · ) · 1 = n!. Es gibt noch eine zweite wichtige, kompaktere Schreibweise f¨ ur Permutationen, die Zyklenschreibweise, die wir nun einf¨ uhren. Eine zyklische Permutation ist eine Permutation mit der Eigenschaft dass die Elemente von X aufgez¨ahlt werden k¨onnen mit x1 , x2 , . . . , xn so dass π(x1 ) = x2 , π(x2 ) = x3 , . . . , π(xn−1 ) = xn , π(xn ) = x1 . Mit anderen Worten: π 1 (1), π 2 (1), π 3 (1), . . . , π n (1) durchl¨auft alle Elemente von X. F¨ ur solche Permutationen schreibt man (x1 , x2 , . . . , xn ). Diese Schreibweise ist nicht eindeutig: (x2 , . . . , xn , x1 ) steht f¨ ur die gleiche zyklische Permutation. Beispiel 3. Beispiele von zyklischen Permutation der Menge X = {1, . . . , 5} sind etwa 1 2 3 4 5 und 1 2 3 4 5 . In der neuen Schreibweise lesen sich diese Permutationen wie 23451 43521 (2, 3, 4, 5, 1) und (4, 3, 5, 2, 1). Nicht alle Permutationen sind zyklisch: das einfachste Beispiel ist die Identit¨ atsfunktion auf einer Menge X mit mindestens zwei Elementen. Wir erweitern die Zyklenschreibweise auf nicht-zyklische Permutationen π wie folgt. Wir beginnen mit einem beliebigen Element x0 ∈ X, und berechnen x1 := π 1 (x0 ), x2 := π 2 (x0 ), . . . bis wir ein Element zum zweiten Mal erreichen; dies muss notwendigerweise das Element x0 sein. Wir schreiben (x1 , x2 , . . . , x0 ), und nennen (x1 , x2 , . . . , x0 ) einen Zyklus von π. Wenn π nicht zyklisch ist, so gibt es ein Element y0 ∈ X das wir auf diese Weise nicht erreicht haben. Wir verfahren mit diesem Element genauso, und berechnen y1 = π 1 (y0 ), y2 = π 2 (y0 ), . . . bis wir wieder y erreichen. Dann ist (y1 , y2 , . . . , y0 ) ein weiterer Zyklus von π, und wir schreiben ihn hinter den ersten Zyklus von von π. So fahren wir 12 Paul Joseph Cohen, geboren am 2. April 1934 in Long Branch, New Jersey; gestorben am 23. M¨ arz in Stanford, Kalifornien. 15 fort, bis alle Elemente von M in einem Zyklus auftauchen. In dieser Schreibweise spielt die Reihenfolge der Zyklen keine Rolle; ausserdem kann man einen Zyklus (x1 , x2 , . . . , xn , x0 ) von π gleichwertig durch (x2 , . . . , xn , x0 , x1 ) ersetzen. In F¨allen, wo dies zu keinen Mehrdeutigkeiten f¨ uhren kann (wie zum Beispiel wenn X ⊆ {1, 2, . . . , 9}), so werden die trennenden Kommata in den Zyklen auch oft weggelassen. Beispiel 4. Die Permutation 12 21 36 43 55 67 74 hat die Zyklen (12)(3674)(5). Aber auch die Ausdr¨ ucke (12)(6743)(5) und (5)(3674)(21) stehen f¨ ur die gleiche Permutation. Insgesamt haben wir 48 verschiedene Schreibweisen f¨ ur diese Permutation: es gibt 3! = 6 verschiedene Reihenfolgen der Zyklen, und 4·2·1 verschiedene M¨ oglichkeiten, Startpunkte f¨ ur die Zyklen auszuw¨ ahlen. Ein Fixpunkt einer Permutation π ist ein Element x ∈ X mit π(x) = x. Fixpunkte bilden in der eben eingef¨ uhrten Schreibweise Zyklen der L¨ange eins, und werden oft weggelassen, wenn dadurch keine Verwirrung entsteht. Eine Transposition ist eine Permutation, die aus einem einzigen Zyklus der L¨ange zwei besteht. Proposition 10. Jede Permutation der Menge X = {1, . . . , n} kann als eine Komposition der Transpositionen (1, 2), (2, 3), . . . , (n − 1, n) geschrieben werden. Beweis. Eine beliebige Transposition (x, y) mit x < y erhalten wir durch (x, x + 1)◦(x + 1, x + 2) ◦ · · · ◦ (y − 1, y) ◦ (y − 2, y − 1) ◦ · · · ◦ (x, x + 1) . Eine zyklische Permutation (x1 x2 x3 . . . xn ) erhalten wir durch (xn−1 , xn ) ◦ · · · ◦ (x2 , x3 ) ◦ (x1 , x2 ) . Und schließlich erhalten wir eine beliebige Permutation als Komposition der Ausdr¨ ucke f¨ ur die Zyklen. 16 3 Die natu ¨ rlichen Zahlen Es gibt verschiedene Weisen, die nat¨ urlichen Zahlen als Mengen aufzufassen. Die Standardkodierung jedoch ist die folgende. F¨ ur eine beliebe Menge M definieren wir M + := M ∪ {M }. Man betrachtet die Folge ∅ + ∅ = {∅} ++ ∅ ∅ = {∅, {∅}} +++ = {∅, {∅}, {∅, {∅}}} ... und gibt diesen Mengen abk¨ urzend die vertrauten Namen 0 := ∅, 1 := ∅+ , 2 := ∅++ , ... Die Menge der nat¨ urlichen Zahlen N ist dann {0, 1, 2, . . . }. Sei A eine Menge. Ein k-Tupel u ¨ber A ist eine Funktion von {1, 2, . . . , k} nach A. Wir schreiben Ak f¨ ur die Menge aller k-Tupel u ¨ber A.13 3.1 Die Wohlordnung der natu ¨ rlichen Zahlen F¨ ur n, m ∈ N gilt n < m (im bekannten Sinn) genau dann wenn n ∈ m. Wir schreiben n ≤ m falls n < m oder n = m gilt. Die Relation ≤ ist eine Wohlordnung: f¨ ur jede Teilmenge T von N existiert ein kleinstes Element, das heißt, f¨ ur jedes T ⊆ N gibt es ein Element x ∈ T , so dass es kein y ∈ T gibt mit y < x. Wir bemerken, dass < und ≤ bin¨are Relationen auf N sind: wir begreifen ≤ als die Teilmenge von N × N, die alle geordneten Paare (n, m) enth¨ alt mit n ≤ m. Ordnungsrelationen bilden ein eigenes Kapitel der Vorlesung. Im Gegensatz dazu ist beispielsweise die u ¨bliche und aus der Schule bekannte Ordnunge der ganzen Zahlen Z nicht wohlgeordnet, denn bereits Z selbst besitzt kein kleinstes Element. Ebensowenig wohlgeordnet ist die u ¨bliche und aus der Schule bekannte Ordnung der nicht-negativen rationalen Zahlen Q; diese besitzt zwar ein kleinstes Element, die 0, aber bereits die Teilmenge der positiven rationalen Zahlen hat kein kleinstes Element. Man sieht leicht, dass die Teilmengenrelation ⊆ auf den endlichen Teilmengen von N eine Wohlordnung bildet. Die Teilmengenrelation auf ganz P(N) dagegen ist keine Wohlordnung, denn N, {2x | x ∈ N}, {4x | x ∈ N}, {8x | x ∈ N}, . . . ist eine Teilmenge T von P(N) ohne kleinstes Element. 13 Gew¨ ohnlicherweise werden 2-Tupel mit geordneten Paaren gleichgesetzt, obwohl diese als Mengen betrachtet verschieden sind. 17 3.2 Addition und Multiplikation Die Addition ist eine zweistellige Operation auf den nat¨ urlichen Zahlen, das heißt, eine Funktion + : N × N → N, induktiv definiert wie folgt: n + 0 := n n + m+ := (n + m)+ Auch die Multiplikation · : N × N → N definiert man leicht induktiv mit Hilfe der Addition: n · 0 := 0 n · m+ := n · m + n Und schließlich die Exponentiation N × N → N mit Hilfe der Multiplikation: n0 := 1 + nm := nm · n Addition und Multiplikation sind kommutativ, assoziativ, und Multiplikation ist distributiv u ¨ber Addition (siehe Abschnitt 1.3). In Summen k¨onnen wir wegen der Assoziativit¨at auf das Setzen von Klammern verzichten, ebenso in Produkten. In Ausdr¨ ucken mit + und ·, wie zum Beispiel (x + 1) · (3 + 2 · y + x · z) + 3, gilt die Konvention, dass Multiplikation st¨arker bindet als Addition. Das Multiplikationszeichen wird oft weggelassen. Solche Ausdr¨ ucke k¨ onnen durch Ausmultiplizieren und Zusammenfassen in eine Normalform gebracht werden, in der auf Klammern ganz verzichtet werden kann: in unserem Beispiel w¨ are das 3x + 2xy + x2 y + 6 + 2y + xz. Dieses Ergebnis ist eindeutig bis auf Vertauschung von Summanden, und Vertauschung von Faktoren. 3.3 Teilbarkeit und Primzahlen Wir definieren auf N die Teilbarkeitsrelation: f¨ ur a, b ∈ N gelte a|b (sprich: a teilt b) genau dann wenn es ein k ∈ N gibt mit a · k = b. Definition 11. Eine Zahl p ∈ N heißt Primzahl (oder prim), wenn sie gr¨ oßer als 1 ist und nur durch 1 und sich selbst teilbar ist. Ein Primteiler von n ist ein Teiler von n, der prim ist. Seien a, b1 , b2 ∈ N so dass a|b1 , a|b2 , und b1 < b2 . Dann gilt a|(b2 − b1 ): denn wenn b1 = k1 a und b2 = k2 a, dann ist b2 −b1 = (k2 −k1 )a, also durch a teilbar. Diese Beobachtung wird verwendet in folgendem Beweis, der sich bereits findet im Werk Elemente von Euklid14 . Vielleicht der a ¨lteste aller Beweise! 14 Euklid von Alexandria, lebte vermutlich im 3. Jahrhundert v. Chr. 18 Satz 12. Es gibt unendlich viele Primzahlen. Beweis von Euklid. Seien p1 , . . . , p` Primzahlen. Sei n := p1 · p2 · (· · · ) · p` + 1, und t ein Primteiler von n. Dann ist t von allen pi verschieden, da ansonsten t sowohl n als auch p1 ·p2 ·(· · · )·p` teilen w¨ urde, und somit auch die 1, was nicht sein kann. Da dieses Argument f¨ ur beliebiges ` funktioniert, muss es unendlich viele Primzahlen geben. Satz 13 (Fundamantalsatz der Arithmetik). Jede nat¨ urliche Zahl n > 0 kann auf genau eine Weise als Produkt n = pα1 1 · pα2 2 · (· · · ) · pαk k geschrieben werden, wobei k ∈ N, p1 < p2 < · · · < pk Primzahlen, und α1 , α2 , . . . , αk ∈ N gr¨ oßer 1 sind. Beweis. Existenz. F¨ ur n = 1, w¨ ahle das leere Produkt mit k = 0. Wir f¨ uhren einen Widerspruchsbeweis, und nehmen an, es gibt Zahlen, die sich nicht als Produkt von Primzahlen darstellen lassen. Da N wohlgeordnet ist, gibt es eine kleinste solche Zahl n > 1. Da n keine Primzahl sein kann, besitzt n einen Teiler, und n = ab f¨ ur a, b ∈ N gr¨oßer 1. Nach der Wahl von n lassen sich sowohl a als auch b als Produkt von Primzahlen schreiben. Dann ist aber das Produkt dieser beiden Produkte eine Primfaktorzerlegung von n, Widerspruch. Eindeutigkeit. Wird im n¨ achsten Abschnitt gezeigt. Es ist kein effizientes Verfahren bekannt, um f¨ ur eine gegebene nat¨ urliche Zahl die Primfaktorzerlegung zu berechnen. Ob es einen Algorithmus gibt, der in polynomieller Zeit die Antwort liefert, ist eines der wichtigsten offenen Probleme der theoretischen Informatik. Auf der anderen Seite haben Agrawal15 , Kayal16 und Saxena17 im Jahre 2002 einen Algorithmus mit polynomieller Laufzeit entdeckt, um f¨ ur eine gegebenen Zahl zu entscheiden, ob sie eine Primzahl ist. 3.4 Der euklidische Algorithmus Der gr¨ oßte gemeinsame Teiler von a, b ∈ N ist die gr¨oßte nat¨ urliche Zahl d, die a und b teilt. Wir schreiben ggT (a, b) f¨ ur diese Zahl d. Wir werden in diesem Abschnitt ein sehr effizientes Verfahren kennenlernen, um den gr¨oßten gemeinsamen Teiler von zwei gegebenen Zahlen auszurechnen (ohne einen einzigen Teiler von a und b zu bestimmen!). Lemma 14 (Division mit Rest). Seien a, b ∈ N und b 6= 0. Dann gibt es q, r ∈ N mit a = qb + r und r < b. Beweis. Es sei q ∈ N gr¨ oßtm¨ oglich so dass bq ≤ a. Setze r = a − bq ∈ N. Nach der Wahl von q gilt b(q + 1) > a, also r = a − bq < b. 15 Manindra Agrawal, geboren am 20. Mai 1966 in Allahabad. Neeraj Kayal, geboren in Guwahati. 17 Nitin Saxena, geboren am 3. Mai 1981 in Allahabad. 16 19 Abbildung 3: Heruntergeladen von http://xkcd.com/247. F¨ ur die Zahl r aus Lemma 14 schreiben wir auch a mod b; es handelt sich hier um den Rest beim bekannten Verfahren der schriftlichen Division. F¨ ur q ∈ Q schreiben wir bqc f¨ ur die (eindeutige) gr¨ oßte Zahl z ∈ Z die kleiner ist als q. Dann gilt f¨ ur a, b ∈ N und b 6= 0 dass a = ba/bc + a mod b. Lemma 15. Es seien a, b ∈ N mit b > 0. Dann gilt ggT (a, b) = ggT (b, a mod b). Beweis. Seien q, r ∈ N so dass a = bq + r mit (a mod b) = r < b. Sei d := ggT (a, b) und d0 := ggT (b, r). Da d sowohl a als auch b teilt, so teilt d auch r = a − bq. Also d ≤ d0 = ggT (r, b). Umgekehrt ist d0 ein Teiler von b und von r, also auch von a = bq + r. Also d0 ≤ d = ggT (a, b), und daher d = d0 . Lemma 15 ist die zentrale Beobachtung im Korrektheitsbeweis f¨ ur untenstehenden Algorithmus zur Berechnung des gr¨oßten gemeinsamen Teilers zweier gegebener Zahlen m, n ∈ N, dem euklidischen Algorithmus. 20 // Der euklidische Algorithmus EUKLID(m, n) // Eingabe: m, n ∈ N mit m ≤ n. // Ausgabe: ggT (m, n). Falls m|n gebe m aus ansonsten gebe EUKLID(n mod m, m) aus. Korollar 16 (Lemma von B´ezout18 ). Es seien m, n ∈ N nicht beide 0. Dann gibt es ganze Zahlen a, b ∈ Z mit ggT (m, n) = am + bn. Beweis. Per Induktion u ur n = 0 ist ggT (m, n) = m = 1m + 0n. Sei also n > 0, ¨ber n. F¨ und q, r ∈ N so dass m = nq + r f¨ ur r < n. Da r < n ist, gibt es nach Induktionsannahme 0 0 0 0 a , b ∈ Z mit ggT (n, r) = a n + b r. Dann impliziert Lemma 15 dass ggT (m, n) = ggT (n, r) = a0 n + b0 r = a0 n + b0 (n − mq) = b0 n + (a0 − b0 q)m , und die Behauptung folgt mit a := b0 und b := a0 − b0 q. Durch eine kleine Erweiterung kann der euklidische Algorithmus auch dazu verwendet werden, um f¨ ur gegebene m, n ∈ N die Zahlen a, b ∈ Z aus dem Lemma von B´ezout zu berechnen. // Der erweiterte euklidische Algorithmus E-EUKLID(m, n) // Eingabe: m, n ∈ N mit m ≤ n. // Ausgabe: a, b ∈ Z so dass ggT (m, n) = am + bn. Falls m|n gebe (1, 0) aus. ansonsten Sei (b0 , a0 ) die Ausgabe von E-EUKLID(n mod m, m). Gebe (a0 − b0 bn/mc, b0 ) aus. Korollar 17 (Lemma von Euklid). Teilt eine Primzahl das Produkt zweier nat¨ urlicher Zahlen, so auch mindestens einen der Faktoren. Beweis. Seien n, m ∈ N beliebig. Angenommen, eine Primzahl p teilt nm, aber nicht den Faktor n. Dann ist zu zeigen, dass p ein Teiler von m ist. Da ggT (n, p) = 1, existieren nach dem Lemma von B´ezout zwei ganze Zahlen a und b so dass ap + bn = 1 gilt. Durch multiplizieren mit m erhalten wir p(am) + (nm)b = m. Dann teilt p beide Summanden, und daher p|m. 18 Etienne B´ezout, geboren am 31. M¨ arz 1730 in Nemours, Seine-et-Marne; gestorben am 27. September 1783 in Basses-Loges nahe Fontainebleau. 21 Eindeutigkeit der Primfaktorzerlegung. Angenommen, es gibt nat¨ urliche Zahlen mit verschiedenen Zerlegungen, dann gibt es eine kleinste solche Zahl n. Es folgt aus dem Lemma von Euklid, dass jeder Primfaktor p der einen Zerlegung einen Primfaktor q der anderen Zerlegung teilt. Da q prim ist, gilt p = q. Dann hat aber bereits n/p zwei verschiedene Zerlegungen, ein Widerspruch zur Wahl von n. 22 4 Modulare Arithmetik Auf der Menge Zn := {0, 1, . . . , n − 1} der nat¨ urlichen Zahlen kleiner als n definieren wir die folgenden zweistelligen Operationen: f¨ ur a, b ∈ Zn , setze • a +mod n b := (a + b) mod n (Addition modulo n). • a −mod n b := (a − b) mod n (Subtraktion modulo n). • a ·mod n b := (a · b) mod n (Multiplikation modulo n). Allerdings ist es zu umst¨ andlich, die Operationszeichen mit dem Subskript ‘mod n’ zu benutzen. Deshalb l¨ asst man diese Information im Subskript gerne weg, benutzt einfach die Zeichen +, −, und ·, und sagt oder schreibt dazu, dass man modulo n rechnet. Die Elemente von Zn nennt man auch die Restklassen modulo n. 4.1 Rechnen modulo 2 Beim Rechnen modulo n = 2 stimmen Addition und Subtraktion u ¨berein. Addition und Multiplikation werden durch die folgenden Verkn¨ upfungstafeln beschrieben. + 0 1 0 0 1 · 0 1 1 1 0 0 0 0 1 0 1 Abbildung 4: Die Verkn¨ upfungstafeln f¨ ur + und · modulo 2. Diese Tabelle ist vertrauter, wenn man das Symbol 0 als gerade” und 1 als ungera” ” de” liest. Man hat dann gerade plus gerade gleich gerade”, gerade mal ungerade gleich ” ” gerade”, usw. 4.2 Rechnen modulo 5 Die Verkn¨ upfungstafeln f¨ ur +, −, und · finden sich in Abbildung 5. Die Subtraktion kann man einfacher mit Hilfe der einstelligen bijektiven Operation x 7→ −x definieren, definiert durch die Tabelle in Abbildung 6, denn x + y = x + (−y). 4.3 Die Homomorphieregel Wenn man umfangreiche Rechnungen modulo n auszuf¨ uhren hat, dann ist die Homomorphieregel außerordentlich hilfreich. Sie besagt, dass man auch Zwischenergebnisse modulo 23 + 0 1 2 3 4 0 0 1 2 3 4 1 1 2 3 4 0 2 2 3 4 0 1 3 3 4 0 1 2 4 4 0 1 2 3 − 0 1 2 3 4 0 0 1 2 3 4 1 4 0 1 2 3 2 3 4 0 1 2 3 2 3 4 0 1 · 0 1 2 3 4 4 1 2 3 4 0 0 0 0 0 0 0 1 0 1 2 3 4 2 0 2 4 1 3 3 0 3 1 4 2 4 0 4 3 2 1 Abbildung 5: Die Verkn¨ upfungstafeln f¨ ur + und · modulo 5. x −x 0 0 1 4 2 3 3 2 4 1 Abbildung 6: Die Abbildungstafel f¨ ur x 7→ −x. n rechnen darf, ohne dass sich das Endergebnis ¨andert. Formal besagt sie, dass f¨ ur ganze Zahlen a, b stets gilt: (a + b) mod n = (a mod n + b mod n) (a − b) mod n = (a mod n − b mod n) (a · b) mod n = (a mod n · b mod n) Hierbei ist +, −, und · auf der linken Seite die bekannten und im letzten Kapitel eingef¨ uhrten Operationen der Addition, Subtraktion und Multiplikation auf den ganzen Zahlen, w¨ahrend die gleichen Symbole auf der rechten Seite f¨ ur die in diesem Kapitel eingef¨ uhrten Operationen auf Zn stehen. Der st¨ andige Zusatz mod n wird rasch l¨astig und gern weggelassen. Um Missverst¨andnisse zu vermeiden, kann man ihn am Ende der Rechnung in Klammern angeben und die Gleichheitszeichen durch ≡ ersetzen, wie im folgenden Beispiel. 108 · 33 − 22 ≡ 3 · 3 − 2 ≡ 9 + 3 ≡ 2 (mod 5) Statt a mod n = r schreibt man dann also a ≡ r (mod n), und liest dies einpr¨agsam als a ist kongruent zu r modulo n. Die Restklassen modulo n nennt man deswegen auch die Kongruenzklassen modulo n. 4.4 Uhrzeiten Eine gr¨oßere Menge Bauschotter wird mit einer Eisenbahn von A nach B transportiert, da¨ ur sind 50 Fahrten erforderlich. Das Beladen des Zuges dauert vier Stunden, jede Fahrt zwei Stunden pro Richtung und das Abladen drei Stunden. Pausen werden nicht gemacht. 24 Mit dem Beladen f¨ ur die erste Fahrt wurde mittags um 12 Uhr begonnen. Zu welcher Uhrzeit wird der letzte Zug zur¨ uck erwartet? Antwort: F¨ ur jede Fahrt wird vom Beginn des Beladens bis zur R¨ uckkehr ein Zeitraum von 11 Stunden ben¨ otigt, insgesamt also 50 · 11 Stunden. Da nur nach der Uhrzeit der R¨ uckkehr gefragt ist, kann modulo 24 gerechnet werden. 12 + 50 · 11 ≡ 12 + 2 · 11 ≡ 34 ≡ 10 (mod 24) Man erh¨ alt, dass der Zug zehn Stunden nach Mitternacht ankommt. 4.5 Die letzten Ziffern Aufgabe: was sind die letzten beiden Ziffern von 333333 · 444444 · 56789? Kunstgriff: Die letzten beiden Ziffern einer nat¨ urlichen Zahl n sind offenbar die Ziffern von n modulo 100. Also 333333 · 444444 · 56789 ≡ 33 · 44 · 89 ≡ 33 · 11 · 4 · 89 ≡ (330 + 33) · (320 + 36) ≡ 63 · 56 ≡ 3528 ≡ 28 4.6 (mod 100) Potenzieren modulo n Bei Anwendungen der modularen Arithmetik z.B. in der Kryptographie hat man oft Ausdr¨ ucke der Form 13948451109438240598340963405982 mod 23450983 auszuwerten. Gew¨ohnlich sind die Zahlen viel gr¨ oßer als in diesem Beispiel, z.B. 1000-stellig. Es ist unm¨oglich, zuerst explizit die Potenz auszurechnen, und danach zu teilen um den gew¨ unschten Rest zu berechnen. Wie kann man diesen Ausdruck also effizient ausrechnen? Eine L¨osung dazu hat Al-Kachi19 beschrieben. Sie wird of bin¨ are Exponentiation genannt, und ist die Kombina¨ tion zweier Uberlegungen. • Man kann bei jedem Rechenschritt modular vereinfachen (Homomorphieregel); damit vermeidet man eine ‘Explosion der Zwischenergebnisse’. • Man kann mittels der Methode ‘Verdoppeln und Quadrieren’ die Berechnung der Potenz in kleine, handhabbare Schritte zerlegen. 19 Ghiyath ad-Din Jamshid Mas’ud al-Kashi; geboren um 1380 in Kaschan, Iran; gestorben am 22. Juni 1429 in Samarkand, Timuridenreich, heute in Usbekistan. 25 Wir erkl¨ aren anhand eines kleinen Beispiels: wir rechnen 2100000 mod 100001. Zun¨achst schreiben wir 100000 als Summe von Zweierpotenzen. 100000 = 216 + 215 + 210 + 29 + 27 + 25 Also gilt 16 15 10 9 7 5 21000 = 22 · 22 · 22 · 22 · 22 · 22 = (((((22 · 2)2·2·2·2·2 · 2)2 · 2)2·2 · 2)2·2 · 2)2·2·2·2·2 . Diesen Ausdruck werten wir nun aus, wobei wir immer modulo 100001 rechnen: das kann man nun einen Computer machen lassen. Wir erhalten 1024 modulo 100001 als Ergebnis. 4.7 Der chinesische Restsatz Betrachte n · m Felder, die in einem Rechteck der H¨ohe m und der Breite n angeordnet sind. Nummeriere die Felder in der folgenden Art und Weise: beginne mit dem Feld in der nullten Zeile und nullten Spalte. Nehmen wir nun an, in Schritt x befinden wir uns in der k-ten Zeile und `-ten Spalte. Wir betrachten folgende F¨alle. • k < m − 1 und ` < n − 1. Dann fahren wir mit dem Feld in der (k + 1)-ten Zeile und (` + 1)-ten Spalte fort. • k = m − 1 und ` < n − 1. Fahre mit dem Feld in der nullten Zeile und (` + 1)-ten Spalte fort. • k < m − 1 und ` = n − 1. Fahre mit dem Feld in der (k + 1)-ten Zeile und nullten Spalte fort. • k = m − 1 und ` = n − 1. Stoppe. Unsere Frage lautet: f¨ ur welche Werte von n und m werden mit diesem Verfahren alle Felder des Rechtecks erreicht? Zur L¨ osung dieser Frage ist die erste wichtige Beobachtung, dass wir uns beim x-ten Schritt gerade in Zeile x mod m und in Spalte x mod n befinden. Wir behaupten, dass genau dann alle Felder durchlaufen werden, wenn m und n teilerfremd sind, d.h., wenn ggT (m, n) = 1. Betrachte zun¨ achst den Fall ggT (m, n) > 1, in anderen Worten, m und n haben einen gemeinsamen Teiler d > 1. Wenn wir das Feld (k, l) in Schritt x erreichen, dann muss gelten dass x = k (mod d) und x ≡ l (mod d). Das geht aber nur dann, wenn k ≡ l (mod d) und ist offensichtlich nicht f¨ ur alle Paare (k, l) der Fall (siehe Abbildung 7, linke Seite). 26 1 1 13 2 7 14 3 11 2 21 12 3 22 13 4 ... 14 8 ... 5 15 10 6 16 5 12 10 20 9 4 11 19 7 17 6 8 18 9 Abbildung 7: Ein Schnappschuss beim Durchlaufen von {0, . . . , m − 1} × {0, . . . , n − 1}. Betrachten wir umgekehrt den Fall ggT (m, n) = 1. In diesem Fall behaupten wir also, dass es f¨ ur jedes Feld (k, l) mit k ≤ m, l ≤ n, ein i gibt so dass x≡k (mod m) x≡l (mod n) . Siehe Abbildung 7, rechte Seite. Da ggT (m, n) = 1, gibt es nach dem Lemma von B´ezout a, b ∈ Z so dass a · m + b · n = 1. Behauptung: Die nat¨ urliche Zahl x := l · a · m + k · b · n leistet das gew¨ unschte. Denn lam + kbn ≡ kbn ≡ (1 − am)k ≡ k mod m und lam + kbn ≡ lam ≡ (1 − bn)l ≡ l mod n . Diese Idee l¨ asst sich unschwer auf endlich viele Kongruenzen mit teilerfremden Moduli n1 , . . . , nr verallgemeinern. Diese Verallgemeinerung ist auch unter dem Namen chinesischer Restsatz bekannt, und findet sich bereits in Sun Zi’s Handbuch der Arithmetik.20 Satz 18. Es seien n1 , . . . , nr ∈ N teilerfremd, und a1 , . . . , ar ∈ Z. Dann gibt es genau eine nat¨ urliche Zahl x ∈ {0, . . . , n1 · (· · · ) · nr } mit x ≡ ai (mod ni ) f¨ ur alle i ∈ {1, . . . , r}. 20 Sun Zi, lebte irgendwann zwischen dem 3ten und 5ten Jahrhundert in China. 27 4.8 Zufall in der Informatik (1) Eine der wichtigsten Klassen von Problemen in der theoretischen Informatik ist die Klasse der Probleme, die ein Computer in polynomieller Zeit l¨osen kann. Polynomiell bedeutet hier: polynomiell in der Gr¨ oße der Eingabe. Wenn n die Eingabegr¨oße bezeichnet, dann ist also ein Algorithmus, der stets mit n5 + 1000 Rechenschritten auskommt, polynomiell, aber ein Algorithmus, der manchmal 2n Rechenschritte ben¨otigt, nicht. Die Klasse von Problemen mit einem polynomiellen Algorithmus wird mit P bezeichnet. Eine formale Definition dieser Klasse werden Sie in den einschl¨ agigen Informatikvorlesungen kennenlernen. In der Praxis ist man aber auch oft mit einem Algorithmus zufrieden, der Zufallsbits verwenden darf, und dessen Laufzeit im Erwartungsfall polynomiell ist. Die Klasse aller Probleme, die von einem solchen Algorithmus gel¨ost werden k¨onnen, nennt man ZPP (Zero-Error Probabilistic Polynomial Time). Interessanterweise kennt man kein Problem in ZPP, von dem man nicht auch w¨ usste, dass es in P liegt. Lange Zeit hatte das bereits in Abschnitt 3.3 erw¨ ahnte Primalit¨ atsproblem diesen Status: man kennt einen randomisierten Algorithmus mit erwartet polynomieller Laufzeit, aber man wusste nicht, ob das Problem in P ist. Aber wie wir bereits verraten haben, weiss man mittlerweile (seit 2002), dass es auch einen polynomiellen deterministischen (d.h., nicht randomisierten) Algorithmus f¨ ur den Test auf Primalit¨ at gibt. Eine andere interessante Art von randomisierten Algorithmen ist die folgende. Anstatt zu fordern, dass die Laufzeit des Algorithmus im Erwartungsfall polynomial ist21 , fordert man, dass der Algorithmus immer polynomial ist, aber nur mit großer Wahrscheinlichkeit das richtige Ergebnis liefern muss22 . Ein Problem, von dem man einen solchen Algorithmus kennt, von dem man aber nicht weiss, ob es in P liegt, wird im n¨achsten Abschnitt eingef¨ uhrt. 4.9 Anwendung: Rechnen mit großen Zahlen Betrachte ein Computerprogramm der folgenden eingeschr¨ankten Form: jeder Befehl ist von der Form x := y · z, x := y − z, x := y · z oder x := 1. Wir nehmen an, dass jede Variable genau einmal auf der linken Seite einer solchen Zuweisung auftaucht, und dass sich alle weiteren Auftreten der Variablen sp¨ater im Programm befinden. Daher sind zu jedem Zeitpunkt der Auswertung des Programmes die Variablen auf der rechten Seite einer Zuweisung bereits ausgewertet. Sei x0 die Variable, die auf der linken Seite der letzten Zuweisung auftaucht. Wenn wir das Programm ausf¨ uhren, wird dieser Variablen eine eindeutige ganze Zahl zugewiesen. Wir wollen gerne wissen, ob diese Zahl die Null ist. Das Problem, zu gegebenem Programm festzustellen, ob die letzte Zuweisung im Programm Null liefert, nennen wir Test-auf-Null. 21 Randomisierte Algorithmen mit korrekter Ausgabe aber randomisierter Laufzeit werden auch Las Vegas Algorithmen genannt. 22 Randomisierte Algorithmen mit garantierter Laufzeit, aber nur wahrscheinlich korrekter Ausgabe werden auch Monte Carlo Algorithmen genannt. 28 Das Problem mit diesem Problem ist, dass die Werte der Variablen sehr groß werden k¨onnen, so dass wir exponentiell viel Zeit ben¨otigen, um diese Werte zu berechnen. Hierzu ein Beispiel. x1 := 1 x2 := x1 + x1 x3 := x2 · x2 x4 := x3 · x3 x5 := x4 · x4 · · · := · · · xn := xn−1 · xn−1 Hier wird x2 der Wert 2 zugewiesen, x3 der Wert 22 = 4, x4 der Wert 22 · 22 = 24 = n−1 16, x5 der Wert 24 · 24 = 28 , und xn der Wert 22 , wie man leicht mit vollst¨andiger Induktion zeigt. Die Bin¨ ardarstellung dieser Zahl hat die L¨ange 2n−1 : zu groß, um von einem polynomiellen Algorithmus ausgerechnet zu werden. Durch Anwendung von Subtraktion im Programm ist es jedoch nicht ausgeschlossen, daß die letzte Variable Null ist, auch wenn die Zwischenergebnisse sehr groß sind. Abbildung 8: Heruntergeladen von http://xkcd.com/217. Erkl¨arungen dazu (auf Englisch): http://www.explainxkcd.com/wiki/index.php/217: e to the pi Minus pi. Gibt es dennoch einen Algorithmus polynomieller Laufzeit, der das Problem Test-aufNull l¨ost? Dies ist ein wichtiges offenes Problem der theoretischen Informatik. Proposition 19. Es gibt einen randomisierten Algorithmus mit garantiert polynomieller Laufzeit f¨ ur das Problem Test-auf-Null. Falls die letzte Variable im Programm zu Null 29 Wir wiederholen n2 mal: 2 W¨ ahle m ∈ {2, . . . , 2n } gleichverteilt zuf¨allig. Werte das Programm modulo m aus. Falls mindestens eine der Auswertungen nicht Null ergibt gebe ‘Nein’ aus ansonsten gebe ‘Ja’ aus. Abbildung 9: Ein Monte-Carlo Algorithmus f¨ ur das Problem ‘Test-auf-Null’ auswertet, so sagt das Programm garantiert ‘Ja’. Ansonsten sagt das Programm mit Wahrscheinlichkeit von mindestens 2/3 ‘Nein’. Beweisidee. Um die Gr¨ oßenexplosion der Werte in den Variablen zu vermeiden, werden wir modulo einer großen zuf¨ alligen Zahl m rechnen. Bitte mehr Details. Wir verwenden den in Abbildung 9 angegebenen Algorithmus. Falls die letzte Variable zu Null auswertet, dann auch modulo m. Wenn der Algorithmus also ‘Nein’ ausgibt, so ist die Antwort sicherlich korrekt. Falls die letzte Variable nicht zu Null auswertet, so kann man zeigen, dass der Algorithmus mit Wahrscheinlichkeit von mindestens 2/3 akzeptiert. Die genaue Rechnung findet man in [6], Lemma 6-U; und verwendet tiefer liegende Resultate u ¨ber die Verteilung der Primzahlen. Der genau Wert 2/3 in Proposition 19 ist hier von keiner besonderen Bedeutung: durch wiederholtes Anwenden des Algorithmus kann man diese Fehlerwahrscheinlichkeit sehr schnell verbessern. 30 5 Gruppen Eine Gruppe ist ein Tupel (G; ◦,−1 , e) bestehend aus • einer Menge G (den Gruppenelementen); • einer zweistelligen Operation ◦ : G2 → G, der Gruppenkomposition; • einer einstelligen Operation −1 : G → G, der Inversenbildung; und • dem neutralen Element e ∈ G; mit den folgenden Eigenschaften: • a ◦ (b ◦ c) = (a ◦ b) ◦ c f¨ ur alle a, b, c ∈ G (die Komposition ist assoziativ); • g ◦ e = g = e ◦ g f¨ ur alle g ∈ G; und • g ◦ g −1 = g −1 ◦ g = e f¨ ur alle g ∈ G. F¨ ur g ∈ G nennt man g −1 das zu g inverse Element. Die Gestalt der Operationssymbole ist nebens¨ achlich, oft werden zum Beispiel auch die Symbole +, −, 0 benutzt. Auch auf die Namen der Gruppenelemente kommt es nicht immer an. Zwei Gruppen, die sich durch Umbenennen der Elemente ineinander u uhren lassen, nennt man isomorph. ¨berf¨ F¨ ur ein Gruppenelement g und eine positive nat¨ urliche Zahl m bezeichnet g m den Ausdruck g ◦ g ◦ (· · · ) ◦ g, wobei im Ausdruck das Symbol g genau m Mal auftritt. Wir vereinbaren außerdem g 0 := e. Schließlich erlauben wir auch negative Exponenten, und definieren g −m u ¨ber die Inversenbildung als g −m := (g m )−1 . Alternative Gruppendefinition. Durch die zweistellige Kompositionsoperation sind die anderen beiden Operationen einer Gruppe eindeutig bestimmt. Manche Autoren definieren deshalb eine Gruppe als ein Paar (G; ◦) mit folgenden Eigenschaften: • Komposition ist assoziativ. • Es gibt ein Element e ∈ G, so dass f¨ ur alle g ∈ G die Gleichung e ◦ g = g ◦ e = g gilt. • F¨ ur alle g ∈ G gibt es ein Element g −1 ∈ G mit g ◦ g −1 = g −1 ◦ g = e. Wir bevorzugen die erste Definition, weil sie logisch etwas einfacher ist, denn alle Bedingungen sind Gleichungen. 31 5.1 Beispiele Wir haben bereits viele Beispiele von Gruppen kennengelernt: • (Z; +, −, 0), wobei − die Funktion x 7→ −x bezeichnen soll, ist eine Gruppe; ebenso wie (Q; +, −, 0), (R; +, −, 0), und (C; +, −, 0). • (Zn ; +, −, 0), wobei + und − die im letzten Kapitel eingef¨ uhrten Operationen auf Zn bezeichnen. • Die von Null verschiedenen rationalen Zahlen bilden bez¨ uglich der Multiplikation ebenfalls eine Gruppe, ebenso wie die von Null verschiedenen reellen und komplexen Zahlen. Das neutrale Element ist e := 1, und das Inverse zu einer Zahl z aus diesen Mengen ist 1/z. Alle diese Gruppen sind abelsch, was das gleiche bedeutet wie kommutativ: sie erf¨ ullen die Gleichung a ◦ b = b ◦ a f¨ ur alle Gruppenelemente a, b. Nichtabelsche Gruppen spielen ebenfalls eine große Rolle. Die Menge aller Permutationen einer Menge D auf sich selbst, mit der Hintereinanderausf¨ uhrung von Permutationen als Gruppenoperation, ist ebenfalls eine Gruppe. Sie wird die symmetrische Gruppe auf D genannt, und mit Sym(D) bezeichnet. Hat D mehr als zwei Elemente, dann ist die symmetrische Gruppe nicht abelsch. Beispiel 5. Es sei D := {1, 2, 3}. Betrachte die Permutationen a := 12 23 31 und b := 1 2 3 aus Sym(D). Dann ist a ◦ b = 1 2 3 , aber b ◦ a = 1 2 3 . Wir sehen also, dass 213 321 132 Sym({1, 2, 3}) nicht abelsch ist. ↔ ↔ ↔ ↔ Beispiel 6. Die Symmetrien eines Quadrats bilden eine Gruppe. Wir nennen die Eckpunkte des Quadrats a, b, c, d; hierbei ist a oben links, und die u ¨brigen Elemente folgen gegen den Uhrzeigersinn. Diese Gruppe hat den Namen D4 , eine sogenannte Diedergruppe. Auch diese Gruppe ist nicht abelsch (warum?). Die folgende Tabelle zeigt f¨ ur jedes Element sein Inverses an. x id x ↔ l x−1 id x ↔ l ↔ ↔ ↔ ↔ 32 ↔ ↔ ↔ ↔ id x x id ↔ id x ↔ ↔ l l ↔ l l ↔ l ↔ ↔ ↔ ↔ ↔ id x ↔ ↔ ↔ ↔ ↔ l x x id l ↔ ↔ x id ↔ id id x ↔ l ↔ ◦ id x ↔ l ↔ Und schließlich die Kompositionstabelle. l x id id x ↔ l ↔ ↔ Bedeutung identische Abbildung Drehung um 90 Grad Drehung um 180 Grad Drehung um 270 Grad Vertikale Spiegelung Horizontale Spiegelung Spiegelung mit Achse bd Spiegelung mit Achse ac Eckenpermutation abcd abcd ab c d b cda a b c d c d a b a b cd d a b c abcd dcba a b c d b a d c ab c d c b a d a b cd adc b Abbildung 10: Symmetrien eines Quadrates mit den Ecken a, b, c, d. 5.2 Die multiplikative Gruppe von Zn Wie steht es mit der Multiplikation in Zn ? Klarerweise ist die Multiplikation assoziativ, und wir haben mit der 1 ein Element, das f¨ ur all x ∈ Zn die Gleichung 1 · x = x · 1 = x erf¨ ullt. In Gruppen muß es allerdings auch zu jedem Element ein Inverses geben. Beispiel 7. Wir betrachten die Multiplikation in Z6 . Wenn 2 ∈ Z6 ein Inverses i besitzen w¨ urde, dann m¨ ußte gelten 2 · i = 1. Allerdings erhalten wir dann die widerspr¨ uchliche Gleichung 3 ≡ 3 · 1 ≡ 3 · 2 · i ≡ 6 · i = 0 (mod 6) . Definition 20 (Nullteiler). Man nennt a ∈ Zn \ {0} einen Nullteiler, wenn es ein b ∈ Zn \ {0} gibt mit a · b = 0. Wie wir in Beispiel 7 gesehen haben, ist 2 ein Nullteiler in Z6 . Definition 21 (Einheiten). Man nennt a ∈ Zn eine Einheit, wenn es eine Zahl b mit a · b = 1 gibt. Durch Einheiten kann man ‘dividieren’, denn b verh¨alt sich wie ein Kehrwert zu a. Man sagt, b sei multiplikativ invers zu a. Man dividiert durch a, indem man mit b multipliziert. Welche Zahlen sind Einheiten modulo n? Lemma 22. Eine Zahl m ∈ Zn \ {0} ist genau dann eine Einheit modulo n, wenn m zu n teilerfremd ist. Ist m keine Einheit, dann ist m ein Nullteiler modulo n. Beweis. Angenommen, m ist eine Einheit modulo n, das heißt, es gibt ein a mit am ≡ 1 (mod n). Also am = 1 + bn f¨ ur ein b ∈ Z. Da jeder Teiler von am − bn dann auch ein Teiler von 1 sein muss, gilt ggT (m, n) = 1. 33 Wenn umgekehrt ggT (m, n) = 1 ist, dann existieren nach dem Lemma von B´ezout a, b ∈ Z mit 1 = a · m + b · n. Also ist a multiplikativ invers zu m, denn m·a≡1−b·n≡1 (mod n) . Schließlich betrachten wir f¨ ur die letzte Aussage im Lemma den Fall ggT (a, n) > 1. Dann ist m0 := n/ggT (m, n) eine Zahl aus Zn \ {0} so dass m · m0 ein Vielfaches ist von n. Also m · m0 ≡ 0 (mod n), und m ist ein Nullteiler. Die Menge der Einheiten modulo n bildet mit der Multiplikation modulo n eine Gruppe: • Multiplikation ist auf ganz Zn assoziativ, also insbesondere auf den Einheiten; • e := 1 ist eine Einheit, und das neutrale Element der Gruppe; • jedes Element a besitzt ein Inverses a−1 (nach Definition der Einheiten), und dieses Inverse ist ebenfalls wieder eine Einheit, weil a dazu invers ist. • wenn a und b Einheiten in Zn sind, und a−1 und b−1 die entsprechenden inversen, dann ist b−1 · a−1 multiplikativ invers zu a · b, denn (a · b) · (b−1 · a−1 ) = a · (b · b−1 ) · a−1 = 1 . Diese Gruppe heißt Einheitengruppe von Zn , und wird mit Z∗n bezeichnet. Wie groß ist diese Gruppe? Dazu m¨ ussen wir die Anzahl aller zu n teilerfremden Zahlen in Zn bestimmen. Diese Anzahl wird auch mit φ(n) bezeichnet; und die Funktion n 7→ φ(n) nennt man die eulersche φ-Funktion 23 . Die ersten Werte der dieser Funktion sind: n φ(n) 1 1 2 1 3 2 4 2 5 4 6 2 7 6 8 4 9 6 10 4 11 10 12 4 13 12 14 6 15 8 16 8 Falls p prim ist, gilt selbstverst¨andlich φ(p) = p − 1. Im allgemeinen haben wir die folgende Aussage. Proposition 23. Hat n ∈ N die Primfaktorzerlegung n = pα1 1 · pα2 2 · (. . . ) · pαk k , dann gilt φ(n) = (p1 − 1)p1 α1 −1 · (. . . ) · (pk − 1)pk αk −1 = n · (1 − 1/p1 ) · (. . . ) · (1 − 1/pk ) . Beispiel: φ(240) = φ(24 · 3 · 5) = 23 · 2 · 4 = 64. 23 Leonhard Euler; geboren am 15. April 1707 in Basel; gestorben am 7. September 1783 in Sankt Petersburg. 34 5.3 Zyklische Gruppen Zyklische Gruppen sind die einfachsten Gruppen. Definition 24. Eine Gruppe G heißt zyklisch falls sie von einem Element erzeugt wird, das heißt, es gibt ein Gruppenelement g ∈ G (dem Erzeuger) so dass sich G schreiben l¨ aßt als G = {e, g, g −1 , g ◦ g, (g ◦ g)−1 , . . . } = {g m | m ∈ Z} . Zyklische Gruppen k¨ onnen vollst¨andig klassifiziert werden: jede zyklische Gruppe ist entweder isomorph zu (Z; +, −, 0), oder zu (Zn ; +, −, 0) f¨ ur ein n ∈ N. Proposition 25. Die Anzahl der Erzeuger von (Zn , +, −, 0) ist φ(n). Beweis. Ein Element m ist genau dann ein Erzeuger von (Zn , +, −, 0), wenn m und n teilerfremd sind. Also gibt es φ(n) viele Erzeuger. Der folgende Satz wurde bereits von Euler vermutet, aber erstmals von Gauß bewiesen. Satz 26 (Gauß24 ). Sei p eine Primzahl. Dann ist Z∗p zyklisch. Was ist ein Erzeuger von Z∗7 ? Die 2 ist es nicht, denn wir erreichen die 3, 5, 6 und 7 nicht: m 2m 0 1 1 2 2 4 3 1 4 2 5 4 m 3m 0 1 1 3 2 2 3 6 4 4 5 5 Aber die 3 tut es: Man sagt auch, die 3 ist eine Primitivwurzel von Z∗7 . Die folgende Tabelle zeigt die Primitivwurzeln von Z∗n f¨ ur n ∈ {2, 3, 5, 7, 11, 13, 17, 19}. n 2 3 5 7 11 13 17 19 φ(φ(n)) 1 1 2 2 4 4 8 6 Primitivwurzeln 1 2 2, 3 3, 5 2, 6, 7, 8 2, 6, 7, 11 3, 5, 6, 7, 10, 11, 12, 14 2, 3, 10, 13, 14, 15 24 Johann Carl Friedrich Gauß; geboren am 30. April 1777 in Braunschweig; gestorben am 23. Februar 1855 in G¨ ottingen. 35 Proposition 27. Die Anzahl der Erzeuger von Z∗n ist φ(φ(n)). Beweis. Wegen Satz 26 ist Z∗n (die multiplikative Gruppe) isomorph zu (Zφ(n) , +, −, 0); nach Proposition 25 hat diese Gruppe φ(φ(n)) Erzeuger. Also gibt es auch φ(φ(n)) viele Erzeuger von Z∗n . F¨ ur viele einfach zu stellenden Fragen u ¨ber Primitivwurzeln kennt man die Antwort nicht. Zum Beispiel ist folgende Vermutung offen. Vermutung 1 (Ein Spezialfall der Artin’schen Vermutung25 ). Es gibt unendlich viele Primzahlen p so dass die 2 Primitivwurzel ist in Z∗p . 5.4 ¨ Offentlich ein Geheimnis vereinbaren Zwei Teilnehmer m¨ ochten abh¨ orsicher miteinander kommunizieren und ein Verschl¨ usselungsverfahren benutzen. Dazu wollen sie einen gemeinsamen geheimen Schl¨ ussel verwenden. Wie k¨onnen sie sich u ¨ber eine nicht abh¨orsichere Verbindung auf ein gemeinsames Geheimnis einigen? Wir stellen hier das Verfahren von Diffie-Hellman-Merkle vor. 1. Die beiden Teilnehmer A und B einigen sich zun¨achst ¨offentlich auf eine große Primzahl p und eine Primitivwurzel g von Z∗p . 2. Teilnehmer A erzeugt eine zuf¨allige geheime große Zahl a und berechnet a0 := g a mod p. 3. Teilnehmer B erzeugt eine zuf¨allige geheime große Zahl b und berechnet b0 := g b mod p. 4. A und B teilen sich die Zahlen a0 und b0 mit. 5. A und B berechnen c := g a·b = (g a )b = (g b )a modulo p. Die Zahl c ist das gew¨ unschte Geheimnis, denn es ist kein Verfahren bekannt, aus p, g, a0 und b0 in vern¨ unftiger Zeit das Geheimnis c zu berechnen. Interessanterweise brauchen im Verfahren a und b nicht weiter gespeichert zu werden, sondern k¨ onnen gel¨ oscht werden. Zum Knacken des Verfahrens von Diffie-Hellman-Merkle w¨ urde es nat¨ urlich gen¨ ugen, aus p, g, und a0 die Zahl a berechnen zu k¨onnen. Auch daf¨ ur ist kein effizientes Verfahren bekannt. Das Problem, aus der Angabe von g a ∈ Z∗p den Exponenten a zu bestimmen, wird auch das Problem vom diskrete Logarithmus genannt. Formal ist der diskrete Logarithmus zur Basis g von einem Element x ∈ Z∗p die kleinste Zahl m ∈ {0, . . . , p − 2} mit der Eigenschaft dass x = g m . Da sich umgekehrt aus g und m die Zahl g m mod p schnell berechnen l¨ aßt (siehe Abschnitt 4.6), ist die diskrete Exponentialfunktion eine Einbahnfunktion: die Funktion l¨ asst sich effizient berechnen, aber die Umkehrfunktion nach dem derzeitigen Stand der Kunst nicht. 25 Emil Artin; geboren am 3. M¨ arz 1898 in Wien; gestorben am 20. Dezember 1962 in Hamburg. 36 5.5 Der Satz von Lagrange Sei (G; ◦,−1 , e) eine Gruppe. Eine Untergruppe von G ist eine Teilmenge U von G, die das neutrale Element e enth¨ alt, und die unter −1 und ◦ abgeschlossen ist. Das soll heissen, dass mit jedem Element g ∈ U auch g −1 ∈ U , und dass f¨ ur alle g1 , g2 ∈ U auch g1 ◦ g2 ∈ U . Jede Untergruppe U von G ist, ausgestattet mit den auf U eingeschr¨ankten Operationen ◦ und −1 , und demselben neutralen Element e, selbst wieder eine Gruppe. Um anzuzeigen, dass U eine Untergruppe von G ist, schreibt man U ≤ G. ↔ ↔ Beispiel 8. Wir betrachten die Gruppe der Symmetrien des Quadrats aus Beispiel 6, mit den Elementen {id, , x, , ↔, l, , }. Wie man leicht anhand der Tabelle f¨ ur die Inversenbildung und der Kompositionstabelle feststellt, ist {id, , x, } eine Untergruppe. Zu jeder Teilmenge T von G gibt es eine kleinste Untergruppe, die T enth¨alt. Man nennt sie die von T erzeugte Untergruppe hT i. Beispiel 9. In Beispiel 6 erzeugt T := {} die Untergruppe hT i = {id, , x, }, die Untergruppe der Drehungen. F¨ ur T := {, ↔} ist hT i bereits die volle Gruppe. Das heißt, dass sich alle acht Gruppenelemente aus und ↔ durch Komposition und Inversenbildung gewinnen lassen. Die Anzahl |G| der Gruppenelemente nennt man auch die Ordnung von G. Als die Ordnung eines Elementes a einer Gruppe G bezeichnet man die Ordnung der von {a} erzeugten Untergruppe von G. Die Ordnung eines Elementes a ist also entweder unendlich, oder eine nat¨ urliche Zahl m; in letzterem Fall ist dies auch die kleinste nat¨ urliche Zahl m > 0 mit am = 1. ↔ ↔ Beispiel 10. In Beispiel 6 hat das Element die Ordnung vier. Die Spiegelungen ↔, l, , haben allesamt Ordnung zwei. Definition 28 (Nebenklassen). Ist U eine Untergruppe der Gruppe G, und g ein Element von G, dann nennt man g ◦ U := {g ◦ u | u ∈ U } eine (Links-) Nebenklasse von U in G. ↔ ↔ Beispiel 11. In Beispiel 6 gibt es zur Untergruppe U der Drehungen U = {id, , x, } genau zwei Nebenklassen, n¨ amlich U selbst, und die Menge der Spiegelungen {↔, l, , }. Die Nebenklasse der Spiegelungen ist keine Untergruppe (sie enth¨ alt nicht das neutrale Element id). Wir wollen zeigen, dass zwei Linksnebenklassen von U entweder disjunkt sind oder gleich. Dazu ben¨ otigen wir das folgende Lemma. Lemma 29. Es sei U eine Untergruppe von G und g1 , g2 ∈ G. Falls g1 ∈ g2 ◦ U , dann gilt g1 ◦ U = g2 ◦ U . 37 Beweis. Wenn g1 ∈ g2 ◦ U , so gibt es ein u ∈ U mit g1 = g2 ◦ u. Sei h1 ∈ g1 ◦U beliebig. Dann gibt es ein u0 ∈ U mit h1 = g1 ◦u0 . Da U eine Untergruppe ist, so ist u ◦ u0 ∈ U , und daher gilt h1 = g1 ◦ u0 = g2 ◦ u ◦ u0 ∈ g2 ◦ U . Es folgt g1 ◦ U ⊆ g2 ◦ U . Sei nun h2 ∈ g2 ◦ U beliebig. Dann gibt es ein u00 ∈ U mit h2 = g2 ◦ u00 . Da U eine Untergruppe ist, so ist u−1 ◦ u00 ∈ U , und daher gilt h2 = g2 ◦ u00 = g1 ◦ u−1 ◦ u00 ∈ g1 ◦ U . Es folgt g2 ◦ U ⊆ g1 ◦ U , und damit g1 ◦ U = g2 ◦ U . Lemma 30. Je zwei Nebenklassen a ◦ U und b ◦ U sind entweder gleich oder disjunkt. Beweis. Wen a ◦ U und b ◦ U nicht disjunkt sind, gibt es ein x ∈ a ◦ U ∩ b ◦ U . Also gilt a ◦ U = x ◦ U = b ◦ U nach Lemma 29. Definition 31 (Index). Es sei G eine Gruppe und U eine Untergruppe von G. Der Index von U in G ist die Anzahl der Nebenklassen von U in G, und wird [G : U ] geschrieben. Man kann den Index leicht bestimmen, wenn man beachtet, dass jede Nebenklasse von U die gleiche M¨ achtigkeit hat wie U . Das ist deshalb richtig, weil die Abbildung U → g ◦ U mit u 7→ g ◦ u stets bijektiv ist. Die Nebenklassen von U zerlegen also die Menge G in gleichgroße disjunkte Teilmengen. Satz 32 (Satz von Lagrange26 ). Ist U eine Untergruppe einer endlichen Gruppe G, dann gilt [G : U ] = |G|/|U |. Weil [G : U ] ganzzahlig ist, teilt also die Ordnung einer Untergruppe einer endlichen Gruppe G stets die Ordnung der Gruppe. Es folgt, dass die Ordnung eines Elementes a ∈ G ein Teiler ist von |G|. Ausserdem gilt a|G| = e . Denn wenn U = h{a}i die von a erzeugte Untergruppe ist, dann ist a|G| = a|U |·[G:U ] = e[G:U ] = e. 5.6 Das Lemma von Euler-Fermat Eine weitere Konsequenz des Satzes von Lagrange ist eine zahlentheoretische Aussage, die in der Kryptographie eine Rolle spielt, n¨amlich der Satz von Euler-Fermat. Wir stellen hier zuerst einen Spezialfall vor, den sogenannten kleinen Fermat. Lemma 33 (Lemma von Fermat27 ). Ist p eine Primzahl, dann gilt f¨ ur jede ganze Zahl a, die nicht durch p teilbar ist, ap−1 ≡ 1 (mod p) . 26 Joseph-Louis de Lagrange; geboren am 25. Januar 1736 in Turin als Giuseppe Lodovico Lagrangia; gestorben am 10. April 1813 in Paris. 27 Pierre de Fermat; geboren im Jahre 1607 in Beaumont-de-Lomagne, Tarn-et-Garonne; gestorben am 12. Januar 1665 in Castres. 38 Beweis. Die Gruppe Z∗p hat p − 1 Elemente, n¨amlich {1, . . . , p − 1}. Da a nicht durch p teilbar ist, ist b := a mod p ein Element dieser Gruppe. Wie wir im letzten Kapitel angemerkt haben, gilt b|G| = 1, und damit ap−1 ≡ 1 (mod p). Wir k¨ onnen das Lemma von Fermat dazu verwenden, um Potenzen modulo p ganz leicht auszurechnen. Ein Beispiel hierzu. Beispiel 12. Die Zahl 997 ist eine Primzahl. Deshalb gilt 21000 ≡ 2996 · 24 ≡ 16 (mod 997) . Man kann mit Hilfe des Satzes von Fermat auch beweisen, dass manche Zahlen keine Primzahlen sind, ohne einen Teiler anzugeben. Ein Beispiel dazu. Beispiel 13. Ist 100001 eine Primzahl? Wenn ja, dann muss f¨ ur jede Zahl 0 < a < 100001 folgendes gelten: a100000 ≡ 1 mod 100001 . F¨ ur a := 2 hatten wir diese Rechnung in Abschnitt 4.6 schon mit der Methode der bin¨ aren Exponentiation durchgef¨ uhrt und ausgerechnet, dass a100000 ≡ 1024 6≡ 1 mod 100001 . 100001 ist also keine Primzahl. Das Lemma von Fermat gilt nur f¨ ur Primzahlen p. Im Beweis wurde benutzt, dass die Zahlen {1, 2, . . . , p − 1} bez¨ uglich der Multiplikation modulo p eine Gruppe bilden. F¨ ur diese Gruppe wurde der Satz von Lagrange angewendet. Wenn n keine Primzahl ist, dann bilden die Zahlen {1, 2, . . . , n − 1} bez¨ uglich der Multiplikation modulo n keine Gruppe, denn dann sind nicht alle dieser Zahlen Einheiten modulo n. Aber die Einheiten bilden eine Gruppe! Das Lemma von Fermat l¨asst sich auf beliebige Zahlen n verallgemeinern, wenn man es f¨ ur Einheiten formuliert. Der Beweis geht dann wie im Beweis vom kleinen Fermat. Lemma 34 (Lemma von Euler-Fermat). Ist a zu n teilerfremd, dann gilt aφ(n) ≡ 1 5.7 (mod n) . Kryptographie mit ¨ offentlichen Schlu ¨ sseln Man kann das Lemma von Euler-Fermat dazu benutzen, Verschl¨ usselungsverfahren mit ussel zu entwerfen. Das bekannteste ist das von Rivest28 , Shamir29 und Ad¨offentlichem Schl¨ leman30 (RSA). Dabei teilt derjenige, der eine verschl¨ usselte Nachricht empfangen m¨ochte 28 Ronald Linn Rivest; geboren am 6. Mai 1947 in Schenectady, New York. Adi Shamir; geboren am 6. Juli 1952 in Tel-Aviv. 30 Leonard Adleman; geboren am 31. Dezember 1945 in San Francisco. 29 39 (im Folgenden der Empf¨ anger genannt), der Absenderin vorab ¨offentlich einen “Schl¨ ussel” mit. Mit diesem Schl¨ ussel kann man Nachrichten verschl¨ usseln, nicht aber entschl¨ usseln. Zum Entschl¨ usseln wird ein anderer Schl¨ ussel ben¨otigt, den der Emf¨anger geheim f¨ ur sich beh¨alt. Und hier sind die Details: 1. (Schl¨ ussel anlegen) Der Empf¨anger w¨ahlt zwei große Primzahlen p, q, am besten mit einigen Tausend Stellen, zuf¨allig, und zwar unabh¨angig voneinander zuf¨allig, und berechnet n := p · q. Danach w¨ahlt er eine zu φ(n) = (p − 1) · (q − 1) teilerfremde Zahl d ∈ Zφ(n) , und berechnet deren multiplikatives Inverses e modulo φ(n) mit dem erweiterten euklidischen Algorithmus. Es gilt also d·e ≡ 1 (mod φ(n)). Der Empf¨anger teilt n und e ¨ offentlich der Absenderin mit. 2. (Verschl¨ usseln) Die Absenderin m¨ochte dem Empf¨anger eine Nachricht mitteilen. Wir nehmen im Folgenden an, dass die Nachricht eine Zahl m ∈ Zn ist. Im allgemeinen Fall wird eine Nachricht auf geeignete Weise in eine Folge von solchen Zahlen zerlegt, die einzeln u ¨bermittelt werden. Die Absendering berechnet c := me mod n mit Hilfe der bin¨aren Exponentiation, und schickt c an den Empf¨ anger. 3. (Entschl¨ usseln) Der Empf¨ anger berechnet cd mod n mit Hilfe der Methode der bin¨aren Exponentiation. Wir behaupten, dass das Ergebnis des Empf¨angers tats¨achlich m ist. Zu zeigen ist also: m ≡ cd (mod n). Zun¨ achst gilt cd = (me )d = med = m1+hφ(n) f¨ ur ein h ∈ N, denn ed ≡ 1 (mod φ(n)). Falls m und n teilerfremd sind, dann gilt nach dem Lemma von Euler-Fermat dass mφ(n) ≡ 1 (mod n). Also ist m1+hφ(n) ≡ m (mod n). Was ist mit dem Fall, dass m und n nicht teilerfremd sind? Den Satz von Fermat k¨onnen wir ohne diese Annahme auf diese Weise nicht verwenden. Zun¨achst sollte man vorwegschicken, dass das ein wirklicher Extremfall ist: denn da m < n, und n = p · q, bedeutet das, dass die Absenderin einen der geheimen Primfaktoren von n geschickt hat! Viele Autoren verhindern das, indem das Protokoll so abge¨andert wird, dass nur gerade Nachrichten m verschickt werden (und das ist durch Anh¨angen eines zus¨atzlichen Bits problemlos zu erreichen). Allerdings gilt die Behauptung oben auch ohne die Annahme, dass m und n teilerfremd sind. Um das zu sehen, zeigen wir zun¨achst das folgende lemma. Lemma 35. Es seien q1 und q2 teilerfremde Zahlen. Dann gilt a ≡ b (mod q1 ) und a ≡ b (mod q2 ) genau dann, wenn a ≡ b (mod q1 q2 ). 40 Beweis. Wenn a ≡ b (mod q1 q2 ), dann sicher auch a ≡ b (mod qi ) f¨ ur i = 1 und i = 2. Umgekehrt nehmen wir an dass a ≡ b (mod qi ) f¨ ur i = 1 und i = 2. Also gibt es t1 , t2 ∈ Z mit a = b + ti qi . Wenn wir die eine dieser Gleichungen von der andere abziehen, erhalten wir t1 q1 = t2 q2 . Da q1 und q2 teilerfremd sind, muss dieser Wert ein Vielfaches sein von q1 q2 . Also gilt a ≡ b (mod q1 q2 ). Zur¨ uck zu unserer Behauptung. Die Primzahlen p und q sind teilfremd, also gen¨ ugt es d d nach dem eben bewiesenen Lemma zu zeigen, dass m ≡ c (mod p) und m ≡ c (mod q). cd = m1+hφ(n) =m·m (wie oben) (p−1)(q−1)h (Proposition 23) ≡ m · (1)(q−1)h (mod p) (kleiner Fermat) ≡ m (mod p) Analog zeigen wir, dass cd ≡ m (mod q), und mit Lemma 35 erhalten wir die Behauptung. Warum ist das Verfahren sicher? Der zentrale Punkt hier ist die Tatsache, dass kein effizientes Verfahren bekannt ist, aus c, n, und e die Zahl m zu berechnen. Wenn man die Primfaktoren von n berechnen k¨ onnte, so h¨atte man auch Zugang zum geheimen Schl¨ ussel d, und damit zur Nachricht m: denn mit p und n kennt man durch Division auch q, und deswegen φ(n) nach Proposition 23. Dann aber kann man zum ¨offentlichen e auch das inverse d berechnen. Also kann man mit einem schnellen Faktorisierungsalgorithmus RSA knacken. (Umgekehrt ist allerdings nicht bekannt, ob man mit einem Algorithmus, der RSA knacken kann, auch einen effizienten Faktorisierungsalgorithmus konstruieren kann.) Zuletzt ein Kommentar allgemeiner Natur. Wenn man Sicherheit von Systemen diskutiert, ist es immer wichtig, das Gesamtsystem zu betrachten. Wir illustrieren die Herausforderung, gute Begriffe von Sicherheit zu definieren, anhand eines Beispiels einer weiteren Angriffsform. Dabei r¨ at der Angreifer die Nachricht der Absenderin (zum Beispiel ‘Ja.’ oder ‘Nein.’), verschl¨ usselt diese mit dem ¨offentlichen Schl¨ ussel, und vergleicht die verschl¨ usselte Nachricht mit der, die die Absenderin verschickt hat. Wenn die verschl¨ usselten Nachrichten gleich sind, so hat der Angreifer die Gewissheit, richtig geraten zu haben (im Beispiel, wo der Angreifer ein ‘Ja’ oder ‘Nein’ erwartet, ist das vielleicht schon alles, was er wissen wollte). In der Praxis kann man dem leicht begegnen, indem die Absenderin einige Zufallsbits an die Nachricht h¨ angt. Signieren von Nachrichten Das Verfahren aus dem letzten Abschnitt eignet sich auch dazu, Nachrichten zu signieren, damit der Empf¨anger Gewissheit u ¨ber den Autor der Nachricht hat. Es werden die gleichen ¨ offentlichen und privaten Schl¨ ussel verwendet wie oben. Das Vorgehen zum Signieren ist dann wie folgt: die Absenderin schickt neben der Nachricht m auch s := me mod n. Zum Pr¨ ufen berechnet der Empf¨anger sd mod n, und vergleicht 41 das Ergebnis mit m. Wenn beide Zahlen u ultig und der ¨bereinstimmen, ist die Signatur g¨ Empf¨anger kann sicher sein, dass derjenige, der das Dokument verschickt hat, auch den privaten Schl¨ ussel besitzt. Das Argument hierzu ist das gleiche wie im letzten Abschnitt. Selbstverst¨ andlich l¨ asst sich das Signieren auch mit dem Verschl¨ usseln kombinieren: dazu wird zuerst signiert, und dann werden sowohl m als auch s verschl¨ usselt und versandt. Um wirklich sicher zu gehen, dass sich beim Schl¨ usselaustausch niemand f¨ ur jemand anderen ausgibt, sollte man hierf¨ ur einen vertrauenswerten Dritten verwenden. Daf¨ ur gibt es spezielle Server, bei denen ¨ offentliche Schl¨ ussel hinterlegt sind. Wenn man eine sichere Verbindung zu einem Teilnehmer A aufbauen will, so schl¨agt man den ¨offentlichen Schl¨ ussel von A also besser u ber eine sichere Verbindung bei einem solchen Server des Vertrauens ¨ nach. Denn wenn man den Schl¨ ussel direkt bei A erfragt, kann man sich eventuell nicht sicher sein, ob sich jemand f¨ ur A ausgibt, und seinen eigenen ¨offentlichen Schl¨ ussel ausgibt, um damit sp¨ atere verschl¨ usselte Nachrichten entschl¨ usseln zu k¨onnen. 42 6 Graphen Graphen sind in der Informatik und Mathematik allgegenw¨artig. Das WWW mit seinen Webseiten und Verweisen zwischen Webseiten zum Beispiel kann man auf nat¨ urliche Weise als einen gerichteten Graphen betrachten. In der Mathematik l¨aßt sich h¨aufig der kombinatorische Kern eines Sachverhalts elegant mit Graphen formulieren. Das hat zum Beispiel den Vorteil, dass man in dieser Formulierung einfacher bekannte Resultate findet. Viele kombinatorische Beweisprinzipien lassen sich sehr gut mit Aussagen f¨ ur Graphen illustrieren. Es gibt gerichtete und ungerichtete Graphen. Wir beginnen hier mit den ungerichteten. Die gerichteten Graphen folgen in Kapitel 11. In manchen Zusammenh¨angen macht es Sinn, sogenannte Mehrfachkanten zuzulassen; in dieser Vorlesung aber werden wir aber nur Graphen betrachten, in denen keineMehrfachkanten auftreten. F¨ ur eine Menge M schreiben wir M ur die Menge aller zwei-elementigen Teilmengen 2 f¨ M |M | ¨ von M . Es gilt | 2 | = 2 . Im Ubrigen folgen wir meist der Notation im Lehrbuch “Graphentheorie” von Reinhard Diestel [3]. Ein ausgezeichnetes Buch, das allerdings weit u ¨ber den Stoff dieser Vorlesung hinausgeht. Definition 36. Ein ( schlichter31 , ungerichteter) Graph G ist ein Paar (V, E) bestehend aus einer Knotenmenge V (ein Knoten heißt auf englisch vertex), und einer Kantenmenge E ⊆ V2 (eine Kante heißt auf englisch edge). Die Knotenmenge von G wird auch mit V (G), und die Kantenmenge mit E(G) bezeichnet. Wenn {u, v} ∈ E(G), dann sagt man auch, dass u und v adjazent sind, und dass v ein Nachbar ist von u. Die Anzahl der Nachbarn von x in G ist der Grad von x. Wir zeigen einige Beispiele von Graphen. Sei n ∈ N. • Kn steht f¨ ur den Graphen (V, E) mit V := {1, 2, . . . , n} und E := V2 , und wird die n-elementige Clique genannt. • In bezeichnet den Graphen ({1, 2, . . . , n}, ∅), und wird stabile Menge der Gr¨oße n genannt. • Pn bezeichnet den Pfad der L¨ ange n, das heißt, den Graphen (V, E) mit V := {1, . . . , n} und E := {{1, 2}, {2, 3}, . . . , {n − 1, n}}. Achtung: in manchen B¨ uchern und Artikeln ist Pn der Pfad mit n Kanten, und nicht, wie hier, der Pfad mit n Knoten. Das macht nat¨ urlich einen Unterschied, aber keinen großen. • Cn bezeichnet der Kreis mit n Knoten und n Kanten; formal also den Graphen {0, 2, . . . , n − 1}, {{i, j} | (i − j) ≡ 1 (mod n) . 31 In diesem Abschnitt haben die Graphen auch keine Schlingen; Graphen ohne Mehrfachkanten und Schlingen werden schlicht genannt. 43 Das Komplement eines Graphen G = (V, E) ist der Graph G = (V, V 2 \ E). Zum Beispiel ist In das Komplement von Kn . Selbstverst¨andlich gilt (G) = G. Definition 37 (Isomorphie). Zwei Graphen G und H sind isomorph wenn es eine Bijektion f : V (G) → V (H) gibt, so dass (u, v) ∈ E(G) genau dann, wenn (f (u), f (v)); intuitiv bedeutet das, dass man H aus G durch Umbenennen der Knoten von G erh¨ alt. Zum Beispiel ist das Komplement von C5 isomorph zu C5 . Definition 38 (Subgraph). Ein Graph H ist ein Subgraph von G falls gilt V (H) ⊆ V (G) und E(H) ⊆ E(G). Ein induzierter Subgraph von G ist ein Graph H mit V (H) ⊆ V (G), und E(H) = E(G) ∩ V (H) . 2 Die induzierten Subgraphen von G werden eindeutig durch ihre Knotenmenge bestimmt. F¨ ur V ⊂ V (G) ist der durch V induzierte Subgraph von G der (eindeutige) von induzierte Subgraph von G mit Knotenmenge V ; wir schreiben auch G[V ] f¨ ur diesen Graphen. Eine Folge (u1 , u2 , . . . , ul ) von Knoten eines Graphen G heißt Streckenzug (oder Kantenzug) von u1 nach u2 in G falls {ui , ui+1 } ∈ E(G) f¨ ur alle i ∈ {1, . . . , l − 1}. Ein Streckenzug (u1 , u2 , . . . , ul ) ist geschlossen falls u1 = ul , und ansonsten offen. Ein Streckenzug (u1 , u2 , . . . , ul ) ist ein Weg (oder Pfad ) von u1 nach ul falls f¨ ur verschiedene i, j aus {1, . . . , l} gilt, dass ui 6= uj . Wichtige Bemerkung: Wenn es einen Streckenzug von u nach v gibt, dann gibt es klarerweise auch einen Weg von u nach v (einfach die Umwege weglassen). Ein Kreis ist ein Streckenzug (u0 , u1 , ul−1 , ul ) mit u0 = ul , l ≥ 3 und ui 6= uj f¨ ur alle unterschiedlichen i, j aus {1, . . . , l − 1}. Mit anderen Worten: ein Graph enth¨alt einen Kreis genau dann wenn er einen Subgraphen enth¨alt der isomorph ist zu Cn f¨ ur n ≥ 3. 6.1 Knotenzusammenhang Sei G ein Graph. Definition 39 (Zusammenhang). Ein Graph G heißt zusammenh¨angend falls es f¨ ur alle s, t ∈ V (G) einen Streckenzug von s nach t in G gibt. Es seien G = (U, E) und H = (V, F ) zwei Graphen mit disjunkten Knotenmengen. Dann schreiben wir G ] H f¨ ur den Graphen (U ∪ V, E ∪ F ). Lemma 40. Ein Graph ist genau dann zusammenh¨ angend, wenn er nicht geschrieben werden kann als G ] H f¨ ur Graphen G, H mit mindestens einem Knoten. Beweis. Es seien G und H zwei Graphen mit V (G) ∩ V (H) = ∅, x ∈ V (G), und y ∈ V (H). Man mit vollst¨ andiger Induktion, dass jeder Knoten t mit einem Streckenzug von x nach t in G ] H auch in V (G) liegen muss, da es in V (G ] H) keine Kanten (u, v) mit u ∈ V (G) 44 und v ∈ V (H) gibt. Also gibt es keinen Streckenzug von x nach y in G ] H, und G ] H ist nicht zusammenh¨ angend. Umgekehrt betrachten wir den Fall, dass ein Graph G nicht zusammenh¨angend ist. Das bedeutet, dass es x, y ∈ V (G) gibt ohne Streckenzug von x nach y in G. Es sei V1 ⊆ V (G) die Menge aller Knoten v ∈ V (G) mit einem Streckenzug von x nach v, und sei V2 = V (G) \ V1 . Dann gilt f¨ ur alle Kanten {u, v} ∈ V (G), dass entweder u, v ∈ V1 , oder u, v ∈ V2 ; in anderen Worten, es gibt keine Kanten zwischen Knoten in V1 und Knoten in V1 V2 . Also k¨ onnen wir G schreiben als (V1 , V (G) ∩ 2 ) ] (V2 , V (G) ∩ V22 ). Eine Zusammenhangskomponente eines Graphen G ist eine zusammenh¨angender induzierter Subgraph von G mit maximal vielen Knoten. Wenn V1 , . . . , Vn die Zusammenhangskomponenten von G sind, dann definieren wir Ei := E(G) ∩ V2i f¨ ur i ∈ {1, . . . , n}. Klarerweise sind zwei Zusammenhangskomponenten von G entweder gleich, oder disjunkt. Also l¨aßt sich G schreiben als disjunkte Vereinigung seiner Zusammenhangskomponenten, (V1 , E1 ) ] (V2 , E2 ) ] · · · ] (Vn , En ). 6.2 F¨ arbbarkeit Ein Graph G heißt k-f¨ arbbar (oder k-partit) falls es eine Funktion f : V (G) → {0, 1, . . . , k − 1} gibt, so dass f¨ ur alle {x, y} ∈ E(G) gilt, dass f (x) 6= f (y). In anderen Worten: falls wir die Kanten von G so mit k Farben einf¨ arben k¨onnen, dass benachbarte Knoten unterschiedliche Farben bekommen. Im folgenden sprechen wir daher von f als einer F¨ arbung (mit den Farben 0, 1, . . . , k − 1). Wann ist ein Graph zweif¨arbbar? Darauf gibt es eine elegante Antwort. Proposition 41. Ein endlicher Graph G ist genau dann zweif¨ arbbar ( bipartit) wenn er keine ungeraden Kreise enth¨ alt. Beweis. Ungerade Kreise sind sicherlich nicht zweif¨arbbar; also brauchen wir nur eine Rich¨ tung der Aquivalenz zu zeigen. Sei also G = (V, E) ein Graph ohne ungerade Kreise. Sicherlich ist ein Graph genau dann zweif¨arbbar wenn alle seine Zusammenhangskomponenten zweif¨arbbar sind. Wir f¨ arben eine Zusammenhangskomponente C von G wie folgt. 1. Zun¨ achst w¨ ahlen wir einen beliebigen Knoten u aus C, und definieren f (u) := 0. 2. F¨ ur alle Nachbarn v von u definieren wir f (v) := 1. 3. Wenn wir bereits alle Knoten von C gef¨arbt haben, sind wir fertig mit dem Beweis. 4. Ansonsten erweitern wir f¨ ur einen noch nicht gef¨arbten Nachbarn w eines bereits mit Farbe i gef¨ arbten Knoten w0 die F¨arbung mit f (w) := 1 − i. Alle bereits gef¨arbten Nachbarn von w tragen die Farbe i, denn ansonsten h¨atten wir einen ungerade Kreis gefunden! 45 5. Fahre fort mit Schritt 3. Da C endlich ist, bricht dieses Verfahren nach endlich vielen Schritten ab, und wir haben die gew¨ unschte F¨ arbung gefunden. Aus dem Beweis wird ersichtlich, dass es einen effizienten Algorithmus gibt, der f¨ ur einen gegebenen Graphen feststellt, ob er zweif¨arbbar ist. Wann ist ein Graph 3-f¨ arbbar? Dazu gibt es im allgemeinen keine so elegante Beschreibung. Es ist auch kein effizienter Algorithmus bekannt, der f¨ ur einen gegebenen Graphen testet, ob er 3-f¨ arbbar ist. Tats¨ achlich geh¨ort das 3-F¨arbbarkeitsproblem zu den schwierigsten Problemen einer sehr bedeutenden Klasse von Berechnungsproblemen32 , weshalb man vermutet, dass es auch keinen effizienten Algorithmus zum Testen von 3-F¨arbbarkeit gibt. Wenn es einen effizienten Algorithmus zum Testen von 3-F¨arbbarkeit g¨abe, so g¨abe es auch einen effizienten Algorithmus zum Faktorisieren, und zur Berechnung des diskreten Logarithmus, und die in den Abschnitten 5.4 und 5.7 vorgestellten kryptographischen Verfahren w¨ aren allesamt hinf¨ allig. 6.3 B¨ aume Gleich zu Beginn eine Warnung: in der Informatik und Mathematik werden ganz verschiedene Dinge als B¨ aume bezeichnet. In der Graphentheorie jedoch ist die unumst¨oßliche Definition von B¨ aumen die folgende. Definition 42 (Baum). Ein Baum ist ein zusammenh¨ angender Graph ohne Kreise. Nicht notwendigerweise zusammen¨angende Graphen ohne Kreise haben auch einen Namen: aus einem naheliegenden Grund heißen solche Graphen W¨ alder. Nach dem, was wir im Abschnitt 6.1 gelernt haben, sind W¨alder disjunkte Vereinigungen von B¨aumen. Proposition 41 impliziert, dass B¨ aume und W¨alder zweif¨arbbar sind. Ein Knoten in einem Baum vom Grad eins heißt ein Blatt. Lemma 43. Jeder endliche Baum mit mindestens zwei Knoten enth¨ alt ein Blatt. Beweis. Es sei (V, E) unser endlicher Baum. W¨ahle x ∈ V beliebig. Da V noch weitere Knoten besitzt, und (V, E) zusammenh¨angend ist, muss x einen Nachbarn y haben. Wenn y ein Blatt ist, sind wir fertig. Ansonsten hat y einen Nachbarn ungleich x. Wieder sind wir fertig, wenn der Nachbar ein Blatt ist. Also hat der Nachbar wieder einen Nachbarn, und so weiter. Da V endlich ist, schließt sich auf diese Weise irgendwann ein Kreis, was nicht sein kann, oder wir geraten irgendwann in eine Sackgasse, und haben damit das gesuchte Blatt gefunden. Wir schreiben G − x f¨ ur den von V (G) \ {x} induzierten Subgraphen von G. 32 Hierbei handelt es sich um die Klasse NP der Probleme, die von einem nicht-deterministisch polynomiellen Algorithmus gel¨ ost werden k¨ onnen. 46 Lemma 44. Sei G = (V, E) ein endlicher zusammenh¨ angender Graph. Dann sind ¨ aquivalent: 1. G ist ein Baum. 2. |E| = |V | − 1. 3. |E| ≤ |V | − 1. Beweis. Die Implikation von 1. nach 2. zeigen wir per vollst¨andiger Induktion u ¨ber die Knotenanzahl von G. Die Aussage ist klarerweise korrekt f¨ ur |V | = 1 da in diesem Fall G keine Kanten besitzen kann. Wenn G ein Baum mit mehr als einem Knoten ist, dann enth¨ alt 0 G nach Lemma 43 ein Blatt x. Dann gilt f¨ ur G := G − x nach Induktionsvorraussetzung dass |E(G0 )| = |V (G0 )| − 1. Da G genau einen Knoten und eine Kante mehr als G0 hat, folgt die gew¨ unschte Aussage. Die Implikation von 2. nach 3. ist trivial. Die Implikation von 3. nach 1. zeigen wir mit einem Widerspruchsbeweis. Angekommen, |E| ≤ |V | + 1 und (V, E) besitzt einen Kreis. Dann entfernen wir eine Kante von diesem Kreis aus E(G). So fahren wir fort, bis der resultierende Graph H keine Kreise mehr enth¨alt. Da wir nur Kanten aus Kreisen entfernt haben, ist auch der Graph H zusammenh¨angend. Wir haben bereits die Implikation von 1. nach 2. gezeigt, und erhalten also, dass |E(H)| = |V (H)| − 1 = |V | − 1. Da |E| ≤ |V | − 1, erhalten wir, dass |E| ≤ |E(H)|. Das steht im Widerspruch dazu, dass wir Kanten aus E(G) entfernt haben. Lemma 45. Es sei G ein Graph. Die folgenden Aussagen sind ¨ aquivalent. 1. G ist ein Baum. 2. G hat maximal viele Kanten ohne einen Kreis zu enthalten. 3. G hat minimal viele Kanten mit der Eigenschaft, zusammenh¨ angend zu sein. 4. Zwischen zwei Knoten in einem Baum gibt es einen eindeutigen Weg. Beweis. Die Charakterisierung von B¨aumen in 2. und 3. folgt leicht aus Lemma 44. Daher gleich zu 4.: Wenn es zwischen zwei Knoten x, y eines Graphen zwei Wege x = 0 = y gibt, dann ist z , z , . . . , z , z 0 0 0 z1 , z2 , . . . , zn = y und x = z10 , z20 , . . . , zm 1 2 n m−1 , zm−2 , . . . , z1 ein geschlossener Streckenzug, der also einen Kreis enthalten muss. Umgekehrt gibt es zwischen zwei Knoten eines Kreises zwei verschiedene Wege, also ist 4. equivalent dazu, dass G ein Baum ist. 6.4 Zweifacher Zusammenhang Sei G ein Graph, x ∈ V (G), und H die Zusammenhangskomponente von x. Dann ist x ein Gelenkpunkt von G falls H − x nicht zusammenh¨angend ist. 47 Definition 46 (Zweifacher Zusammenhang). Ein Graph G heißt zweifach (Knoten-) zusammenh¨ angend falls er zusammenh¨ angend ist, mindestens drei Knoten hat, und keine Gelenkpunkte besitzt. Ein Graph ist also genau dann zweifach zusammenh¨angend wenn er mindestens drei Knoten hat, und wenn G − x f¨ ur alle x ∈ V (G) zusammenh¨angend ist. Ein maximaler zusammenh¨ angender Subgraph von G = (V, E) ohne Gelenkpunkt heißt Block. Das bedeutet, jeder Block von G ist entweder • ein maximaler zweifach zusammenh¨angender Subgraph von G, oder • eine Br¨ ucke in G, das heißt, eine Subgraph mit zwei Knoten und genau einer Kante {u, v} so dass (V, E \ {{u, v}}) nicht zusammenh¨angend ist, oder • ein isolierter Knoten, das heißt, ein Knoten vom Grad null. Anders als bei der Zerlegung des Graphen in seine Zusammenhangskomponenten sind die Bl¨ocke im allgemeinen nicht knotendisjunkt. Zwei Bl¨ocke k¨onnen jedoch h¨ochstens einen gemeinsamen Knoten haben, und dieser Knoten ist dann ein Gelenkpunkt in G. Wie sich die Bl¨ocke u ¨berlappen, kann durch einen Wald beschrieben werden. Definition 47 (Der Blockgraph). Sei G ein Graph, sei A ⊂ V (G) die Menge der Gelenkpunkte von G, und B die Menge der Bl¨ ocke von G. Dann ist der Blockgraph von G der Graph mit Knotenmenge A ∪ B und genau den Kanten {a, B} mit a ∈ A, B ∈ B, und a ∈ B. Der Beweis des folgenden Satzes ist nicht schwer. Proposition 48. Der Blockgraph eines Graphen ist ein Wald. Der Blockgraph eines zusammenh¨ angenden Graphs ist ein Baum. Beweis. Wir nehmen an, dass der Blockgraph des Graphen G einen Kreis besitzt; dieser Kreis ist von der Gestalt U1 , v1 , U2 , v2 , . . . , Uk , vk f¨ ur k ≥ 2, wobei U1 , . . . , Uk Bl¨ocke von G und v1 , . . . , vk Gelenkpunkte von G sind. F¨ ur i ∈ {1, . . . , k − 1} gibt es in Ui einen Pfad von vi nach vi+1 . Wenn wir alle diese Pfad zusammensetzen, erhalten wir einen Kreis in G, im Widerspruch dazu, dass die vi Gelenkpunkte sind. Sei nun G ein zusammenh¨ angender Graph. Wir zeigen zun¨achst per Induktion u ¨ber k, dass wenn es einen Pfad v1 , . . . , vk der L¨ange k zwischen zwei Gelenkpunkten v1 , vk in G gibt, dann auch einen Pfad im Blockgraphen. Diese Aussage ist sicherlich richtig f¨ ur k = 1. Sei i gr¨oßtm¨ oglich, so dass alle Knoten v1 , v2 , . . . , vi im gleichen Block B von G liegen. Wir bemerken, dass vi wieder ein Gelenkpunkt von G sein muss. Nach Induktionsvorraussetzung existiert ein Pfad w ¯ von vi nach vk im Blockgraph. Der Pfad im Blockgraph von v1 nach vk ist dann a, B, w. ¯ Der Beweis, dass der Blockgraph eines zusammenh¨angenden Graphen G zusammenh¨angend ¨ ist, wird eventuell der Gegenstand einer Ubung. 48 Sei G = (V, E) ein endlicher Graph. Wir werden sp¨ater sehen, dass sich der Blockgraph eines Graphen in Zeit a + b|V | + c|E| berechnen l¨aßt, wobei a, b, c kleine Konstanten sind, die vom Maschinenmodell abh¨angen, und die nicht von Interesse sind. Das ist sehr schnell! Naive Algorithmen ben¨ otigen hier typischerweise quadratische Zeit in der Gr¨oße der Eingabe. Seien G ein Graph, x, y ∈ V (G) verschieden, und Pn der Pfad der L¨ange n mit Knoten {1, . . . , n}; wir nehmen an, dass {1, . . . , n} ∩ V (G) = ∅. Dann heißt der Graph mit Kno tenmenge V (G) ∪ {2, . . . , n − 1} und Kantenmenge E(G) ∪ {x, 2}, {2, 3}, . . . , {n − 1, y} der aus G durch Anh¨ angen von Pn an x, y enstandene Graph. Proposition 49 (Ohrenzerlegung). Ein Graph ist genau dann zweifach zusammenh¨ angend, wenn er aus einem Kreis durch sukzessives Anh¨ angen von Pfaden konstruiert werden kann. Beweis. Kreise sind zweifach zusammenh¨angend, und wenn G zweifach zusammenh¨angend ist, und G0 aus G durch Anh¨ angen eines Pfades an zwei verschiedenen Knoten x, y ∈ V (G) entstanden ist, dann ist auch G0 zweifach zusammenh¨angend, wie man sich leicht u ¨berzeugt. Umgekehrt sei G zweifach zusammenh¨angend. Sei H ein maximaler Subgraph von G den man durch sukzessives Anh¨angen von Pfaden aus einem Kreis gewinnen kann. Wegen Maxim¨ alit¨ at von H ist H bereits ein induzierter Subgraph von G. Weiterhin enth¨alt G sicherlich einen Kreis, also ist V (H) auch nicht leer. Wenn also H 6= G ist, dann gibt es wegen Zusammenhang von G eine Kante {u, v} ∈ E(G) mit u ∈ V (H) und v ∈ V (G) \ V (H). Da G zweifach zusammenh¨ angend ist, enth¨alt G − u einen Pfad P von v zu einem Knoten w in H. Dann erhalten wir aus H durch Anh¨angen des Pfades uvP an u, w einen gr¨oßeren Subgraphen von G als H, im Widerspruch zur Maximalit¨at von H. 6.5 Der Satz von Menger Der Begriff des Zusammenhangs und zweifachen Zusammenhangs l¨aßt sich unschwer auf k-fachen Zusammenhang verallgemeinern. Wenn X ⊆ V (G), dann schreiben wir G − X f¨ ur den Graphen G[V (G) \ X]. Ein Graph G heißt k-fach zusammenh¨angend, wenn er mehr als k Knoten hat, und wenn f¨ ur alle x1 , . . . , xk−1 ∈ V (G) der Graph G − {x1 , . . . , xk−1 } zusammenh¨ angend ist. Zwei Pfade a = u1 , . . . , uk = b und a = v1 , . . . , vl = b von a nach b in G heißen unabh¨ angig falls {u1 , . . . , uk } ∩ {v1 , . . . , vl } = {a, b}. Satz 50. Ein Graph G ist genau dann k-fach zusammenh¨ angend, wenn es f¨ ur alle a, b ∈ V (G) mindestens k paarweise unabh¨ angige Pfade von a nach b in G gibt. Um diese wichtige Charakterisierung von k-fachem Zusammenhang zu zeigen, beweisen wir eine st¨ arkere Aussage, n¨ amlich den Satz von Menger, einen der Eckpfeiler der Graphentheorie. F¨ ur A, B ⊆ V (G) ist ein A-B Pfad ein Pfad v1 , . . . , vn mit {v1 , . . . , vn } ∩ A = {v1 } und {v1 , . . . , vn } ∩ B = {vn }. Zwei Pfade heißen disjunkt falls die Knotenmengen der Pfade disjunkt sind. Eine Menge X ⊆ V (G) trennt A von B in G falls jeder A-B Pfad einen Knoten aus X enth¨ alt. Der folgende Beweis ist Diestel’s Buch Graphentheorie entnommen [3]. 49 Satz 51 (von Menger33 ). Sei G ein endlicher Graph, und A, B ⊆ V (G). Dann ist die maximale Anzahl von paarweise disjunkten A-B Pfaden in G gleich der minimalen Anzahl von Knoten die A von B in G trennen. Beweis. Es sei k = k(G, A, B) die minimale Anzahl von Knoten die A von B in G trennt. Klarerweise kann es nicht mehr als k disjunkte A-B Pfade in G geben. Es bleibt zu zeigen, dass es k paarweise disjunkte A-B Pfade gibt. Wir zeigen dies per Induktion nach |V (G)| + |E(G)|. Zun¨achst betrachten wir den Fall, dass A ∩ B nicht leer ist, sondern einen Knoten x enth¨ alt. Dann wird A \ {x} von B \ {x} in G durch k − 1 Knoten getrennt. Nach Induktionsannahme gibt es dann in G − x genau k − 1 disjunkte (A \ {x})-(B \ {x}) Pfade. Zusammen mit dem trivialen Pfad, der nur aus x besteht, haben wir damit k disjunkte A-B Pfade in G. Im folgenden nehmen wir daher an, dass A und B disjunkt sind. Als n¨ achstes betrachten wir den Fall, dass es eine k-elementige Menge X ⊆ V (G) gibt, die A von B trennt, und die verschieden ist von A und von B. Sei CA der Graph bestehend aus allen Zusammenhangskomponenten von G − X die einen Knoten aus A enth¨alten, und CB der Graph bestehend aus allen Zusammenhangskomponenten von G − X die einen Knoten aus A enth¨ alten. Wir k¨ onnen A von X nicht mit weniger als k Knoten trennen, da jeder A-B Pfad in G einen A-X Pfad in CA enth¨alt. Nach Induktionsannahme gibt es also k disjunkte A-X Pfade in CA . Analog existieren k disjunkte X-B Pfade in CB . Wir setzen diese Pfade zusammen und erhalten k disjunkte A-B Pfade in G. Im allgemeinen Fall sei P ein A-B Pfad in G. Da A und B nach Annahme disjunkt sind, finden wir eine Kante {a, b} auf P mit a ∈ / B und b ∈ / A. Sei Y ⊆ V (G) eine minimale Knotenmenge die A von B in G0 := (V (G), V (E) \ {{a, b}}) trennt. Dann wird A von B in G von sowohl Ya := Y ∪ {a} als auch Yb := Y ∪ {b} getrennt. Da k als die minimale Gr¨oße von solch trennenden Knotenmengen definiert war, gilt |Ya |, |Yb | ≥ k. Falls eine dieser Mengen genau die Gr¨ oße k hat, dann k¨onnen wir annehmen, dass {Ya , Yb } ⊆ {A, B}, da wir ansonstem im vorigen Fall sind. Dann gilt {Ya , Yb } = {A, B} da a ∈ / B und b ∈ / A. Also ist Y = A ∩ B. Da |Y | ≥ k − 1 ≥ 1, widerspricht dies der Annahme, dass A und B disjunkt sind. Betrachten wir also zuletzt die Situation dass |Ya | > k oder |Yb | > k. Dann ist |Y | ≥ k. Nach Induktionsannahme gibt es dann k disjunkte A-B Pfade sogar in G0 , also auch in G. Korollar 52. Sei G ein endlicher Graph und a, b ∈ V (G) so dass {a, b} ∈ / E(G). Dann ist die maximale Anzahl paarweise unabh¨ angiger Pfade von a nach b gleich der minimalen Anzahl von Knoten aus V (G) \ {a, b}, die a von b in G trennt. Beweis. Wenn sich a und b in G mit k Knoten aus V (G) \ {a, b} trennen lassen, dann kann es keine k unabh¨ angigen Pfade von a nach b geben. Angenommen, a und b lassen sich in G nicht mit k Knoten aus V (G) \ {a, b} trennen. Es sei A ⊆ V (G) die Menge der Nachbarn von a, und B ⊆ V (G) die Menge der Nachbarn 33 Karl Menger; geboren am 13. Januar 1902 in Wien; gestorben am 5. Oktober 1985 in Chicago. 50 von b in G. Da a und b nicht benachbart sind, lassen sich auch A und B nicht mit k Knoten trennen. Also gibt es nach dem Satz von Menger k disjunkte A-B Pfade. Zusammen mit dem Startpunkt a und Endpunkt b erhalten wir k unabh¨angige Pfade von a nach b in G. Beweis von Satz 50. Es seien a, b ∈ V (G) beliebige Knoten des Graphen G. Wenn es k unabh¨angige Pfade von a nach b in G gibt, dann gibt es auch nach Entfernen von k − 1 von a und b verschiedenen Knoten von G einen Pfad von a nach b. Also ist G k-fach zusammenh¨ angend. Umgekehrt nehmen wir k-fachen Zusammenhang von G an. Im Fall, dass a und b nicht benachbart sind, folgt die Aussage aus Korollar 52. Ansonsten betrachten wir G0 := (V (G), E(G) \ {{a, b}}). Wenn es in G0 bereits k − 1 unabh¨angige Pfade gibt, dann gibt es in G sogar k unabh¨ angige Pfade, also betrachten wir im folgenden die Situation, dass dem nicht so ist. Wieder nach Korollar 52 schließen wir, dass wir a von b in G0 mit einer Knotenmenge X ⊆ V (G) \ {a, b} der Gr¨oße k − 2 trennen k¨onnen. Da |V (G)| > k, gibt es ein v ∈ V (G) \ (X ∪ {a, b}). Dann trennt X entweder v von a oder v von b in G0 . Nehmen wir ersteres an, der andere Fall geht analog. Dann trennt X ∪ {b} den Knoten a von v in G, ein Widerspruch zur Annahme dass G k-fach zusammenh¨angend ist. 6.6 Eulersche Graphen Sei G ein Graph. Ein geschlossener Streckenzug, in dem jede Kante von G genau einmal auftaucht, heißt Eulerzug (auch Eulertour oder Eulersche Linie). Ein solcher Graph heißt eulersch. Ein offener Eulerzug ist ein offener Streckenzug in G der alle Kanten von G durchl¨auft. Welche Graphen besitzen einen Eulerzug? Diese Frage wurde als das K¨ onigsberger Br¨ uckenproblem bekannt und 1736 von Leonhard Euler beantwortet. Satz 53. Ein endlicher Graph G besitzt genau dann einen geschlossenen Eulerzug, wenn er zusammenh¨ angend ist und jeder seiner Knoten geraden Grad hat. Beweis. Klarerweise muss ein eulerscher Graph zusammenh¨angend sein, und alle Knoten m¨ ussen geraden Grad haben: wir verlassen ja einen Knoten im Eulerzug u ¨ber genausoviel Kanten, wie wir ihn betreten. Sei umgekehrt G zusammenh¨ angend so dass alle Knoten von G geraden Grad haben. Es sei Z = (u0 , u1 , . . . , ul ) der l¨ angstm¨ogliche Streckenzug in G, der keine Kante zweimal verwendet. Da Z nach Annahme nicht verl¨angert werden kann, sind all Kanten an ul bereits von Z durchlaufen. Da es aber eine gerade Anzahl solcher Kanten gibt, muss ul = u0 gelten. Angenommen, Z ist kein Eulerzug. Dann hat G eine Kante {v, w}, die nicht vom Eulerzug durchlaufen wird, und da G zusammenh¨angend ist, k¨onnen wir die Kante so w¨ahlen, dass einer der beiden Knoten der Kante, sagen wir w, in Z auftaucht: also w = ui f¨ ur ein i ∈ {0, . . . , l}. Dann ist (v, ui , . . . , ul−1 , ul , u1 , . . . , ui ) l¨anger als Z, ein Widerspruch. 51 Satz 54. Ein endlicher Graph besitzt genau dann einen offenen Eulerzug, wenn er zusammenh¨ angend ist und genau zwei Knoten ungeraden Grades hat. Beweis. Wenn ein Graph G einen offenen Streckenzug (u0 , . . . , ul ) besitzt, dann haben genau u0 und ul einen ungeraden Grad. Umgekehrt sei G so, dass nur die Knoten u und v ungeraden Grad haben. /V Sei w ∈ beliebig. Betrachte den Graphen G0 := V (G) ∪ {w}, E(G) ∪ {{u, w}, {w, v}} . In G0 haben alle Knoten einen gerade Grad. Also hat G0 einen Eulerzug. Sicherlich k¨onnen wir diesen Eulerzug so w¨ ahlen, dass er in w beginnt. Streicht man nun in diesem Eulerzug den Knoten w, so erh¨ alt man einen offenen Eulerzug f¨ ur G. Wie findet man einen Eulerzug? Einfach losmarschieren f¨ uhrt nicht sicher zum Ziel. Oft helfen Existenzbeweise in der Mathematik, auch algorithmisch das gew¨ unschte Objekt zu konstruieren. Im Beweis von Satz 53 ist das auch so, aber der resultierende Algorithmus ist nicht sonderlich effizient. Das folgende Verfahren dagegen ist besser. Im Beweis ben¨ otigen wir das Handschlaglemma (Proposition 1). In der Sprache der Graphentheorie besagt dieses: in jedem Graphen gibt es eine gerade Anzahl von Knoten ungeraden Grades. Weiterhin spielen im Algorithmus Br¨ ucken eine zentrale Rolle. Wir rufen uns in Erinnerung: eine Br¨ ucke in einem endlichen Graphen G ist eine Kante, so dass G ohne diese Kante echt mehr Zusammenh¨ angskomponenten als G besitzt. Eingabe: ein endlicher zusammenh¨angender Graph G = (V, E) mit nur geraden Knotengraden. W¨ ahle a0 ∈ V beliebig. Setze i ← 0 und Z0 := (a0 ). Bis i = |E|, verfahre wie folgt: W¨ ahle eine noch nicht durchlaufene Kante {ai , b} ∈ E. Wenn es m¨ oglich ist, w¨ahle diese Kante so, dass sie keine Br¨ ucke im Graphen (V, E \ {{a0 , a1 }, . . . , {ai−1 , ai }}) ist. Setze i ← i + 1, ai := b, und Zi := (a0 , . . . , ai ). Abbildung 11: Algorithmus zur Berechnung von Eulerpfaden. Proposition 55. Der in Abbildung 11 angegebene Algorithmus berechnet zu jedem endlichen zusammenh¨ angenden Graphen G = (V, E) in dem alle Knoten geraden Grad haben einen Eulerzug. Beweis. Sicherlich ist (a0 , . . . , ai ) f¨ ur alle i ein Streckenzug in G. Zudem ist der Streckenzug per Konstruktion so, dass wir jede Kante in G maximal einmal beschreiten. Wenn der 52 Algorithmus also mit i = |E| abbricht, dann muss, da der Knotengrad von a0 gerade ist, a0 = ai gelten, und wir haben mit (a0 , a1 , . . . , ai ) einen geschlossenen Eulerzug gefunden. Das Problem. Was also eigentlich zu zeigen ist, ist die Durchf¨ uhrbarkeit des ersten Schrittes in der Schleife: warum gibt es ein b ∈ V so dass {ai , b} ∈ E noch nicht durchlaufen wurde? Wegen dem Zusammenhang von G ist klar, dass es im Fall i < |E| eine noch nicht durchlaufene Kante {aj , c} ∈ E gibt, mit j ≤ i. Aber warum gibt es eine solche Kante mit j = i? Die Idee. Wir behaupten, dass wenn es keine solche Kante geben w¨ urde, der Algorithmus an einer Stelle eine Br¨ ucke in (V, E \ {{a0 , a1 }, . . . , {ai−1 , ai }}) gew¨ahlt hat, obwohl er auch eine Nicht-Br¨ ucke als n¨ achste Kante h¨atte w¨ahlen k¨onnen, im Widerspruch zum Programmcode. Der Beweis. Es sei j ∈ {1, . . . , j} maximal, so dass es eine noch nicht durchlaufene Kante {aj , c} gibt. Wenn j = i, dann gibt es nichts zu zeigen, also nehmen wir j < i an. Dann ist {aj , aj+1 } ein Br¨ ucke in G0 := (V ; E \ {{a0 , a1 }, . . . , {aj−1 , aj }}), denn nach Maximalit¨ at von j muss jeder Pfad von aj+1 nach c in G0 u uhren. ¨ber die Kante {aj , c} f¨ Auf der anderen Seite ist {aj , c} keine Br¨ ucke in G0 . Um das einzusehen, sei C die Zusammenhangskomponente von c im Graphen G00 := (V ; E \ {{a0 , a1 }, . . . , {aj−1 , aj }, {aj , c}). Da es nach dem Handschlaglemma eine gerade Anzahl von Knoten mit ungeradem Grad in C gibt, aber a0 und c die einzigen Knoten von ungeradem Grad sind, muss a0 ebenfalls in C sein. Nach Proposition 54 gibt es dann einen Eulerpfad von a0 nach c in C. Da a0 mit aj in G00 u ucke ist. ¨eber einen Streckenzug verbunden ist, zeigt dies, dass {aj , c} keine Br¨ Wir haben damit den gew¨ unschten Widerspruch zur Regel im Algorithmus, zuerst u ¨ber Nicht-Br¨ ucken zu laufen. 6.7 Paarungen Sei G ein Graph. Eine Paarung, auch oft englisch Matching, ist eine Teilmenge M von E(G) paarweise disjunkter Kanten. Eine perfekte Paarung ist eine Paarung M mit 2|M | = |V |. Falls {x, y} ∈ M , so nennen wir y den Partner von x (und x den Partner von y). F¨ ur S ⊆ V (G) ist M eine Paarung von S falls jedes Element von S in einer Kante aus M auftaucht. Wenn A, B Mengen sind, dann ist die symmetrische Differenz von A und B die Menge A∆B := {x ∈ A ∪ B | x ∈ / A ∩ B} . Lemma 56. Es seien M1 und M2 Paarungen in G = (V, E), und D die symmetrische Differenz von M1 und M2 . Dann besteht der Graph (V, D) aus einer disjunkten Vereinigung von Kreisen gerader L¨ ange, Pfaden, und isolierten Knoten. Wie k¨ onnen wir in G eine Paarung maximaler Gr¨oße finden? Betrachten wir dazu eine beliebige Paarung M . Ein Pfad in G, der abwechselnd u ¨ber Kanten aus E \ M und Kanten 53 aus M verl¨ auft, heißt alternierender Pfad. Ein alternierender Pfad P heißt augmentierend bez¨ uglich M falls sowohl der Startpunkt als auch der Endpunkt von P keinen Partner haben. Augmentierende Pfade k¨ onnen wir verwenden, um eine gr¨oßere Paarung als M zu finden: Sei dazu M 0 die symmetrische Differenz von M und P . Falls P ein augmentierender Pfad ist, so ist M 0 wieder eine Paarung und |M 0 | > |M |. Lemma 57 (Lemma von Berge34 ). Sei G ein endlicher Graph. Eine Paarung M in G ist gr¨ oßtm¨ oglich, wenn es keine augmentierenden Pfade bez¨ uglich M in G gibt. Beweis. Wir haben bereits gesehen, dass eine Paarung mit einem augmentierenden Pfad nicht gr¨ oßtm¨ oglich sein kann. F¨ ur die andere Richtung der Aussage nehmen wir nun an, dass es eine Paarung M 0 in G gibt mit |M 0 | > |M |. Sei D die symmetrische Differenz von M und M 0 . Da |M 0 | > |M | hat der Graph (V, D) eine Zusammenhangskomponente mit mehr Kanten aus M 0 als aus M . Nach Lemma 56 muss eine solche Komponente ein alternierender Pfad bez¨ uglich M 0 sein. Wenn S ⊆ V , so schreiben wir N (S) f¨ ur {n ∈ V | {n, s} ∈ E, s ∈ S}, die Nachbarschaft von S in G. Eine klarerweise notwendige Bedingung f¨ ur die Existenz einer Paarung von S ⊆ V in G ist |N (S)| ≥ |S|. Diese Bedingung ist im allgemeinen nat¨ urlich nicht hinreichend. Wir werden weiter untern in Satz 58 eine notwendige und hinreichende Bedingung f¨ ur die Existenz einer Paarung von S in G in bipartiten (i.e., zweif¨arbbaren) Graphen kennenlernen. Im Folgenden sei G = (V, E) ein bipartiter Graph mit fester Bipartition A, B; das soll heißen, dass alle Knoten aus V entweder in A oder in B sind, und alle Kanten von G zwischen verlaufen. In anderen Worten, {A, B} ist eine Partition von V , und A und B E ∩ A2 = E ∩ B2 = ∅. Satz 58 (Heiratssatz von Hall35 ). Ein bipartiter Graph G erlaubt genau dann eine Paarung von A, wenn |N (S)| ≥ |S| f¨ ur alle S ⊆ A. Beweis. Es sei M eine Paarung von G die einen Knoten a0 aus A ohne Partner l¨aßt. Wir werden einen augmentierenden Pfad bez¨ uglich M konstruieren. Es sei a0 , b1 , a1 , b2 , a2 , . . . eine maximal Folge unterschiedlicher Knoten ai ∈ A und Bi ∈ B so dass 1. {bi , ai } ∈ M ; 2. a0 bez¨ uglich M ohne Partner ist; 3. bi eine Kante hat zu einem Knoten af (i) ∈ {a0 , . . . , ai−1 }. 34 Claude Berge; geboren am 5. Juni 1926; gestorben am 30. Juni 2002. Philip Hall; geboren am 11. April 1904 in Hampstead, London; gestorben am 30. Dezember 1982 in Cambridge. 35 54 Nach Annahme kann diese Folge nicht in einem Knoten aus A enden: die i Knoten a0 , . . . , ai−1 zusammen haben mindestens i Nachbarn in B, also k¨onnen wir stets eine Kante {a, b} ∈ E finden mit a ∈ {a0 , . . . , ai−1 } und b ∈ B \ {b1 , . . . , bi−1 }. Sei bk ∈ B der letzte Knoten der Folge. Wegen der drei Eigenschaften ist P := bk af (k) bf (k) af 2 (k) bf 2 (k) . . . af r (k) mit f r (k) = 0 ein alternierender Pfad. Wir behaupten, dass bk in M keinen Partner hat. Denn wenn a ein Partner von bk w¨are und a = ai f¨ ur i ∈ {1, . . . , k − 1}, dann muss gelten bk = bi , da M eine Paarung ist, ein Widerspruch. Wenn a 6= ai f¨ ur i ∈ {1, . . . , k − 1}, dann k¨onnten wir mit ak := a die Folge verl¨ angern, im Widerspruch zu deren Maximalit¨at. Also ist bk ohne Partner und P ein augementierender Pfad. Ein Graph G heißt k-regul¨ ar falls jeder Knoten in G den Grad k hat. Korollar 59. Jeder bipartite k-regul¨ are Graph, f¨ ur k ≥ 1, hat eine perfekte Paarung. Beweis. Jede Teilmenge S ⊆ A hat genau k|S| Kanten zu N (S). Insgesamt gibt es k|N (S)| Kanten zu Knoten aus N (S). Also gilt k|S| ≤ k|N (S)|, und damit |S| ≤ |N (S)|. Der Heiratssatz liefert uns dann eine Paarung von A in G. Klarerweise gilt in regul¨aren Graphen |A| = |B|. Also haben wir eine perfekte Paarung in G gefunden. Eine weitere Konsequenz des Heiratssatzes ist der Satz von K¨onig. Sei G = (V, E) ein ¨ Graph. Eine Menge U ⊆ V wird Uberdeckung von G genannnt, falls jede Kante aus G mindestens einen Knoten aus U enth¨alt. Satz 60 (K¨ onig36 ). Sei G ein bipartiter endlicher Graph. Dann ist die Gr¨ oße der gr¨ oßten ¨ Paarung in G gleich der Gr¨ oße einer minimalen Uberdeckung von G. ¨ Beweis. Sei U eine Uberdeckung von G minimaler Gr¨oße. Sei M eine Paarung in G. Dann ben¨otigt man mindestens |M | Knoten, um M zu u ¨berdecken. Also gilt |U | ≥ |M |. Wir zeigen, dass es eine Paarung der Gr¨oße |U | in G gibt. Es sei U1 := U ∩ A die Teilmenge ¨ ¨ der Uberdeckung im einen, und U2 := U ∩ B die Teilmenge der Uberdeckung im anderen Teil des bipartiten Graphen G. Wir zeigen nun die Heiratsbedingung aus dem Heiratssatz f¨ ur die Menge U1 im bipartiten Graphen G1 := G[U1 ∪ B \ U2 ]. Dazu m¨ ussen wir f¨ ur beliebiges S ⊆ U1 zeigen, dass |S| ≤ |N (S)|. Wenn dies nicht so w¨are, dann k¨onnten wir in U die Menge S durch die kleinere Menge N (S) ersetzen, und h¨atten immer noch eine ¨ Uberdeckung von G, ein Widerspruch zur Minimalit¨at von U . Der Heiratssatz (Satz 58) liefert uns nun eine Paarung M1 von U1 in G1 . Analog erhalten wir eine Paarung M2 von U2 im Graphen G2 := [U2 ∪ A \ U1 ]. Dann ist M1 ∪ M2 eine Paarung in G, und |M1 ∪ M2 | = |U1 | + |U2 | = |U |. 36 D´enes K˝ onig; geboren am 21. September 1884 in Budapest; gestorben am 19. Oktober 1944 in Budapest. 55 Eigenschaft reflexiv irreflexiv symmetrisch antisymmetrisch transitiv ≤ X = X X X X X X < ≡ mod n X {(x, x + 1)|x ∈ Z} X X X X X {(x, y) : |x − y| ≤ 1} X X X X Abbildung 12: Beispiele zu fundamentalen Eigenschaften von Relationen auf Z. 7 ¨ Aquivalenzrelationen Es sei R ⊆ A2 := A × A eine zweistellige (oder bin¨ are) Relation auf der Menge A. Statt (a, b) ∈ R schreibt man oft auch aRb, und man sagt, dass a und b in Relation R stehen. Entsprechend ist eine n-stellige Relation, f¨ ur n ∈ N, eine Teilmenge von An , der Menge aller n-Tupel. Wenn nichts dazu gesagt wird, ist n = 2 gemeint. Wir listen einige wichtige Eigenschaften, die Relationen haben k¨onnen; Beispiele dazu sind in Abbildung 12 aufgelistet. Eine Relation R ⊆ A2 heißt • reflexiv falls (a, a) ∈ R f¨ ur alle a ∈ A; • irreflexiv falls (a, a) ∈ R f¨ ur kein a ∈ A gilt; • symmetrisch falls aus f¨ ur alle (a, b) ∈ R auch (b, a) ∈ R; • antisymmetrisch falls aus (a, b) ∈ R und (b, a) ∈ R folgt dass a = b; • transitiv falls aus (a, b) ∈ R und (b, c) ∈ R stets (a, c) ∈ R folgt. ¨ ¨ Definition 61 (Aquivalenzrelation). Eine Relation R ⊆ A2 heißt Aquivalenzrelation auf A wenn R reflexiv, transitiv und symmetrisch ist. ¨ Das einfachste Beispiel einer Aquivalenzrelation ist die Gleichheitsrelation {(a, a) | a ∈ A} ¨ auf A, die wir auch mit =A bezeichnen. Aquivalenzrelationen tauchen in fast jedem Kapitel und Abschnitt dieser Vorlesung auf. Bisherige Beispiele sind etwa: 1. Gleichm¨ achtigkeit von Mengen. Zwei Mengen A und B stehen in dieser Relation wenn es eine Bijektion zwischen A und B gibt. 2. Die Relation, zum gleichen Zyklus einer Permutation π von {1, . . . , n} zu geh¨oren. Zwei Elemente i, j ∈ {1, . . . , n} stehen in Relation, wenn es ein k ∈ N gibt, so dass π k (i) = j. 56 3. Kongruenz von Elementen aus Z modulo n. Zwei ganze Zahlen a, b stehen in Relation wenn sie kongruent modulo n sind. 4. Die Relation auf den Elementen einer Gruppe, zur gleichen Nebenklasse von U zu geh¨ oren. Zwei Elemente x, y der Gruppe stehen in Relation, wenn es u, v ∈ U gibt, so dass x ◦ v = y ◦ u. 5. Isomorphie auf der Menge der Graphen. Zwei Graphen stehen in Relation wenn sie isomorph sind. 6. Zusammenhang in einem Graphen. Zwei Knoten a, b stehen in Relation wenn es einen Pfad in a nach b im Graphen gibt. 7.1 ¨ Aquivalenz und Partition ¨ ¨ Definition 62 (Aquivalenzklassen). Ist R eine Aquivalenzrelation auf A, so definiert man f¨ ur a ∈ A a/R := {b ∈ A | (a, b) ∈ R} ¨ und nennt diese Menge die Aquivalenzklasse von a bez¨ uglich R. F¨ ur die Menge aller ¨ Aquivalenzklassen bez¨ uglich R schreiben wir A/R, genannt die Faktormenge von A nach R. Also A/R := {a/R | a ∈ A}. ¨ Eine weitere u ur die Aquivalenzklasse von a bez¨ uglich R ist [a]R . ¨bliche Schreibweise f¨ Es gibt eine ‘kanonische’ surjektive Abbildung in A → A/R, die jedem Element seine ¨ Aquivalenzklasse bez¨ uglich R zuordnet, a 7→ a/R. ¨ Aquivalenzklassen sind disjunkt oder gleich: F¨ ur je zwei Elemente a, b ∈ A gilt entweder a/R ∩ b/R = ∅ oder a/R = b/R. Definition 63 (Partition). Eine Partition einer Menge A ist eine Menge P nicht leerer Teilmengen von A die paarweise disjunkt sind und deren Vereinigung gleich A ist. Man nennt die Elemente von P die Klassen der Partition P. ¨ ¨ Lemma 64 (Aquivalenz und Partition). Die Faktormenge A/R einer Aquivalenzrelation R auf einer Menge S A ist stets eine Partition. Umgekehrt gilt: ist P eine Partition von A, ¨ dann ist RP := Ai ∈P Ai × Ai eine Aquivalenzrelation. Es gilt R = RA/R und A/RP = P. ¨ ¨ Eine Aquivalenzrelation R auf A ist feiner als eine Aquivalenzrelation S auf A falls R ⊆ S. Gleichbedeutend dazu ist, dass S gr¨ ober ist als R. Man nennt dann R eine Verfeinerung von S und S eine Vergr¨ oberung von R. Wir schließen hier den Fall mit ein, dass R = S. Im Fall, dass R feiner ist als S und R 6= S, sagen wir, dass R echt feiner ist als S, und entsprechend definieren wir echt gr¨ ober. 57 ¨ Die Relation R ist genau dann feiner als S, wenn jede Aquivalenzklasse von R Teilmenge ¨ einer Aquivalenzklasse von S ist. Wir nennen dann auch die zu R geh¨orende Partition feiner als die zu S geh¨ orige. ¨ ¨ Der Schnitt beliebig vieler Aquivalenzrelationen auf A ist wieder eine Aquivalenzrelation ¨ auf A. Die Vereinigung von zwei Aquivalenzrelationen R, S auf A ist jedoch im allgemeinen ¨ ¨ keine Aquivalenzrelation. Es gibt aber stets eine feinste Aquivalenzrelation, die R∪S enth¨alt (die transitive H¨ ulle von R ∪ S). 7.2 Partitionen z¨ ahlen Wie viele M¨ oglichkeiten gibt es, n Dinge in k Klassen aufzuteilen? Pr¨aziser gefragt: wie viele k-elementigen Partitionen hat eine n-elementige Menge? F¨ ur die Anzahl der Partitionen einer n-elementigen Menge in k (nicht-leere) Klassen schreiben wir Sn,k . Die Zahlen Sn,k nennt man die Stirling-Zahlen zweiter Art 37 , oder besser die Stirlingschen Partitionszahlen. Man berechnet sie auf effiziente Weise rekursiv mit folgender Proposition. Proposition 65. F¨ ur alle n, k ∈ N gilt 1. Sn,n = 1 = Sn,1 ; 2. Sn,k = 0 falls n < k; und 3. Sn,k = Sn−1,k−1 + k · Sn−1,k . Beweis. Es gibt nur eine M¨ oglichkeit, n Elemente {1, . . . , n} in n Klassen aufzuteilen, und nur eine M¨ oglickkeit, alle Elemente einer Klasse zuzuteilen. Und wenn wir k nicht-leere Klassen bilden wollen, muss n mindestens so gross sein wie n. Es bleibt also die dritte Aussage zu zeigen. Wir betrachten gesondert die Partitionen, in denen die Klasse der 1 nur ein Element hat. Davon gibt es Sn−1,k−1 , denn wir m¨ ussen k − 1 Klassen mit den u ¨brigen Elementen bilden. Alle weiteren Partitionen erh¨ alt man, indem man zuerst eine Partition von {2, . . . , n} mit k Klassen bildet, und dann die 1 einer dieser Klassen zuteilt. Die Anzahl aller Partitionen einer n-elementigen Menge wird mit Bn bezeichnet; die Zahlen Bn nennt man die Bell-Zahlen 38 . Sicherlich gilt Bn = n X Sn,k , k=0 37 James Stirling; geboren im Mai 1692 in Garden bei Stirling; gestorben am 5. Dezember 1770 in Edinburgh. 38 Eric Temple Bell; geboren am 7. Februar 1883 in Peterhead, Aberdeenshire; gestorben am 21. Dezember 1960 in Watsonville, Santa Cruz County. 58 denn um alle Partitionen einer n-elementigen Menge zu z¨ahlen, k¨onnen wir separat die Partitionen mit genau k ∈ {1, . . . , n} Klassen z¨ahlen, und danach aufsummieren. Man hat B0 = 1, B1 = 2, B3 = 5, B4 = 15. Die Bellschen Zahlen tragen die Nummer A000110 in Sloane’s Oline-Enzyklop¨ adie der Zahlenfolgen (OEIS): eine sehr praktisches Hilfsmittel f¨ ur Studenten, Lehrende und Forscher. Denn oft will man kombinatorische Objekte mit n Elementen z¨ ahlen, und kann dies auch f¨ ur kleine n, so wie wir eben f¨ ur die Bellschen Zahlen. Was man aber oft wissen will ist eine geschlossene Formel f¨ ur die Zahlenfolge, oder eine Rekursionsgleichung zur effizienten Berechnung, oder eine gute N¨aherungsformel f¨ ur das asymptotische Wachstum. Dies sind typische Informationen, die in der OEIS Da¨ tenbank zu finden sind. Uber hinreichend viele Glieder der Folge, oder bisweilen auch u ¨ber Stichwortsuche kann man h¨ aufig die richtige Folge ausfindig machen, und findet dann meist auch alles, was Forscher zu dieser Folge bereits herausgefunden haben. F¨ ur die Bell-Zahlen gibt es (wie f¨ ur die Stirling-Zahlen) keine einfache explizite Darstellung, aber eine sch¨ one Rekursionsformel. Proposition 66. F¨ ur n ∈ N gilt Bn+1 n X n = Bk . k k=0 Beweis. Um die Anzahl aller Partitionen der Menge {0, 1, . . . , n} zu bestimmen, z¨ahlen wir zun¨achst diejenigen Partitionen, in denen die Klasse der 0 genau n+1−k Elemente enth¨alt. Wir w¨ahlen also zuerst diejenigen Element aus, die in der gleichen Klasse liegen wie die 0. n n Daf¨ ur gibt es n−k = k M¨ oglichkeiten. Danach partitionieren wir die u ¨brigen k Elemente: daf¨ ur gibt es Bk M¨ oglichheiten. Jede Partition von {0, . . . , n} wird auf diese Weise f¨ ur genau ein k ∈ {0, . . . , n} mitgez¨ ahlt, und dies erkl¨art die Summe in der Rekursionsformel. Beispielsweise ist 3 3 3 3 B4 = B3 + B2 + B1 + B0 0 1 2 3 =1·5+3·3+2·1+1·1 = 15 7.3 Der Kern einer Abbildung Sei f : A → B eine Abbildung. Dann ist der Kern von f die Relation auf A die definiert ist durch ker f := {(a1 , a2 ) ∈ A2 | f (a1 ) = f (a2 )} . Anders formuliert: zwei Elemente aus A stehen in Relation ker f , wenn sie von f auf das glei¨ che Element abgebildet werden. Man rechnet leicht nach, dass ker f eine Aquivalenzrelation ist. 59 7.4 Funktionen z¨ ahlen Seien A und B endliche Mengen. Wir wissen bereits, dass es |B||A| viele Funktionen von A nach B gibt (Proposition 4). Falls |A| = |B|, so wissen wir ebenfalls, dass es n! viele Bijektionen zwischen A und B gibt (Abschnitt 2.5). F¨ ur |B| ≤ |A| wollen wir nun das eben gelernte anwenden, um die Anzahl der surjektiven Funktionen von A nach B zu berechnen. Proposition 67. Seien A, B endlich, n := |A|, m := |B|, so dass n ≥ m. Dann ist die Anzahl der surjektiven Funktionen von A nach B gleich m! · Sn,m . ¨ Beweis. Alle zu z¨ ahlenden Funktionen haben einen Kern mit m Aquivalenzklassen. Es gibt m! Surjektionen mit dem gleichen Kern R, denn wir m¨ ussen alle Bijektionen zwischen A/R und B z¨ ahlen, und davon gibt es m! viele, da m = |B| = |A/R|. Die Anzahl aller Kern mit ¨ m Aquivalenzklassen ist Sn,m per Definition. Die angegebene Formel folgt. Der Vollst¨ andigkeit halber wollen wir nun auch die Menge der Injektionen von A nach B z¨ahlen. Proposition 68. Die Anzahl der injektiven Funktionen von A nach B ist gleich Null, falls n := |A| gr¨ osser ist als m := |B|, und ansonsten gleich m m! n! · = . n (m − n)! Beweis. Um die Anzahl aller Injektionen von {1, . . . , n} nach {1, . . . , m} zu z¨ahlen, bemerken wir zun¨ achst dass eine solche Funktion genau m n viele verschiedene Bilder haben kann. F¨ ur jedes festgehaltene Bild C gibt es n! viele verschiedene Injektionen, da wir daf¨ ur die Bijektionen zwischen A und C z¨ahlen m¨ ussen. 60 8 Ordnungsrelationen Eine partielle Ordnung (oder Halbordnung) auf einer Menge A ist eine bin¨are Relation, ¨ die transitiv, reflexiv, und antisymmetrisch ist. Wie auch die Aquivalenzrelationen tauchen Ordnungsrelationen in fast jedem Abschnitt der Vorlesung auf. Beispiele sind: 1. Die Teilmengenbeziehung ⊆ (Abschnitt 1). 2. Die Ordnungsrelation ≤ der nat¨ urlichen Zahlen (Abschnitt 3.1). 3. Die Teilbarkeitsrelation | auf den nat¨ urlichen Zahlen (Abschnitt 3.3). 4. Die Untergruppenrelation (Abschnitt 5.5). 5. Die Gleichheitsrelation =A (Abschnitt 7). Wenn wir abstrakt u ¨ber eine Ordnungsrelation schreiben, so verwenden wir typischerweise das Symbol ≤. Falls x ≤ y und x 6= y gelten, so schreiben wir x < y. Die Relation < ist irreflexiv, und immer noch antisymmetrisch und transitiv; solche Relationen werden strikte Halbordnungen genannt. Wenn x ≤ y oder y ≤ x gilt, so sagen wir, dass x und y vergleichbar sind, und ansonsten nennen wir x und y unvergleichbar. Hasse Diagramme. Wenn man partielle Ordnungen bildlich veranschaulichen will, so kann man sich die Transitivit¨ at der Ordnung zu Nutze machen, und Hasse Diagramme verwenden. Betrachten wir zum Beispiel die Teilbarkeitsrelation auf den Teilern der Zahl 60. Es handelt sich hier um eine Menge mit 12 Elementen, n¨amlich {1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60} . Wir tragen im Diagram eine Linie zwischen x und y ein, wenn x ein maximaler echter Teiler von y ist, und zeichnen dann y weiter oben im Bild ein als x. Die Ordnung ist durch ein solches Diagram auf eindeutige Weise bestimmt: denn x ist ein Teiler von y genau dann, wenn es einen aufsteigenden Pfad von x zu y im Diagram gibt. Diese Diagramme werden Hasse Diagramme genannt39 , und k¨onnen f¨ ur beliebige endliche partielle Ordnungen einsetzt werden. 39 Helmut Hasse; geboren am 25. August 1898 in Kassel; gestorben am 26. Dezember 1979 in Ahrensburg bei Hamburg. 61 Maximale und minimale Elemente. Ein maximales Element einer durch ≤ partiell geordneten Menge A ist ein Element x ∈ A so dass f¨ ur alle y ∈ A mit x ≤ y gilt dass x = y. Wir verlangen nicht, dass x ≥ y f¨ ur alle y ∈ A; es kann also mehr als ein maximales Element geben. Minimale Elemente sind dual dazu definiert. Lemma 69. Jede partielle Ordnung einer nicht-leeren endlichen Menge A besitzt ein maximales Element. Beweis. W¨ ahle a1 ∈ A beliebig. Wenn a1 nicht maximal ist, so gibt es ein a2 mit a1 < a2 . Wenn a2 nicht maximal ist, so wir wiederholen diesen Schritt, immer wieder. Dieser Prozess muss irgendwann mit einem maximalen Element abbrechen, da A endlich ist. 8.1 Lineare Erweiterungen Ein wichtiger Spezialfall von von partiellen Ordnungen sind die lineare Ordnungen (bisweilen totale Ordnungen). Sie erf¨ ullen zus¨atzlich die Bedingung, dass f¨ ur alle Elemente der Grundmenge x und y entweder x < y, y < x, oder x = y gilt. Lineare Ordnungen sind also Halbordnungen ohne unvergleichbare Elemente. Die Ordnung der nat¨ urlichen Zahlen ist nat¨ urlich ein Beispiel einer linearen Ordnung. Jede partielle Ordnung kann zu einer linearen Ordnung erweitert werden. Wir zeigen dies hier f¨ ur partielle Ordnungen auf endlichen Mengen. Lemma 70. Sei R ⊆ A2 eine partielle Ordnung auf einer endlichen Menge A. Dann existiert eine lineare Ordnung R0 ⊆ A2 mit R ⊆ R0 . Beweis. Wenn R0 := R keine lineare Ordnung ist, so gibt es ein unvergleichbares Paar x, y ∈ A. Es sei R1 ⊆ A2 eine minimale Menge die R0 ∪ {(x, y)} enth¨alt, und die transitiv ist. Die Relation R1 ist eindeutig und kann explizit beschrieben werden als R1 = R0 ∪ {(u, v) | R0 (u, x) und R0 (y, v)} . 62 Wenn R1 eine lineare Ordnung ist, so haben wir die gew¨ unschte Erweiterung gefunden, ansonsten fahren wir mit R1 anstatt R0 fort. Da A endlich ist, bricht dieses Verfahren nach endlich vielen Schritten mit der gew¨ unschten Relation R0 ab. 8.2 Quasiordnungen Oft haben wir es auch mit Relationen zu tun, die zwar transitiv und reflexiv sind, aber nicht antisymmetrisch; auch f¨ ur solche Relationen gibt es einen speziellen Namen. Definition 71 (Quasiordnung). Eine Quasiordnung auf einer Menge A ist eine bin¨ are Relation auf A die transitiv und reflexiv ist. F¨ ur Quasiordnungen gibt es eine wichtige Konstruktion, die auf eine (anti-symmetrische) partielle Ordnung f¨ uhrt. Zun¨ achst stellen wir fest, dass f¨ ur jede Quasiordnung die Relation ∼ definiert als {(a, b) ∈ A2 | a b, b a} ¨ eine Aquivalenzrelation ist. Wenn eine Quasiordnung ist, definieren wir als die Relation {(a, b) | b a}; auch die Relation ist eine Quasiordnung. Es gilt ∼ = ( ∩ ). Wenn eine partielle Ordnung w¨are, m¨ ußte a ∼ b genau dann gelten, wenn a = b (we¨ gen der Bedingung der Antisymmetrie). Wir werden nun auf der Menge der Aquivalenzklassen von ∼ eine neue Ordnung definieren. Definition 72 (Faktorordnung). Es sei eine Quasiordnung auf der Menge A und ∼ := ( ∩ ). Dann definieren wir die Relation ≤ auf A/∼ wie folgt: es gelte (a/∼) ≤ (b/∼) genau dann, wenn a b. Dies ist wohldefiniert: dazu m¨ ussen wir zeigen, dass die Definition von ≤ auf den Klassen aus A/ ∼ nicht von der Wahl der Repr¨asentanten aus diesen Klassen abh¨angt. Das heißt, wir m¨ ussen zeigen, dass a ∼ a0 und b ∼ b0 impliziert, dass (a/∼) ≤ (b/∼) genau dann wenn 0 (a /∼) ≤ (b0 /∼). Angenommen a b. Da a0 a und b b0 nach Definition von ∼, gilt a0 b0 wegen der Transitivit¨ at von . Umgekehrt impliziert a0 b0 auch a b. Man u ¨berzeugt sich leicht, dass ≤ eine partielle Ordnung auf A/∼ definiert. 8.3 Transitive Hu ¨ lle Es sei R eine bin¨ are Relation auf einer Menge X. Wann gibt es eine partielle Ordnung R0 auf X, die R enth¨ alt? Wenn es in X f¨ ur n ≥ 2 eine Folge x0 , . . . , xn−1 unterschiedlicher Elemente gibt mit (xi , xj ) ∈ R falls j = i + 1 mod n, dann kann es so ein ein R0 sicher nicht geben. Denn wegen der Transitivit¨at von R0 w¨are dann neben (x0 , x1 ) auch (x1 , x0 ) in R0 , was aber wegen der Antisymmetrie von R0 nicht sein kann. Sicher aber gibt es immer eine Quasiordnung R0 auf X, die R enth¨alt: zum Beispiel die volle Relation X 2 hat diese Eigenschaft. F¨ ur Relationen R, S ⊆ X 2 definieren wir R ◦ S als 63 die bin¨are Relation {(a, b) | es gibt ein c ∈ X mit (a, c) ∈ R und (c, b) ∈ S} . Die Relation R ◦ S heißt auch die Komposition von R und S. F¨ ur R ◦ R schreiben wir 2 n n−1 auch R , und f¨ ur n ≥ 2 ist R induktiv definiert als R ◦ R. Wir vereinbaren außerdem R0 := {(x, x) | x ∈ X}. Lemma 73. Sei X eine endliche Menge, und R ⊆ X 2 eine Relation. Dann sind ¨ aquivalent: • R0 ⊆ X 2 ist die kleinstm¨ ogliche Quasiordnung, die R enth¨ alt. T • R0 = {S ⊆ X 2 | S Quasiordnung mit R ⊆ S}. S • R0 = i∈N Ri . Die Relation R0 wird auch die transitive reflexive H¨ ulle von R genannt. Die transitive H¨ ulle von R ist analog definiert, und es gibt ein analoges Lemma daf¨ ur (Aufforderung: wie genau ist die Formulierung der entsprechenden Variante von Lemma 73?). 8.4 Ketten, Antiketten, Dilworth Eine Kette in einer partiellen Ordnung ≤ auf einer Menge X ist eine Menge K ⊆ X paarweise vergleichbarer Elemente aus X; damit meinen wir, dass a ≤ b oder b ≤ a f¨ ur alle a, b ∈ K gilt. Eine Antikette ist eine Teilmenge A ⊆ X paarweise unvergleichbarer Elemente aus X; damit meinen wir, dass f¨ ur alle a, b ∈ K weder a ≤ b noch b ≤ a gilt. Ein sch¨ oner Satz f¨ ur partielle Ordnungen ist der Satz von Dilworth40 . Satz 74 (Dilworth). Sei ≤ eine partielle Ordnung der Menge X und A die gr¨ oßte Antikette. Dann kann X in k := |A| Ketten partitioniert werden. Beweis. Wir verwenden den Satz von K¨onig, und definieren dazu den folgenden bipartiten Graphen G. F¨ ur jedes Element x ∈ X schaffen wir in G zwei Knoten, x− und x+ . Wir f¨ ugen in G eine Kante zwischen x− und y + ein falls x < y. ¨ Sei U eine minimale Uberdeckung von G. Dann ist A0 := {x ∈ X | x+ ∈ / U und x− ∈ / U} 0 − + eine Antikette in G: denn wenn f¨ ur x, y ∈ A gilt dass x ≤ y, dann w¨are {x , y } ∈ E(G), und damit entweder x− oder y + in U . Wegen der Maximalit¨at von A gilt also |A0 | ≤ k. Außerdem haben wir |A0 | ≥ |X| − |U |. Also gilt |X| − |U | ≤ k und daher |U | ≥ |X| − k. Nach dem Satz von K¨ onig gibt es also eine Paarung M der Gr¨oße |X| − k. Betrachte die Familie aus Ketten in welcher zwei Elemente x1 , x2 ∈ X in der gleichen Kette sind falls − − + {x+ 1 , x2 } ∈ M oder {x1 , x2 } ∈ M . Auf diese Weise erhalten wir |X|−|M | = |X|−|X|−k = k disjunkte Ketten. 40 Robert Palmer Dilworth; geboren am 2. Dezember 1914 in Hemet in Kalifornien; gestorben am 29. Oktober 1993 in Kalifornien. 64 Korollar 75 (Dilworth). Jede partielle Ordnung auf einer Grundmenge der Gr¨ oße a(b+1) hat entweder eine Kette der L¨ ange a + 1, oder eine Antikette der L¨ ange b + 1. Beweis. Es sei A die l¨ angste Antikette der partiellen Ordnung. Wenn |A| > b, so gibt es nichts zu zeigen; im folgenden nehmen wir also an, dass |A| ≤ b ist. Dann gibt es nach dem Satz von Dilworth eine Partition der Grundmenge in |A| Ketten. Da es a(b + 1) Elemente gibt, muss eine der Ketten mindestens a + 1 Elemente besitzen. 8.5 Wohlquasiordnungen Eine Quasiordnung einer Menge X ist eine Wohlquasiordnung falls es zu jeder unendlichen Folge x1 , x2 , . . . von Elementen aus X Indizes i, j gibt mit xi xj . Wenn eine Wohlquasiordnung von X ist, dann gibt es insbesondere keine unendlichen Antiketten in X, und keine unendlichen Ketten x1 , x2 , . . . die (strikt) absteigend sind, das heißt, xj ≺ xi gilt f¨ ur alle i, j ∈ N mit i < j. Beispiele: • (N; ≤). Gegenbeispiele: • (Z; ≤). Die Folge −1, −2, −3, . . . ist eine unendliche absteigende Kette. • (N; |). Die Teilmenge der Primzahlen bildet eine unendliche Antikette. Wir kommen an der Stelle nochmals kurz den Begriff der Wohlordnung zur¨ uck, der bereits in Abschnitt 3.1 aufgetraucht ist: es sind dies genau die linearen Ordnungen ohne unendliche absteigende Ketten. Sei n ∈ N beliebig. Wir betrachten nun die folgende Ordnung von Nn , der Menge der n-Tupel von nat¨ urlichen Zahlen: setze (a1 , . . . , an ) (b1 , . . . , bn ) falls ai ≤ bi f¨ ur alle i ∈ {1, . . . , n}. Proposition 76 (Dickson41 ). Die Ordnung auf Nn ist eine Wohlquasiordnung. Beweis. Wir beweisen hier nur den Spezialfall f¨ ur n = 2. Es seien f (0), f (1), f (2), . . . und g(0), g(1), g(2), . . . zwei unendliche Folge von Elementen aus N. Wir m¨ ussen zeigen, dass es i, j ∈ N gibt mit f (i) ≤ f (j) und g(i) ≤ g(j). Sei i0 ∈ N so dass f (i0 ) = min{f (`) | ` ∈ N}. Induktiv definieren wir in+1 ∈ N als die Zahl gr¨oßer als in so dass f (in+1 ) = min{f (`) | ` > in }. Dann gilt i0 < i1 < · · · und f (i0 ) ≤ f (i1 ) ≤ · · · . Die Folge g(i0 ), g(i1 ), . . . in N kann nicht streng absteigend sein. Also gibt es ein k ∈ N mit g(ik ) ≤ g(ik+1 ). Die Zahlen i := ik und j := ik+1 leisten dann das Gew¨ unschte. 41 Leonard Eugene Dickson; geboren am 22. Januar 1874 in Independence, Iowa; gestorben am 17. Januar 1954 in Harlingen, Texas. 65 F¨ ur manche interessanten Berechnungsprobleme kann man zeigen, dass es einen effizienten Algorithmus gibt, ohne dass man einen solchen Algorithmus angeben k¨onnte. Oft werden solche Existenzbeweise mit Hilfe von Wohlquasiordnungen gef¨ uhrt. Wir werden noch verschiedene konkrete Beispiele daf¨ ur kennenlernen. Sei eine Wohlquasiordnung einer Menge X, und S ⊆ X. Dann schreiben wir ↑S f¨ ur {y ∈ X | x ∈ S und x y}. Proposition 77. Sei eine Wohlquasiordnung einer Menge X, und S ⊆ X. Dann gibt es eine endliche Menge B ⊂ X so dass ↑B = ↑S. Beweis. Sei B minimal bez¨ uglich Inklusion mit der Eigenschaft, dass ↑B = ↑S. Dann kann B keine Elemente a, b enthalten mit a b, da ansonsten ↑(B \ {b}) = ↑S, im Widerspruch zur Minimalit¨ at von B. Also ist B eine Antikette. Da eine Wohlquasiordnung ist, kann B also nicht unendlich sein. Wir bemerken, dass wir in diesem Beweis nur die Existenz einer endlichen Menge B von Objekten in X gezeigt haben, ohne eine wirkliche Vorschrift zu kennen, wie man diese Menge findet. Wir betrachten ein weiteres Beispiel einer Wohlquasiordnung. Sei A eine beliebige endliche Menge. Ein Wort der L¨ ange n u ¨ber dem Alphabet A ist eine Abbildung von {1, . . . , n} nach A. Wenn w ein Wort der L¨ ange n ist, dann schreiben wir auch oft w(1)w(2) . . . w(n) f¨ ur dieses Wort, und |w| f¨ ur n. Diese Schreibweise ist praktisch, um W¨orter anzugeben. Zum Beispiel steht w := abba f¨ ur die Funktion w : {1, 2, 3, 4} → A mit w(1) = a, w(2) = b, w(3) = b, w(4) = a, und |abba| = 4. F¨ ur die Menge aller W¨orter endlicher L¨ange u ¨ber dem ∗ Alphabet A schreiben wir A . Es sei ≤ eine lineare Ordnung von A. Dann ist die lexikographische Ordnung von A∗ (die Ordnung im W¨ orterbuch) sogar eine lineare Ordnung, und hat keine unendlich absteigenden Ketten, ist aber f¨ ur |A| ≥ 2 keine Wohlquasiordnung: betrachte dazu die unendliche absteigende Folge von W¨ ortern b, ab, aab, aaab, . . . Bez¨ uglich der Pr¨ afixordnung von A∗ ist diese Folge eine Antikette. Die Pr¨ afixordnung ∗ ist definiert wie folgt: wenn u, v ∈ A , dann ist u ein Pr¨ afix von v falls |u| ≤ |v| und falls u(i) = v(i) f¨ ur alle i ∈ {1, . . . , |u|}. Wir betrachten im folgenden die Teilfolgenordnung auf A∗ . Zwei W¨orter w1 , w2 ∈ A∗ stehen in dieser Relation, w1 w2 , wenn w1 aus w2 durch ‘Wegstreichen von Buchstaben’ entsteht. Formal heißt das, dass es eine Teilmenge S = {i1 , . . . , ik } von {1, . . . , |w2 |} gibt, so dass |w1 | = k und w1 (j) = w2 (ij ) f¨ ur alle j ∈ {1, . . . , k}. Satz 78. Sei A eine endliche Menge. Dann ist die Teilfolgenordnung eine Wohlquasiordnung von A∗ . Wir betrachten nun folgende Anwendung. Sei L ⊆ A∗ eine beliebige Menge von W¨ortern. Wir zeigen nun die Existenz eines Algorithmus, der als Eingabe ein endliches Wort w ∈ A∗ 66 erh¨alt, und der entscheidet, ob m ∈ ↑L. Das bedeutet, dass der Algorithmus nach endlicher Zeit anh¨ alt, und ‘Ja’ ausgibt, falls w ∈ ↑L, und ‘Nein’ ausgibt, falls w ∈ / ↑L. Wir sagen in diesem Fall auch, dass der Algorithmus L entscheidet. Da die Teilfolgenrelation von A∗ eine Wohlquasiordnung ist, so gibt es nach Proposition 77 eine endliche Menge B von W¨ortern aus A∗ mit ↑ B = ↑L. Unser Algorithmus muss also f¨ ur ein gegebenes Wort nur testen, ob w ein Wort aus B als Teilfolge enth¨alt. Das kann man sogar effizient und in polynomieller Zeit tun. Wir wissen also, dass es den gew¨ unschten Algorithmus f¨ ur ↑L gibt. Aber wir kennen ihn im allgemeinen nicht! Selbst wenn wir einen Algorithmus kennen, der L entscheidet, so kennen wir damit noch keinen Algorithmus, der ↑L entscheidet, obwohl wir wissen, dass es sogar einen effizienten Algorithmus daf¨ ur gibt. 8.6 Semilineare Ordnungen Eine semilineare Ordnung ≤ einer Menge X ist eine partielle Ordnung von X so dass • f¨ ur alle x, y ∈ X existiert ein z ∈ X mit z ≤ x und z ≤ y; • f¨ ur jedes x ∈ X ist die Menge {y ∈ X | y ≤ x} linear geordnet. Ein Beispiel f¨ ur eine semilineare Ordnung ist die Pr¨afixordnung auf A∗ (Abschnitt 8.5). Offensichtlicherweise sind auch alle linearen Ordnungen semilinear. Die Teilwortrelation dagegen ist nicht semilinear: Wir haben a ab, a ba, ab aba, ba aba, und ba und ab sind unvergleichbar. Sei (V ; E) ein Baum, und r ∈ V . Den Baum zusammen mit diesem ausgezeichneten Knoten r nennt man einen gewurzelten Baum, und r die Wurzel. F¨ ur einen gewurzelten Baum definieren wir die Nachfahrenrelation ≤ wie folgt. F¨ ur x, y ∈ V definieren wir x ≤ y falls x auf dem (eindeutigen; siehe Lemma 45) Pfad von r nach y liegt. Lemma 79. Die Nachfahrenrelation ≤ eines gewurzelten Baumes ist semilinear. Beweis. Es gilt r ≤ x f¨ ur alle x ∈ V , und also gilt die erste Bedingung. Um die zweite Bedingung nachzuweisen fixieren wir x ∈ V beliebig, und betrachten zwei Elemente y1 , y2 ∈ V mit der Eigenschaft dass y1 ≤ x und y2 ≤ x. Das bedeutet, sowohl y1 als auch y2 liegen auf dem Pfad P von r nach x. Auf P kommt entweder zuerst y1 und dann y2 , oder zuerst y1 und dann y2 , oder es gilt y1 = y2 . Also wird die Menge {y ∈ V | y ≤ x} tats¨achlich von ≤ linear geordnet. Umgekehrt gilt folgendes. Lemma 80. Das Hasse Diagram einer endlichen semilinearen Ordnung ist ein Baum. Beweis. Sei ≤ eine semilineare Ordnung auf einer endlichen Menge X, und (X, E) der Graph des Hasse Diagrams von ≤. Dann ist (X, E) zusammenh¨angend: denn mit x, y ∈ X 67 gibt es ein z ∈ X mit z ≤ x und z ≤ y. Mit z ≤ x gibt es einen Pfad von z nach x im Hasse Diagram, und ebenso gibt es einen Pfad von z nach y. Also gibt es einen Streckenzug von x und y. Nehmen wir nun an, es g¨abe einen Kreis in (X, E). W¨ahle einen k¨ urzesten Kreis C aus. F¨ ur jede Kante {u, v} ∈ E entweder u ≤ v oder v ≤ u. Also muss es Knoten x, y, z auf dem Kreis C geben mit x ≤ y und z ≤ y. Da ≤ semilinear ist, muss entweder x ≤ z oder z ≤ x gelten. Das widerspricht der Minimalit¨at von C. Wir kommen nun zu einem sehr wichtigen Lemma, das eine Verbindung herstellt zwischen der Existenz von unendlichen Mengen und der Existenz von endlichen Mengen. Sei X eine semilineare Ordnung ohne unendliche absteigende Ketten. Dann ist X endlich verzweigend falls alle Knoten im Hasse Diagram der Ordnung (als Graph betrachtet) endlichen Grad haben. In anderen Worten: f¨ ur alle x ∈ X gibt es endlich viele minimale Elemente in X, die gr¨ oßer sind als x. Lemma 81 (K¨ onig’s Baum Lemma). Sei ≤ eine endlich verzweigende semilineare partielle Ordnung einer abz¨zahlbar unendlichen Menge A ohne unendliche absteigende Ketten, so dass es f¨ ur jedes n ∈ N eine Kette der L¨ ange n gibt. Dann gibt es eine unendliche Kette in A. Beweis. Wir behaupten zun¨ achst, dass A ein kleinstes Element x0 besitzt, mit der Eigenschaft, dass x0 ≤ y f¨ ur alle y ∈ A. Sei dazu y0 ∈ A beliebig. Wenn y0 nicht kleinstes Element ist, gibt es entweder ein y1 ∈ A mit y1 < y0 , oder ein y10 ∈ A, das unvergleichbar ist mit y0 , in welchem Fall es wegen der Eigenschaften von semilinearen Ordnungen ebenfalls ein Element y1 ∈ A mit y1 < y0 geben muss. Wenn auch y1 nicht minimal ist, so k¨onnen wir dieses Verfahren wiederholen. Wir finden dann also entweder eine unendliche absteigende Kette, im Widerspruch zur Annahme. F¨ ur jedes Element aus A \ {x0 } gibt es ein minimales Element aus y ∈ A \ {x0 } so dass y ≤ x0 , denn ansonsten k¨ onnten wir wieder leicht eine unendliche absteigende Kette finden. Da ≤ endlich verzweigend ist, so kann es nur endlich viele minimale Elemente in A \ {x0 }. Da A unendlich ist, gibt es also ein minimales Element x1 ∈ A \ {x0 }, so dass unendlich viele Elemente aus A gr¨oßer sind als x1 . Wir wiederholen dieses Verfahren mit x1 an Stelle von x0 , und A \ {x0 , x1 } and der Stelle von A \ {x0 }, und erhalten auf diese Weise eine unendliche (aufsteigende) Kette x0 , x1 , x2 , . . . Die Annahme in Lemma 81, dass ≤ endlich verzweigend ist, ist notwendig, wie man in Abbildung 13 sieht: das abgebildete Hasse Diagram enth¨alt beliebig lange endliche aufsteigende Pfade, aber keine unendlich langen aufsteigenden Pfade. Wir betrachten nun eine der vielen Anwendungen vom Baumlemma von K¨onig. Es sei (V, E) der Einheitsabstandsgraph auf R2 , i.e., den Graphen mit Knotenmenge V := R2 (wir stellen uns die Knoten als die Punkte der Ebene vor) und Kantenmenge E := (x, y) ∈ V 2 |x − y| = 1 . 68 Abbildung 13: Das Hasse Diagram einer unendlich verzweigenden semilinearen Ordnung. Zwei Punkte sind also durch eine Kante verbunden wenn sie Abstand eins haben. Wie viele Farben brauchen wir, um diesen Graphen zu f¨arben? Wir behaupten, dass wir mindestens vier Farben brauchen. Das folgt ganz leicht aus den folgenden drei Beoachtungen. • Der Graph in Abbildung 14 ist ein Subgraph von (V, E). • Um diesen Subgraphen zu f¨arben, brauchen wir mindestens vier Farben. • Wenn wir bereits f¨ ur einen Subgraphen vier Farben brauchen, dann auch f¨ ur (V, E): und das ist trivial. Abbildung 14: Der Zehn-Knoten Graph mit Einheitskanten von Golomb. Im allgemeinen k¨ onnen wir folgende Beobachtung machen. Korollar 82. Es sei G ein unendlicher Graph dessen endliche Subgraphen allesamt kf¨ arbbar sind. Dann besitzt auch G eine k-F¨ arbung. Beweis. Wir zeigen die Aussage nur f¨ ur abz¨ahlbare Graphen G (sie gilt aber allgemein). Sei v1 , v2 , . . . eine Aufz¨ ahlung von V (G). Es sei Xn die Menge aller Funktionen von {v1 , . . . , vn } 69 S nach {1, . . . , k}. Wir betrachten die folgende Ordnung auf X := n∈N Xn . Setze x ≤ y falls x eine Einschr¨ ankung von y ist. Dann ist ≤ eine semilineare Ordnung. Außerdem ist ≤ endlich verzweigend, da sich f¨ ur jedes x ∈ Xn alle minimalen Elemente u ¨ber x in Xn+1 befinden, und es nur endlich viele Abbildungen von {v1 , . . . , vn+1 } nach {1, . . . , k} gibt. Es gibt also nach K¨ onig’s Baum Lemma eine unendliche Kette x1 , x2 , . . . in X. Definieren f : V (G) → {1, . . . , n} durch f (vi ) := xi (vi ). Dann ist f eine k-F¨arbung von V (G). Die Frage nach der kleinsten Zahl an Farben, die man ben¨otigt, um den Einheitsabstandsgraphen auf R2 zu f¨ arben, ist als das Problem von Hadwiger42 -Nelson43 bekannt. Es ist bekannt, dass man mit sieben Farben auskommt. Allerdings weiss man nicht, ob es auch mit weniger Farben geht. Tats¨ achlich k¨onnten auch vier Farben gen¨ ugen! Ist die Antwort 4, 5, 6 oder 7? 42 Hugo Hadwiger; geboren am 23. Dezember 1908 in Karlsruhe, gestorben am 29. Oktober 1981 in Bern. Edward Nelson; geboren am 4. Mai 1932 in Decatur in Georgia, gestorben am 10. September 2014 in Princeton. 43 70 9 B¨ aume z¨ ahlen Wie viele B¨ aume mit vier Knoten gibt es? Wenn eine solche Frage beantwortet werden soll, muss man zun¨ achst kl¨ aren, was gemeint ist. 9.1 Z¨ ahlen bis auf Isomorphie Definition 83. Zwei Graphen (V1 , E1 ) und (V2 , E2 ) heißen isomorph, wenn es eine Bijektion f : V1 → V2 gibt, so dass f¨ ur alle u, v ∈ V1 gilt {u, v} ∈ E1 ⇔ {f (u), f (v)} ∈ E2 . Es gibt, wie man durch das Aufstellen einer Liste findet, genau 16 verschiedene B¨aume auf der Knotenmenge V := {0, 1, 2, 3}. Davon sind zw¨olf isomorph zu P4 , und vier sind isomorph zu einem sogenannten Stern mit drei Knoten vom Grad eins, und einem Knoten vom Grad drei. Bis auf Isomorphie gibt es also genau zwei B¨aume mit vier Knoten. Die Anzahl der B¨ aume mit n Knoten bis auf Isomorphie zu z¨ahlen, ist ein mathematisch interessantes Problem, das wir aber in dieser Vorlesung nicht l¨osen werden. 9.2 Der Satz von Cayley Wir betrachten hier die Frage, wie viele B¨aume (V, E) mit der Knotenmenge {0, 1, . . . , n−1} es gibt. Wir schreiben t(n) f¨ ur diese Anzahl. Klarerweise ist t eine monotone Funktion, das heißt, t(n) ≤ t(n + 1). F¨ ur n > 2 ist sie sogar streng monoton, das heißt, t(n) < t(n + 1) (warum?). Zun¨ achst berechnen wir t(n) f¨ ur kleine n von Hand. n t(n) 1 1 2 1 3 3 4 16 5 125 Satz 84. F¨ ur alle n ∈ N \ {0} gilt t(n) = nn−2 . Der Satz besagt, dass es gleich viele B¨aume mit den Knotenmenge {0, . . . , n − 1} gibt wie W¨ orter der L¨ ange n − 2 mit den Buchstaben {0, 1, . . . , n − 1}. Ein Beweis kann also gef¨ uhrt werden, indem eine bijektive Abbildung zwischen diesen beiden Mengen angegeben wird. Dazu werden wir eine Vorschrift angeben, die jedem Baum mit Knotenmenge Zn auf eindeutige und umkehrbare Weise ein Wort der L¨ange n − 2 zuordnet, den sogenannten Pr¨ ufercode 44 . 44 Ernst Paul Heinz Pr¨ ufer; geboren am 10. November 1896 in Wilhelmshaven; gestorben am 7. April 1934 in M¨ unster. 71 Pru ufercode ordnet jedem Baum (V, E) mit ¨ fercodes. Sei n ∈ N \ {0, 1} beliebig. Der Pr¨ linear geordneter n-elementiger Knotenmenge V ein Wort der L¨ange n − 2 mit Buchstaben aus V zu, und zwar wie folgt: • Falls n = 2 ist, wird dem Baum das leere Wort (das Wort der L¨ange 0) zugeordnet. • Falls n > 2 ist, sei b das kleinste Blatt des Baums und a0 der zu b adjazente Knoten. Es sei w der Pr¨ ufercode des Baumes (V, E) − b. Dieser Baum ist kleiner, wir nehmen also induktiv an, dass wir w bereits kennen. Dem Baum (V, E) ordnen wir dann den Pr¨ ufercode a0 w zu. Beispiel. Betrachten wir den Baum in Abbildung 15. Das kleinste Blatt ist das mit der Nummer 0. Der dazu adjazente Knoten ist 8. Der Pr¨ ufercode beginnt also mit 8. F¨ ur den n¨achsten Schritt wird das Blatt 0 entfernt. 7 2 0 1 1 4 3 7 2 4 3 8 6 8 6 5 5 Abbildung 15: Ein Beispiel zur Berechnung des Pr¨ ufercodes. Nun ist 2 das kleinste Blatt. Der dazu adjazente Knoten ist 1. Der Pr¨ ufercode beginnt also mit 81. F¨ ur den n¨ achsten Schritt wird das Blatt 2 entfernt, und so weiter. Als Pr¨ ufercode des Baumes aus Abbildung 15 erh¨alt man so 8183144. Die Bl¨ atter des Baumes kommen im Pr¨ ufercode nicht vor. Das ist aufgrund der Konstruktion offensichtlich: im Tupel werden ja nur Knoten notiert, die zu einem Blatt adjazent sind. Solche Knoten k¨ onnen aber f¨ ur n > 2 keine Bl¨atter sein, und f¨ ur n = 2 werden sie nicht notiert. Weil aber jeder Knoten, der im Pr¨ ufercode nicht vorkommt, zu nur einem anderen adjazent sein kann, gilt sogar folgendes. Lemma 85. Die Bl¨ atter des Baums sind genau diejenigen Knoten, die im Pr¨ ufercode nicht vorkommen. 72 Dekodieren. Wie gelangt man nun vom Pr¨ ufercode zur¨ uck zum Baum? Gegeben sei ein Wort a0 a1 . . . an−3 der L¨ ange n − 2 mit Buchstaben aus V , und |V | = n. Dem leeren Wort (im Falle n = 2) ordnen wir den eindeutigen Baum auf den zwei Knoten aus V zu. Im Falle n > 2 bestimmen wir ein Wort b0 b1 . . . bn−3 wie folgt: • b0 sei das kleinste Element von V \ {a0 , a1 , . . . , an−3 }. • F¨ ur i ∈ {0, . . . , n−4}, sei bi+1 das kleinste Element aus V \{b0 , . . . , bi , ai+1 , . . . , an−3 }. Außerdem sei e := V \ {b0 , b1 , . . . , bn−3 }. Der gesuchte Baum hat dann die Kantenmenge E := {a0 , b0 }, . . . , {an−3 , bn−3 }, e . Beispiel. Gegeben sei V := {0, 1, . . . , 8}, n = 9, und a0 a1 . . . an−3 := 8183144. Wir berechnen b0 b1 . . . bn−3 nach der angegebenen Regel. 1. Die kleinste Zahl aus V , die in {a0 , a1 , . . . , an−3 } = {1, 3, 4, 8} nicht vorkommt, ist die 0. Also b0 := 0. 2. Die kleinste Zahl aus V , die in {b0 , a1 , . . . , an−3 } = {0, 1, 3, 4, 8} nicht auftaucht, ist die 2. Also b1 := 2. 3. Die kleinste Zahl aus V , die in {b0 , b1 , a2 , . . . , an−3 } = {0, 1, 2, 3, 4, 8} nicht auftaucht, ist die 5. Also b2 := 5. 4. Die kleinste Zahl aus V , die in {b0 , b1 , b2 , a3 , . . . , an−3 } = {0, 1, 2, 3, 4, 5, 8} nicht auftaucht, ist die 6. Also b3 := 6. 5. Die kleinste Zahl aus V , die in {b0 , b1 , b2 , b3 , a4 , . . . , an−3 } = {0, 1, 2, 4, 5, 6, 8} nicht auftaucht, ist die 3. Also b4 := 3. 6. Die kleinste Zahl aus V , die in {b0 , b1 , b2 , b3 , b4 , a5 , . . . , an−3 } = {0, 2, 4, 5, 6, 8} nicht auftaucht, ist die 1. Also b5 := 1. 7. Die kleinste Zahl aus V , die in {b0 , b1 , b2 , b3 , b4 , b5 , a6 , . . . , an−3 } = {0, 1, 2, 4, 5, 6, 8} nicht auftaucht, ist die 7. Also b6 := 7. Wir erhalten a0 a1 . . . an−3 = 8183144 b0 b1 . . . bn−3 = 0256317 Dann ist V \ {b0 , b1 , . . . , bn−3 } = {4, 8}, und E := {8, 0}, {1, 2}, {8, 5}, {3, 6}, {1, 3}, {4, 1}, {4, 7}, {4, 8} . 73 Satz 86. Es sei V eine linear geordnete n-elementige Menge f¨ ur n ≥ 2. Dann ordnet der Pr¨ ufercode jedem Baum mit Knotenmenge V ein Wort der L¨ ange n − 2 mit Buchstaben aus V zu, und jedes solche Wort ist Pr¨ ufercode genau eines Baumes mit Knotenmenge V . Beweis. Per Induktion u ur den kleinstm¨oglichen Fall, n = 2, ist die Behauptung ¨ber n. F¨ offenbar richtig, sei also nun n > 2. Der erste Teil der Behauptung ist offensichtlich. Zu beweisen ist deshalb nur noch, dass jedes Wort der L¨ange n − 2 der Pr¨ ufercode genau eines Baumes ist. Sei also a0 a1 . . . an−3 ein solches Wort und b0 das kleinste Element der Menge V \ {a0 , a1 , . . . , an−3 }. Nach der Induktionsvorraussetzung ist a1 . . . an−3 Pr¨ ufercode genau eines Baumes T mit der Knotenmenge V \ {b0 }. Die Bl¨atter von T sind nach Lemma 85 genau die Elemente aus V \ {b0 }, die nicht in {a1 , . . . , an−3 } vorkommen, und b0 ist kleiner als all diese Bl¨ atter. Der Baum B, der entsteht, wenn man die Kante {a0 , b0 } zu T hinzuf¨ ugt, hat Pr¨ ufercode a0 a1 . . . an−3 : denn b0 ist klarerweise ein Blatt und kleiner als alle anderen Bl¨atter in B. Zudem ist B der einzige Baum mit dieser Eigenschaft. Wir betrachten dazu ein beliebigen Baum B 0 mit Pr¨ ufercode a0 a1 . . . an−3 . Da b0 nicht in {a0 , a1 , . . . , an−3 } liegt, ist b0 nach Lemma 85 ein Blatt von B 0 . Außerdem war b0 gew¨ahlt als der kleinste Knoten mit dieser Eigenschaft, und ist daher das erste Blatt von B 0 , das bei der Berechnung des Pr¨ ufercodes 0 aus B entfernt wird. Nach Definition des Pr¨ ufercodes muss also b0 mit a0 verbunden sein. Der Baum ohne den Knoten b0 hat den Pr¨ ufercode a1 . . . an−3 und daher gleich T nach Induktionsvorraussetzung. Es folgt dass B 0 = B. Es ist damit auch Satz 84 bewiesen, denn wir haben eine Bijektion konstruiert zwischen den B¨aumen mit einer Knotenmenge V der Gr¨oße n auf der einen Seite, und den W¨orten der L¨ange n − 2 mit Buchstaben aus V auf der anderen Seite. Von solchen W¨ortern gibt es klarerweise nn−2 viele. In Abschnitt 8.6 hatten wir gewurzelte B¨aume kennengelernt: das waren B¨aume im graphentheoretischen Sinn zusammen mit einem ausgezeichneten Knoten, der Wurzel. Es ist eine direkte Konsequenz von Satz 84, dass es nn−1 gewurzelte B¨aume mit Knotenmenge V gibt. 9.3 Die Catalanschen Zahlen Bin¨ arb¨ aume treten in der Informatik sehr h¨aufig auf. Ein Bin¨arbaum ist rekursiv definiert: • die leere Menge ist ein Bin¨ arbaum, und • wenn B1 und B2 Bin¨ arb¨ aume sind, dann ist auch (B1 , B2 ) ein Bin¨arbaum. Es sei B ein Bin¨ arbaum. Dann ist die Gr¨ oße |B| von B ebenfalls rekursiv definiert: der triviale Bin¨ arbaum ∅ hat die Gr¨oße null, und der Bin¨arbaum (B1 , B2 ) hat die Gr¨oße |B1 | + |B2 | + 1. 74 Der Zusammenhang zum Baumbegriff, den wir in dieser Vorlesung bereits kennengelernt haben, liegt auf der Hand: wir k¨ onnen jedem Bin¨arbaum der Gr¨oße n einen gewurzelten Baum mit 2n + 1 Knoten zuordnen, in dem alle Knoten entweder Grad eins, zwei, oder drei haben. Anstatt einer formalen Definition illustrieren wir den einfachen Zusammenhang mit einem Bild, in Abbildung 16. (∅,((∅,∅),(∅,∅))) ∅ ((∅,∅),(∅,∅)) (∅,∅) ∅ (∅,∅) ∅ ∅ ∅ Abbildung 16: Ein Bin¨ arbaum und der entsprechende gewurzelte Baum. Es gibt h¨ ochstens einen Knoten, der Grad zwei haben kann, n¨amlich die Wurzel. Die Wurzel hat genau dann Grad eins und nicht Grad zwei, wenn der Baum aus nur einem Knoten besteht. Umgekehrt k¨onnen wir jedem gewurzelten Baum mit den genannten Einsch¨ ankungen an die Knotengrade auf nat¨ urliche Weise einen Bin¨arbaum zuweisen. Eine Rekursionsgleichung Direkt aus der Definition ergibt sich eine Rekursionsgleichung f¨ ur die Anzahl c(n) aller Bin¨arb¨ aume der Gr¨ oße n ∈ N: c(0) = 1 n X c(n + 1) = c(i)c(n − i) (1) (2) i=0 Auf diese Weise lassen sich die Werte von c(n) relativ schnell berechnen. Wir zeigen die Werte f¨ ur n ∈ {0, . . . , 9}. 75 n c(n) 0 1 1 1 2 2 3 5 4 14 5 42 6 132 7 429 8 1430 9 4862 Es handelt sich hier um die Folge A000108 in OEIS, die so sogenannten Catalanschen Zahlen 45 . B¨ aume zuf¨ allig erzeugen Diese Rekursionsgleichung kann dazu verwendet werden, um einen zuf¨ alligen Bin¨arbaum einer vorgegebenen Gr¨ oße zu erzeugen, so dass alle Bin¨arb¨aume der Gr¨oße n mit gleicher Wahrscheinlichkeit ausgegeben werden. Verfahren zum zuf¨ alligen Erzeugen von kombinatorischen Objekten haben ganz verschiedene Anwendungen. Beispielsweise kann man empirisch die erwartete Laufzeit von Algorithmen auf Bin¨ arb¨ aumen testen. Weiterhin kann man Evidenz gewinnen f¨ ur Vermutungen, die Eigenschaften von gleichverteilt zuf¨alligen Bin¨arb¨aumen betreffen. Dazu erzeugt man f¨ ur ein großes n mehrere zuf¨ allige Objekte dieser Gr¨oße, und pr¨ uft die Eigenschaft auf diesen Objekten nach. Ein gutes Beispiel einer interessanten Eigenschaft von gleichverteilt zuf¨alligen Bin¨ arb¨ aumen ist die erwartete Tiefe eines Bin¨arbaumes der Gr¨oße n. Die Idee, einen Bin¨ arbaum gleichverteilt zuf¨allig zu erzeugen, ist denkbar einfach: wir folgen der rekursiven Definition von Bin¨arb¨aumen. Wenn wir einen Bin¨arbaum der Gr¨oße eins erzeugen m¨ ussen, so ist dieser eindeutig und unsere Aufgabe trivial. Wenn wir einen Bin¨arbaum der Gr¨ oße n mit n + 1 erzeugen m¨ ussen, so muss dieser die Gestalt (B1 , B2 ) haben. Wir wollen dazu rekursiv B1 und B2 zuf¨allig erzeugen. Aber wir haben dazu eine Entscheidung zu treffen: was soll die Gr¨oße i von B1 sein? Die Gr¨oße von B2 ist dadurch festgelegt: sie ist n − i. Es gibt genau c(i)c(n − i) Bin¨ arb¨aume (B1 , B2 ) der Gr¨oße n + 1 in denen |B1 | = i, f¨ ur i ∈ {0, . . . , n}. Der Anteil dieser Bin¨arb¨aume unter der Menge aller Bin¨arb¨aume der Gr¨oße n ist also exakt c(i)c(n − i) . c(n + 1) Und dies ist die Wahrscheinlichkeit, mit der unser Algorithmus sich f¨ ur dieses i entscheidet. Da wir die Catalanschen Zahlen effizient berechnen k¨onnen, lassen sich also auch die ben¨otigten Wahrscheinlichkeiten effizient berechnen. Zur Zusammenfassung finden wir in Abbildung 17 nochmal den gesamten Algorithmus in Pseudocode. Ein geschlossener Ausdruck Noch schneller als mit der obigen Rekursionsgleichung lassen sich die Werte von c(n) mit folgendem Satz berechnen. 2n 1 Satz 87 (Euler 1751). Fur alle n ∈ N gilt c(n) = n+1 n . 45 Eug`ene Charles Catalan; geboren am 30. Mai 1814 in Br¨ ugge; gestorben am 14. Februar 1894. 76 Prozedur BinBaum. Eingabe: n ∈ N. Ausgabe: Gleichverteilt zuf¨allig gew¨ahlter Bin¨arbaum der Gr¨oße n. Falls n = 0 gebe ∅ aus. Falls n > 0, berechne c(1), . . . , c(n). W¨ ahle eine ganze Zahl aus {1, . . . , c(n)} gleichverteilt zuf¨allig. Setze b := 0. Schleife u ¨ber i = 0 bis n − 1: Falls p ∈ {b, . . . , b + c(i)c(n − i − 1)} Gebe (BinBaum(i), BinBaum(n − i − 1)) aus. b := b + c(i)c(n − i − 1). Abbildung 17: Erzeugen von gleichverteilt zuf¨alligen Bin¨arb¨aumen mit der rekursiven Methode. Dieser Satz kann wie der Satz von Cayley durch die Konstruktion einer geeigneten Bijektion bewiesen werden [5]. Diese Bijektion ist auch der Schl¨ ussel zu noch effizienteren Verfahren, um gleichverteilt zuf¨ allige Bin¨arb¨aume zu erzeugen; siehe ebenfalls [5]. Hier werden wir allerdings einen historisch zuerst entdeckten, algebraischen Beweis f¨ ur den Satz 87 angeben. Die Konzepte und Ideen, die in diesem Beweis entwickelt werden, lassen sich auf unz¨ ahlige Weisen varrieren und auf andere Probleme anpassen; wir empfehlen das große Werk von Flajolet und Sedgewick als weiterf¨ uhrende Literatur [4]. Im Beweis dieser Aussage verwenden wir folgende fundamentale Aussage, der die Binomialkoeffizienten Ihren Namen schulden. Satz 88 (Binomischer Lehrsatz). Sei n ∈ N, und x ∈ R beliebig. Dann gilt n X n k x . (1 + x) = k n k=0 Beweis. Um einen Summand xk beim Ausmultiplizieren von (1 + x)n zu erhalten, m¨ ussen n genau k mal das x ausw¨ wir aus den n Faktoren (1 + x) des Produktes (1 + x) a hlen; das n k¨onnen wir auf genau k viele Arten tun. Exponentiation kann man auch auf sinnvolle Art definieren, wenn im Exponent eine rationale Zahl steht. Wenn n ∈ N\{0} und b eine positive reelle Zahl ist, dann gibt es genau eine positive reelle Zahl x mit xn = b; f¨ ur diese Zahl schreiben wir b1/n . Wir definieren p/q 1/q p nun b als (b ) . Gilt der binomische Satz auch, wenn im Exponent eine rationale Zahl steht? Hierzu m¨ ussen wir zun¨ achst die Binomialkoeffizienten verallgemeinern. 77 Definition 89. Es sei z eine rationale (oder gar reelle oder komplexe) Zahl, und k ∈ N. Definiere z z(z − 1)(z − 2) · · · (z − k + 1) := . k k! Insbesondere ist 0r = 1. Hier nun der verallgemeinerte binomische Lehrsatz. F¨ ur den Beweis vertr¨ osten wir Sie auf Vorlesungen in Analysis. Satz 90 (Newton46 ). Sei x ∈ R mit |x| < 1 beliebig, und z ∈ Q. Dann gilt X z z xk . (1 + x) = k k∈N Beweis von Satz 87. F¨ ur ein beliebiges x ∈ R mit 0 < x < 1 betrachten wir folgenden Ausdruck (eine sogenannte Potenzreihe): B(x) := ∞ X c(i)xi n=0 Dann gilt nach Gleichung (1) und Gleichung (2) der Rekursionsgleichung f¨ ur c(n), dass B(x) = 1 + xB(x)2 . Denn hierf¨ ur gen¨ ugt es zu zeigen, dass f¨ ur alle i ∈ N die Koeffizienten von xi in B(x) und im Ausdruck 1 + xB(x)2 gleich sind. • Der Koeffizient von x0 in B(x) ist c(0) = 1, und im Ausdruck 1 + xB(x)2 ist der Koeffizient von x0 ebenfalls 1. P • Der Koeffizient von xn+1 in B(x) ist c(n + 1) = ni=0 c(i)c(n − i). Zum Koeffizienten von xn+1 in 1 + xB(x)2 dagegen tragen alle Produkte zwischen dem Koeffizienten i von ur i ≤ n mit dem Koeffizienten von xn−i in B(x) bei. Also wieder Pn x in B(x) f¨ i=0 c(i)c(n − i). Durch Umstellen erhalten wir xB(x)2 − B(x) + 1 = 0 und durch Aufl¨ osen B(x) = 46 1± √ 1 − 4x . 2x (3) Isaac Newton; geboren am 25. Dezember 1642 in Lincolnshire; gestorben am 20. M¨ arz 1726 in Kensing- ton. 78 √ 1−4x Wenn x gegen Null geht, so geht B(x) gegen eins, aber der Ausdruck 1+ 2x gegen unendlich, also kann das keine L¨ osung f¨ ur B(x) sein. Wir w¨ahlen den Ausdruck mit dem Minuszeichen, und erhalten folgendes. √ 1 − 1 − 4x B(x) = 2x 1 = 1 − (1 − 4x)1/2 (Umschreiben) 2x X 1/2 1 (−4x)n (Newton: Satz 90) 1− = n 2x n∈N X 1/2 (−4)n+1 = xn (Umschreiben) n+1 2 n∈N = X 1 ( 1 − 1)( 1 − 2) · · · ( 1 − n) (−4)n+1 2 2 2 2 · xn (n + 1)! 2 (Definition 89) X 1 · 1 · 3 · · · (2n − 1) 2n xn (n + 1)! (Vereinfachen) n∈N = n∈N 1 2n(2n − 1)(2n − 2) · · · 1 n x n+1 n!n! n∈N X 1 2n = xn n+1 n = X (Umschreiben) (Proposition 2). n∈N 2n 1 Im letzten Ausdruck ist der Koeffizient von xn gleich n+1 ur alle n . Da die Gleichung f¨ x ∈ R mit 0 < |x| < 1 gilt, muss dieser Koeffizient gleich dem Koeffizienten c(n) von xn in 2n 1 B(x) sein; also muss gelten c(n) = n+1 n . Weitere Korrespondenzen Viele verschiedene kombinatorische Objekte mit n Elementen stehen in bijektiver Korrespondenz mit Bin¨ arb¨ aumen der Gr¨oße n. • Ein konvexes m-Eck ist eine Teilmenge T von R2 mit m Punkten p1 , . . . , pm ∈ T (den Ecken von T ), so dass sich alle Punkte aus T darstellen lassen als α1 p1 + · · · + αm pm mit α1 , . . . , αn > 0 und α1 + · · · + αm = 1, aber jede echte Teilmenge von p1 , . . . , pn diese Eigenschaft nicht hat. Jedes konvexe m-Eck mit den Ecken p1 , . . . , pm hat genau c(n) Zerlegungen in Dreiecke mit Ecken aus p1 , . . . , pm . In Abbildung 18 finden sich die c(3) = 5 Zerlegungen eines konvexen F¨ unfecks 79 Abbildung 18: Die f¨ unf m¨oglichen Triangulierungen eines F¨ unfecks. • Es gibt c(n) m¨ ogliche Klammerungen eines Produktes mit n + 1 Faktoren (also mit n Multiplikationen). Beispielsweise gibt es c(3) = 5 solche Klammerungen der Faktoren x1 , . . . , x4 , n¨ amlich (x1 x2 )(x3 x4 ), (x1 (x2 x3 ))x4 , x1 ((x2 x3 )x4 ), ((x1 x2 )x3 )x4 und x1 (x2 (x3 x4 )). Pk P • Es gibt c(n) Folgen a1 , . . . , a2n mit ai ∈ {1, −1} so dass 2n i=1 ai ≥ 0 i=1 ai = 0 und f¨ ur alle k ≤ n. Hier haben wir zum Beispiel f¨ ur n = 3 genau die folgenden f¨ unf Folgen. (1, 1, 1, −1, −1, −1) (1, 1, −1, 1, −1, −1) (1, 1, −1, −1, 1, −1) (1, −1, 1, 1, −1, −1) (1, −1, 1, −1, 1, −1) 9.4 Der Satz von Kirchhoff Ein Spannbaum (zu Deutsch auch Ger¨ ust) eines Graphen (V, E) ist ein Baum (V, F ) mit F ⊆ E. Ein Spannbaum von G ist also ein Baum, der die gleiche Knotenmenge und eine Teilmenge der Kantenmenge von G hat. In Abbildung 19 findet sich ein Beispiel von einem Graph G und einem Spannbaum von G. Offensichtlich hat ein endlicher Graph genau dann einen Spannbaum, wenn er zusammenh¨angend ist. Wir wollen nun untersuchen, wie man die Anzahl der Spannb¨aume f¨ ur einen gegebenen Graphen berechnen kann. Das ist der Gegenstand vom Satz von Kirchhoff47 , auch bekannt als der Matrix-Ger¨ ust-Satz. 47 Gustav Robert Kirchhoff; geboren am 12. M¨ arz 1824 in K¨ onigsberg; gestorben am 17. Oktober 1887 in Berlin. 80 Abbildung 19: Ein Graph und einer seiner Spannb¨aume. Zun¨achst eine wichtige Bemerkung. Ein Graph kann sehr viele Spannb¨aume haben. Der Graph Kn zum Beispiel hat, wie wir wissen, nn−2 Spannb¨aume. Wir k¨onnen im allgemeinen also sicher nicht die Anzahl ermitteln, indem wir der Reihe nach alle Spannb¨aume ausrechnen und mitz¨ ahlen – selbst wenn wir daf¨ ur einen Computer programmieren, wird das f¨ ur wachsende Knotenmenge ganz schnell unpraktikabel. Der Satz von Kirchhoff verwendet auf wundervolle Weise Begriffe aus der linearen Algebra, um dieses Z¨ahlproblem effizient und elegant zu l¨ osen. Definition 91. Die Adjazenzmatrix eines endlichen Graphen ({1, . . . , n}, E) ist die (n × n)-Matrix A := (ai,j )i,j∈{1,...,} mit ai,j := 1 falls {vi , vj } ∈ E, und ai,j := 0 sonst. Zum Beispiel hat der Pfad der L¨ange 0 1 0 0 vier, P4 , die folgende Adjazenzmatrix. 1 0 0 0 1 0 1 0 1 0 1 0 Die Adjazenzmatrix ist symmetrisch, hat Nullen in der Hauptdiagonalen, und die Spalten- und Zeilensummen sind gleich dem jeweiligen Knotengrad. Definition 92. Als Gradmatrix von ({1, . . . , n}, E) bezeichnen wir die Diagonalmatrix D := (di,j )i,j ∈ {1, . . . , n} mit di,j := 1 falls i 6= j und di,j = Grad(vi ) sonst. F¨ ur den Graphen P4 beispielsweise ist 1 0 0 0 die Gradmatrix wie folgt. 0 0 0 2 0 0 0 2 0 0 0 1 Wenn B eine Matrix ist, dann schreiben wir (B)i f¨ ur die Matrix, die aus B entsteht durch Streichen der i-ten Zeile und der i-ten Spalte. 81 Satz 93 (Kirchhoff). F¨ ur n ≥ 2, sei G := ({1, . . . , n}, E) ein Graph, A seine Adjazenzmatrix, D seine Gradmatrix, und i ∈ {1, . . . , n} beliebig. Dann ist die Anzahl der spannenden B¨ aume von G gleich der Determinanten der Matrix (D − A)i . Das ist eine ausgezeichnete Nachricht, denn Determinanten von Matrizen lassen sich schnell ausrechnen. F¨ ur unser Beispiel G = P4 erhalten wir: 1 −1 0 0 2 −1 0 −1 2 −1 0 D−A= 0 −1 2 −1 und (D − A)1 = −1 2 −1 0 −1 1 0 0 −1 1 und det (A − B)1 ) berechnet sich wie folgt 2 · 2 · 1 − (−1)(−1) − (−1) · (−1) · 1 − (0 · (−1)) = 2 · (2 − 1) + 1 · (−1 + 0) = 1. Tats¨achlich hat P4 genau einen Spannbaum. Beweisstrategie Der Beweis argumentiert per Induktion u ¨ber die Anzahl der Kanten. Wir benutzen dazu zwei Konstruktionen, die aus einem Multigraphen einen mit weniger Kanten machen, n¨amlich L¨ oschen beziehungsweise Kontrahieren einer Kante. Das L¨oschen einer Kante haben wir bereits kennengelernt: wenn G ein Graph ist, und {u, v} ∈ E(G), dann ist G−{u, v} der Graph (V (G), E(G) \ {{u, v}}). Kantenkontraktionen werden weiter unten eingef¨ uhrt. Weil es leichter ist, beweisen wir einen etwas allgemeineren Satz. Wir beweisen den Satz nicht nur f¨ ur Graphen, sondern allgemeiner f¨ ur Multigraphen, die nun definiert werden. Multigraphen Wir f¨ uhren den Beweis f¨ ur verallgemeinerte Graphen, in denen es zwischen zwei Knoten mehrere Kanten geben darf. Man spricht dann von Graphen mit Mehrfachkanten oder, synonym, von Multigraphen. Die Graphik in Abbildung 20 zeigt ein Diagramm eines Multigraphen und seine Adjazenz- und Gradmatrix. Auf eine mengensprachliche Definition von Multigraphen verzichten wir hier. Es gen¨ ugt zu sagen, dass Adjazenz- und Gradmatrix eines Multigraphen analog definiert sind wie bei gew¨ohnlichen Graphen, also dass sie insbesondere symmetrisch sind und nat¨ urliche Zahlen als Komponenten haben. 82 4 3 1 2 0 1 1 0 1 0 1 0 1 1 0 2 0 0 2 0 2 0 0 0 0 2 0 0 0 0 4 0 0 0 0 2 Abbildung 20: Ein Multigraph und seine Adjazentmatrix und Gradmatrix. Kantenkontraktion Ist G ein Multigraph und e eine Kante zwischen den Knoten u und v, dann bezeichne G/e den Graphen, der aus G folgendermaßen entsteht: 1. Die Knoten u und v werden entfernt und durch einen neuen Knoten ersetzt. 2. Kanten, die weder u noch v enthalten, bleiben unver¨andert. 3. F¨ ur jede Kante, die in G den Knoten u oder den Knoten v mit einem Knoten w ∈ V (G) \ {u, v} verbindet, enth¨alt der neue Multigraph eine Kante, die w mit dem neuen Knoten verbindet. Weitere Kanten gibt es nicht. Beispiel: In Abbildung 21 findet sich links ein Graph G, und rechts der Multigraph, der aus G durch Kontraktion der Kante {u, v} entsteht. u v Abbildung 21: Ein Beispiel zur Kantenkontraktion. Beachte: 83 • Aus jeder Kante von G, die nicht die Knoten u und v verbindet, entsteht genau eine Kante von G/e, und das sind alle Kanten von G/e. • Ist T ein Spannbaum von G, welcher die Kante e enth¨alt, dann ist T \ {e} ein Spannbaum von G/e. • Umgekehrt ist f¨ ur jeden Spannbaum T von G/e die Menge T ∪ {e} ein Spannbaum von G. • Die Anzahl der Spannb¨ aume von G, die die Kante e enthalten, ist also gleich der Anzahl der Spannb¨ aume von G/e. Mit diesen Beobachtungen erhalten wir folgenden Hilfssatz. Lemma 94. Ist G ein Multigraph und e eine Kante in G von u nach v, so gilt f¨ ur die Anzahl τ (G) der Spannb¨ aume von G: τ (G) = τ (G − e) + τ (G/e) Weil sowohl G − e als auch G/e weniger Kanten haben als G, erm¨oglicht der Hilfssatz die rekursive Bestimmung von τ (G). Beweis des Satzes von Kirchhoff. Hat der Multigraph keine Kanten, so ist D − A die Nullmatrix und damit ist det((D − A)i ) = 0. Ein kantenloser multigraph mit mindestens zwei Knoten hat keine Spannb¨ aume, die Behauptung gilt damit in diesem Fall. Hat der Multigraph G := (V, E) mindestens eine Kante e, so haben wir nach Lemma 94 τ (G) = τ (G − e) + τ (G/e) , und die Multigraphen G − e und G/e haben beide weniger Kanten als G. Wir d¨ urfen also die Induktionsannahme machen, dass der Satz von Kirchhoff f¨ ur sie zutrifft. Wir nehmen nun ohne Beschr¨ ankung der Allgemeinheit an, dass die Kante e die Knoten 1 und 2 verbindet (ansonsten benennen wir die Knoten um, so dass die Annahme gilt). Weiter sei d1 der Grad von Knoten 1, und d2 der Grad von Knoten 2, und d der Grad des Knotens, der bei der Kontraktion von e entsteht. Die Matrix D − A hat folgende Gestalt: d1 a N1 a d2 N2 N1> N2> M Die entsprechende Matrix f¨ ur G − e ist d1 − 1 a+1 N1> dann a + 1 N1 d2 − 1 N2 N2> M 84 und die f¨ ur G/e ist von der Gestalt d N3 N3> M . d2 − 1 N2 Damit gilt nach Induktionsvorraussetzung τ (G − e) = det , N2> M und τ (G/e) = det(M ). Also haben wir, wie behauptet, d2 N2 τ (G) = τ (G − e) + τ (G/e) = det = det((D − A)1 ) . N2> M 85 10 Planare Graphen Ein Polygonzug (oder Streckenzug) ist die Vereinigung von Verbindungsstrecken48 einer Folge von Punkten; in dieser Vorlesung ausschließlich von Punkten aus R2 (der Ebene). Der erste und letzte Punkt in der Folge heissen Endpunkte des Polygonzugs, und das Innere des Polygonzugs ist der Polygonzug ohne die Endpunkte. Definition 95. Ein ebener Graph ist ein Paar (V, E) aus einer Menge V ⊆ R2 von Ecken und einer Menge von Polygonz¨ ugen E, den Kanten, wobei 1. die Kanten aus E jeweils zwei Ecken aus V miteinander verbinden, 2. verschiedene Kanten verschiedene Endpunkte besitzen, 3. und das Innere der Kanten keine Ecken und keine Punkte anderer Kanten enth¨ alt. Jedem ebenen Graph (V, E) ist ein gew¨ohnlicher Graph zugeordnet, n¨amlich der Graph mit Knotenmenge V , der f¨ ur jeden Polygonzug von a nach b in E eine Kante zwischen a und b hat. In diesem Fall nennen wir (V, E) eine Zeichnung, oder Einbettung, des Graphen (in die Ebene). Wir k¨ onnen daher alle Eigenschaften, die wir f¨ ur Graphen definiert haben, wie etwa Zusammenhang, auch f¨ ur ebene Graphen anwenden. Wenn man die zweite Bedingung in der Definition von ebenen Graphen wegl¨asst, und die erste dahingehend ab¨ andert, dass Kanten auch eine Ecke mit sich selbst verbinden darf, so kann man auf diese Weise auch Multigraphen darstellen, und man spricht dann von einem ebenen Multigraphen. Definition 96. Ein Graph heißt planar wenn er eine Zeichnung besitzt. Beispielsweise ist der Graph K4 planar, denn er besitzt eine Zeichnung. Man kann sich auch leicht davon u ¨berzeugen, dass der Graph K5 nicht planar ist – darauf werden wir noch zur¨ uckkommen. 10.1 Die eulersche Polyederformel ¨ F¨ ur eine beliebige Menge M ⊆ R2 definieren wir foldende Aquivalenzrelation R: ein Paar 2 (a, b) ∈ M sei genau dann in R, wenn es einen Polygonzug gibt in M der a und b verbindet. ¨ Die Aquivalenzklassen von R werden die Gebiete von R genannt. Definition 97. Es sei S(V, E) ein ebener Graph. Dann sind die Fl¨achen von (V, E) die Gebiete der Menge R \ e∈E e. 48 Wenn a, b ∈ R2 , dann ist die Verbindungsstrecke von a und b ist die k¨ urzeste Verbindung von a und b, das heißt, die Menge {x ∈ R2 | x = a + λ(b − a), λ ∈ R, 0 ≤ λ ≤ 1}. 86 Beispielsweise hat ein ebener Baum, oder allgemeiner ein ebener Wald, nur eine Fl¨ache. Der Kreis Cn besitzt ebenfalls eine Zeichnung, und jede Zeichnung hat von Cn hat genau zwei Fl¨ achen. Der erste Satz in diesem Kapitel tr¨agt den Namen Polyederformel. Er ist nach einem wichtigen Spezialfall benannt worden, den wir sp¨ater genauer betrachten; wir werden den Satz aber hier ganz allgemein f¨ ur ebene Graphen zeigen. Satz 98 (Eulersche Polyederformel). Es sei (V, E) ein zusammenh¨ angender ebener Graph mit n Ecken, m Kanten, und l Fl¨ achen. Dann gilt n−m+l =2. Beweis. Wir halten n fest, und beweisen die Aussage per Induktion nach m. Falls m ≤ n−1, so zeigt Lemma 44, dass (V, E) ein Baum ist, und m = n − 1 gilt. B¨aume haben genau eine Fl¨ache, also gilt die Polyederformel, denn n − (n − 1) + 1 = 2. Wir betrachen nun den Fall, dass m ≥ n ist. Nach Lemma 44 ist (V, E) nun kein Baum, und muss einen Kreis enthalten. W¨ahle eine Kante e auf diesem Kreis. Es seien f1 und f2 die an diese Kante angrenzenden Fl¨ achen; da wir eine Kante auf einem Kreis gew¨ahlt haben, sind diese beiden Fl¨ achen verschieden49 . Dann hat der ebene Graph (V, E \ {e}) genau eine Kante und eine Fl¨ ache weniger als (V, E). Die Polyederformel gilt also f¨ ur (V, E \ {e}) nach Induktionsvoraussetzung, und damit auch f¨ ur (V, E). 10.2 Triangulierungen Ein ebener Graph (V, E) heißt eine Triangulierung wenn jede Fl¨ache von (V, E) von genau drei Kanten begrenzt wird. Proposition 99. Es sei (V, E) ein Graph mit mindestens drei Ecken. Dann ist (V, E) genau dann eine Triangulierung, wenn (V, E) ein maximaler ebener Graph ist, das bedeutet, dass man kann keine weiteren Kanten zu (V, E) hinzuf¨ ugen kann. Beweis. Wenn jede Fl¨ ache bereits von drei Fl¨achen begrenzt wird, so kann man keine Kante hinzuf¨ ugen: denn jede weitere Kante m¨ usste innerhalb einer Fl¨ache von (V, E) verlaufen, mit den Endpunkten auf dem Rand dieser Fl¨ache; da diese Fl¨ache ein Dreieck ist, waren diese Endpunkte aber schon in (V, E) verbunden, ein Widerspruch zur dritten Forderung in der Definition von ebenen Graphen. Wenn umgekehrt (V, E) ein maximaler ebener Graph ist, dann muss jede Fl¨ache von drei Kanten begrenzt sein: denn ansonsten grenzt die Fl¨ache an mindestens vier Knoten, von denen zwei noch nicht durch eine Kante verbunden sind, und wir k¨onnten eine Kante zwischen diesen beiden Knoten durch diese Fl¨ache zeichnen. Korollar 100. Ein planer Graph mit mit n ≥ 3 Ecken hat h¨ ochstens 3n − 6 Kanten. 49 F¨ ur einen ganz ausf¨ uhrlichen, strengen Beweis w¨ are hier weitere Arbeit notwendig. 87 Beweis. Nach Proposition 99 gen¨ ugt es zu zeigen, dass Triangulierungen maximal 3n − 6 Kanten haben k¨ onnen. In Triangulierungen grenzt jede Fl¨ache an drei Kanten. Jede Kante begrenzt genau zwei verschiedene Fl¨achen. Wenn f die Anzahl der Fl¨achen von (V, E) bezeichnet, und m die Anzahl an Kanten, dann folgt daraus, dass 2m = 3f gilt. Wir ersetzen also f in der Eulerschen Polyederformel durch 2m/3, und erhalten n−m+2m/3 = 2, was ¨ aquivalent ist zu m = 3n − 6. Diese Formel kann man dazu verwenden, um zu zeigen, dass manche Graphen nicht planar sind. Der Graph K5 , zum Beispiel, hat 10 > 3 · 5 − 6 = 9 Kanten, kann also nach Korollar 100 keine Zeichnung besitzen. 10.3 Zeichnungen S Wenn V endlich ist, so ist die Menge e∈E e beschr¨ankt50 , und man sieht leicht, dass es genau eine Fl¨ ache von (V, E) gibt, die unbeschr¨ankt ist. Diese Fl¨ache nennen wir die ¨ außere Fl¨ ache von (V, E). In Situationen, in denen alle Fl¨achen gleichberechtigt sein sollen, kann man kann anstelle von Einbettungen in R2 auch Einbettungen auf die Einheitssph¨ are S 2 betrachten, die wie folgt definiert ist: S 2 := {p ∈ R3 |p| = 1} = {(x, y, z) ∈ R3 | x2 + y 2 + z 2 = 1} . In anderen Worten, S 2 besteht aus alle Punkten im Raum mit Abstand 1 zum Ursprung, dem Punkt (0, 0, 0). Polygonz¨ uge auf S 2 sind Streckenz¨ uge mit verallgemeinerten Strecken, bei denen wir zwei Punkte nicht mit einer Geraden, sondern mit der k¨ urzesten Verbin2 dung in S verbinden. Entsprechend kann man dann auch Einbettungen in S 2 analog zu Einbettungen in R2 definieren. Ein Graph hat genau dann eine Zeichnung in der Ebene, wenn er eine Zeichnung auf S 2 besitzt. Dazu bemerken wir, dass wenn wir einen Punkt aus S 2 entfernen, die resultierende Menge topologisch so aussieht wie R2 . Der Begriff, der diese Intuition formal faßt, ist der Begriff des Homeomorphismus: dies sind Bijektionen ϕ, die in beiden Richtungen stetig sind. Wir wollen und k¨ onnen diese Begriffe in dieser Vorlesung nicht formal definieren, sondern betrachten stattdessen ein Beispiel f¨ ur einen solchen Homeomorphismus π. Der Einfachheit halber nehmen wir an, dass wir den Nordpol (0, 0, 1) aus S entfernen. F¨ ur jeden Punkt p aus S 2 \ {(0, 0, 1)} gibt es genau eine Linie durch (0, 0, 1) und p, und diese Linie schneidet die Ebene, die gegeben ist durch {(x, y, z) ∈ R3 | z = 0}, in genau einem Punkt q. Wir definieren π(p) := q. Die Abbildung π : S 2 \{(0, 0, 1)} → R2 ist eine Bijektion, und hat tats¨ achlich die gew¨ unschte Eigenschaft, dass Einbettungen eines Graphen G in R2 auf Einbettungen von G in S 2 abgebildet werden, und umgekehrt werden Einbettungen von G in S 2 , die den Punkt (0, 0, 1) nicht ber¨ uhren, durch π −1 abgebildet auf Einbettungen von G in R2 . 50 Eine Menge M ⊆ Rn heißt beschr¨ ankt falls es ein s ∈ R gibt, so dass M ⊆ {(x1 , . . . , xn ) ∈ Rn | − s < x1 , . . . , xn < s}. 88 Abbildung 22: Die ersten beiden Zeichnungen sind topologisch isomorph, die letzte Zeichnung nicht. Zwischen Zeichnungen in der Ebene und Zeichnungen auf der Sph¨are gibt es jedoch den Unterschied, dass bei Zeichnungen auf S 2 keine Fl¨ache als ¨außere Fl¨ache ausgezeichnet wird. Topologisch isomorphe Zeichnungen Es gibt unendlich viele Zeichnungen eines Graphen, aber manche Zeichnungen sehen anderen sehr ¨ ahnlich, und das wollen wir in diesem Kapitel und dem n¨achsten genauer fassen. Unser erster Begriff ist ein sehr intuitiver: wir w¨ urden zwei ebene Graphen (V, E) und 0 0 (V , E ) gerne topologisch isomorph nennen, wenn es einen Homeomorphismus ϕ gibt, der V auf V 0 und E auf E 0 abbildet. Allerdings muss dann die ¨außere Fl¨ache von (V, E) auf die a¨ußere Fl¨ ache von (V 0 , E 0 ) abgebildet werden, und diese Einschr¨ankung w¨ unscht man sich im allgemeinen nicht. Wir gehen daher in der folgenden Definition einen Umweg u ¨ber Einbettungen in S 2 . Definition 101. Es seien (V, E) und (V 0 , E 0 ) zwei ebene Graphen. Eine Abbildung σ : V ∪ E → V 0 ∪ E 0 heißt topologischer Isomorphismus falls es einen Homeomorphismus ϕ gibt zwischen S 2 und S 2 so dass σ die Einschr¨ ankung ist von π ◦ ϕ ◦ π −1 auf V ∪ E. In Abbildung 22 finden sich drei Zeichnungen, von denen die ersten beiden topologisch isomorph sind, nicht aber topologisch isomorph sind zur letzten Zeichnung. Kombinatorisch isomorphe Zeichnungen Sei (V1 , E1 ) ein ebener Graph mit den Fl¨achen F1 , und (V2 , E2 ) ein ebener Graph mit den Fl¨achen F2 . Ein kombinatorischer Isomorphismus zwischen (V1 , E1 ) und (V2 , E2 ) ist eine Bijektion α zwischen V1 ∪ E1 ∪ F1 und V2 ∪ E2 ∪ F2 so dass • a und b genau dann durch eine Kante e ∈ E1 verbunden sind, wenn α(a) und α(b) durch α(e) verbunden sind, und 89 • eine Ecke oder Kante x aus (V1 , E1 ) genau dann auf dem Rand einer Fl¨ache F ∈ F1 liegt wenn α(x) auf dem Rand von α(F ) liegt. Falls es einen kombinatorischen Isomorphismus zwischen (V1 , E1 ) und (V2 , E2 ) gibt, so heissen (V1 , E1 ) und (V2 , E2 ) kombinatorisch isomorph. Ein Beispiel von zwei Zeichnungen desselben Graphen, die kombinatorisch nicht isomorph sind, findet sich in Abbildung 23. Auf der anderen Seite sind alle drei Zeichnungen in Abbildung 22 kombinatorisch isomorph. Topologisch isomorphe Zeichnungen sind auch kombinatorisch isomorph; umgekehrt stimmt das nicht, wie Abbildung 22 belegt. Abbildung 23: Zwei Zeichnungen eines Graphen, die kombinatorisch nicht isomorph sind. Satz 102. Jeder kombinatorische Isomorphismus zwischen zwei zweifach zusammenh¨ angenden ebenen Graphen ist bereits ein topologischer Isomorphismus. Satz 103 (Whitney51 ). Alle Zeichnungen eines dreifach zusammenh¨ angenden Graphen sind topologisch (und daher auch kombinatorisch) isomorph. 10.4 Polyeder Polyeder haben in der Mathematik keine einheitliche Definition. Zum Zwecke dieser Vorlesung soll ein Polyeder eine Menge P ⊆ Rn sein, die durch eine endliche Menge linearer Ungleichungen definiert wird; formal, P = {x ∈ Rn | Ax ≤ b} wobei A ∈ Rm×n und b ∈ Rm . Mit dieser Definition sind Polyeder konvexe Mengen: eine Menge M ⊆ Rn heißt konvex wenn f¨ ur alle p, q ∈ M auch die Verbindungsstrecke zwischen p und q in M ist. Wir betrachten nun einen 3-dimensionalen beschr¨ankten Polyeder, P ⊆ R3 . Der Rand eines solchen Polyeders besteht aus Ecken, Kanten, und Fl¨ achen. Die Ecken und Kanten bilden einen Graphen, den wir im Folgenden den Kantengraphen von P nennen wollen. Diese Kantengraphen besitzen im Sinne von Abschnitt 10.3 eine Einbettung in die Sph¨are S2. Satz 104 (Steinitz52 ). Die dreifach zusammenh¨ angenden planaren Graphen sind genau diejenigen Graphen, die als Kantengraphen von drei-dimensionalen Polyedern auftauchen. 51 Hassler Whitney; geboren am 23. M¨ arz 1907 in New York City; gestorben am 10. Mai 1989 in Princeton. Ernst Steinitz; geboren am 13. Juni 1871 in Laurahtte, Oberschlesien; gestorben am 29. September 1928 in Kiel. 52 90 10.5 Der Dualgraph Es seien (V, E) und (V ∗ , E ∗ ) zwei ebene Multigraphen, mit jeweils den Fl¨achen F und F ∗ . Dann ist (V ∗ , E ∗ ) der Dualgraph von (V, E) falls es Bijektionen α : F → V ∗ , β : E → E ∗ , und α : V → F ∗ gibt so dass 1. f¨ ur alle f ∈ F gilt α(f ) ∈ f ; 2. f¨ ur alle e ∈ E gilt |β(e) ∩ G| = |e ∩ β(e)| = |e ∩ G∗ | = 1; 3. f¨ ur alle v ∈ V gilt v ∈ γ(v). Proposition 105. Zu jedem zusammenh¨ angenden ebenen Graphen gibt es einen Dualgraphen. Beweisidee. Sei (V, E) ein ebener, zusammenh¨angender Graph. Wir w¨ahlen zun¨achst aus jeder Fl¨ ache f von (V, E) einen Punkt v aus, und setzen α(f ) = v. Das Bild von f wird die Knotenmenge V ∗ vom Dualgraphen. Wenn zwei Fl¨achen f1 , f2 von (V, E) von der gleichen Kante e begrenzt werden, so verbinden wir α(f1 ) und α(f2 ) durch eine Kante e∗ (was sicher m¨ oglich ist) und setzen β(e) := e∗ . Das Bild von β wird die Kantenmenge E ∗ vom Dualgraphen. Es bleibt nur die Verifikation, dass jede Fl¨ache f ∗ von (V ∗ , E ∗ ) genau einen Knoten v aus V enth¨ alt (hier verwenden wir, dass (V, E) zusammenh¨angend ist). Wir setzen γ(v) = f ∗ . Proposition 106. Sei G ein ebener Graph. Wenn G∗1 und G∗2 beides Dualgraphen von G sind, dann sind G∗1 und G∗2 topologisch isomorph. Wegen Proposition 106 macht es Sinn, von dem Dualgraphen von G zu sprechen. Proposition 107. Wenn G∗ der Dualgraph von G ist, dann ist G der Dualgraph von G∗ . 10.6 Minoren und der Satz von Kuratowski-Wagner Definition 108 (Graph Minor). Es seien G und H Graphen. Wenn H aus G durch L¨ oschen von Kanten und Knoten, und Kontrahieren von Kanten gewonnen werden kann, so nennt man H einen Minor von G, und schreibt H G. Proposition 109. Wenn G ein planarer Graph ist, und H ein Minor von G, dann ist auch H planar. Im folgenden schreiben wir G f¨ ur die Menge aller endlichen Graphen mit Knotenmengen V ⊆ N. Die Graphminorenrelation ist dann eine Relation auf G, sprich, als Teilmenge von G2 . Sicherlich gilt f¨ ur alle G ∈ G dass G G, und wenn G H und H G dann gilt auch G = H. Wenn H G, und H 0 H, dann gilt selbstverst¨andlich H 0 G; sprich, die Minorenrelation ist eine partielle Ordnung von G. 91 Satz 110 (Minorentheorem; Robertson53 und Seymour54 ). Die Minorenrelation auf G ist eine Wohlquasiordnung. Der Beweis dieses Satzes ist sehr kompliziert, und kann in dieser Vorlesung nicht gezeigt werden. Korollar 111. Es gibt endlich viele Graphen H1 , . . . , Hn , so dass ein Graph planar ist genau dann, wenn er keinen der Graphen aus H1 , . . . , Hn enth¨ alt. Beweis. Die Menge P der planaren Graphen in G ist nach Proposition 109 abgeschlossen unter Minoren; in der Terminologie aus Abschnitt 8.5 gilt also ↑P = P. Da die Graphminorenrelation nach dem vorhergehenden Satz eine Wohlquasiordnung ist, so gibt uns Proposition 77 eine endliche Menge B von Graphen mit ↑B = P . Satz 112 (Robertson-Seymour Nummer 13). Es sei H ein Graph. Dann gibt es einen Algorithmus, der f¨ ur einen gegebenen endlichen Graphen G feststellt, ob H ein Minor von G ist. Korollar 113. Es gibt einen effizienten Algorithmus, der von einem gegebenen Graphen feststellt, ob er planar ist. Satz 114 (Kuratowski55 , Wagner56 ). Ein endlicher Graphen G ist genau dann planar, wenn er weder K5 noch K3,3 als Minoren enth¨ alt. 53 Neil Robertson; geboren am 30. November 1938 in Kanada. Paul D. Seymour; geboren am 26. Juli 1950 in Plymouth. 55 Kazimierz Kuratowski; geboren am 2. Februar 1896 in Warschau, Polen; gestorben am 18. Juni 1980 in Warschau. 56 Klaus Wagner; geboren am 31. M¨ arz 1910; gestorben am 6. Februar 2000. 54 92 11 Gerichtete Graphen Ein gerichteter Graph ist ein Paar G = (V, E) wobei • V eine beliebige Menge ist, deren Elemente wir Knoten nennen, und • E ⊆ V 2 eine Menge von Knotenpaaren ist, die wir (gerichtete) Kanten nennen. Mit anderen Worten, ein gerichteter Graph ist eine Menge zusammen mit einer bin¨aren Relation auf dieser Menge. Ist (v, w) eine Kante im gerichteten Graphen (V, E), so nennen wir w einen Nachfolger von v und v einen Vorg¨ anger von w. Ein Knoten v ∈ V ist eine Quelle, wenn er keinen Vorg¨anger hat, und eine Senke, wenn er keinen Nachfolger hat. Ein gerichteter Pfad ist eine Folge v1 , v2 , . . . , vn so dass (vi , vi + 1) ∈ E f¨ ur alle i ∈ {1, . . . , n − 1}. Wir sprechen in diesem Fall auch von einem gerichteten Pfad von v1 nach v2 (in (V, E)), und v2 ist ein Nachfahre von v1 , und v1 ein Vorfahre von v2 . Wir sagen in diesem Fall auch, dass v2 von v1 aus (in (V, E)) erreichbar ist, und schreiben v1 v2 . Ein (gerichteter) Kreis ist in gerichteten Graphen (V, E) eine Folge v0 , . . . , vn−1 von Knoten aus V mit (vi , vi+1 ) ∈ E f¨ ur alle i ∈ Zn . Ein gerichteter Graph ist ein Wald, wenn jeder Knoten h¨ ochstens einen Vorg¨anger hat. W¨alder mit nur einer Quelle heißen B¨ aume (und die Quelle heißt die Wurzel des Baumes). W¨alder sind also disjunkte Vereinigungen von B¨aumen. Wir definieren die Erreichbarkeitsrelation in (V, E) wie folgt: x y gelte genau dann, wenn es in (V, E) einen gerichteten Pfad von x nach y gibt. In der Terminologie von Abschnitt 8.3 ist also der transitive Abschluss der Kantenrelation E. Zwei Knoten u und v sind also genau dann unvergleichbar in dieser Ordnung, wenn u weder Vorfahre noch Nachfahre von v ist. Proposition 115. Die Erreichbarkeitsrelation in einem Graphen G ist eine Quasiordnung. Falls G kreisfrei ist, so ist eine partielle Ordnung. In B¨ aumen ist eine semilineare Ordnung. 11.1 Tiefensuche Tiefensuche ist ein Verfahren, um einen gegebenen ungerichteten oder gerichteten Graphen zu durchsuchen. Die Suche kann bei einem beliebigen Knoten v des Graphen begonnen werden. Das besondere bei der Tiefensuche ist, dass f¨ ur jeden betretenen Knoten zuerst die von diesem Knoten aus erreichbaren Knoten so weit wie m¨oglich erkundet werden, bevor man wieder zur¨ uck geht (‘backtracking’). Das Verfahren ist in Pseudocode in Abbildung 24 dargestellt. Im Verfahren wird jeder Knoten, der betreten wird, markiert. Auf diese Weise weiss man am Ende des Verfahrens, welche Knoten von v aus erreichbar sind, n¨amlich genau die markierten. F¨ ur manche Anwendungen der Tiefensuche werden wir sp¨ater noch mehr Informationen in den Markierungen abspeichern. 93 Tiefensuche(G, v). Eingabe: G = (V, E), v ∈ V . Ausgabe: Markiere alle von v aus in G erreichbaren Knoten. Markiere v. F¨ ur alle Kanten von v zu einem w in G: Falls w noch nicht markiert Tiefensuche(G, w). Abbildung 24: Tiefensuche. Diese simple Idee ist ausgesprochen m¨achtig und n¨ utzlich. Wir werden von einfachen Dingen, die man mit Tiefensuche bewerkstelligen kann, zu immer trickreicheren Anwendungen der Tiefensuche kommen. Jede Tiefensuche definiert gewisse lineare Ordnungen auf der Menge der Knoten V . Dazu starten wir die Tiefensuche in einem beliebigen Knoten. Wann immer die Tiefensuche abbricht, aber noch nicht alle Knoten markiert wurden, starten wir die Tiefensuche in einem noch unmarkierten Knoten neu, solange bis alle Knoten des Graphen markiert sind. Nun betrachten wir die folgenden linearen Ordnungen auf V : • zum einen ist dies die Ordnung, in der die Knoten zum ersten Mal betreten werden. Wir nummerieren die Knotenmenge N bez¨ uglich dieser Ordnung mit 1 bis n = |V | durch, und schreiben s(v) f¨ ur die Nummer von v in dieser Nummerierung. Die Zahl s(v) ∈ {1, . . . , n} heißt auch die Startzeit von v. • zum anderen ist dies die Ordnung, in der die Knoten das letzte Mal betrachtet werden. Erneut nummerieren wir die Knoten gem¨aß dieser Ordnung, und schreiben f (v) f¨ ur die Nummer von v in dieser zweiten Nummerierung. Die Zahl f (v) heißt die Schlusszeit von v. Diese Ordnungen sind f¨ ur einen gegebenen Graphen G selbstverst¨andlich nicht eindeutig, sondern h¨ angen vom Verlauf der Tiefensuche auf G ab. Das oben beschriebene Verfahren (Tiefensuche mit Neustarts bis alle Knoten markiert sind) werden wir vollst¨ andige Tiefensuche nennen. In der vollst¨andigen Tiefensuche markieren wir jeden Knoten sowohl mit s(v) als auch mit f (v). Anhand einer vollst¨ andigen Tiefensuche kann jede Kante (u, v) ∈ E des Graphen in vier verschiedene Typen eingeteilt werden (siehe auch Abbildung 25): 1. Baumkanten. Dies sind die Kanten, entlang derer die Tiefensuche von einem markierten Knoten zu einem neuen unmarkierten Knoten schreitet. Es gilt s(u) < s(v) und f (u) > f (v) . 94 2. Vorw¨ artskanten. Sind die Kanten, die nicht Baumkanten sind, und die einen Knoten des Baumes mit einem seiner Nachfahren verbindet. Es gilt s(u) < s(v) und f (u) > f (v) . 3. R¨ uckw¨ artskanten. Sind die Kanten, die von einem Knoten zu einem seiner Vorfahren im gleichen Baum zeigen. Es gilt s(u) > s(v) und f (u) > f (v) . 4. Querkanten. Alle u ¨brigen Kanten. Diese k¨onnen zwischen verschiedenen B¨aumen des Tiefensuchwaldes verlaufen, oder im gleichen Baum zwischen Knoten, die unvergleichbar sind bez¨ uglich der Erreichbarkeitsrelation im Tiefensuchwald. Es gilt s(u) < s(v) und f (u) < f (v) . Wir bemerken, dass der Graph mit Knotenmenge V und genau den Baumkanten einen Wald bildet, den Tiefensuchwald. Auch dieser Wald ist selbstverst¨andlich im allgemeinen nicht eindeutig, sondern h¨ angt vom Verlauf der Tiefensuche ab. Mit Hilfe dieser Information k¨onnen wir zum Beispiel einfach feststellen, ob ein gegebener Graph einen Kreis enth¨ alt oder kreisfrei ist: ein Graph hat genau dann einen Kreis, wenn er eine R¨ uckw¨ artskante enth¨ alt. 11.2 Starke Zusammenhangskomponenten Sei (V, E) ein gerichteter Graph. Wir definieren x ∼ y falls es in (V, E) einen gerichteten Pfad von x nach y und einen von y nach x gibt. In der obigen Schreibweise gilt also x y ¨ und y x. Die Relation ∼ ist eine Aquivalenzrelation auf V (siehe Abschnitt 8.2). Definition 116. Sei G ein gerichteter Graph. Eine starke Zusammenhangskomponente ¨ (SZ-Komponente) von G ist eine Aquivalenzklassen der oben definierten Relation ∼. Der ¨ Graph heißt stark zusammenh¨ angend, wenn ∼ nur eine Aquivalenzklasse hat. Das bedeutet, G ist genau dann stark zusammenh¨angend, wenn es f¨ ur alle a, b ∈ V einen gerichteten Pfad von a nach b gibt. Entsprechend sind die SZ-Komponenten eines Graphen genau die maximalen stark zusammenh¨angenden Subgraphen von G. Ein paar einfache Beobachtungen. • Wenn G = (V, E) ein gerichteter Graph ist, dann hat der invertierte Graph G−1 := (V, {(v, u) | (u, v) ∈ E}) die gleichen SZ-Komponenten wie G. 95 Abbildung 25: Illustration einer vollst¨andigen Tiefensuche und der verschiedenen Kantentypen. • Jede SZ-Komponente muss enthalten sein in nur einem Baum der Tiefensuche im Tiefensuchwald (denn Kanten aus E, die zwischen verschiedenen B¨aumen im Tiefensuchwald verlaufen, gehen immer in die gleiche Richtung; siehe wieder Abbildung 25). Wie kann man die SZ-Komponenten von G berechnen? Man w¨ unscht sich einen Algorithmus, der die Knoten so mit Zahlen beschriftet, dass zwei Knoten genau dann die gleiche Zahl tragen, wenn sie in der gleichen SZ-Komponente sind. Wir wollen im folgenden einen einfachen und effizienten Algorithmus angeben, der die starken Zusammenhangskomponenten mit einer Laufzeit berechnet, die blos linear ist in der Gr¨oße des Graphen (definiert als die Anzahl der Knoten plus die Anzahl der Kanten). ¨ Uberraschenderweise kommen wir hierf¨ ur mit insgesamt nur zwei Tiefensuchen aus. Das Verfahren ist in Abbildung 26 angegeben, und stammt aus [2]. Die Idee vom eleganten Korrektheitsbeweis dagegen ist von Ingo Wegener57 . Korrektheitsbeweis f¨ ur den Algorithmus. Es wird gezeigt, dass der Algorithmus aus Abbildung 26 genau dann zwei Knoten mit der gleichen Zahl beschriftet, wenn sie in der selben SZ-Komponente liegen. Wir f¨ uhren dazu einen Induktionsbeweis u ¨ber die Anzahl der starken Zusammenhangskomponenten. Falls G stark zusammenh¨angend ist, dann sind alle Knoten im gleichen Baum der zweiten Tiefensuche, und die Antwort des Algorithmus ist korrekt. Ansonsten betrachten wir den ersten Baum B der zweiten Tiefensuche. Die Wurzel dieses Baumes r ist die Wurzel des letzten Baumes L der ersten Tiefensuche. Da es Pfade gibt von r zu allen Knoten von L, liegt ein Knoten v aus L genau dann in der gleichen SZ-Komponente wie r, wenn es einen Pfad von v zu r gibt. Dies ist genau dann der Fall, wenn es einen Pfad von r zu v in G−1 gibt, was wiederum genau dann der Fall ist, wenn v in B liegt. Knoten v ∈ V \ L k¨ onnen von r aus in G−1 nicht erreicht werden, und k¨onnen auch nicht zur gleichen SZ-Komponente geh¨oren wie r. 57 Ingo Wegener; geboren am 4. Dezember 1950 in Bremen; gestorben am 26. November 2008 in Bielefeld. 96 Eingabe: G = (V, E). 0: Weise z den Wert 0 zu. 1: F¨ uhre eine vollst¨ andige Tiefensuche auf G durch. 2: Es sei v der Knoten mit der gr¨oßten Schlusszeit. 3: F¨ uhre eine Tiefensuche auf G−1 aus. Alle Knoten, die von v aus erreichbar sind, liegen in der gleichen SZ-Komponente wie v, und werden mit z beschriftet. Weise z den Wert z + 1 zu. 4: Sei v derjenige in der zweiten Suche unmarkierte Knoten mit der gr¨ oßten Schlusszeit bez¨ uglich der ersten Suche. 5: Fahre mit Schritt 3 fort. Abbildung 26: Berechnung der starken Zusammenhangskomponenten. Wir betrachten nun den Graphen G − B; dieser Graph eine SZ-Komponente weniger als G. Die Knoten von B sind die Knoten, die von der ersten Tiefensuche zuletzt besucht wurden. Also ist die Einschr¨ ankung dieser Tiefensuche auf G − B eine Tiefensuche auf G − B. Die Ausgabe des Algorithmus stimmt daher auf den Knoten V \ B mit der Ausgabe des Algorithmus u uhrt wird. Nach Induktionsvorraussetzung ¨berein, der auf G − B ausgef¨ aber ist der Algorithmus korrekt auf G − B. Die Nummerierung der Knoten, die vom Algorithmus aus Abbildung 26 f¨ ur einen gegebenen gerichteten Graphen G berechnet wird, hat eine weitere interessante Eigenschaft: wenn die Nummer von Knoten v kleiner ist als die von Knoten u, dann kann es keinen Pfad geben in G von v zu u. Eine solche Nummerierung nennen wir auch eine umgekehrte topologische Ordnung. 11.3 Breitensuche Die typische Situation, wo man Breitensuche einsetzt, und nicht Tiefensuche, ist die Suche nach einem k¨ urzesten Pfad von einem gegebenen Knoten s zu einem gegebenen Knoten t in einem gerichteten Graphen. Breitensuche kann auch dazu verwendet werden, um die k¨ urzesten Kreise in einem gegebenen Graphen zu berechnen. Man kann die Breitensuche als Ab¨anderung der Tiefensuche verstehen. Dazu kommen wir auf ein Implementierungsdetail der Tiefensuche. Wie entscheiden wir in der Tiefensuche, welche Kante wir als n¨ achstes betrachten wollen? Dazu kann man einen Stapel verwenden. Immer wenn wir einen neuen Knoten v betreten, werden alle Kanten (v, u) ∈ E in beliebiger Reihenfolge auf den Stapel gelegt. Wenn wir dann entscheiden m¨ ussen, welche Kante wir zun¨ achst betrachten wollen, nehmen wir die oberste Kante vom Stapel (also die, die zuletzt in den Stapel eingef¨ ugt wurde). Auf diese Weise kann man das rekursive 97 100 100 t 1 s 100 100 Abbildung 27: Ein kleines Transportnetzwerk. Program in Abbildung 24 in ein Programm mit einer einzigen Schleife verwandeln, die so oft durchlaufen wird, bis der Stapel leer ist. Nun zur Breitensuche. Wir ersetzen hierzu einfach den Stapel der Tiefensuche durch eine Liste, und anstatt dass wir die oberste Kante w¨ahlen, nehmen wir die unterste (also die, die zuerst in die Liste eingef¨ ugt wurde). Das ist der ganze Unterschied zwischen Breitensuche und Tiefensuche. Die Schw¨ ache der Breitensuche ist der Speicherplatzverbrauch; der linear sein kann in der Anzahl der Kanten. Der Speicherplatzverbrauch der Tiefensuche dagegen ist linear in der Anzahl der Knoten; da es in vielen Graphen viel weniger Knoten als Kanten gibt, ist das sehr viel besser. 11.4 Transportnetze Ein Transportnetz (oft auch Netzwerk ) (V, E, s, t, w) ein ein gerichteter Graph (V, E), in dem es genau eine Quelle gibt, n¨ amlich s, und genau eine Senke, n¨amlich t, zusammen mit einer positiven Gewichtsfunktion w : E → R≥0 . Statt vom ‘Gewicht’ spricht man bei Transportnetzen gern von der Kapazit¨ at einer Kante. Definition 117 (Fl¨ usse). Ein Fluss in einem Transportnetz (V, E, s, t, w) ist eine nichtnegative Kantenbewertung f : E → R≥0 mit der Eigenschaft, dass f¨ ur alle Knoten v ∈ V \ {s, t} die folgende Gleichung gilt: X X f (u, v) = f (v, u) (Was in v reinfließt, fließt auch wieder hinraus.) (u,v)∈E (v,u)∈E Ein Fluss heißt zul¨ assig, wenn f (v, w) ≤ f (v, u) f¨ ur alle (v, u) ∈ E gilt. Wenn f ein Fluss ist, und U eine Teilmenge von V \ {s, t}, dann sieht man durch Aufsummieren u ¨ber 98 die Elemente in U , dass gelten muss X f (u, v) = X f (v, u) . (v,u)∈E,v∈U,u∈U / (u,v)∈E,u∈U,v∈U / Wenn man U = V \ {s, t} w¨ ahlt, erhalt man daraus insbesondere, dass was aus der Quelle herausfließt, in die Senke hineinfließen muss: X X f (u, t) . f (s, u) = (u,t)∈E (s,u)∈E Man gibt diesem Betrag die Abk¨ urzung ||f || und nennt ||f || die St¨ arke des Flusses f . Partitioniert man die Knotenmenge V in beliebiger Weise in zwei Mengen M, N , von denen die eine die Quelle und die andere die Senke enth¨alt, also V = M ∪ N, M ∩ N = ∅, dann erh¨ alt man die Flussst¨ arke auch wie folgt: X ||f || = f (v, u) − (v,u)∈E,v∈M,u∈N s ∈ M, t ∈ N X f (u, v) (4) (u,v)∈E,v∈M,u∈N In Worten: was von M nach N fließt und nicht zur¨ uck, ist genau so viel, wie von der Quelle zur Senke fließt. Min-Cut Max-Flow Definition 118 (Schnitte). Ein Schnitt in einem Netzwerk ist eine Menge S ⊆ E mit der Eigenschaft, dass es im gerichteten Graphen (V, E \ S) keinen gerichteten Weg von s nach t gibt. Anders formuliert ist ein Schnitt eine Kantenmenge, die aus jedem gerichteten Weg von der Quelle zur Senke mindestens eine Kante enth¨alt. Die Kapazit¨ at eines Schnittes S ist definiert als X w(S) := w(e) . e∈S Lemma 119. Ist S ein Schnitt des endlichen Transportnetzwerks (V, E, s, t, w) und f ein zul¨ assiger Fluss, dann gilt ||f || ≤ w(S). Satz 120 (Ford58 und Fulkerson59 ; Max Flow = Min Cut). Es sei (V, E, s, t, w) ein endliches Transportnetz. Dann gilt max f zul¨ assiger Fluss ||f || = 58 min w(S) S Schnitt Lester Randolph Ford junior; geboren am 23. September 1927 in Houston. Delbert Ray Fulkerson; geboren am 14. August 1924 in Tamms, Illinois. Gestorben am 10. Januar 1976 in Ithaca, New York. 59 99 In Worten: der gr¨ oßte zul¨ assige Fluss ist genau so groß wie die Kapazit¨ at des kleinsten Schnitts. Zum Beweis dieses Satzes stellen wir eine Methode vor, die ebenfalls nach Ford und Fulkerson benannt ist, und die zu einem gegebenen Netzwerk einen zul¨assigen Fluss f und einen Schnitt S der Kapazit¨ at w(S) = ||f || konstruiert. Nach dem Hilfssatz muss dieser Fluss maximal stark und der Schnitt von minimaler Kapazit¨at sein. Der Satz ist damit also bewiesen. Flussverbesserung Unser Algorithmus leistet bei einem Durchlauf folgendes: ausgehend von einem zul¨assigen Fluss im gegebenen Netzwerk konstruiert der Algorithmus einen st¨arkeren zul¨assigen Fluss, oder einen Schnitt, dessen Kapazit¨at gleich der St¨arke des gegebenen Flusses ist. Sind die auftretenden Gewichte und Flussst¨arken ganzzahlig, dann ist auch die Verbesserung ganzzahlig. Damit kann man zeigen, dass der Algorithmus irgendwann (nach endlich vielen Durchl¨ aufen) den Fluss nicht mehr verbessern kann und deshalb einen minimalen Schnitt gefunden haben muss. Dazu werden die Knoten des Netzwerks, ausgehend von der Quelle, nach bestimmten Regeln nacheinander markiert. Erreicht man dabei die Senke, kann der vorliegende Fluss verbessert werden, wenn nicht, wird der gesuchte Schnitt gefunden. Eine Marke ist ein Paar, in dem eine anliegende Kante notiert ist, sowie die m¨ogliche Flussverbesserung. Zu Beginn, bei der Quelle, gibt es allerdings keinen Vorg¨angerknoten, und die Verbesserung ist noch potentiell unbegrenzt. Gegeben sei nun also ein endliches Transportnetz (V, E, s, t, w). 1. Markiere die Quelle q mit der Marke (−, ∞). 2. Sobald die Senke s markiert wurde, stoppe. Solange die Senke nicht markiert ist, wiederhole die Schritte (3) und (4), bis weder (3) noch (4) zu einer weiteren Marke f¨ uhren. 3. Falls es eine Kante (a, b) ∈ E gibt, so dass a die Marke (x, δ) tr¨agt, b unmarkiert ist, und w(a, b)−f (a, b) > 0 ist, markiere b mit der Marke ((a, b), min(δ, w(a, b)−f (a, b)). 4. Falls es eine Kante (a, b) ∈ E gibt, so dass b die Marke (b0 , δ) tr¨agt, a unmarkiert ist, und f (a, b) > 0 ist, markiere a mit der Marke ((a, b), min(δ, f (a, b)). Die Idee von Schritt (4) ist, dass wir auch untersuchen m¨ ussen, ob es Kanten gibt, bei denen der Fluss ‘in die falsche Richtung’ fließt, das heißt, von einem nicht markierten Knoten zu einem markierten. In solchen F¨allen wird ein solcher R¨ uckfluss verringert. Dazu betrachten wir das Beispiel in Abbildung 28. Dort finden wir ein kleines Netzwerk, mit einem Fluss der St¨ arke 1 in rot eingezeichnet. Es gibt keinen Pfad, der entlang von 100 u 1 1 11 1 t s 1 1 1 v Abbildung 28: Ein Beispiel zur Frage: Warum durchlaufen wir Kanten bei der Suche nach einer Flussverbesserung manchmal r¨ uckw¨arts? Kanten u uhrt. Aber trotzdem ¨ber nicht voll ausgelastete Kanten von der Quelle zur Senke f¨ ist der Fluss nicht maximal, denn wenn man den Fluss u ¨ber die Kante (u, v) um 1 verringert, kann man ihn auf den Kanten (s, u) und (v, t) um 1 vergr¨oßern. Falls der Markierungsalgorithmus die Senke erreicht. Falls bei der Ausf¨ uhrung des Markierungsalgorithmus ein Knoten v markiert wird, so gibt es eine Folge s = v0 , v1 , . . . , vr = v mit der Eigenschaft, dass f¨ ur all i ∈ {0, . . . , r−1} einer der beiden Folgenden F¨alle eintritt: • vi+1 ist mit ((vi , vi+1 ), δ(vi+1 )) markiert und der Fluss durch die Kante (vi , vi+1 ) ist um mindestens δ(v) kleiner als die Kapazit¨at dieser Kante, oder • vi+1 ist mit ((vi+1 , vi ), δ(vi+1 )) markiert und der Fluss durch die Kante (vi+1 , vi ) ist mindestens δ(v). Eine solche Folge nennen wir augmentierenden Pfad der St¨arke δ(v). (Dass wir den gleichen Ausdruck bereits im Zusammenhang von Paarungen verwendet haben, ist Absicht; der Zusammenhang wird in Abschnitt 11.6 besprochen.) Um diese Folge zu finden, durchl¨auft man die Kante (vr−1 , vr ) der Markierung von t = vr . Der Knoten vr−1 muss wieder markiert sein, und wir durchlaufen wieder die Kante, die in der Markierung von vr−1 abgespeichert ist (diese Kante wird vorw¨arts oder r¨ uckw¨arts durchlaufen). Wir fahren so fort, bis wir irgendwann die Quelle s erreichen, und haben somit den gew¨ unschten Pfad gefunden. Die Eigenschaften, die wir oben f¨ ur δ bez¨ uglich des Flusses und der Kapazit¨ aten formuliert haben, beweist man per Induktion u ¨ber die Anzahl der Schritte im Algorithmus. Falls der Markierungsalgorithmus die Senke nicht erreicht. Wenn der Markierungsalgorithmus die Senke nicht erreicht, dann beginnt jeder gerichtete Weg von der Quelle zur Senke mit einem markierten Knoten (n¨amlich q) und endet mit einem unmarkierten 101 (n¨amlich s). Deshalb enth¨ alt jeder solche Weg eine Kante, die von einem markierten Knoten zu einem unmarkierten f¨ uhrt. Sei nun M die Menge der markierten Knoten, und N die Menge der nicht markierten. Dann ist nach obiger Beobachtung die Menge S := E ∩ (M × N ) ein Schnitt. Ist (v, w) eine Kante aus S, dann muss, weil Schritt (3) des Markierungsalgorithmus nicht ausgef¨ uhrt werden konnte, w(v, w) = f (v, w) gelten. Daraus erhalten wir X f (v, w) . (5) w(S) = (u,w)∈S Der Schnitt S ist also ‘voll ausgelastet’. Aber Vorsicht: Das bedeutet nicht zwingend, dass der betrachtete Fluss bereits maximal ist! Wir verweisen dazu wieder auf das Beispiel in Abbildung 28. Hier gibt es einen voll ausgelasteten Schnitt der Kapazit¨ at 2, n¨amlich {(u, t), (s, v)}, obwohl der in rot eingezeichnete Fluss nicht maximal ist. Die Kanten, die von Knoten aus N zu Knoten auf M f¨ uhren, werden vom Markierungsalgorithmus in Schritt (4) angesprochen. Der Algorithmus stoppt nur, wenn all diese Kanten den Fluss f (u, w) = 0 haben. Also X 0= f (v, w) . (6) (w,v)∈E,v∈M,w∈N Nun k¨ onnen wir die Gr¨ oße des Flusses berechnen. X X ||f || = f (v, w) − f (w, v) (v,w)∈E,v∈M,w∈N (Gleichung (4)) (w,v)∈E,v∈M,w∈N = w(S) − 0 (Gleichungen (5), (6)) Wenn die Kapazit¨ aten alle ganzzahlig sind, so ist die berechnete Flussverbesserung im Markierungsalgeborithmus auch ganzzahlig. Der Algorithmus terminiert also nach einer endlichen Anzahl von Schritten. Damit haben wir gezeigt, dass die Kapazit¨at von S gleich der St¨arke von f ist; also ist f gr¨oßtm¨oglich und Satz 120 bewiesen. Eine ausf¨ uhrliche Darstellung der Thematik findet sich zum Beispiel in [2]. Allerdings ist dieses Verfahren zur Berechnung eines st¨arksten Flusses ist nicht effizient. Das sieht man bereits am Beispiel aus Abbildung 27: denn wenn wir Pech haben, erhalten wir in jeder Runde mit dem Markierungsalgorithmus eine Ver¨anderung des Flusses der mittleren Kante, mit δ(t) = 1. In dem Fall ben¨otigen wir zur Berechnung des gr¨oßtm¨oglichen Flusses 200 Durchl¨ aufe des Markierungsalgorithmus. Und wenn die Kapazit¨aten irrational sein d¨ urfen, so kann es sogar passieren, dass das Verfahren u ¨berhaupt nicht terminiert! Oder dass es gegen einen Fluss konvergiert, dessen St¨arke gar nicht maximal ist. 102 11.5 Algorithmus von Edmonds-Karp Die Idee, um aus der Methode von Ford-Fulkerson einen effizienten Algorithmus zu gewinnen, besteht darin, den Fluss stets entlang von k¨ urzesten augmentierenden Pfaden zu verbessern. Die L¨ ange eines Pfades ist hier die Anzahl der Kanten auf dem Pfad – wir beachten also die Gewichte der Kanten hierbei nicht. Der Algorithmus wurde (in einer schnelleren Variante) zuerst von Dinitz60 publiziert, blieb aber im Westen unbekannt, bis ihn Edmonds61 und Karp62 1972 wiederentdeckten, in der Variante, die wir hier vorstellen. Definition 121. Sei (V, E, s, t, w) ein Transportnetzwerk, und f ein zul¨ assiger Fluss. Der Residualgraph Gf ist der gerichtete Graph mit Knotenmenge V und den nicht voll ausgelasteten Kanten in E, den Vorw¨artskanten, erg¨ anzt um R¨ uckkanten, das sind Kanten (v, u) so dass (u, v) ∈ E und f (e) > 0. Bei der Methode von Ford-Fulkerson berechnen wir eine Flussverbesserung, indem wir einen gerichteten Pfad von s nach t in Gf berechnen. Im Algorithmus von EdmondsKarp w¨ ahlen wir hier einen k¨ urzesten Pfad; einen solchen k¨onnen wir mit Breitensuche (Abschnitt 11.3) berechnen. F¨ ur u, v ∈ V schreiben wir distf (u, v) f¨ ur die L¨ange (wir z¨ahlen die Anzahl der Kanten) des k¨ urzesten Pfades von u nach v in Gf . Lemma 122. Sei (V, E, s, t, w) ein Transportnetzwerk, f ein zul¨ assiger Fluss, und f 0 ein Fluss nach einer Flussverbesserung im Algorithmus von Edmonds Karp. Dann gilt f¨ ur alle v ∈ V \ {s, t} dass distf 0 (s, v) ≥ distf (s, v). Beweis. Angenommen, es g¨ abe einen Knoten v ∈ V \ {s, t} mit distf 0 (s, v) < distf (s, v). Wir w¨ahlen v aus allen Knoten mit dieser Eigenschaft so, dass distf 0 (s, v) minimal ist. Betrachte einen k¨ urzesten Pfad p0 von s zu v in Gf 0 , und es sei (u, v) die letzte Kante auf diesem Pfad. Dann gilt distf 0 (s, v) = distf 0 (s, u) + 1 da p0 k¨ urzest m¨oglich. Wegen der Wahl von v gilt allerdings dass distf 0 (s, u) ≥ distf (s, u). Daher kann (u, v) keine Vorw¨artskante in Gf gewesen sein, denn ansonsten w¨are distf (s, v) ≤ distf (s, u) + 1 ≤ distf 0 (s, u) + 1 = distf (s, v) im Widerspruch zur Annahme. Also muss der augmentierende Pfad p in Gf , der verwendet wurde, um den Fluss f 0 zu bilden, die Kante (u, v) als R¨ uckw¨artskante enthalten. Dann 60 Yefim A. Dinitz. Jack R. Edmonds; geboren am 5. April 1934. 62 Richard Manning Karp; geboren am 3. Januar 1935 in Boston. 61 103 aber gilt distf (s, v) = distf (s, u) − 1 ≤ distf 0 (s, u) − 1 = distf (s, v) − 2 < distf 0 (s, v) ebenfalls im Widerspruch zur Annahme. Proposition 123. Der Algorithmus von Edmonds-Karp f¨ uhrt auf einem Transportnetzwerk (V, E, s, t, w) h¨ ochstens |V | · |E| viele Flussverbesserungen durch. Beweis. Es sei f ein Fluss und p ein augmentierender Pfad der St¨arke δ. Eine Kante (u, v) in einem Residualnetzwerk Gf heißt kritisch auf p falls entweder (u, v) eine Vorw¨artskante in Gf ist und c(u, v) = f (u, v)+δ gilt, oder (u, v) eine R¨ uckw¨artskante in Gf ist, und f (v, u) = δ gilt. Das bedeutet, dass nach der Flussverbesserung die Kante (u, v) verschwindet. Auf jedem augmentierenden Pfad ist mindestens eine Kante kritisch. Wir betrachten nun (u, v) ∈ E, und fragen uns, wie oft (u, v) w¨ahrend der Ausf¨ uhrung des Algorithmus kritisch sein kann. Wenn (u, v) zum ersten Mal kritisch wird, haben wir distf (s, v) = distf (s, u) + 1, da wir bei Edmonds-Karp einen k¨ urzesten augmentierenden Pfad w¨ahlen. Die Kante (u, v) verschwindet dann im Residualnetzwerk, und kann nur dann wieder auftauchen, falls die Kante (v, u) als R¨ uckw¨artskante in einem augmentierenden Pfad ausgew¨ ahlt wird. Es sei f 0 der Fluss, den wir mit diesem augmentierenden Pfad berechnen. Dann haben wir distf 0 (s, u) = distf 0 (s, v) + 1 ≥ distf (s, v) + 1 (Lemma 122) = distf (s, u) + 2 Da distf 0 (s, u) h¨ ochstens |V | betragen kann, kann diese Situation h¨ochstens |V | mal eintreten. Daher kann (u, v) h¨ ochstens |V | mal kritisch werden. Da es h¨ochstens |E| Kanten gibt, werden maximal |E||V | Flussverbesserungen durchgef¨ uhrt. Jede Iteration der Methode von Ford-Fulkerson kann mit Hilfe von Breitensuche so implementiert werden, dass die Laufzeit linear ist in der Anzahl der Kanten. Die gesamte Laufzeit des Algorithmus von Edmonds-Karp ist dann also linear in |V | · |E|2 . 11.6 Nochmal Paarungen Viele Argumente im Kapitel zu Fl¨ ussen f¨ uhlen sich ¨ahlich an wie Argumente, die wir beim Studium von Paarungen kennengelernt haben. Das ist kein Zufall. Es gibt hier viele Querbez¨ uge. Den Satz von K¨ onig (Satz 60) beispielsweise kann man mit dem Min-Cut Max-Flow Satz beweisen. 104 Der Satz von K¨ onig besagt, dass in einem bipartiten Graphen G die Gr¨oße einer gr¨oßtm¨ oglichen Paarung gleich der Gr¨oße einer kleinstm¨oglichen Kanten¨ uberdeckung von G ist. ¨ Ubersetzung in ein Flussproblem. Man verwandelt den gegebenen bipartiten Graphen G in ein Transportnetz. Zun¨achst werden die Kanten orientiert: wenn A, B eine Bipartition von G ist, dann werden Kanten {u, v} mit u ∈ A und v ∈ B zu gerichteten Kanten (u, v). Diese Kanten erhalten die Kapazit¨at |V | + 1. Dann f¨ ugt man eine Quelle s und eine Senke t hinzu, und verbindet s u ¨ber eine gerichtete Kante mit Kapazit¨at 1 mit allen Knoten in A, und alle Knoten in B u ¨ber eine gerichtete Kante mit t. Wir bezeichnen das resultierende Transportnetzwerk mit (V, E, s, t, w). Von Flu ¨ ssen zu Paarungen und Andersrum. Wir berechnen nun mit dem Verfahren aus Abschnitt 11.4 einen gr¨oßtm¨oglichen Fluss im oben beschriebenen Transportnetzwerk. Weil der Markierungsalgorithmus bei ganzzahligen Kapazit¨aten auch ganzzahlige Fl¨ usse liefert, so fließt zu jedem Knoten aus A entweder ein Fluss der St¨arke eins oder null. Entsprechend kann auch zu jedem Knoten aus B nur ein Fluss der St¨arke eins oder null, und die Kanten (u, v) zwischen A und B mit f (u, v) = 1 teilen sich keine Knoten. Also ist die entsprechende Menge an Kanten {u, v} in G eine Paarung in G. Die Anzahl der Kanten in diesem Matching ist gleich der St¨arke des Flusses. Umgekehrt erh¨alt man aus jedem Matching einen Fluss der entsprechenden St¨arke. Wir k¨onnen also insbesondere Algorithmen zur Berechnung von st¨ arsten Fl¨ ussen zur Berechnung von gr¨oßtm¨oglichen Paarungen verwenden. Von Schnitten zu Knotenu ¨ berdeckungen und Andersrum. Alle Knoten der Gestalt (s, u) mit u ∈ A bilden einen Schnitt S in (V, E, s, t, w); also gilt |S| ≤ |V |. Daraus folgt, dass jeder Schnitt minimaler Kapazit¨at keine Kante von A nach B verwenden darf, denn jede solche Kante hat die Kapazit¨at |V | + 1. Ein minimaler Schnitt besteht also nur aus Kanten, die in der Quelle starten oder in der Senke enden. Setze f¨ ur eine Menge C von solchen Kanten X := {v ∈ V | (s, v) ∈ C} Y := {u ∈ U | (u, t) ∈ C} . Dann ist C genau dann ein Schnitt in (V, E, s, t, w), wenn es keine Kante von X nach Y ¨ gibt, also wenn X ∪ Y eine Knoten¨ uberdeckung von G ist. Die Gr¨oße dieser Uberdeckung ¨ ist gleich der Kapazit¨ at des Schnittes. Also ist die Gr¨oße der kleinsten Uberdeckung von G gleich der Gr¨ oße eines minimalen Schnittes in (V, E, s, t, w). Wegen dem Max-Cut Min-Flow Satzes ist die Gr¨oße des kleinsten Schnittes gleich der Gr¨oße des gr¨ oßtm¨ oglichen Flusses, und die wiederum, wie wir oben gesehen haben, gleich der gr¨oßtm¨ oglichen Paarung in G. Wir haben also den Satz von K¨onig (ein weiteres Mal) bewiesen. 105 12 Boolsche Funktionen und Aussagenlogik 12.1 Boolsche Funktionen Eine n-stellige Operation (auch n-stellige Verkn¨ upfung genannt) auf einer Tr¨ agermenge A n ist eine Abbildung f : A → A die jedem n-Tupel (a1 , . . . , an ) von Elementen aus A (den Argumenten von f ) ein Element aus A zuordnet. Die Anzahl der n-stelligen Operationen n n auf A ist |A||A| . Im Fall, dass A zweielementig ist, gibt es also 22 n-stellige Operationen auf A. Man spricht in diesem Fall auch von boolschen Funktionen63 . Es ist unwichtig, welche zweielementige Tr¨ agermenge betrachtet wird. G¨angige Bezeichnungen sind A = {W, F } (f¨ ur wahr und falsch), A = {T, F } (f¨ ur englisch true und false), A = {⊥, >} und A = {0, 1}. Die Entsprechungen sind: W, T, >, 1 zum einen, und F, F, ⊥, 0 zum anderen. Triviale Operationen Konstante Operationen sind solche, f¨ ur die es ein Element c ∈ A gibt mit f (a1 , . . . , an ) = c f¨ ur alle a1 , . . . , an ∈ A. Man bezeichnet sie oft einfach mit dem Namen der Konstanten c und l¨ aßt die Angabe ihrer Stelligkeit weg. Dazu geh¨oren alle nullstelligen Operationen. Ebenfalls uninteressant sind die Projektionen pni , die jedem n-Tupel seine i-te Komponente zuordnen, also pni (a1 , . . . , an ) := ai f¨ ur alle a1 , . . . , an ∈ A. Wir haben bereits eine boolsche Funktion kennengelernt, n¨amlich die Addition in der zweielementigen Gruppe Z2 . Was ist mit den anderen, und wie verhalten sich die Operationen zueinander? Wir wissen bereits, dass es auf der Menge {0, 1} genau 2 nullstellige, 4 einstellige, und 16 zweistellige Operationen gibt. Die beiden nullstelligen, und zwei der einstelligen sind konstant. Es gibt eine einstellige Projektion, das ist die Identit¨atsfunktion. Es bleibt also nur noch eine weitere einstellige Operation, und das ist die Operation x 7→ 1−x. Diese Operation wird oft mit ¬ bezeichnet, und Nicht-Funktion genannt. Und und Oder Unter den zweistelligen boolschen Operationen werden wir zwei ganz besonders betrachten, und das ist die Und-Funktion ∧ (auch Konjunktion) und die Oder-Funktion ∨ (auch Disjunktion). Die Verk¨ upfungstafeln dieser beiden Funktionen finden sich in Abbildung 29. Es ist u blich, den Ausdruck x ∧ y anstatt der Funktionsschreibweise ∧(x, y) zu verwen¨ den. Diese Notation nennt man Infix-Notation. Analog schreiben wir x ∨ y anstatt ∨(x, y), und ¬x anstatt ¬(x). Wir stellen fest: Konjunktion und Disjunktion sind • idempotent, denn x ∧ x = x ∨ x = x f¨ ur alle x ∈ {0, 1}; • kommutativ, denn x ∧ y = y ∧ x und x ∨ y = y ∨ x f¨ ur alle x, y ∈ {0, 1}; 63 George Boole; geboren am 2. November 1815 in Lincoln, England; gestorben am 8. Dezember 1864 in Ballintemple, Irland. 106 ∧ 0 1 0 0 0 ∨ 0 1 1 0 1 0 0 1 1 1 1 Abbildung 29: Die Verkn¨ upfungstafeln der Und-Funktion ∧ und der Oder-Funktion ∨. • assoziativ, denn es gilt x ∧ (y ∧ z) = (x ∧ y) ∧ z und x ∨ (y ∨ z) = (x ∨ y) ∨ z und f¨ ur alle x, y, z ∈ {0, 1}; • Konjunktion ist distributiv u ¨ber Disjunktion, denn es gilt x ∧ (y ∨ z) = (x ∧ y) ∨ (x ∧ z) f¨ ur alle x, y, z ∈ {0, 1}. • Disjunktion ist distributiv u ur ¨ber Konjunktion, denn x ∨ (y ∧ z) = (x ∨ y) ∧ (x ∨ z) f¨ alle x, y, z ∈ {0, 1}. Der Leser sei an der Stelle aufgefordert, zum Abschnitt 1.3 zur¨ uckzubl¨attern. Wegen der Assoziativit¨ at der Konjunktion k¨onnen wir bei Ausdr¨ ucken der Gestalt x1 ∧ (x1 ∧ (· · · ∧ (xn−1 ∧ xn ) . . . )) auf die Klammerung verzichten (weil die Klammerung auf das Ergebnis keinen Einfluss hat), und schreiben dann auch oft abk¨ urzend ^ xi . i∈{1,...,n} Falls n = 0, also f¨ ur die ‘leere Konjunktion’, soll dieser Ausdruck auch definiert sein, und zwar als 1. Analog definieren wir _ xi . i∈{1,...,n} Falls n = 0, also f¨ ur die ‘leere Disjunktion’, soll dieser Ausdruck auch definiert sein, und zwar als 0. Bei Ausdr¨ ucken mit ∧ und ∨ spielt die Klammerung dagegen sehr wohl eine Rolle. Allerdings werden auch hier oft die Klammern weggelassen, da folgende Konvention gilt: ∧ bindet st¨ arker als ∨. Das bedeutet, das der Ausdruck x ∧ y ∨ z zu lesen ist als (x ∧ y) ∨ z, und nicht als x ∧ (y ∨ z). Weiterhin gilt, dass sich die Oder-Funktion durch Komposition mit Hilfe der UndFunktion und der Nicht-Funktion darstellen l¨aßt, denn es gilt f¨ ur alle x, y ∈ {0, 1} dass x ∧ y = ¬(¬x ∨ ¬y) . Umgekehrt l¨ aßt sich aus der Oder-Funktion und der Nicht-Funktion auch die Und-Funktion gewinnen, denn es gilt f¨ ur alle x, y ∈ {0, 1} dass x ∨ y = ¬(¬x ∧ ¬y). Wir sagen daher auch, dass sich Und und Oder dual zueinander verhalten. 107 Proposition 124. Alle boolschen Operationen lassen sich durch Komposition mit Hilfe der Nicht-Funktion und der Und-Funktion darstellen. Beweis. Es sei f : An → A eine n-stellige boolsche Funktion. Dann gilt f¨ ur alle a1 , . . . , an dass _ ^ ^ f (a1 , . . . , an ) = ai ∧ ¬ai . b1 ,...,bn ∈{0,1},f (b1 ,...,bn )=1 ai =bi ai 6=bi Zuletzt k¨ onnen wir aus diesem Ausdruck mit der Regel x ∨ y = ¬(¬x ∧ ¬y) auch noch alle Auftreten der Oder-Operation eliminieren. Im Beweis von Proposition 124 sehen wir, dass wir alle boolschen Funktionen als Disjunktion von Konjunktionen von Argumenten oder negierten Argumenten darstellen lassen. Diese spezielle Gestalt von Ausdr¨ ucken wird disjunktive Normalform (DNF) genannt. Dual dazu zeigt man, dass sich alle boolschen Funktionen als Konjunktion von Disjunktion von Argumenten und negierten Argumenten darstellen l¨aßt. Entsprechend spricht man in diesem Fall von konjunktiver Normalform (KNF). Andere zweistellige boolsche Operationen Konjunktion, Disjunktion und Negation reichen also f¨ urs Rechnen mit 0 und 1 aus. Im t¨aglichen Leben ist es aber praktisch, f¨ ur bestimmte zweistellige boolsche Operationen spezielle Bezeichnungen zu haben. In allen F¨allen verwenden wir Infix-Notation. Die wichtigsten sind: ⇒ Wird Implikation genannt, und wird definiert wie folgt: f¨ ur x, y ∈ {0, 1} ist (x ⇒ y) := (¬x ∨ y) . ¨ ⇔ Aquivalenz. Die Definition ist f¨ ur x, y ∈ {0, 1} (x ⇔ y) := (x ⇒ y) ∧ (y ⇒ x) . xor Das exklusive Oder, wird auch mit ⊕ bezeichnet. F¨ ur x, y ∈ {0, 1} ist x ⊕ y := (x ∨ y) ∧ ¬(x ∧ y) . Kennen wir schon, dies ist gerade Addition in Z2 . nand Der Sheffer-Strich, oder nand, ist die Funktion (x, y) 7→ ¬(x∧y). Das bemerkenswerte an dieser Funktion ist, dass sich mit ihrer Hilfe bereits alle anderen Funktionen durch Komposition herstellen lassen: denn ¬x = (x nand x), und x ∧ y = ¬(x nand y). Damit folgt diese Behauptung aus Proposition 124. nor Die Peirce-Funktion ist dual zum Sheffer-Strich, und hat ebenfalls die Eigenschaft, dass man mit ihr alle anderen Funktionen bauen kann. 108 12.2 Aussagenlogik Wir haben bisher im Skript h¨ aufig den Ausdruck ‘Ausdruck’ verwendet. Aber was ist das, ein Ausdruck? Was ist eine mathematische Aussage? Und was ist eigentlich ein Beweis? H¨aufig werden diese Begriffe in der Mathematik metasprachlich verwendet: man definiert sie nicht. Aber im Rahmen der Logik werden wir diese Begriffe formal definieren und verwenden. Wir betrachten hier allerdings nur den speziellen Fall der Aussagenlogik. Den allgemeineren und extrem wichtigen Fall der Pr¨ adikatenlogik erster Stufe werden Sie sp¨ater noch kennenlernen. Ein grundlegendes Prinzip in der Logik ist die Trennung zwischen Syntax und Semantik. Die Syntax behandelt Symbole und Regeln, wie man die Symbole zu Ausdr¨ ucken zusammenf¨ ugt. Die Semantik behandelt, wie man den Ausdr¨ ucken Bedeutung zuweist. Syntax Die Symbole der Aussagenlogik sind die Symbole ∧, ∨, ¬, ⊥, > und Variablensymbole. H¨aufig verwendete Variablensymbole in der Aussagenlogik sind X, Y, Z oder X1 , X2 , . . . aber die Wahl der Symbole spielt hier keine Rolle. Die Syntax der Aussagenlogik ist sehr einfach, und rekursiv definiert. • Variablensymbole sind Ausdr¨ ucke; • > und ⊥ sind Ausdr¨ ucke; • wenn A ein Ausdruck ist, dann ist auch ¬A ein Ausdruck; • wenn A1 und A2 Ausdr¨ ucke sind, dann sind auch A1 ∧ A2 und A1 ∨ A2 Ausdr¨ ucke. Solche (aussagenlogischen) Ausdr¨ ucke werden oft auch aussagenlogische Formeln genannt. Semantik Es sei A ein Ausdruck mit den Variablen X1 , . . . , Xn . Dann ist eine Belegung von X1 , . . . , Xn eine Funktion f : {X1 , . . . , Xn } → {0, 1}. Wir definieren nun rekursiv, wann f den Ausdruck A erf¨ ullt: • > wird von f erf¨ ullt (unabh¨angig von f ). • Falls A von der Gestalt Xi ist, dann wird A von f genau dann erf¨ ullt, wenn f (Xi ) = 1. • Falls A von der Gestalt ¬A ist, dann wird A von f genau dann erf¨ ullt, wenn A von f nicht erf¨ ullt wird. • Falls A von der Gestalt A1 ∧ A2 ist, dann wird A von f genau dann erf¨ ullt, wenn sowohl A1 also auch A2 von f erf¨ ullt werden. 109 • Falls A von der Gestalt A1 ∨ A2 ist, dann wird A von f genau dann erf¨ ullt, wenn A1 oder A2 von f erf¨ ullt werden. ¨ Definition 125 (Erf¨ ullbarkeit und Aquivalenz). Ein Ausdruck A heißt erf¨ ullbar falls er eine erf¨ ullende Belegung besitzt, und unerf¨ ullbar (oder widerspr¨ uchlich) sonst. Zwei Ausdr¨ ucke mit den gleichen Variablen heissen ¨aquivalent wenn sie die gleichen erf¨ ullenden Belegungen besitzen. Beispielsweise sind die beiden Ausdr¨ ucke X ∧ Y und ¬(¬X ∨ ¬Y ) (syntaktisch) nicht gleich, aber ¨ aquivalent im obigen Sinn. Auch die Symbole ⇒ und ⇔ werden h¨aufig in Ausdr¨ ucken verwendet; A1 ⇒ A2 ist als abk¨ urzende Schreibweise f¨ ur ¬A1 ∨ A2 zu verstehen, und A1 ⇔ A2 als abk¨ urzende Schreibweise f¨ ur (A1 ⇒ A2 ) ∧ (A2 ⇒ A1 ) , was ¨aquivalent ist zu (A1 ∧ A2 ) ∨ (¬A1 ∨ ¬A2 ) . Ein Ausdruck ist eine Tautologie, wenn jede Belegung der Variablen eine erf¨ ullende Belegung ist. Beispielsweise ist X ∨ ¬X eine Tautologie. Wir bemerken: • A1 und A2 sind genau dann ¨ aquivalent, wenn A1 ⇔ A2 eine Tautologie ist. • A ist genau dann unerf¨ ullbar, wenn ¬A eine Tautologie ist. Definition 126. Es seien A1 und A2 aussagenlogische Ausdr¨ ucke mit den Variablen X1 , . . . , Xn . Dann sagen wir dass A1 den Ausdruck A2 impliziert falls jede erf¨ ullende Belegung von A1 auch eine erf¨ ullende Belegung von A2 ist. Daf¨ ur schreiben wir auch A1 |= A2 . Wir bemerken, dass A1 |= A2 genau dann gilt, wenn A1 ⇒ A2 eine Tautologie ist. Aussagenlogik und Boolsche Operationen Jeder aussagenlogische Ausdruck A mit den Variablen x1 , . . . , xn entspricht auf nat¨ urliche n Weise einer boolschen Operation fA der Stelligkeit n, die (a1 , . . . , an ) ∈ {0, 1} genau dann auf 1 abbildet, wenn die Abbildung xi 7→ ai eine erf¨ ullende Belegung von A ist. Wir sagen auch, dass A die Operation fA definiert. Beispiel 14. Der Ausdruck x1 ∧ x2 definiert die boolsche Operation der Konjunktion, wie wir sie in Abschnitt 12.1 mit Hilfe einer Tabelle eingef¨ uhrt haben. Der Ausdruck ¬x1 ∧ x2 definiert die boolsche Operation ⇒, wie wir sie ebenfalls bereits in Abschnitt 12.1 eingef¨ uhrt haben. Und so weiter. Proposition 124 u ¨bersetzt sich nun direkt in die Sprache der Aussagenlogik: jeder aussagenlogische Ausdruck ist ¨ aquivalent zu einem Ausdruck in disjunktiver Normalform, und a¨quivalent zu einem Ausdruck in konjunktiver Normalform. Das Arbeiten mit konjunktiver Normalform hat viele Vorz¨ uge. Es gibt sogar spezielle Terminologie daf¨ ur: 110 • Die Teilausdr¨ ucke (von einem Ausdruck A) der Gestalt X oder ¬X (wobei X ein Variablensymbol ist) werden Literale (von A) genannt. • Die Konjunkte eines Ausdruck in KNF werden Klauseln genannt; man faßt Klauseln als Mengen von Literalen auf (sie sind implizit verodert). Da man jeden Ausdruck in einen ¨aquivalenten in konjunktiver Normalform (KNF) schreiben kann, beginnen viele Beweise mit der Annahme, dass die Ausdr¨ ucke bereits in konjunktiver Normalform (DNF) vorliegen. Allerdings kann sich in manchen (tats¨achlich in ¨ vielen) F¨ allen die L¨ ange der Formel bereits beim Ubergang von DNF zu KNF exponentiell ¨ aufbl¨ahen. Dual dazu ist der Ubergang von KNF zu DNF im allgemeinen auch teuer. Wir betrachten zum Beispiel die folgende Formel mit 2n Variablen und n Disjunkten, die in DNF vorliegt. (X1 ∧ Y1 ) ∨ (X2 ∧ Y2 ) ∨ · · · ∨ (Xn ∧ Yn ) ¨ Eine Ubersetzung nach KNF f¨ uhrt auf eine Formel mit 2n Konjunkten. (X1 ∨ · · · ∨ Xn−1 ∨ Xn ) ∧ (X1 ∨ · · · ∨ Xn−1 ∨ Yn ) ∧ · · · ∧ (Y1 ∨ · · · ∨ Yn−1 ∨ Yn ) Boolsche Relationen Eine boolsche Relation der Stelligkeit n ∈ N ist eine Teilmenge von {0, 1}n . Jeder boolschen Operation f der Stelligkeit n k¨onnen wir eine boolsche Relation Rf der Stelligkeit n zuordnen, n¨ amlich die Relation Rf := {(a1 , . . . , an ) | f (a1 , . . . , an ) = 1} . Umgekehrt k¨ onnen wir jeder n-stelligen boolschen Relation R eine n-stellige boolsche Operation zuweisen, n¨ amlich die Operation fR f¨ ur die f (a1 , . . . , an ) = 1 genau dann gilt, wenn (a1 , . . . , an ) ∈ R. Klarerweise gilt fRf = f und RfR = R. Wenn A ein aussagenlogischer Ausdruck ist, der die Operation f definiert, dann sagen wir auch, dass A die Relation R := Rf definiert. In diesem Fall schreiben wir f¨ ur R auch RA . Beispiel 15. Der Ausdruck ¬X1 ∨ X2 definiert die boolsche Relation {(0, 0), (0, 1), (1, 1)}. Wir bemerken, dass A1 |= A2 genau dann gilt, wenn RA1 ⊆ RA2 . 12.3 Das Erfu ¨ llbarkeitsproblem Ein zentrales Berechnungsproblem ist das folgende: Gegeben: Gefragt: ist ein aussagenlogischer Ausdruck A. Ist A erf¨ ullbar? 111 Dieses Berechnungsproblem wird auch das Erf¨ ullbarkeitsproblem (der Aussagenlogik) genannt. Ein naiver Ansatz zum L¨ osen des Erf¨ ullbarkeitsproblems besteht darin, alle Belegungen der Reihe nach zu erzeugen, und f¨ ur jede Belegung nachzurechnen, ob sie erf¨ ullend ist. Die Rechnung, ob eine Belegung erf¨ ullend ist, l¨aßt sich effizient implementieren. Aber das Durchprobieren aller Belegungen ist schon bei ganz kleinen Anzahlen von Variablen nicht mehr praktikabel: es gibt zu viele davon. 1. Es gibt f¨ unf H¨ auser. 2. Der Engl¨ ander wohnt im roten Haus. 3. Der Spanier hat einen Hund. 4. Kaffee wird im gr¨ unen Haus getrunken. 5. Der Ukrainer trinkt Tee. 6. Das gr¨ une Haus ist direkt rechts vom weien Haus. 7. Der Raucher von Altem-Gold-Zigaretten h¨alt Schnecken als Haustiere. 8. Die Zigaretten der Marke Kools werden im gelben Haus geraucht. 9. Milch wird im mittleren Haus getrunken. 10. Der Norweger wohnt im ersten Haus. 11. Der Mann, der Chesterfields raucht, wohnt neben dem Mann mit dem Fuchs. 12. Die Marke Kools wird geraucht im Haus neben dem Haus mit dem Pferd. 13. Der Lucky-Strike-Raucher trinkt am liebsten Orangensaft. 14. Der Japaner raucht Zigaretten der Marke Parliaments. 15. Der Norweger wohnt neben dem blauen Haus. Wer trinkt Wasser? Wem geh¨ ort das Zebra? Modellieren Sie als Erf¨ ullbarkeitsproblem f¨ ur Aussagenlogik! Komplexit¨ at Man geht davon aus, dass es kein Verfahren gibt, welches das Erf¨ ullbarkeitsproblem mit polynomieller Rechenzeit l¨ ost. Leider aber gibt es daf¨ ur keinen Beweis – eine herbe Entt¨auschung. Eine interessante Sache aber l¨aßt sich vom Erf¨ ullbarkeitsproblem sehr wohl zeigen: n¨amlich dass es zu einem der h¨ artesten Probleme seiner Klasse geh¨ort. Eine genaue Definition werden Sie in anderen Vorlesungen lernen. Grob gesagt soll das heissen, dass wenn 112 es einen polynomiellen Algorithmus g¨abe f¨ ur das Erf¨ ullbarkeitsproblem, es auch einen Algorithmus g¨ abe f¨ ur alle anderen Probleme, bei denen sich eine gegebene L¨osung in Polynomialzeit nachrechnen l¨ aßt. Von solchen Problemen haben wir in dieser Vorlesung schon einige gesehen: • Das Faktorisieren von Zahlen (Abschnitt 3.3). • Das Problem Test-auf-Null (Abschnitt 4.9). • Die Berechnung des diskreten Logarithmus (Abschnitt 5.4). • Die Berechnung der geheimen Schl¨ ussel beim Diffie-Helman-Merkle Protokoll (Abschnitt 5.4). • Das Knacken von RSA Verschl¨ usselung (Abschnitt 5.7). • Das Berechnungsproblem zu entscheiden, ob ein gegebener endlicher Graph mit k Farben gef¨ arbt werden kann (Abschnitt 6.2). • Die Berechnung einer kleinstm¨oglichen Knoten¨ uberdeckung in einem gegebenen (nicht notwendigerweise bipartiten!) Graphen (Abschnitt 6.7). F¨ ur all diese Probleme kennt man keine polynomiellen Algorithmen. Ein polynomieller Algorithmus f¨ urs Erf¨ ullbarkeitsproblem der Aussagenlogik w¨ urde f¨ ur jedes dieser Probleme einen polynomiellen Algorithmus liefern! 12.4 2-SAT In diesem Abschnitt werden wir eine nat¨ urliche und wichtige Einschr¨ankung des aussagenlogischen Erf¨ ullbarkeitsproblems kennenlernen. Es handelt sich hier um das sogenannte 2-SAT Problem. Die Einschr¨ ankung lautet, dass der gegebene aussagenlogische Ausdruck in konjunktiver Normalform vorliegt, so dass jede Klausel maximal zwei Literale enth¨alt. F¨ ur solche Ausdr¨ ucke A l¨ aßt sich ein effizienter Algorithmus angeben, der entscheidet, ob A erf¨ ullbar ist. Beispiel 16. (X ∨ Y ) ∧ (¬X ∨ Z) ∧ (¬Z ∨ ¬Y ) ∧ (¬Y ∨ Z) ∧ (¬Z ∨ ¬X) Erf¨ ullbar oder nicht? Wir stellen hier einen Algorithmus f¨ ur das 2-SAT Problem vor, der zuerst von Aspvall, Plass, und Tarjan publiziert wurde, und der das Problem auf die Berechnung der starken Zusammenhangskomponenten in einem gerichteten Graphen zur¨ uckf¨ uhrt. Wir definieren hierzu f¨ ur einen gegebenen aussagenlogischen Ausdruck A mit h¨ochstens zwei Literalen pro Klausel einen Hilfsgraphen, den sogenannten Implikationsgraphen. Zun¨ achst 113 m¨ochten wir gerne mit der technischen Annahme arbeiten, dass alle Klauseln in der Eingabe genau zwei Literale besitzen. Dies ist nicht problematisch, da eine Klausel der Gestalt L durch eine Klausel der Gestalt L ∨ L ersetzt werden kann, ohne dadurch die Menge der erf¨ ullenden Belegungen von A zu ver¨andern. Weiterhin k¨onnen wir annehmen, dass A keine Klauseln der Gestalt X ∨ ¬X enth¨alt, da wir solche l¨oschen k¨onnen, ohne dadurch die Menge der erf¨ ullenden Belegungen von A zu ver¨andern. Der Implikationsgraph ist nun der gerichtete Graph G, der f¨ ur jede Variable X aus A zwei Knoten hat, die wir X und ¬X nennen. Wir f¨ ugen in G genau dann eine Kante (L1 , L2 ) ein, wenn ¬L1 ∨ L2 oder (L2 ∨ ¬L1 ) eine Klausel in A ist (falls das Literal L1 von der Form ¬X ist, dann bedeutet ¬L1 = ¬(¬X) das gleiche wie X; diese Konvention werden wir fortan stillschweigend verwenden). Es ist klar, dass jede erf¨ ullende Belegung diejenigen Literale, die in der gleichen starken Zusammenhangskomponente von G liegen, entweder allesamt wahr oder allesamt falsch machen muss. Wenn also f¨ ur eine Variable X aus A die beiden Knoten X und ¬X in der selben SZ-Komponente liegen, dann kann es keine erf¨ ullende Belegung geben f¨ ur A. Diese offensichtliche notwendige Bedingung f¨ ur Erf¨ ullbarkeit ist auch hinreichend. Proposition 127. Ein aussagenlogischer Ausdruck A mit genau zwei Literalen pro Klausel ist genau dann erf¨ ullbar, wenn f¨ ur alle Variablen X aus A im zugeh¨ origen Implikationsgraph G die Knoten X und ¬X in unterschiedlichen SZ-Komponenten liegen. Beweis. Wir haben bereits gesehen, dass die Existenz von einer Variablen X aus A mit X und ¬X in der gleichen SZ-Komponente von G Unerf¨ ullbarkeit von A bedeutet. Nehmen wir also an, dass es keine solche Variable gibt. Um eine erf¨ ullende Belegung von G zu finden, betrachten wir die Beschriftung der Knoten in der umgekehrten topologischen Ordnung, die vom Algorithmus zur Berechnung der SZ-Komponenten aus Abschnitt 11.2 berechnet wird. Wenn L in dieser Ordnung eine kleinere Zahl tr¨agt, als ¬L, so wird L auf 1 gesetzt, und ¬L auf 0. (Nach Annahme k¨ onnen L und ¬L nicht die gleiche Nummer tragen). Diese Belegung erf¨ ullt alle Klauseln: • Klauseln der Gestalt ¬L1 ∨ L2 , f¨ ur die die Literale L1 und L2 in der gleichen SZKomponente liegen, werden erf¨ ullt, da L1 und L2 den gleichen Wahrheitswert zugewiesen wird. • Klauseln der Gestalt ¬L1 ∨ L2 , f¨ ur die die Literale L1 und L2 in verschiedenen SZKomponenten liegen, werden erf¨ ullt, da L2 in der topologischen Ordnung kleiner ist als L1 , und damit L2 auf 1 gesetzt wird und L1 auf 0. Mit dem Algorithmus zur Berechnung der SZ-Komponenten f¨ ur gerichtete Graphen aus Abschnitt 11.2 haben wir damit einen linearen Algorithmus f¨ ur das 2-SAT Problem gefunden! 114 Bijunktive boolsche Relationen Welche aussagenlogischen Ausdr¨ ucke sind ¨aquivalent zu aussagenlogischen Ausdr¨ ucken mit h¨ochstens zwei Literalen pro Klausel? F¨ ur kleine Ausdr¨ ucke kann man das noch mit Durchprobieren feststellen. Beispiel 17. Wir betrachten den Ausdruck A := (X1 ∧ ¬X2 ∧ ¬X3 ) ∨ (¬X1 ∧ X2 ∧ ¬X3 ) ∨ (¬X1 ∧ ¬X2 ∧ X3 ) . Dieser Ausdruck definiert die Relation {(1, 0, 0), (0, 1, 0), (0, 0, 1)}. Diese Relation l¨ aßt sich nicht mit einem aussagenlogischen Ausdruck mit h¨ ochstens zwei Literalen pro Klausel definieren. Um das zu sehen, betrachten wir alle nicht tautologischen Klauseln, die von A impliziert werden: das sind ¬X1 ∨ ¬X2 , ¬X2 ∨ ¬X3 , ¬X1 ∨ ¬X3 , ¬X1 ∨ X2 , ¬X1 ∨ X3 , ¬X2 ∨ X1 , ¬X2 ∨ X3 , ¬X3 ∨ X1 , und ¬X3 ∨ X2 . Alle diese Ausdr¨ ucke haben die erf¨ ullende Belegung, die alle Variablen auf 0 abbildet; diese Belegung erf¨ ullt aber nicht A. Definition 128. Eine boolsche Relation, die von einem aussagenlogischen Ausdruck mit maximal zwei Literalen pro Klausel definiert werden kann, heißt bijunktiv. Wir wollen im folgenden eine Methode angeben, wie man boolsche Relationen effizient darauf testet, ob sie bijunktiv sind. Definition 129. Eine boolsche Relation R ⊆ {0, 1}n wird von einer boolschen Funktion f der Stelligkeit k erhalten falls f¨ ur alle (a11 , . . . , a1n ), . . . , (ak1 , . . . , akn ) ∈ R gilt, dass (f (a11 , . . . , ak1 ), . . . , f (a1n , . . . , akn )) ∈ R. Beispiel 18. Wir betrachten die boolsche Relation {(0, 1), (1, 0)}. Diese Relation wird durch die Majorit¨ atsfunktion major erhalten, die eindeutig gegeben ist durch die Eigenschaft, dass f¨ ur alle x, y ∈ {0, 1} gilt: major(x, x, y) = major(x, y, x) = major(y, x, x) = x . Anders gesagt, ist major die Funktion (x, y, z) 7→ (x ∧ y ∨ x ∧ z ∨ x ∧ z) . Definition 130. Ein aussagenlogischer Ausdruck A in konjunktiver Normalform heißt reduziert falls jeder Ausdruck, den man aus A durch Wegstreichen eines Literals gewinnen kann, nicht ¨ aquivalent ist zu A. Lemma 131. Jeder ausagenlogische Ausdruck A ist ¨ aquivalent zu einem reduzierten. 115 Beweis. Wie wir bereits wissen, ist A ¨aquivalent zu einem Ausdruck B in konjunktiver Normalform. Wenn B bereits reduziert ist, bleibt nichts mehr zu zeigen. Ansonsten gibt es ein Literal in B, das man wegstreichen kann, so dass der resultierende Ausdruck B 0 ¨aquivalent ist zu B. Wir fahren dann mit B 0 anstatt B fort, und erreichen so nach endlich vielen Schritten einen reduzierten Ausdruck. Proposition 132. Eine boolsche Relation R ist genau dann bijunktiv, wenn sie von der Majorit¨ atsfunktion erhalten wird. Beweis. Wir zeigen zun¨ achst, dass bijunktive Relationen von der Majorit¨atsfunktion erhalten werden. Es sei dazu A ein aussagenlogischer Ausdruck mit maximal zwei Literalen pro Klausel, der R definiert. Seien f1 , f2 , f3 : {0, 1}3 → {0, 1} drei erf¨ ullende Belegungen von A. Wir m¨ ussen zeigen, dass die Funktion, die eine Variable X von A auf major(f1 (X), f2 (X), f3 (X)) abbildet, ebenfalls eine erf¨ ullende Belegung von A ist. Dazu reicht es, zu zeigen, dass f jede Klausel in A erf¨ ullt. Sei also L1 ∨ L2 eine solche Klausel. Per Annahme erf¨ ullen sowohl f1 , f2 , also auch f3 diese Klausel. Also wird L1 oder L2 durch mindestens zwei Belegungen auf 1 gesetzt. Per Definition der Majorit¨atsfunktion wird dann auch L1 oder L2 durch f auf 1 gesetzt, und damit wird L1 ∨ L2 durch f erf¨ ullt. F¨ ur die andere Richtung des Beweises betrachten wir einen reduzierten Ausdruck A, der R definiert; ein solcher existiert nach Lemma 131. Wir behaupten, dass wenn R von der Majorit¨ atsfunktion erhalten wird, jede Klausel h¨ochstens zwei Literale besitzt. Wir f¨ uhren dazu einen Widerspruchsbeweis, und nehmen an, dass A eine Klausel K mit mindestens drei Literalen L1 , L2 , und L3 enth¨ alt. Da A reduziert ist, muss es f¨ ur jedes i ∈ {1, 2, 3} erf¨ ullende Belegungen fi von A geben, in denen lediglich das Literal Li wahr ist (alle anderen Literale aus K sind unter der Belegung fi falsch): denn wenn es eine solche Belegung nicht g¨abe, so h¨atte man das Literal Li aus A ohne Einfluss auf die Menge der erf¨ ullenden Belegungen streichen k¨ onnen, im Widerspruch dazu, dass A reduziert ist. Sei nun f die Belegung, die die Variable X von A abbildet auf major(f1 (X), f2 (X), f3 (X)). Jedes Literal Li wird von genau zwei Belegungen aus f1 , f2 , f3 falsch gemacht, und jedes andere Literal aus K sogar von allen dreien. Aus der Definition der Majorit¨atsfunktion folgt also, dass f gar kein Literal aus K erf¨ ullt. Dies ist der gew¨ unschte Widerspruch dazu, dass die Majorit¨atsfunktion R erh¨alt. Proposition 132 liefert einen einfachen Test, ob ein gegebener aussagenlogischer Ausdruck ¨ aquivalent ist zu einem, dessen Klauseln alle h¨ochstens Gr¨oße zwei haben. Hierzu betrachten wir nochmal die Relation aus Beispiel 17. Beispiel 19. Die Relation {(1, 0, 0), (0, 1, 0), (0, 0, 1)} ist nicht bijunktiv, denn das Tripel major(1, 0, 0), major(0, 1, 0), major(0, 0, 1) = (0, 0, 0) ist nicht in R. 116 12.5 Horn-SAT Es gibt eine weitere wichtige Einschr¨ankung des Erf¨ ullbarkeitsproblems, f¨ ur die man effiziente Algorithmen kennt. Wieder liegt die Eingabe in konjunktiver Normalform vor, diesmal aber fordern wir, dass in jeder Klausel h¨ochstens ein positives Literal auftritt. Solche aussagenlogischen Ausdr¨ ucke heissen auch Horn Formeln. Das Berechnungsproblem, von einem solchen aussagenlogischen Ausdruck festzustellen, ob er erf¨ ullbar ist, heißt Horn-SAT 64 . Eine Methode, um Horn-SAT in polynomieller Zeit zu l¨osen, ist positive Resolution. Wieder nehmen wir an, dass die Eingabe in konjunktiver Normalform vorliegt. In diesem Verfahren wird zun¨ achst nach Klauseln der Gestalt {X} in der Eingabe gesucht, also nach Klauseln, die nur ein einziges Literal enthalten, und zwar ein positives. Wir werden solche Klauseln im folgenden mit positiven 1-Klauseln bezeichnen. Wir bemerken, dass jede erf¨ ullende Belegung der Variablen X einer positiven 1-Klausel den Wert 1 zuweisen muss. Der Algorithmus streicht also alle Auftreten von ¬X in anderen Klauseln (denn solche Literale sind in erf¨ ullenden Belegungen immer falsch), und markiert die Variable X. Wir wiederholen dieses Verfahren so oft, bis wir keine unmarkierten Variablen in positiven 1-Klauseln mehr finden. Aber Achtung: durch das Wegstreichen von Literalen kann es passieren, dass sich gr¨ oßere Klauseln in positive 1-Klauseln verwandeln, und diese m¨ ussen nat¨ urlich mit betrachtet werden. Wenn wir mit diesem Verfahren die leere Klausel herleiten k¨onnen, die stets unerf¨ ullbar ist, so wissen wir, dass auch die urspr¨ ungliche Eingabe nicht erf¨ ullbar ist. Wir behaupten dass andernfalls die Eingabe erf¨ ullbar war. Eine erf¨ ullende Belegung kann man gewinnen, indem man alle markierten Variablen auf 1 setzt, und alle unmarkierten auf 0. Dadurch werden alle positiven 1-Klauseln erf¨ ullt, denn die entsprechenden Variablen wurden allesamt auf 1 gesetzt. Proposition 133. Eine boolsche Relation R hat genau dann eine Definition durch eine Horn Formel wenn R erhalten wird von der Funktion (x, y) 7→ (x ∧ y). Beweis. Wenn f Ausdr¨ ucke A1 und A2 erh¨alt, dann erh¨alt f ganz allgemein auch A1 ∧ A2 , wie wir im Beweis von Proposition 132 schon gesehen haben. Es gen¨ ugt also zu zeigen, dass die Operation ∧ Klauseln x0 ∨ ¬x1 ∨ · · · ∨ ¬xn mit h¨ochstens einem positiven Literal erh¨alt. Sei x0 ∨ ¬x1 ∨ · · · ∨ ¬xn eine solche Klausel, und seien f1 , f2 zwei erf¨ ullende Belegungen von dieser Klausel. Wenn die Belegung xi 7→ f1 (xi ) ∧ f2 (xi ) diese Klausel nicht erf¨ ullen w¨ urde, so m¨ usste gelten f (x0 ) = 0, f (x1 ) = 1, . . . , f (xn ) = 1. Also m¨ usste gelten f1 (xi ) = 1 und f2 (xi ) = 1 f¨ ur alle i ∈ {1, . . . , n}, und damit auch f (x0 ) = 1, ein Widerspruch zur Annahme dass f (x0 ) = 0. Nun zur umgekehrten Richtung der Aussage. Let R be a Boolean relation preserved by min. Let φ be a reduced propositional formula in CNF that defines φ. Now suppose for contradiction that φ contains a clause C with two positive literals x and y. Since φ is 64 Alfred Horn; geboren am 17. Februar 1918 in Manhattan; gestorben am 16. April 2001 in Pacific Palisades, Kalifornien. 117 reduced, there is an assignment s1 that satisfies φ such that s1 (x) = 1, and such that all other literals of C evaluate to 0. Similarly, there is a satisfying assignment s2 for φ such that s2 (y) = 1 and all other literal s of C evaluate to 0. Then s0 : x 7→ min(s1 (x), s2 (y)) does not satisfy C, and does not satisfy φ, in contradiction to the assumption that min preserves R. 12.6 Lineare Gleichungssysteme Die Minorit¨ atsfunktion auf {0, 1} ist die Funktion (x, y, z) 7→ x ⊕ y ⊕ z , das heißt, wir rechnen x + y + z modulo 2. Proposition 134. Eine boolsche Relation R wird genau dann von der Minorit¨ atsfunktion erhalten wenn sie definiert werden kann durch eine Konjunktion von linearen Gleichungen modulo 2. Beispiel 20. Die tern¨ are boolsche Relation {(x, y, z) | x + y + z = 1 mod 2} wird von der Minorit¨ atsfunktion erhalten, denn wenn x1 + y1 + z1 = 1, x1 + y1 + z1 = 1, x1 + y1 + z1 = 1 modulo 2, dann gilt modulo 2 ebenfalls (x1 + y1 + z1 ) + (x2 + y2 + z3 ) + (x3 + y3 + z3 ) =(x1 + x2 + x3 ) + (y1 + y2 + y3 ) + (z1 + z2 + z3 ) =1 + 1 + 1 = 1 . Beweis. The proof of the interesting direction is by induction on the arity k of R. The statement is clear when R is unary. Otherwise, let R0 be the boolean relation of arity k − 1 defined by R0 (x2 , . . . , xk ) ⇔ R(0, x2 , . . . , xk ), and let R1 ⊆ {0, 1}k−1 be defined by R1 (x2 , . . . , xk ) ⇔ R(1, x2 , . . . , xk ). By inductive assumption, there are conjunctions of linear equalities ψ0 and ψ1 defining R0 and R1 , respectively. If R0 is empty, we may express R(x1 , . . . , xk ) by x1 = 1 ∧ ψ1 . The case that R1 is empty can be treated analogously. When both R0 and R1 are non-empty, fix a tuple (c02 , . . . , c0k ) ∈ R0 and a tuple (c12 , . . . , c1k ) ∈ R1 . Define c0 to be (0, c02 , . . . , c0k ) and c1 to be (1, c02 , . . . , c0k ). Let b be an arbitrary tuple from {0, 1}k . Observe that if b ∈ R, then minority(b, c0 , c1 ) ∈ R, since c0 ∈ R and c1 ∈ R. Moreover, if minority(b, c0 , c1 ) ∈ R, then minority(minority(b, c0 , c1 ), c0 , c1 ) = b ∈ R. Thus, b ∈ R if and only if minority(b, c0 , c1 ) ∈ R. Specialising this to b1 = 1, we obtain (b2 , . . . , bk ) ∈ R1 ⇔ (minority(b2 , c02 , c12 ), . . . , minority(bk , c0k , c1k )) ∈ R0 . This implies (b1 , . . . , bk ) ∈ R ⇔ (minority(b2 , c02 b1 , c12 b1 ), . . . , minority(bk , c0k b1 , c1k b1 )) ∈ R0 . 118 Thus, ∃x0i (φ0 (x02 , . . . , x0k ) ∧ (xi + c0i x1 + c1i x1 = x0i )) defines R(x1 , . . . , xk ). ‘La pens´ee n’est qu’un ´eclair au milieu de la nuit. Mais c’est cet ´eclair qui est tout’ Henri Poincar´e Literatur [1] M. Aigner and G. M. Ziegler. Das BUCH der Beweise. Springer-Verlag Heidelberg, 2001. [2] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction to algorithms, page 651. MIT Press, 2009. Third edition. [3] R. Diestel. Graphentheorie. Springer-Verlag, Heidelberg, 2010. Vierte Auflage. [4] P. Flajolet and R. Sedgewick. Analytic Combinatorics. Cambridge University Press, 2009. [5] E. Fusy. Random generation. MPRI Lecture Notes, 2011. http://www.lix.polytechnique.fr/Labo/Eric.Fusy/Teaching/notes.pdf. available at [6] S. Perifel. Complexit´e algorithmique. Ellipses, 2014. [7] A. Steger. Diskrete Strukturen, Band 1 (Kombinatorik – Graphentheorie – Algebra). Springer, 2007. 119
© Copyright 2024 ExpyDoc