Martin Aigner
Diskrete Mathematik
Martin Aigner
Diskrete Mathematik Mit 600 Übungsaufgaben 6., korrigierte Auflage
Bibliografische Information Der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über abrufbar.
Prof. Dr. Martin Aigner Freie Universität Berlin Institut für Mathematik II (WE 2) Arnimallee 3 14195 Berlin E-Mail:
[email protected] 1. Auflage 1993 2., durchgesehene Auflage 1996 3., durchgesehene Auflage 1999 4., durchgesehene Auflage Mai 2001 5., überarbeitete und erweiterte Auflage März 2004 6,. korrigierte Auflage August 2006 Alle Rechte vorbehalten © Friedr. Vieweg & Sohn Verlag | GWV Fachverlage GmbH, Wiesbaden 2006 Lektorat: Ulrike Schmickler-Hirzebruch | Petra Rußkamp Der Vieweg Verlag ist ein Unternehmen von Springer Science+Business Media. www.vieweg.de Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Umschlaggestaltung: Ulrike Weigel, www.CorporateDesignGroup.de Satz und Layout: Christoph Eyrich, Berlin Druck und buchbinderische Verarbeitung: Wilhelm & Adam, Heusenstamm Gedruckt auf säurefreiem und chlorfrei gebleichtem Papier. Printed in Germany
ISBN-10 3-8348-0084-8 ISBN-13 978-3-8348-0084-8
Vorwort Vor 50 Jahren gab es den Begriff Diskrete Mathematik“ nicht, und er ist auch heu” te im deutschen Sprachraum keineswegs gebr¨auchlich. Vorlesungen dazu werden nicht u ¨ berall und schon gar nicht mit einem einheitlichen Themenkatalog angeboten (im Gegensatz zum Beispiel zu den USA, wo sie seit langem einen festen Platz haben). Die Mathematiker verstehen unter Diskreter Mathematik meist Kombinatorik oder Graphentheorie, die Informatiker Diskrete Strukturen oder Boolesche Algebren. Das Hauptanliegen dieses Buches ist daher, solch einen Themenkatalog zu pr¨ asentieren, der alle Grundlagen f¨ ur ein weiterf¨ uhrendes Studium enth¨alt. Die Diskrete Mathematik besch¨ aftigt sich vor allem mit endlichen Mengen. Was kann man in endlichen Mengen studieren? Als allererstes kann man sie abz¨ahlen, dies ist das klassische Thema der Kombinatorik – in Teil I werden wir die wichtigsten Ideen und Methoden zur Abz¨ ahlung kennenlernen. Auf endlichen Mengen ist je nach Aufgabenstellung meist eine einfache Struktur in Form von Relationen gegeben, von denen die anwendungsreichsten die Graphen sind. Diese Aspekte fassen wir in Teil II unter dem Titel Graphen und Algorithmen zusammen. Und schließlich existiert auf endlichen Mengen oft eine algebraische Struktur (oder man kann eine solche auf nat¨ urliche Weise erkl¨ aren). Algebraische Systeme sind der Inhalt von Teil III. Diese drei Gesichtspunkte bilden den roten Faden des Buches. Ein weiterer Aspekt, der die Darstellung durchgehend pr¨agt, betrifft den Begriff der Optimierung. Die Entwicklung, welche die Kombinatorik in den letzten 50 Jahren vollkommen revolutionierte und sie erst zum heutigen Gebiet der Diskreten Mathematik machte, war die Frage nach schnellen Algorithmen. Es gen¨ ugte nicht mehr, ein kombinatorisches Problem theoretisch zu l¨osen, man wollte eine L¨osung explizit konstruieren, und dies wenn m¨ oglich anhand eines schnellen Algorithmus. Es ist sicher kein Zufall, dass dieser Optimierungsgesichtspunkt gerade Ende der 40er Jahre an Bedeutung gewann, genau parallel zur Entwicklung der ersten schnellen Rechner. In diesem Buch wird dementsprechend großer Wert auf den algorithmischen Standpunkt gelegt, vor allem in Teil II, wie dies ja auch schon im Titel zum Ausdruck kommt. Die Diskrete Mathematik ist heute eine Grundlagenwissenschaft auch der Informatik, und das Buch sollte durch die Stoffauswahl f¨ ur Mathematiker und Informatiker gleichermaßen interessant sein. Die drei Teile sind so organisiert, dass sie weitgehend unabh¨angig voneinander studiert werden k¨ onnen, mit Ausnahme der Kapitel 1 und 6, welche die Grundlagen der Abz¨ ahlung und Graphen behandeln – sie sollten in jedem Fall gelesen werden. Der gesamte Stoff kann in einer zweisemestrigen Vorlesung behandelt werden, die Kapitel 1–3, 6–8 und 13 waren Inhalt einer einsemestrigen Veranstaltung. Es ist ¨ u hinzuweisen. In einem ¨ blich, in einem Vorwort auf den Nutzen der Ubungen ¨ Buch u gar nicht hoch genug ¨ ber Diskrete Mathematik kann der Wert der Ubungen ¨ eingesch¨ atzt werden, was man schon daraus erkennen kann, dass die Ubungen (und L¨ osungen) fast ein Viertel des Textes ausmachen. Diskrete Mathematik behandelt
vi
0
vorwort
vor allem konkrete Probleme, und ohne Praxis wird man sie trotz aller theoretischer ¨ Kenntnisse nicht l¨ osen k¨ onnen. Zus¨ atzlich wird in den Ubungen des ¨ofteren auf ¨ weiterf¨ uhrende Fragen hingewiesen. Die Ubungen jedes Kapitels sind (durch einen Strich) zweigeteilt. Der erste Teil sollte ohne große M¨ uhe zu l¨osen sein, der zweite ¨ ¨ Teil ist etwas schwieriger. Viele Ubungen enthalten Hinweise, und f¨ ur Ubungen, die mit ⊲ bezeichnet sind, findet man im Anhang eine L¨osung. Jeder Teil endet mit einer knappen Literaturliste mit Hinweisen f¨ ur ein weiterf¨ uhrendes Studium. An Vorkenntnissen wird nur Vertrautheit mit den mathematischen Grundbegriffen vorausgesetzt und an manchen Stellen Kenntnisse aus der Linearen Algebra und Analysis, wie sie u ¨ blicherweise im 1. Semester erworben werden. Die verwendeten Bezeichnungen entsprechen durchwegs dem Standard, vielleicht mit den folgenden Ausnahmen: A = Ai Menge A ist disjunkte Vereinigung der Ai A = Ai Menge A ist kartesisches Produkt der Ai A Familie aller k–Untermengen von A. k Der Vorteil ist, dass sich die Bezeichnungen unmittelbar auf die Mengengr¨oßen u ¨ bertragen: A |A| | Ai | = |Ai |, | Ai | = |Ai |, | |= . k k
Sind die Mengen Ai nicht ¨ blich A = notwendig disjunkt, so setzen wir wie u Ai . Die Elemente von Ai = A1 × . . . × An sind wie gewohnt alle n-Tupel (a1 , . . . , an ), ai ∈ Ai . Eine k-Menge besteht aus k Elementen. B(S) ist die Familie aller Untermengen von S. Die Bezeichnungen ⌈x⌉, ⌊x⌋ f¨ ur x ∈ R bedeuten x aufgerundet auf die n¨ achste ganze Zahl bzw. x abgerundet. |S| bezeichnet die Anzahl der Elemente in S. Das Buch ist aus einer Reihe von Vorlesungen f¨ ur Mathematik- und Informatikstudenten hervorgegangen. Der Mitarbeit (und der Kritik) dieser H¨orer geb¨ uhrt daher mein erster Dank. Besonderen Dank schulde ich meinem Kollegen G. Stroth und meinen Studenten T. Biedl, A. Lawrenz und H. Mielke, die den gesamten Text durchgesehen und an vielen Stellen verbessert haben. T. Thiele hat wesentlich zur graphischen Gestaltung beigetragen. E. Greene, S. Hoemke und M. Barrett danke ich herzlich f¨ ur die kompetente Abfassung in LATEX, und dem Vieweg-Verlag f¨ ur die angenehme Zusammenarbeit. Berlin, Ostern 1993
Martin Aigner
Vorwort zur fu ¨nften Auflage In den letzten Jahren hat sich die Diskrete Mathematik als Grundlagenfach in Mathematik und Informatik etabliert. Ein mehr oder minder einheitlicher Themenkatalog ist entstanden, und die Verbindungen zu anderen Gebieten, vor allem zur theoretischen Informatik, wurden mit beidseitigem Gewinn ausgebaut. Wenn ich die vielen freundlichen Kommentare und Ratschl¨age etwas unbescheiden in Anspruch nehme, hat auch dieses Buch seit seinem Erscheinen vor genau 10 Jahren ein wenig zu dieser rundum erfreulichen Entwicklung beigetragen. ¨ Die vorliegende Auflage stellt eine grundlegende Uberarbeitung und Erweiterung dar. Zu den bisherigen Kapiteln kommen zwei neue hinzu: Eines u ¨ ber die Abz¨ ahlung von Mustern mit Symmetrien, das einen Zugang zu einem der elegantesten S¨ atze der Kombinatorik bietet, und ferner wurde das Kapitel u ¨ ber Codes erweitert und geteilt in Codierung und Kryptographie, nicht zuletzt wegen der großen Bedeutung in der aktuellen inner- und außermathematischen Diskussion. ¨ Und schließlich kommen 100 neue Ubungen hinzu, die die Leser zum Nachdenken und weiterem Studium einladen sollen. Wie schon die 1. Auflage wurde auch die vorliegende von Frau Barrett kompetent erstellt. Ihr sei herzlich gedankt, und ebenfalls Christoph Eyrich, der die Endredaktion besorgte, und Frau Schmickler-Hirzebruch vom Vieweg-Verlag f¨ ur die angenehme Zusammenarbeit. Berlin, Ostern 2003
Martin Aigner
Inhaltsverzeichnis Vorwort
v
Teil I: Abz¨ ahlung
1
1 Grundlagen 1.1 Elementare Z¨ ahlprinzipien . . . . . . . 1.2 Die fundamentalen Z¨ ahlkoeffizienten . 1.3 Permutationen . . . . . . . . . . . . . 1.4 Rekursionen . . . . . . . . . . . . . . . 1.5 Diskrete Wahrscheinlichkeitsrechnung 1.6 Existenzaussagen . . . . . . . . . . . . ¨ Ubungen . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
3 3 6 10 13 18 24 27
2 Summation 2.1 Direkte Methoden . 2.2 Differenzenrechnung 2.3 Inversion . . . . . . . 2.4 Inklusion-Exklusion . ¨ Ubungen . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
35 35 39 45 48 53
3 Erzeugende Funktionen 3.1 Definition und Beispiele . . 3.2 L¨ osung von Rekursionen . . 3.3 Erzeugende Funktionen vom ¨ Ubungen . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . Exponentialtyp . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
57 57 58 65 67
4 Abz¨ ahlung von Mustern 4.1 Symmetrien . . . . . . . . . 4.2 Problemstellung . . . . . . . 4.3 Muster und Zyklenindikator 4.4 Der Satz von Polya . . . . . ¨ Ubungen . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
73 73 75 77 79 85
5 Asymptotische Analyse 5.1 Wachstum von Funktionen . . . . 5.2 Gr¨ oßenordnung von Rekursionen 5.3 Laufzeit von Algorithmen . . . . ¨ Ubungen . . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
89 89 93 96 98
Literatur zu Teil I
. . . . .
102
x
inhaltsverzeichnis
Teil II: Graphen und Algorithmen 6 Graphen 6.1 Definition und Beispiele . 6.2 Darstellung von Graphen 6.3 Wege und Kreise . . . . . 6.4 Gerichtete Graphen . . . . ¨ Ubungen . . . . . . . . . .
103 . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
105 105 109 112 115 118
7 B¨ aume 7.1 Begriff und Charakterisierung . . . . 7.2 Breadth-First und Depth-First Suche 7.3 Minimale aufspannende B¨ aume . . . 7.4 K¨ urzeste Wege in Graphen . . . . . ¨ Ubungen . . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
123 123 126 128 131 133
8 Matchings und Netzwerke 8.1 Matchings in bipartiten Graphen . . . . . . . . . . . 8.2 Konstruktion von optimalen Matchings . . . . . . . 8.3 Fl¨ usse in Netzwerken . . . . . . . . . . . . . . . . . . 8.4 Eulersche Graphen, das Traveling Salesman-Problem 8.5 Die Komplexit¨ atsklassen P und NP . . . . . . . . . . ¨ Ubungen . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
137 137 141 147 153 161 163
9 Suchen und Sortieren 9.1 Suchprobleme und Entscheidungsb¨aume 9.2 Der Hauptsatz der Suchtheorie . . . . . 9.3 Sortieren von Listen . . . . . . . . . . . 9.4 Bin¨ are Suchb¨ aume . . . . . . . . . . . . ¨ Ubungen . . . . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
169 169 172 178 184 190
10 Allgemeine Optimierungsmethoden 10.1 Backtrack . . . . . . . . . . . . 10.2 Dynamisches Programmieren . 10.3 Der Greedy-Algorithmus . . . . ¨ Ubungen . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
195 195 199 206 209
Literatur zu Teil II
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . .
. . . .
. . . .
. . . .
212
xi
inhaltsverzeichnis Teil III: Algebraische Systeme
213
11 Boolesche Algebren 11.1 Definition und Eigenschaften . . . . . . . . . . 11.2 Aussagenlogik und Boolesche Funktionen . . . 11.3 Logische Netze . . . . . . . . . . . . . . . . . . 11.4 Boolesche Verb¨ ande, Ordnungen, Hypergraphen ¨ Ubungen . . . . . . . . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
215 215 217 221 225 231
12 Modulare Arithmetik 12.1 Rechnen mit Kongruenzen 12.2 Endliche K¨ orper . . . . . 12.3 Lateinische Quadrate . . . 12.4 Kombinatorische Designs ¨ Ubungen . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
235 235 237 239 243 250
13 Codierung 13.1 Problemstellung . . . . . . . . . . . . . . 13.2 Quellencodierung . . . . . . . . . . . . . 13.3 Entdecken und Korrigieren von Fehlern 13.4 Lineare Codes . . . . . . . . . . . . . . . 13.5 Zyklische Codes . . . . . . . . . . . . . . ¨ Ubungen . . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
255 255 256 258 262 267 270
14 Kryptographie 14.1 Kryptosysteme . . . . . . . 14.2 Lineare Schieberegister . . . ¨ 14.3 Offentliche Schl¨ usselsysteme 14.4 Zero-Knowledge-Protokolle ¨ Ubungen . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
275 275 278 284 288 291
15 Lineare Optimierung 15.1 Beispiele und Definitionen . . . . . . . . . . 15.2 Dualit¨ at . . . . . . . . . . . . . . . . . . . . 15.3 Der Hauptsatz der linearen Optimierung . . 15.4 Zul¨ assige L¨ osungen und optimale L¨osungen 15.5 Der Simplexalgorithmus . . . . . . . . . . . 15.6 Ganzzahlige lineare Optimierung . . . . . . ¨ Ubungen . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
295 295 297 302 307 311 318 320
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
Literatur zu Teil III
323
¨ L¨ osungen zu ausgew¨ ahlten Ubungen
325
Sachwortverzeichnis
351
Teil I: Abz¨ ahlung Die Diskrete Mathematik studiert endliche Mengen, und als erstes wollen wir uns fragen, wie viele Elemente eine gegebene Menge besitzt. Zum Beispiel k¨onnen wir fragen, wie viele Paare die Menge {1, 2, 3, 4} enth¨alt. Die Antwort ist 6, wie jeder weiß – sehr aufregend ist das Ergebnis aber nicht, da wir daraus nicht erkennen, wie viele Paare {1, 2, . . . , 6} oder {1, 2, . . . , 1000} enthalten. Interessant wird die Sache erst, wenn wir die Anzahl der Paare in {1, . . . , n} f¨ ur beliebiges n bestimmen k¨ onnen. Ein typisches diskretes Abz¨ ahlproblem sieht demnach folgendermaßen aus: Gegeben sei eine unendliche Familie von endlichen Mengen Sn (wobei n eine Indexmenge I durchl¨ auft, z. B. die nat¨ urlichen Zahlen), und die Aufgabe besteht darin, die Z¨ ahlfunktion f : I → N0 , f (n) = |Sn |, n ∈ I, zu bestimmen. Meist sind die Mengen Sn durch einfache kombinatorische Bedingungen gegeben. Als erstes, mehr philosophisches Problem, stellt sich die Frage, was man unter einer Bestimmung“ von f zu verstehen hat. Am befriedigendsten ist nat¨ urlich eine ” geschlossene Formel. Ist z. B. Sn die Menge der Permutationen einer n-Menge, so haben wir f (n) = n!, und jeder wird dies als ausreichende Bestimmung akzeptieren. Leider ist in den allermeisten F¨ allen solch eine Formel nicht zu erreichen. Was macht man dann? 1. Summation. Angenommen, wir wollen nicht alle Permutationen von {1, . . . , n} abz¨ ahlen, sondern nur die fixpunktfreien, d. h. jene Permutationen, bei denen i nicht an i-ter Stelle auftritt, f¨ ur alle i. Sei Dn die Anzahl dieser Permutationen. Zum Beispiel sind 231, 312 die einzigen fixpunktfreien Permutationen f¨ ur n = 3, also ist D3 = 2. Wir werden sp¨ ater beweisen, dass Dn = n!
n (−1)k k=0
k!
f¨ ur alle n gilt. Hier liegt also eine Summationsformel vor. 2. Rekursion. Aus kombinatorischen Erw¨agungen folgt, wie wir sehen werden, die Beziehung Dn = (n − 1)(Dn−1 + Dn−2 ) f¨ ur n ≥ 3. Aus den Anfangswerten D1 = 0, D2 = 1 folgt daraus die allgemeine Formel. Beispielsweise erhalten wir D3 = 2, D4 = 9, D5 = 44. Eine Rekursion ist manchmal einer geschlossenen Formel durchaus vorzuziehen. Die Fibonacci Zahlen Fn sind definiert durch F0 = 0, F1 = 1, Fn = Fn−1 + Fn−2 (n ≥ 2). Sp¨ ater werden wir daraus die Formel √ √ 1− 5 n 1 1+ 5 n ) −( ) ) Fn = √ (( 2 2 5 ableiten, aber wahrscheinlich wird jeder (oder zumindest jeder Computer aufgrund √ der Irrationalit¨ at von 5) die Rekursion bevorzugen.
2
abz¨ ahlung
3. Erzeugende Funktionen. Eine Methode, die sich als besonders fruchtbar erwiesen hat, besteht darin, die Werte f (n) der Z¨ahlfunktion als Koeffizienten einer Potenzreihe aufzufassen, F (z) = f (n)z n . n≥0
F (z) heißt dann die Erzeugende Funktion der Z¨ahlfunktion f . Fragen wir z.B. nach der Anzahl der n-Untermengen einer r-Menge f¨ ur festes r, so ist f (n) = nr (Binomialkoeffizient), und wir wissen aus dem Binomialsatz, dass r z n = (1 + z)r n n≥0
gilt. Wir werden sehen, wie sich daraus auf verbl¨ uffend einfache Weise Identit¨aten u ¨ ber Binomialkoeffizienten ableiten lassen. 4. Asymptotische Analyse. In sp¨ ateren Kapiteln werden wir Algorithmen f¨ ur die verschiedensten Probleme studieren. Neben der Korrektheit des Algorithmus interessiert nat¨ urlich besonders, wie schnell er ist – wir fragen also nach der Laufzeit des Algorithmus. Sehr oft ist der Algorithmus durch eine Rekursion gegeben. In Sortierproblemen wird uns beispielsweise die Rekursion f (n) =
n−1 2 f (k) + an + b n k=0
mit a > 0 begegnen. In diesem Fall ist eine L¨osung leicht zu erhalten, aber allgemein kann die Bestimmung von f (n) ¨außerst schwierig sein. Wir werden dann versuchen, f (n) durch leichter zug¨ angliche Funktionen a(n) und b(n) mit a(n) ≤ f (n) ≤ b(n) abzusch¨ atzen, und uns zufriedengeben, wenn wir das Problem asymptotisch gel¨ ost haben, das heißt eine bekannte Funktion g(n) gefunden haben (z. B. ein Polynom oder eine Exponentialfunktion), welche dieselbe Gr¨ oßenordnung wie f (n) hat.
1 1.1
Grundlagen Elementare Z¨ ahlprinzipien
Wir wollen einige fundamentale Regeln zusammenfassen, auf denen alle Abz¨ahlung basiert. Die ersten beiden Regeln (die so einsichtig sind, dass sie nicht bewiesen werden m¨ ussen) beruhen auf einer Klassifikation der Elemente der abzuz¨ahlenden Menge. Summenregel.
Sei S =
t
i=1
Si eine disjunkte Vereinigung, dann gilt |S| =
t
i=1
|Si |.
In der Anwendung tritt die Summenregel meist in folgender Gestalt auf: Wir klassifizieren die Elemente von S nach gewissen Eigenschaften Ei (i = 1, . . . , t), die sich gegenseitig ausschließen, und setzen Si = {x ∈ S : x hat Eigenschaft Ei }. Die Summenregel bildet die Grundlage f¨ ur die meisten Rekursionen. BetrachX ten wir folgendes Beispiel: F¨ ur eine n-Menge X sei S = die Menge aller k k-Untermengen von X, also |S| = nk . Sei a ∈ X. Wir klassifizieren die kUntermengen A, je nachdem ob a ∈ A oder a ∈ A ist, S1 = {A ∈ S : a ∈ A}, S2 = {A ∈ S : a ∈ / A}. Wir erhalten die Mengen aus S1 , indem wir alle (k − 1)Untermengen von X {a} mit a kombinieren, also |S1 | = n−1 k−1 , und alle Mengen von S2 , indem wir alle k-Untermengen von X {a} nehmen, also |S2 | = n−1 k . Nach der Summenregel erhalten wir daraus die fundamentale Rekursion f¨ ur die Binomialkoeffizienten: n n−1 n−1 = + (n ≥ 1) . k k−1 k In Abschnitt 4 werden wir ausf¨ uhrlich auf die Binomialzahlen eingehen. Produktregel. t |S| = |Si | .
Sei S = S1 × S2 × . . . × St ein Mengenprodukt, dann gilt
i=1
Angenommen, wir k¨ onnen auf 3 Wegen von K¨oln nach D¨ usseldorf und auf 5 Wegen von D¨ usseldorf nach M¨ unster fahren. Dann gibt es 15 = 3 · 5 Wege, um von K¨oln nach M¨ unster u usseldorf zu gelangen. ¨ ber D¨ Es ist oft n¨ utzlich, die Produktregel als Baumdiagramm zu verdeutlichen. Seien a, b, c die Wege von K¨ oln nach D¨ usseldorf und 1, 2, 3, 4, 5 die Wege von D¨ usseldorf nach M¨ unster, dann zeigt das folgende Diagramm die 15 Wege von K¨oln nach M¨ unster:
4
1
grundlagen K
a
b
c
D
D
D
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
M M M M M
M M M M M
M M M M M
Eine Folge von 0 und 1 nennen wir ein 0, 1-Wort und die Anzahl der 0’en und 1’en die L¨ ange des Wortes. Wie viele verschiedene 0, 1-W¨orter der L¨ange n gibt es? F¨ ur jede Stelle des Wortes gibt es 2 M¨ oglichkeiten, also ist die Antwort nach der Produktregel 2n . Die n¨ achsten beiden Regeln vergleichen zwei Mengen. Gleichheitsregel. |S| = |T |.
Existiert eine Bijektion zwischen zwei Mengen S und T , so gilt
Die typische Anwendung der Gleichheitsregel sieht folgendermaßen aus: Wir wollen eine Menge S abz¨ ahlen. Gelingt es uns, S bijektiv auf eine Menge T abzubilden, deren Gr¨ oße wir kennen, so k¨ onnen wir |S| = |T | schließen. Wie viele verschiedene Untermengen besitzt eine n-Menge X, z. B. X = {1, . . . , n}? Zu jeder Untermenge A betrachten wir den charakteristischen Vektor w(A) = a1 a2 . . . an von A mit ai = 1 falls i ∈ A ist, und ai = 0 falls i ∈ A ist. Jeder Vektor w(A) ist also ein 0, 1-Wort der L¨ange n, und man sieht sofort, dass die Abbildung w eine Bijektion zwischen der Menge S aller Untermengen von {1, . . . , n} und der Menge T aller 0, 1-W¨ orter der L¨ange n ergibt. Die M¨achtigkeit von T kennen wir schon, |T | = 2n , also folgt nach der Gleichheitsregel auch |S| = 2n . F¨ ur unsere letzte Regel ben¨ otigen wir ein paar Begriffe. Ein Inzidenzsystem (S, T, I) besteht aus zwei Mengen S und T und einer Relation I (genannt Inzidenz) zwischen den Elementen aus S und T . Falls eine Relation aIb zwischen a ∈ S und b ∈ T besteht, so nennen wir a und b inzident, ansonsten nicht-inzident. Ein bekanntes Beispiel liefert die Geometrie: S ist eine Punktmenge, T eine Geradenmenge, und pIg bedeutet, dass der Punkt p auf der Geraden g liegt. Regel vom zweifachen Abz¨ ahlen. Es sei (S, T, I) ein Inzidenzsystem, und f¨ ur a ∈ S bezeichne r(a) die Anzahl der zu a inzidenten Elemente aus T , und analog r(b) f¨ ur b ∈ T die Anzahl der zu b inzidenten Elemente aus S. Dann gilt r(a) = r(b). a∈S
b∈T
Die Regel wird sofort einsichtig, wenn wir das Inzidenzsystem als Rechteckschema darstellen. Wir nummerieren die Elemente aus S und T , S = {a1 , . . . , am }, T =
1.1
elementare z¨ ahlprinzipien
5
{b1 , . . . , bn }. Nun stellen wir eine m × n-Matrix M = (mij ) auf, genannt die Inzidenzmatrix, indem wir
1 falls ai Ibj mij = 0 sonst setzen. Die Gr¨ oße r(ai ) ist dann genau die Anzahl der 1’en in der i-ten Zeile, und analog r(bj ) die Anzahl der 1’en in der j-ten Spalte. Die Summe m i=1 r(ai ) ist somit gleich der Gesamtzahl der 1’en (zeilenweise gez¨ahlt), w¨ahrend nj=1 r(bj ) dieselbe Zahl (spaltenweise gez¨ ahlt) ergibt. Beispiel. Zur Illustration betrachten wir die Zahlen von 1 bis 8, S = T = {1, . . . , 8} und erkl¨ aren i ∈ S, j ∈ T inzident, wenn i ein Teiler von j ist, in Zeichen i|j. Die zugeh¨ orige Inzidenzmatrix hat demnach folgende Gestalt, wobei ¨ wir der Ubersichtlichkeit halber nur die 1’en eintragen: 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Die Anzahl der 1’en in Spalte j ist genau gleich der Anzahl der Teiler von j, die wir mit t(j) bezeichnen wollen, also z. B. t(6) = 4, t(7) = 2. Wir stellen uns nun die Frage, wie viele Teiler eine Zahl von 1 bis 8 im Durchschnitt hat, d. h. wir wollen t(8) = 81 8j=1 t(j) berechnen. In unserem Beispiel ist t(8) = 25 . Aus der Tafel erkennen wir folgende Werte: n t(n)
1 1
2
3
3 2
5 3
4 5 2 2
6
7
8
7 3
16 7
5 2
Wie groß ist nun t(n) f¨ ur beliebiges n ? Das scheint auf den ersten Blick eine hoffnungslose Angelegenheit. F¨ ur Primzahlen p gilt t(p) = 2 , w¨ahrend f¨ ur 2-er Potenzen ein großer Wert t(2k ) = k + 1 resultiert. Versuchen wir dennoch unsere Regel ahlens. Nach Spalten gez¨ahlt erhalten wir, wie gesehen, n des zweifachen Abz¨ t(j) . Wie viele 1’en sind in der i-ten Zeile? Offenbar entsprechen die 1’en j=1 den Vielfachen von i, n¨ amlich 1 · i, 2 · i, . . . , und das letzte Vielfache ≤ n ist ⌊ ni ⌋ · i, also ist r(i) = ⌊ ni ⌋. Unsere Regel ergibt daher t(n) =
n n n n 1n 1 1 n 1 t(j) = ⌊ ⌋∼ = , n j=1 n i=1 i n i=1 i i i=1
6
1
grundlagen
¨ wobei der Fehler beim Ubergang von⌊ ni ⌋ auf ni f¨ ur alle i kleiner als 1 ist, also n auch in der Summe. Die letzte Gr¨ oße i=1 1i wird uns noch oft begegnen, sie heißt die n-te harmonische Zahl Hn . Aus der Analysis wissen wir, dass Hn ∼ log n etwa so groß ist wie der nat¨ urliche Logarithmus, und wir erhalten das erstaunliche Ergebnis, dass die Teilerfunktion trotz aller Unregelm¨aßigkeit im Durchschnitt sich vollkommen regelm¨ aßig verh¨ alt, n¨ amlich t(n) ∼ log n.
1.2
Die fundamentalen Z¨ ahlkoeffizienten
Einige Zahlen wie die Binomialkoffizienten nk tauchen immer wieder auf. Wir wollen die wichtigsten Zahlen nun besprechen. Am Ende des Abschnittes wird auch der Grund klar werden, warum gerade diese Zahlen in so vielen Abz¨ahlproblemen erscheinen. Die ersten Begriffe, die wir mit einer Menge assoziieren, sind Untermengen und n Partitionen. Sei N eine n-Menge,dann bezeichnet, wie wir wissen, die Ank zahl der k-Untermengen von N ; nk heißen die Binomialkoeffizienten. Nun betrachten wir alle Mengen-Partitionen von n in k disjunkte Bl¨ocke, kurz kPartitionen, und bezeichnen deren Anzahl mit Sn,k . Die Zahlen Sn,k heißen die Stirling-Zahlen zweiter Art (warum zweiter Art hat historische Gr¨ unde und wird bald klar werden). Zum Beispiel besitzt N = {1, 2, 3, 4, 5} folgende 2-Partitionen, wobei wir die Klammern weglassen: 12345 = 1234 + 5, 1345 + 2, 124 + 35, 135 + 24, 235 + 14,
1235 + 4, 2345 + 1, 125 + 34, 145 + 23, 245 + 13,
1245 + 3, 123 + 45, 134 + 25, 234 + 15, 345 + 12,
also ist S5,2 = 15. Analog zu Mengen-Partitionen k¨ onnen wir auch Zahl-Partitionen erkl¨aren. Sei n ∈ N, dann heißt n = n1 + n2 + · · · + nk , ni ≥ 1 (∀i), eine k-Partition von n. Ihre Anzahl sei Pn,k . Da es auf die Reihenfolge der ni ’s nicht ankommt, k¨onnen wir n1 ≥ n2 ≥ . . . ≥ nk voraussetzen. F¨ ur n = 8 erhalten wir die folgenden 4-Partitionen: 8 = 5 + 1 + 1 + 1, 4 + 2 + 1 + 1, 3 + 3 + 1 + 1, 3 + 2 + 2 + 1, 2 + 2 + 2 + 2, also ist P8,4 = 5. Wir haben eben erw¨ ahnt, dass es auf die Reihenfolge der Summanden in einer Zahl-Partition nicht ankommt, wir k¨ onnen daher auch von ungeordneten ZahlPartitionen sprechen. Ebensowenig spielt bei den Untermengen oder MengenPartitionen die Reihenfolge eine Rolle. Als n¨achstes wollen wir uns nun u ¨ berlegen,
1.2
die fundamentalen z¨ ahlkoeffizienten
7
wie viele geordnete k-Untermengen oder k-Partitionen es gibt. Geordnet heißt also, dass die geordnete Untermenge {1, 2, 3} von {3, 1, 2} oder {3, 2, 1} verschieden ist, obwohl sie als gew¨ ohnliche Mengen gleich sind. Desgleichen sind die geordneten Mengen-Partitionen 123 + 45 und 45 + 123 verschieden, oder die Zahl-Partitionen 3 + 3 + 1 + 1 und 3 + 1 + 3 + 1. Um die entsprechenden Koeffizienten zu berechnen, ben¨otigen wir Permutationen. Sei N eine n-Menge, z. B. N = {1, 2, . . . , n}. Wir betrachten W¨orter der L¨ange k mit lauter verschiedenen Eintr¨ agen; wir nennen sie k-Permutationen von N . Zum Beispiel sind 1234 und 5612 zwei 4-Permutationen von N = {1, 2, . . . , 6}. Wie viele solcher k-Permutationen gibt es? F¨ ur die erste Stelle haben wir n M¨oglichkeiten. Ist das erste Element gew¨ ahlt, so haben wir n − 1 M¨oglichkeiten f¨ ur die zweite Stelle. Ist auch dieses Element gew¨ ahlt, so bleiben n − 2 M¨oglichkeiten f¨ ur die dritte Stelle, usf. Die Produktregel ergibt daher: Anzahl der k-Permutationen einer n-Menge = n(n − 1) . . . (n − k + 1). Insbesondere folgt f¨ ur k = n, dass die Anzahl der n-Permutationen, d. h. aller Permutationen von N , gleich n! = n(n − 1) . . . 2 · 1 ist. Die Gr¨ oßen n(n − 1) . . . (n − k + 1) erscheinen so h¨aufig in Abz¨ahlproblemen, dass wir ihnen einen eigenen Namen geben: n k := n(n − 1) . . . (n − k + 1) heißen die fallenden Faktoriellen (von n der L¨ ange k). Analog dazu setzen wir nk := n(n + 1) . . . (n + k − 1) und nennen nk die steigenden Faktoriellen. Zur¨ uck zu unserem Problem der Abz¨ ahlung geordneter Objekte. F¨ ur Untermengen und Mengen-Partitionen ist dies ganz einfach. Jede k-Untermenge ergibt k! geordnete k-Untermengen und jede k-Mengen-Partition ergibt k! geordnete k-MengenPartitionen, da die verschiedenen Elemente bzw. Bl¨ocke auf k! Arten permutiert werden k¨ onnen. Also erhalten wir f¨ ur die entsprechenden Anzahlen n k! bzw. k! Sn,k . k Nun ist klar, dass die geordneten k-Untermengen nichts anderes als die k-Permu tationen von N sind, also erhalten wir f¨ ur nk die u ¨ bliche Formel n n(n − 1) . . . (n − k + 1) nk = = . k k! k! Die Abz¨ ahlung geordneter Zahl-Partitionen ist ein wenig subtiler, da die Summanden ja nicht verschieden zu sein brauchen, einige Permutationen daher die gleiche geordnete Partition ergeben. Zum Beispiel erhalten wir aus 3 + 1 + 1 nicht 6 = 3! verschiedene geordnete Partitionen sondern nur 3, n¨amlich 3 + 1 + 1, 1 + 3 + 1, 1 + 1 + 3. Die folgende Formel ist eine sch¨ one Illustration der Gleichheitsregel:
8
1
grundlagen
Anzahl der geordneten k-Partitionen von n ist
n−1 k−1 .
Zum Beweis konstruieren wir eine Bijektion von der Menge S aller geordneten kPartitionen von n auf die Menge T aller (k − 1)-Untermengen in {1, 2, . . . , n − 1}. aren wir f : S → T durch f (n1 +· · ·+nk ) = Sei n = n1 +n2 +· · ·+nk ∈ S, dann erkl¨ {n1 , n1 + n2 , . . . , n1 + · · · + nk−1 }. Wegen ni ≥ 1 ist 1 ≤ n1 < n1 + n2 < · · · < n1 + · · · + nk−1 ≤ n − 1, d. h. f (n1 + · · · + nk ) ∈ T . Die Umkehrabbildung ist g({a1 < a2 < . . . < ak−1 }) = a1 + (a2 − a1 ) + · · · + (ak−1 − ak−2 ) + (n − ak−1 ), und f, g sind offensichtlich invers zueinander. Den Rest besorgt die Gleichheitsregel. Als Beispiel erhalten wir f¨ ur n = 6, k = 3 die folgenden 52 = 10 geordneten 3-Partitionen von 6: 4 + 1 + 1, 1 + 4 + 1, 1 + 1 + 4, 3 + 2 + 1, 3 + 1 + 2, 2 + 3 + 1, 2 + 1 + 3, 1 + 3 + 2, 1 + 2 + 3, 2 + 2 + 2 . Als letztes wollen wir noch den Begriff einer Multimenge einf¨ uhren. Sprechen wir von einer Menge, so setzen wir stets voraus, dass die Elemente alle verschieden sind. In einer Multimenge lassen wir diese Forderung fallen. M = {1, 1, 2, 2, 3} ist z. B. eine Multimenge u ¨ ber {1, 2, 3}, wobei 1 und 2 mit der Vielfachheit 2 auftreten, 3 mit der Vielfachheit 1. Die M¨ achtigkeit einer Multimenge ist die Anzahl der Elemente gez¨ ahlt mit ihrer Vielfachheit, in unserem Beispiel ist |M | = 5. Die folgende Formel zeigt uns die Bedeutung der steigenden Faktoriellen: Anzahl der k-Multimengen u ¨ber einer n-Menge k n(n + 1) . . . (n + k − 1) = = n . k! k! Wiederum liefert die Gleichheitsregel den Beweis. Sei S die Menge aller k-Multimengen u ¨ ber {1, 2, . . . , n} und T die Menge aller k-Untermengen von {1, 2, . . . , n+ k = nk! . F¨ k − 1}, also |T | = n+k−1 ur {a1 ≤ a2 ≤ . . . ≤ ak } ∈ S setzen wir k f ({a1 ≤ . . . ≤ ak }) = {a1 , a2 + 1, a3 + 2, . . . , ak + (k − 1)}. Es gilt 1 ≤ a1 < a2 + 1 < . . . < ak + (k − 1) ≤ n + (k − 1), also ist f ({a1 ≤ . . . ≤ ak }) ∈ T . Die inverse Abbildung ist g({b1 < . . . < bk }) = {b1 ≤ b2 − 1 ≤ . . . ≤ bk − (k − 1)}, und der Beweis ist fertig. Unsere fundamentalen Z¨ ahlkoeffizienten treten in ganz nat¨ urlicher Weise beim Abz¨ ahlen von Abbildungen auf. Betrachten wir die Abbildungen f : N → R, wobei |N | = n, |R| = r sein soll. Die Gesamtzahl der Abbildungen ist r n , da wir f¨ ur jedes Element r m¨ ogliche Bilder haben, so dass wir mit der Produktregel r n erhalten. Desgleichen liefert die Produktregel f¨ ur die Anzahl der injektiven Abbildungen r(r − 1) . . . (r − n + 1). Wie sieht es mit den surjektiven Abbildungen aus? Jede Abbildung f kann durch die Urbilder {f −1 (y) : y ∈ R} beschrieben werden. Zum Beispiel entspricht die Abbildung f
1.2
die fundamentalen z¨ ahlkoeffizienten
9
1
N
2
a
3
b
4
c
5
R
f
den Urbildern f −1 (a) = {1, 2, 4}, f −1 (b) = {3, 5}, f −1 (c) = ∅. Ist insbesondere f surjektiv, so bilden die Urbilder eine geordnete r-Partition von N , und umgekehrt ergibt jede solche Partition genau eine surjektive Abbildung. In Zusammenfassung haben wir also: |Abb (N, R)| = r n |Inj (N, R)| = r n
|Surj (N, R)| = r! Sn,r . Jede Abbildung f : N → R hat ein eindeutiges Bild A ⊆ R, A = {f (x) : x ∈ N }, und f ist surjektiv von N auf A. Klassifizieren wir daher die Abbildungen nach ihren Bildern, so ergibt die Summenregel r n = |Abb (N, R)| = |Surj (N, A)| =
A⊆R r
k=0 |A|=k
|Surj (N, A)|
r r = k! Sn,k k
=
k=0 r
Sn,k r k ,
k=0
und wir erhalten eine Formel, welche die Potenzen, fallenden Faktoriellen und Stirling Zahlen verkn¨ upft: (1)
n
r =
n
Sn,k r k .
k=0
Dabei k¨ onnen wir die Summation bei n abbrechen, da es offenbar keine k-Partitionen von N mit k > n gibt, d. h. Sn,k = 0 ist f¨ ur k > n. Besonders einpr¨ agsam werden unsere Z¨ ahlkoeffizienten, wenn wir die Menge N als B¨ alle ansehen, R als F¨ acher und eine Abbildung f : N → R als Verteilung der B¨ alle in die F¨ acher. Injektiv heißt dann, dass in ein Fach h¨ochstens ein Ball kommt,
10
1
grundlagen
surjektiv, dass jedes Fach mindestens einen Ball enth¨alt. Angenommen, die B¨alle k¨ onnen nicht unterschieden werden, die F¨ acher aber schon. Wie viele Verteilungen gibt es dann? Im injektiven Fall w¨ ahlen wir jedesmal n der r F¨acher, die einen Ball enthalten (welcher ist gleichg¨ ultig, da wir die B¨alle nicht unterscheiden k¨onnen), und erhalten somit genau die n-Untermengen von R mit der Anzahl nr . Erlauben wir beliebige Verteilungen, so ergeben sich genau die n-Multimengen von R, deren n Anzahl wir als rn! berechnet haben. Wie ist es im surjektiven Fall? Auch diese Verteilungen kennen wir schon. Das Fach i enth¨alt ni ≥ 1 B¨alle, insgesamt ist also n = n1 + . . . + nr eine geordnete Zahl-Partition von n, und deren Anzahl ist n−1 r−1 . Kombinieren wir alle F¨ alle, je nachdem ob die B¨alle und F¨acher unterscheidbar bzw. nicht unterscheidbar sind, so erhalten wir das folgende Diagramm, welches alle unsere fundamentalen Koeffizienten auf einen Blick ergibt: |N | = n, |R| = r
beliebig
injektiv
surjektiv
bijektiv
N unterscheidbar R unterscheidbar
rn
rn
r!Sn,r
r! = n!
N nicht unterscheidbar R unterscheidbar
rn n!
N unterscheidbar R nicht unterscheidbar N nicht unterscheidbar R nicht unterscheidbar
1.3
r
k=1 r
rn = n!
r n
n−1 r−1
1
Sn,k
0 oder 1
Sn,r
1
Pn,k
0 oder 1
Pn,r
1
k=1
Permutationen
Permutationen einer Menge, z. B. von N = {1, 2, . . . , n}, k¨onnen auf mehrere Weisen dargestellt werden. achst 1 2 Zun¨ ist eine Permutation π einfach eine bijektive ... n Abbildung π = π(1) π(2) ... π(n) . Halten wir die Ausgangsmenge in der Reihenfolge 1, 2, . . . , n fest, so k¨ onnen wir π eindeutig als Wort π = π(1) π(2) . . . π(n) schreiben. Jede Permutation π ist a ¨quivalent zu einer Menge von Zyklen. Sei zum Beispiel 123456789 π= , 583197624 dann geht 1 nach 5, 5 nach 9, 9 nach 4 und 4 nach 1. Die Elemente (1, 5, 9, 4) bilden einen Zyklus. Verfahren wir genau so mit den restlichen Elementen, so erhalten wir die Zyklendarstellung von π, π = (1, 5, 9, 4)(2, 8)(3)(6, 7). Die Anzahl der Elemente in einem Zyklus ist die L¨ ange des Zyklus. Zyklen der L¨ange 1 nennen wir Fixpunkte. Wir bemerken zwei Dinge: Zum einen kommt es bei der Zyklendarstellung nicht auf die Reihenfolge der Zyklen an, wir k¨onnten in unserem Beispiel auch π = (6, 7)(1, 5, 9, 4)(3)(2, 8) schreiben – es ist immer noch dieselbe
1.3
11
permutationen
Permutation. Zweitens k¨ onnen wir innerhalb eines Zyklus mit jedem beliebigen Element beginnen, dann ist die Reihenfolge allerdings festgelegt. Zum Beispiel ist auch (7, 6)(9, 4, 1, 5)(8, 2)(3) eine Zyklendarstellung von π. F¨ ur n = 3 erhalten wir beispielsweise die 6 Permutationen geschrieben als W¨orter 123
132
213
231
312
321
und in Zyklendarstellung (1)(2)(3) (1)(2, 3) (1, 2)(3) (1, 2, 3) (1, 3, 2) (1, 3)(2). Die Zyklendarstellung von π ergibt insbesondere eine Partition von N mit den Zyklen als Bl¨ ocken. In Analogie zu den Mengen definieren wir sn,k als die Anzahl der Permutationen von {1, . . . , n} mit k Zyklen, und nennen sn,k die StirlingZahlen erster Art. Als Beispiel haben wir sn,1 = (n − 1)!, da wir in einem Zyklus der L¨ ange n als Anfangselement 1 nehmen k¨onnen, und dann die restlichen Elemente beliebig permutieren k¨ onnen. Ein weiteres Beispiel ist sn,n−1 = n2 , da eine Permutation mit n − 1 Zyklen aus n − 2 Fixpunkten und einem 2-er Zyklus besteht, den wir ersichtlich auf n2 Arten w¨ ahlen k¨onnen. Nat¨ urlich folgt aus der Definition n n! = sn,k (n ≥ 1) . k=1
F¨ ur eine Permutation π bezeichne bi (π) die Anzahl der Zyklen der L¨ange i (i = 1, . . . , n) und b(π) die Gesamtzahl der Zyklen, also n
=
b(π) =
n
i=1 n
i bi (π) bi (π) .
i=1
Der Typ der Permutation π ist der formale Ausdruck t(π) = 1b1 (π) . . . nbn (π) . In unserem obigen Beispiel haben wir t(π) = 11 22 41 . (Die Zahlen i mit bi (π) = 0 lassen wir weg.) Wir sehen sofort, dass es genau soviele m¨ ogliche Typen von Permutationen gibt wie Zahl-Partitionen von n. F¨ ur n = 5 erhalten wir beispielsweise Partition
Typ
5 4+1 3+2 3+1+1 2+2+1 2+1+1+1 1+1+1+1+1
51 11 41 21 31 12 31 11 22 13 21 15
12
1
grundlagen
Wie viele Permutationen gibt es nun zu einem gegebenen Typ 1b1 2b2 . . . nbn ? Wir schreiben die vorderhand leeren Zyklen hin (.) . . . (.) (..) . . . (..) (. . .) . . . (. . .) . . . b1
b2
b3
und f¨ ullen die Pl¨ atze der Reihe nach mit den n! W¨ortern. Auf diese Weise erhalten wir sicherlich die Permutationen von dem angegebenen Typ. Im allgemeinen werden wir jedoch dieselbe Permutation mehrfach produzieren. Da es auf die Reihenfolge der Zyklen nicht ankommt, k¨ onnen wir die bi Zyklen der L¨ange i als ganzes permutieren, dies ergibt b1 !b2 ! . . . , bn ! Mehrfachz¨ahlungen. Schließlich k¨onnen wir das Anfangselement eines Zyklus fest angeben, also erhalten wir innerhalb der Zyklen weitere 1b1 2b2 . . . nbn Mehrfachz¨ ahlungen (diesmal ist damit ein echtes n Produkt gemeint). Resultat: Sei i=1 ibi = n, dann gilt: Anzahl der Permutationen vom Typ 1b1 2b2 . . . nbn =
n! . b1 ! . . . bn !1b1 2b2 . . . nbn
Insbesondere ergibt dies: sn,k =
(b1 ,...,bn )
n! =
(b1 ,...,bn )
n n n! bi = k ib = n , mit i b1 ! . . . bn !1b1 . . . nbn i=1 i=1 n n! ibi = n . mit b1 ! . . . bn !1b1 . . . nbn i=1
F¨ ur n = 5 k¨ onnen wir unsere Liste nun erg¨ anzen: Anzahl der Permutationen 24 30 20 20 15 10 1
Stirlingzahlen s5,1 = 24 s5,2 = 50 s5,3 = 35 s5,4 = 10 s5,5 = 1
120 = 5! Permutationen werden uns noch oft begegnen, insbesondere bei Sortierproblemen. Betrachten wir eine Permutation a1 , a2 , . . . , an von {1, . . . , n} als Liste, so wollen wir diese Liste durch m¨ oglichst wenige Vertauschungen in die richtige Reihenfolge ¨ 1, 2, . . . , n bringen. Die Ubungen geben einen ersten Einblick in die dabei entstehenden Probleme.
1.4
1.4
13
rekursionen
Rekursionen
F¨ ur die Binomialkoeffizienten haben wir bereits eine befriedigende geschlossene Formel nk = n(n−1)...(n−k+1) abgeleitet, f¨ ur die Stirling Zahlen sn,k erster Art k! eine etwas unhandliche Summenformel (die noch dazu wegen der unbekannten Anzahl der Summanden = Pn,k Schwierigkeiten bereitet). F¨ ur die Zahlen Sn,k existiert vorl¨ aufig nur die Definition. Rekursionen helfen uns hier weiter. Binomialkoeffizienten. Wir haben nk n n(n − 1) . . . (n − k + 1) = (1) = k! k! k (2)
n n! = k k!(n − k)!
(n ≥ k ≥ 0)
(n ≥ k ≥ 0)
insbesondere also (3)
n n = k n−k
(n ≥ k ≥ 0) .
Es ist n¨ utzlich, nk auch f¨ ur negative Zahlen, ja f¨ ur beliebige komplexe Zahlen n zu erkl¨ aren, und k f¨ ur beliebige ganze Zahlen. Zuerst setzen wir 00 = 1, das ist sinnvoll, da die leere Menge ∅ genau eine 0-Untermenge, n¨amlich ∅, enth¨alt. Ebenso setzen wir n0 = n0 = 1 f¨ ur die fallenden und steigenden Faktoriellen, und 0! = 1. Der Ausdruck r k = r(r − 1) . . . (r − k + 1) oder r k = r(r + 1) . . . (r + k − 1) ist 2 f¨ ur beliebiges r ∈ C sinnvoll, z. B. (− 21 )3 = (− 21 )(− 23 )(− 25 ) = − 15 8 , (−2) = (−2)(−1) = 2. F¨ ur k! m¨ ussen wir allerdings zun¨achst k ≥ 0 voraussetzen, da die Fakult¨ atsfunktion f¨ ur k < 0 nicht ohne weiteres erkl¨art werden kann. Wir geben daher die allgemeine Definition f¨ ur r ∈ C:
(4)
Rekursion. (5)
⎧ ⎨ r = ⎩ k
r(r−1)...(r−k+1) k!
=
0
r r−1 r−1 = + k k−1 k
rk k!
(k ≥ 0) (k < 0) .
(r ∈ C, k ∈ Z).
Die Formel folgt direkt aus (4). Wir geben noch einen zweiten Beweis, der die wichtige sogenannte Polynommethode“ verdeutlicht. F¨ ur k < 0 sind beide Seiten ” von (5) gleich 0, und f¨ ur k = 0, sind beide Seiten gleich 1. Sei also k ≥ 1. Wir
14
1
grundlagen
wissen schon, dass (5) f¨ ur alle nat¨ urlichen Zahlen r richtig ist. Ersetzen wir r durch eine Variable x, so erhalten wir x−1 x ? x−1 = + . k−1 k k Auf den beiden Seiten stehen jeweils Polynome in x u ¨ ber C vom Grad k, und wir wissen, dass diese beiden Polynome denselben Wert f¨ ur alle nat¨ urlichen Zahlen annehmen. Nun besagt ein Satz aus der Algebra, dass Polynome vom Grad k, die an mindestens k +1 Stellen u ¨ bereinstimmen, identisch sind. Hier stimmen sie sogar f¨ ur unendlich viele Werte u ¨ berein, also gilt tats¨achlich die Polynomgleichung x x−1 x−1 = + k k−1 k
(6)
(k ≥ 1) .
und daher ist (5) f¨ ur alle x = r ∈ C richtig. Die Polynome xk = x(x − 1) . . . (x − k + 1) bzw. xk = x(x + 1) . . . (x + k − 1) mit x0 = x0 = 1 nennen wir wieder die fallenden bzw. steigenden Faktoriellen. ¨ Ubrigens k¨ onnen wir auch aus der offensichtlichen Gleichung xk = x(x − 1)k−1 = (k + (x − k))(x − 1)k−1 = k(x − 1)k−1 + (x − 1)k−1(x − k) = k(x − 1)k−1 + (x − 1)k durch Division mit k! sofort auf (6) schließen. Die Rekursion (5) ergibt f¨ ur n, k ∈ N0 das Pascalsche Dreieck: n k 0 1 2 3 4 5 6 7 ··
0 1 2 3 4 5 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 7 21 35 35 21
6
7
·· n k
1 7
1
wobei die leeren Stellen jeweils 0 sind, da nk = 0 ist f¨ ur n < k . Die Geheimnisse und Sch¨ onheiten des Pascalschen Dreiecks f¨ ullen ganze B¨ande. Wir n nurn drei n wollen Formeln festhalten. Erstens ist die Zeilensumme mit Index n, k=0 k = 2 , da wir hierbei ja genau die Untermengen einer n-Menge abz¨ a hlen. Betrachten wir nun n eine Spaltensumme mit Index k bis zur Zeile n, also m=0 m . F¨ u r k = 2, n=6 k 7 6 erhalten wir 35 = 3 und f¨ ur k = 1, n = 5, 15 = 2 . Allgemein gilt (7)
n m n+1 = k k+1 m=0
(n, k ≥ 0) .
1.4
rekursionen
15
F¨ ur n = 0 ist dies sicherlich richtig, und mit Induktion erhalten wir aus (5) n m m n+1 n+1 n+1 n+2 = + = + = . k k k k+1 k k+1 m=0 m=0 n+1
Schließlich betrachten nwir nochdie Diagonalen von links oben nach rechts unten, , wobei m die Anfangszeile und n die Endspalte also den Ausdruck k=0 m+k k bezeichnet. Im Dreieck ist die Diagonale mit m = 3, n = 3 eingezeichnet, und die Summe ist 35 = 73 . n m+k m+n+1 (8) = (m, n ≥ 0) . k n k=0
¨ Der Beweis wird wiederum durch Induktion geliefert. Ubrigens gilt (8) f¨ ur beliebiges m ∈ C. Negation. r+k−1 −r = (−1)k k k
(9)
(r ∈ C , k ∈ Z) .
Wir haben (−x)k = (−x)(−x − 1) . . . (−x − k + 1) = (−1)k x(x + 1) . . . (x + k − 1), also die allgemeine Polynomgleichung (−x)k = (−1)k xk .
(10)
Division durch k! ergibt hieraus sofort (9). Die Formel (10) heißt das Reziprozit¨ atsgesetz zwischen den fallenden und steigenden Faktoriellen. Wir k¨ onnen aus (9) sofort eine weitere erstaunliche Eigenschaft des Pascalschen Dreieckes ableiten. Betrachten wir die alternierenden Summen einer Zeile, z. B. der 7-ten Zeile. Wir erhalten 1 , 1 − 7 = −6 , 1 − 7 + 21 = 15 , −20 , 15, −6 , 1 , 0, also genau die dar¨ uberstehenden Zahlen mit wechselnden Vorzeichen. Tats¨achlich, mit (9) und (8) sehen wir m m n k−n−1 n−1 m−n (−1)k = = = (−1)m . k k m m k=0
Binomialsatz.
k=0
Durch Ausmultiplizieren des linken Produktes erhalten wir n n k n−k (x + y)n = (n ≥ 0) . x y k k=0
Insbesondere ergibt dies f¨ ur y = 1: (x + 1)n =
n n k x . k
k=0
16
1
grundlagen
Setzen wir hier x = 1 bzw. x = −1, so resultieren die uns schon bekannten Formeln n n n n k n (11) 2 = (−1) bzw. 0 = (n ≥ 1) . k k k=0
k=0
Als letztes wollen wir eine der wichtigsten Formeln u ¨ berhaupt ableiten. Vandermonde Identit¨ at. n x+y x y (12) = n k n−k
(n ≥ 0) .
k=0
Wir beweisen die Gleichung f¨ ur nat¨ urliche Zahlen x = r, y = s. Der Rest folgt dann mit unserer Polynommethode. Seien R und S disjunkte Mengen mit |R| = r, |S| = s. Links steht r+s , also die Anzahl aller n-Untermengen von R + S. Wir n klassifizieren nun diese Untermengen A nach ihrem Durchschnitt |A ∩ R| = k, k = 0,. . . , n. Gilt |A ∩ R| = k, so muss |A ∩ S| = n − k sein, d. h. es gibt r s genau k n−k k-Untermengen mit |A ∩ R| = k (Produktregel). Anwendung der Summenregel liefert nun das Ergebnis. Stirling Zahlen. Betrachten wir zun¨ achst die Stirling Zahlen zweiter Art Sn,k . ¨ Ahnlich wie f¨ ur Binomialzahlen haben wir jedenfalls Sn,k = 0 f¨ ur n < k, da eine n-Menge h¨ ochstens eine n-Partition gestattet. Wir setzen zus¨atzlich S0,0 = 1 und S0,k = 0 f¨ ur k > 0, Sn,0 = 0 f¨ ur n > 0. Es gilt die folgende Rekursion: (13)
Sn,k = Sn−1,k−1 + k Sn−1,k
(n, k > 0) .
Zum Beweis verwenden wir nat¨ urlich die Summenregel. Sei N eine n-Menge. Wir klassifizieren die k-Partitionen nach einem festen Element a ∈ N . Bildet {a} f¨ ur sich einen Block, so bilden die restlichen Bl¨ ocke eine (k − 1)-Partition von N {a}. Dies ergibt den Summanden Sn−1,k−1 . Andernfalls entfernen wir a. N {a} ist in diesem Fall in k Bl¨ ocke zerlegt, und wir k¨ onnen a in jeden dieser k Bl¨ocke einf¨ ugen, also erhalten wir k Sn−1,k Partitionen im zweiten Fall. Unsere Rekursion ergibt das Stirling Dreieck zweiter Art: n k 0 1 2 3 4 5 6 7 .. .
0 1 0 0 0 0 0 0 0
1
2
3
4
5
6
1 1 1 1 3 1 1 7 6 1 1 15 25 10 1 1 31 90 65 15 1 1 63 301 350 140 21
7
···
Sn,k
1
1.4
17
rekursionen
Einige spezielle Werte fallen sofort auf: Sn,1 = 1, Sn,2 = 2n−1 − 1, Sn,n−1 = n2 , n Sn,n = 1. Sn,n−1 = 2 ist klar, da eine (n − 1)-Partition aus einem Paar und n − 2 einzelnen Elementen besteht. Zerlegen wir N in zwei disjunkte Bl¨ocke, so sind diese beiden Mengen A, N A komplement¨ar zueinander und A = ∅, N . Also n gilt Sn,2 = 2 2−2 = 2n−1 − 1. Nun zu den Stirling Zahlen sn,k erster Art. Wie u ¨ blich setzen wir s0,0 = 1, s0,k = 0 (k > 0), sn,0 = 0 (n > 0). Die Rekursion lautet in diesem Fall: (14)
sn,k = sn−1,k−1 + (n − 1)sn−1,k
(n, k > 0) .
Wie gewohnt klassifizieren wir die Permutationen von N mit k Zyklen nach einem Element a ∈ N . Es gibt sn−1,k−1 solcher Permutationen, die a als 1-Zyklus enthalten. Ansonsten zerf¨ allt N {a} in k Zyklen und wir k¨onnen a vor jedes der n − 1 Elemente aus N {a} in einen Zyklus eintragen. Die kleinen Werte des Stirling Dreiecks erster Art sehen folgendermaßen aus: n k 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 1 0 1 0 1 1 0 2 3 1 0 6 11 6 1 0 24 50 35 10 1 0 120 274 225 85 15 1 0 720 1764 1624 735 175 21
7
sn,k
1
Einige Werte kennen wir schon: sn,1 = (n − 1)!, sn,n−1 = n2 , sn,n = 1. Zur Berechnung von sn,2 verwenden wir (14). Division durch (n − 1)! ergibt (n − 2)! (n − 1)sn−1,2 sn−1,2 1 sn,2 = + = + , (n − 1)! (n − 1)! (n − 1)! (n − 2)! n − 1
1 1 also durch Iteration sn,2 = (n − 1)!( n−1 + n−2 + . . . + 1) = (n − 1)!Hn−1 , wobei Hn−1 die uns schon bekannte (n − 1)-ste harmonische Zahl bezeichnet.
Warum heißen sn,k und Sn,k Stirling Zahlen erster und zweiter Art? Hier ist der n ur alle r ∈ N gezeigt. Mit Sn,k r k f¨ Grund. In Abschnitt 2 haben wir r n = k=0
unserer bew¨ ahrten Polynommethode k¨ onnen wir somit auf die Polynomgleichung (15)
xn =
n
Sn,k xk
k=0
schließen. Dr¨ ucken wir umgekehrt die fallenden Faktoriellen xn durch die Potenzen k x aus, so behaupten wir (16)
xn =
n
(−1)n−k sn,k xk .
k=0
18
1
grundlagen
F¨ ur n = 0 ist dies offensichtlich richtig. Induktion liefert nun mit Hilfe von (14) xn
= xn−1 (x − n + 1) = = = =
n−1
n−1 k=0
(−1)n−1−k sn−1,k xk (x − n + 1)
(−1)n−1−k sn−1,k xk+1 +
k=0 n
n−1 k=0
(−1)n−k (n − 1)sn−1,k xk
(−1)n−k (sn−1,k−1 + (n − 1)sn−1,k )xk
k=0 n
(−1)n−k sn,k xk .
k=0
Dies ist der Grund f¨ ur die Bezeichnung erster und zweiter Art. Die Polynomfolgen (xn ) und (xn ) k¨ onnen eindeutig wechselweise als Linearkombination dargestellt werden, und die Verbindungskoeffizienten von xn ausgedr¨ uckt durch xk bzw. xn k ausgedr¨ uckt durch x sind (bis auf das Vorzeichen) genau die Stirling Zahlen erster bzw. zweiter Art. Sp¨ ater werden wir diesen Gedanken bei der Ableitung von allge¨ meinen Inversionsformeln aufgreifen. Ubrigens werden in der Literatur die Stirling n−k Zahlen erster Art auch durch (−1) sn,k bezeichnet, also mit wechselndem Vorzeichen.
1.5
Diskrete Wahrscheinlichkeitsrechnung
Kombinatorik und diskrete Wahrscheinlichkeitstheorie waren urspr¨ unglich fast gleichbedeutend. Eines der ersten Lehrb¨ ucher u ¨ ber Kombinatorik von Whitworth 1901 trug beispielsweise den Titel Choice and Chance“. Jeder kennt Probleme der ” Art: Gegeben eine Schachtel mit 4 weißen und 3 blauen Kugeln. Wie groß ist die Wahrscheinlichkeit, bei einer Ziehung von 4 Kugeln genau 2 weiße und 2 blaue zu erhalten ? Das ist nat¨ urlich ein kombinatorisches Problem. Heute spielen auch noch ganz andere Fragen eine große Rolle. Um Nachrichten sicher u ¨ bertragen zu k¨ onnen, brauchen wir m¨ oglichst zuf¨ allige Symbolfolgen, z. B. 0, 1-Folgen. Was ist eine zuf¨ allige“ Folge? Oder wie erzeugt man eine Zufallszahl? Angenommen, wir ” wollen eine Vermutung u ¨ ber Permutationen der L¨ange n testen. Da n! ab etwa n = 20 auch f¨ ur den schnellsten Rechner außer Reichweite ist, simulieren“ wir, ” indem wir einige Permutationen zuf¨ allig“ herausgreifen; aber was ist eine Zufalls” Permutation ? Vereinfacht gesagt sind die Methoden der diskreten Wahrscheinlichkeitsrechnung Abz¨ ahlargumente, die wir auch aus der Kombinatorik ableiten k¨ onnten. Aber die Begriffe der Wahrscheinlichkeitstheorie erlauben oft einen sehr viel schnelleren und eleganteren Zugang. Die Wahrscheinlichkeitstheorie beginnt mit der Idee eines Wahrscheinlichkeitsraumes (Ω, p). Ω ist eine endliche Menge, und p ist eine Abbildung p : Ω → [0, 1], welche jedem ω ∈ Ω die Wahrscheinlichkeit p(ω), 0 ≤ p(ω) ≤ 1, zuordnet. Schließlich verlangen wir als Normierung ω∈Ω p(ω) = 1. Das eing¨ angigste Beispiel ist das Werfen eines W¨ urfels. Hier ist Ω = {1, 2, 3, 4, 5, 6} und p(ω) gibt die Wahrscheinlichkeit an, dass die Zahl ω geworfen wird. In einem
1.5
diskrete wahrscheinlichkeitsrechnung
19
idealen W¨ urfel ist p(ω) = 16 f¨ ur alle ω ∈ Ω. Der W¨ urfel k¨onnte aber ebenso 1 gut gezinkt“ sein, mit sagen wir, p(1) = p(4) = 14 , p(2) = p(5) = p(6) = 10 , ” 1 p(3) = 5 . Wir nennen p die (Wahrscheinlichkeits-) Verteilung auf Ω. Setzen 1 1 1 wir p0 = ( 16 , 16 , 61 , 16 , 16 , 61 ), p1 = ( 41 , 10 , 15 , 41 , 10 , 10 ), so sind also p0 , p1 zwei Verteilungen. Eine beliebige Untermenge A ⊆ Ω heißt ein Ereignis, und wir definieren p(A) = urfelexperiω∈A p(ω). Insbesondere ist also p(∅) = 0, p(Ω) = 1. Bei unserem W¨ ment k¨ onnten wir z. B. fragen, wie groß die Wahrscheinlichkeit ist, dass eine gerade Zahl gew¨ urfelt wird, d. h. wir fragen nach der Wahrscheinlichkeit des Ereignisses 9 A = {2, 4, 6}. F¨ ur unsere beiden Verteilungen erhalten wir p0 (A) = 21 , p1 (A) = 20 , der gezinkte W¨ urfel benachteiligt“ gerade Zahlen. ” Aus der Definition folgt sofort: (1)
A ⊆ B =⇒ p(A) ≤ p(B),
(2)
p(A ∪ B) = p(A) + p(B) − p(A ∩ B),
(3)
p(A) =
p(Ai ) f¨ ur eine Partition A =
i
(4) (5)
p(Ω A) = 1 − p(A),
Ai ,
p( Ai ) ≤ p(Ai ). i
i
Formel (3) ist nat¨ urlich nichts anderes als unsere Summenregel. Sind alle Elemente 1 ω ∈ Ω gleichwahrscheinlich, p(ω) = |Ω| , so sprechen wir von einem uniformen Wahrscheinlichkeitsraum (Ω, p), und nennen p die Gleichverteilung auf Ω. In uckt diesem Fall gilt also f¨ ur ein Ereignis p(A) = |A| ¨ blicherweise so ausgedr¨ |Ω| , was u wird: p(A) = Anzahl der g¨ unstigen“ F¨ alle (ω ∈ A) geteilt durch die Anzahl der ” m¨ oglichen“ F¨ alle (ω ∈ Ω). ” Ebenso gibt es eine Produktregel. Angenommen, wir werfen den W¨ urfel zweimal hintereinander und fragen nach den m¨ oglichen Ausg¨angen. Der Wahrscheinlichkeitsraum ist nun Ω2 = {1, . . . , 6}2 und p(ω, ω ′ ) ist die Wahrscheinlichkeit, dass beim erstenmal ω und beim zweitenmal ω ′ gew¨ urfelt wird. Wir sagen, die W¨ urfe sind unabh¨ angig, falls p(ω, ω ′ ) = p(ω) p(ω ′ ) f¨ ur alle (ω, ω ′ ) ∈ Ω2 ist. F¨ ur das Ereignis (A, B) gilt dann p(ω) p(ω ′ ) = p(ω, ω ′ ) = p(A, B) = p(ω) p(ω ′ ) = p(A) p(B). (ω,ω ′ )
ω∈A
(ω,ω ′ )∈A×B
ω ′ ∈B
Allgemein erhalten wir die folgende zur Produktregel entsprechende Aussage: Sind (Ω1 , p1 ), . . . , (Ωm , pm ) unabh¨ angig, so gilt f¨ ur die Verteilung p auf Ω1 × . . . × Ωm und A1 ⊆ Ω1 , . . . , Am ⊆ Ωm (6)
p(A1 , . . . , Am ) =
m
i=1
pi (Ai ) .
20
1
grundlagen
Beispielsweise ist die Wahrscheinlichkeit, beim ersten Mal eine gerade Zahl A und beim zweiten Mal eine ungerade Zahl B zu w¨ urfeln, f¨ ur unsere Verteilungen p0 , p1 p00 = p0 (A) p0 (B) = p11 = p1 (A) p1 (B) =
1 1 1 2 · 2 = 4 11 99 9 20 · 20 = 400
.
Nehmen wir zuerst den fairen W¨ urfel und beim zweiten Mal den gezinkten W¨ urfel, so erhalten wir 11 1 11 = . p01 = p0 (A) p1 (B) = · 2 20 40 Wirklich interessant wird die Wahrscheinlichkeitstheorie, wenn wir den Elementen oder Ereignissen Werte zuteilen und nach der Verteilung der Werte fragen. Eine Zufallsvariable X ist eine Abbildung X : Ω → R. Zum Beispiel k¨onnen wir beim zweimaligen W¨ urfeln nach der Summe der Augen fragen, also ist X : {1, . . . , 6}2 → T = {2, 3, . . . , 12}. Eigentlich ist X eine Funktion, doch ist der Name Zufallsvariable allgemein gebr¨ auchlich. Mittels X k¨onnen wir nun auf dem Bild T ⊆ R eine Verteilung definieren: p(ω) (x ∈ T ) . pX (x) = p(X = x) := X(ω)=x
Es gilt x∈T pX (x) = x X(ω)=x p(ω) = 1, also ist pX tats¨achlich eine Verteilung auf T , die von X induzierte Verteilung. Die Gr¨oße pX (x) gibt also genau die Wahrscheinlichkeit an, dass die Zufallsvariable unter dem gegebenen Experiment den Wert x annimmt. Wenn wir Probleme betrachten, die nur die Zufallsvariable X betreffen, so k¨ onnen wir mit dem im allgemeinen viel kleineren Raum (T, pX ) arbeiten, anstelle des zugrundeliegenden Raumes (Ω, p).
Sehen wir uns die induzierten Verteilungen p00 (X = x) und p11 (X = x) f¨ ur unsere beiden W¨ urfel an: s p00 (X = s) p11 (X = s)
2 1 36 1 400
3
4
5
6
7
8
9
10 11
(1 2 3 4 5 6 5 4 3 ( 25 20 44 66 56 68 49 36 24
2 8
12 1) 4)
Haben wir zwei Zufallsvariablen X : Ω → T , Y : Ω → U mit den induzierten Verteilungen pX und pY , so ist die gemeinsame Verteilung auf T × U durch p(ω) p(x, y) = p(X = x ∧ Y = y) = X(ω)=x, Y (ω)=y
erkl¨ art. Wir nennen X und Y unabh¨ angig, falls (7)
p(x, y) = pX (x) pY (y)
f¨ ur alle
(x, y) ∈ T × U
gilt.
Es ist unmittelbar klar, wie diese Begriffe auf m Zufallsvariablen zu u ¨ bertragen angig, falls sind. X1 , . . . , Xm heißen unabh¨ p(X1 = x1 ∧ . . . ∧ Xm = xm ) =
m
i=1
p(Xi = xi )
f¨ ur alle (x1 , . . . , xm ) gilt.
1.5
diskrete wahrscheinlichkeitsrechnung
21
Das zweimalige Werfen eines W¨ urfels mit X1 die erste Augenzahl und X2 die zweite ergibt unabh¨ angige Variablen. Ist X1 die Summe der Augenzahlen zweier W¨ urfe und X2 das Produkt, so werden wir aber keineswegs Unabh¨angigkeit erwarten k¨ onnen, und tats¨ achlich erhalten wir schon f¨ ur den kleinsten Fall x1 = 2, x2 = 1, 1 1 , p00 (X2 = 1) = 36 , aber p00 (X1 = 2) = 36 p00 (X1 = 2 ∧ X2 = 1) =
1 1 > p00 (X1 = 2) p00 (X2 = 1) = 2 . 36 36
Um das Verhalten einer Zufallsvariablen X : Ω → T zu studieren, bedient man sich gewisser Maßzahlen. Die wichtigsten davon sind der Erwartungswert EX und die Varianz V X. Der Erwartungswert sagt uns, welchen Wert die Zufallsvariable im Durchschnitt annimmt. Wir setzen (8) EX := p(ω) X(ω) . ω∈Ω
Ist (Ω, p) uniform, |Ω| = n, so ist EX = n1 ω∈Ω X(ω) also nichts anderes als der u ¨ bliche Durchschnittswert. Mittels der induzierten Verteilung pX auf T erhalten wir (9) EX = pX (x) x , x∈T
da offenbar
ω∈Ω
p(ω) X(ω) =
x∈T
ω:X(ω)=x
p(ω)x =
x∈T
pX (x)x gilt.
F¨ ur unsere beiden W¨ urfel ist der Erwartungswert der Augensumme zweier W¨ urfe 1 einmal 36 (1·2+2·3+· · ·+1·12) = 7 und f¨ ur den gezinkten W¨ urfel 6,3. Schon dieses kleine Beispiel zeigt, dass wir einige Regeln brauchen, um EX effektiv berechnen zu k¨ onnen. Sind X, Y zwei Zufallsvariablen auf Ω, so auch die Summe X + Y auf Ω, und nach (8) erhalten wir sofort p(ω) (X(ω) + Y (ω)) = EX + EY . (10) E(X + Y ) = ω∈Ω
Ebenso gilt E(αX) = αEX und E(α) = α f¨ ur eine Konstante α. Der Erwartungswert ist also eine lineare Funktion: (11)
E(α1 X1 + . . . + αm Xm ) =
m
αi EXi .
i=1
F¨ ur unser W¨ urfelexperiment k¨ onnen wir somit sagen: Der Erwartungswert der Summe zweier W¨ urfe ist gleich der Summe der Erwartungswerte der einzelnen
22
1
grundlagen
W¨ urfe. Ist zum Beispiel X1 die Augenzahl des ersten Wurfes und X2 des zweiten Wurfes, so gilt EX1 = EX2 = 27 f¨ ur den fairen W¨ urfel und EX1 = EX2 = 3, 15 f¨ ur den gezinkten W¨ urfel. F¨ ur die Summe X = X1 + X2 erhalten wir demnach EX = EX1 + EX2 = 7 bzw. 6, 3. Das Produkt zweier Zufallsvariablen ist nicht so leicht zu behandeln, jedoch haben wir die bequeme Formel (12)
E(XY ) = (EX)(EY )
falls X, Y unabh¨angig sind.
Zum Beweis benutzen wir (7) und (9). F¨ ur X : Ω → T , Y : Ω → U gilt E(XY ) =
p(ω) X(ω) Y (ω) =
ω∈Ω
=
(x,y)∈T ×U
pX (x) pY (y) xy =
x∈T
(x,y)∈T ×U
p(X = x ∧ Y = y) · x y
pX (x)x ·
pY (y)y
y∈U
= (EX)(EY ) . Die n¨ achste wichtige Maßzahl ist die Varianz einer Zufallsvariablen. Angenommen, wir ziehen 5 Lose {L1 , . . . , L5 } mit der gleichen Wahrscheinlichkeit 15 . Beim ersten Mal bekommen wir die Auszahlungen X : 0, 2, 5, 8, 85 je nach Los, und beim zweitenmal Y : 18, 19, 20, 21, 22. Der Erwartungswert ist jedesmal derselbe EX = EY = 20, und doch unterscheiden sich die beiden Auszahlungen erheblich. In der Auszahlung Y gruppieren sich die Zahlungen eng um den Mittelwert EY , w¨ahrend sie bei X weit auseinanderliegen. Genau dieses Auseinanderliegen“ wird durch die ” Varianz gemessen. Die Varianz V X ist definiert durch (13)
V X = E((X − EX)2 ) .
Schreiben wir wie u ¨ blich EX = µ, so ist (X − µ)2 wieder eine Zufallsvariable, die den quadratischen Abstand von X zu µ misst, und die Varianz gibt an, wie groß dieser erwartete Abstand ist. Mittels (11) erhalten wir VX
= E((X − µ)2 ) = E(X 2 − 2µX + µ2 ) = E(X 2 ) − 2µ EX + E(µ2 )
= E(X 2 ) − 2(EX)2 + (EX)2 , also (14)
V X = E(X 2 ) − (EX)2 .
Sind X und Y unabh¨ angige Zufallsvariablen, so folgt laut (11) und (12)
1.5
diskrete wahrscheinlichkeitsrechnung
23
V (X + Y ) = E((X + Y )2 ) − (E(X + Y ))2 = E(X 2 ) + 2E(XY ) +
E(Y 2 ) − (EX)2 − 2(EX)(EY ) − (EY )2 = V X + V Y .
F¨ ur zwei unabh¨ angige Variablen gilt also: Varianz der Summe ist gleich Summe der Varianzen. Was ergeben nun unsere beiden Lottoziehungen? Im Fall X erhalten wir V X = 1 2 2 2 2 2 2 5 (0 + 2 + 5 + 8 + 85 ) − 20 = 1063, 6 bzw. V Y = 2. Die Standardabweichung √ V X ist im ersten Fall 32,6 und im zweiten Fall 1,41. Die erste Ziehung wird also von einem Hasardeur bevorzugt werden, die zweite von einem, der auf Nummer sicher gehen will. ¨ Nach all diesen theoretischen Uberlegungen ist es Zeit f¨ ur ein Beispiel. Angenommen, wir ziehen zuf¨ allig eine Permutation π der L¨ange n. Wie viele Fixpunkte wird π haben? Der zugrundeliegende Wahrscheinlichkeitsraum ist die Menge Ω 1 aller n! Permutationen, alle mit der Wahrscheinlichkeit n! . Die uns interessierende Zufallsvariable ist F (π) = Anzahl der Fixpunkte von π , und wir fragen nach dem Erwartungswert EF . Zun¨ achst scheint dies ziemlich hoffnungslos, da wir noch keine Formel f¨ ur die Anzahl der Permutationen mit k Fixpunkten haben. Die Theorie hilft uns hier weiter. Es sei Fi : Ω → {0, 1} die Zufallsvariable mit Fi (π) = 1 oder 0, je nachdem ob π an der i-ten Stelle einen Fixpunkt hat oder nicht. Offensichtlich nimmt Fi den 1 Wert 1 f¨ ur (n − 1)! Permutationen an, und wir erhalten EFi = n! (n − 1)! = n1 f¨ ur alle i. Da ebenso offensichtlich F = F1 + . . . + Fn ist, schließen wir aus (11) E(F ) =
n
E(Fi ) = 1 ,
i=1
d. h. im Durchschnitt k¨ onnen wir genau einen Fixpunkt erwarten. Die Varianz ist nicht unmittelbar klar, da die Variablen Fi nat¨ urlich nicht unabh¨angig sind. Wir haben E(F 2 )
= E(( =
n
i=1
n
Fi )2 ) = E(
i=1
E(Fi2 ) + 2
n n
Fi Fj ) =
i=1 j=1
E(Fi Fj ) .
n n
E(Fi Fj )
i=1 j=1
1≤i<j≤n
Nun gilt Fi2 = Fi , da Fi = 1 oder 0 ist, und daher E(Fi2 ) = E(Fi ) = n1 . Weiter 1 haben wir E(Fi Fj ) = {p(π) : π hat Fixpunkte bei i und j} = (n−2)! = n(n−1) . n! n 2 2 Daraus folgt E(F ) = 1 + 2 n(n−1) = 2, und daher V F = E(F 2 ) − (EF )2 = 2 − 1 = 1.
Unser Ergebnis wird u uckt: Eine Permutation hat im ¨ blicherweise so ausgedr¨ Durchschnitt 1 ± 1 Fixpunkte.
24
1.6
1
grundlagen
Existenzaussagen
Bei den allermeisten Problemen werden wir die genaue Anzahl von vorgegebenen Objekten nicht bestimmen k¨ onnen. Wir m¨ ussen uns dann mit Absch¨ atzungen und Aussagen u oßenordnung zufriedengeben – mehr dar¨ uber in Kapitel 5. ¨ ber die Gr¨ Einen ganz anderen Charakter erh¨ alt das Problem, wenn wir uns die Frage stellen, ob u ¨berhaupt ein Objekt mit den angegebenen Bedingungen existiert. Eine Antwort erhalten wir, wenn es uns gelingt, ein solches Objekt direkt zu konstruieren, oder umgekehrt die Nichtexistenz zu beweisen. Wir konzentrieren uns hier auf den Existenzaspekt. Alle m¨ oglichen Objekte durchzuprobieren, um zu sehen, ob eines den Bedingungen gen¨ ugt, wird meist zu aufwendig sein. Gesucht ist also eine Aussage, die es uns erlaubt, die Existenz zu behaupten, ohne alle Objekte durchzugehen, ja ohne das gesuchte Objekt u ¨ berhaupt zu kennen. Ein Beispiel m¨ oge dies erl¨ autern. Es seien a1 , a2 , . . . , an ganze Zahlen, die nicht verschieden zu sein brauchen. Existiert dann eine Teilmenge der Zahlen, deren Summe ein Vielfaches von n ist? Da es 2n Teilsummen gibt, ist Durchprobieren f¨ ur großes n unm¨ oglich. K¨ onnen wir trotzdem die Existenz einer solchen Summe behaupten? F¨ ur kleine Zahlen n = 2, 3, 4 oder 5 kann man ohne weiteres nachpr¨ ufen, dass so eine Teilsumme stets existiert. Aber stimmt dies auch f¨ ur beliebiges n? Die einfachste, aber sehr anwendungsreiche, Methode ist das Schubfachprinzip (im Englischen pigeonhole principle, also Taubenschlagprinzip, genannt). Schubfachprinzip. (1) Verteilt man n Elemente auf r F¨ acher, n > r, so existiert ein Fach, das mindestens zwei Elemente enth¨ alt. V¨ ollig klar, da ist nichts zu beweisen. In der Sprache der Abbildungen lautet das Prinzip: Sind N und R zwei Mengen mit |N | = n > r = |R| und f eine Abbildung von N nach R, so existiert ein a ∈ R mit |f −1 (a)| ≥ 2. Wir k¨onnen (1) sofort versch¨ arfen: (2) Sei f : N → R mit |N | = n > r = |R|, so existiert ein a ∈ R mit |f −1 (a)| ≥ ⌊ n−1 r ⌋ + 1. ur alle a ∈ R, so h¨atten wir n = a∈R |f −1 (a)| ≤ W¨ are n¨ amlich |f −1 (a)| ≤ ⌊ n−1 r ⌋ f¨ r⌊ n−1 r ⌋ < n, was nicht geht. Mit dem Schubfachprinzip k¨ onnen wir m¨ uhelos unser Zahlenproblem l¨osen. Wir zeigen sogar mehr, n¨ amlich dass unter den Summen ℓi=k+1 ai aufeinanderfolgender Zahlen ak+1 , ak+2 , . . . , aℓ bereits ein Vielfaches von n vorkommt. Wir setzen N = {0, a1 , a1 + a2 , a1 + a2 + a3 , . . . , a1 + a2 + · · · + an }. Teilen wir eine beliebige ganze Zahl m durch n, so erhalten wir als Rest 0, 1, . . . oder n − 1. Wir schreiben R = {0, 1, 2, . . . , n − 1} und erkl¨ aren f : N → R, indem wir f (m) gleich dem Rest bei Division durch n setzen. Da |N | = n + 1 > n = |R| ist, folgt aus (1), dass es zwei Summen a1 +. . .+ak , a1 +. . .+aℓ , k < ℓ, gibt, die denselben Rest bei Division
1.6
existenzaussagen
25
durch n ergeben (wobei eine der beiden Summen die leere Summe sein k¨onnte, die ℓ ℓ k wir mit 0 bezeichnet haben). Also hat i=k+1 ai = i=1 ai − i=1 ai den Rest 0, und ist somit ein Vielfaches von n. Wir bemerken noch, dass die Anzahl n der Summanden kleinstm¨ oglich ist, da wir nur a1 = a2 = . . . = an−1 = 1 zu setzen brauchen. Eine weitere sch¨ one Anwendung des Schubfachprinzips ist folgendes Beispiel. Sei a1 , . . . , an2 +1 eine Folge von n2 + 1 verschiedenen reellen Zahlen. Dann gibt es entweder eine monoton steigende Unterfolge ak1 < ak2 < . . . < akn+1 (k1 < . . . < kn+1 ) von n + 1 Zahlen oder eine monoton fallende Unterfolge aℓ1 > aℓ2 > . . . > aℓn+1 von n + 1 Zahlen. Hier bedarf es schon einigen Geschickes, das Schubfachprinzip anzuwenden. Zu ai assoziieren wir die Zahl ti , welche die L¨ange einer l¨angsten monoton steigenden Unterfolge mit Anfangsglied ai angibt; ti ist also eine Zahl zwischen 1 und n2 + 1. Gilt ti ≥ n + 1 f¨ ur ein i, so haben wir eine gesuchte ansteigende Folge gefunden. Nehmen wir also an, ti ≤ n f¨ ur alle i. Die Abbildung f : ai → ti 2 zeigt uns laut (2), dass es ein s ∈ {1, . . . , n} gibt, so dass ⌊ nn ⌋ + 1 = n + 1 Zahlen aℓ1 , aℓ2 , . . . , aℓn+1 (ℓ1 < ℓ2 < . . . < ℓn+1 ) alle die maximale L¨ange s mit Anfangsglied aℓi haben. Betrachten wir zwei aufeinanderfolgende Glieder aℓi , aℓi+1 dieser Teilfolge. W¨ are aℓi < aℓi+1 , so g¨ abe es eine ansteigende Unterfolge aℓi+1 < . . . der L¨ ange s und damit eine der L¨ ange s + 1 mit Anfangsglied aℓi , im Widerspruch zu f (aℓi ) = s. Die aℓi erf¨ ullen also aℓ1 > aℓ2 > . . . > aℓn+1 , und wir haben unsere gew¨ unschte absteigende Folge erhalten. Der Leser kann sich m¨ uhelos u ¨ berlegen, dass die Aussage f¨ ur n2 Zahlen nicht mehr richtig ist, n2 +1 also wieder bestm¨oglich ist. Der Satz von Ramsey. Eine weitreichende Verallgemeinerung des Schubfachprinzips wurde von dem Logiker Ramsey gefunden. Sehen wir uns nochmals das Schubfachprinzip an. Es ist vorteilhaft, die r F¨acher als Farben zu interpretieren. Eine Abbildung f : N −→ R ist also eine F¨arbung von N , und das Prinzip besagt: Wenn mehr Elemente als Farben vorliegen, so m¨ ussen bei jeder F¨arbung mindestens zwei Elemente dieselbe Farbe erhalten. Wir k¨ onnen dies noch genauer spezifizieren. Es seien nat¨ urliche Zahlen ℓ1 , . . . , ℓr gegeben, und eine n-Menge N mit n ≥ ℓ1 + . . . + ℓr − r + 1. Dann muss es bei jeder F¨ arbung von N eine Farbe i geben, so dass ℓi Elemente mit der Farbe i gef¨arbt sind. Wir nennen dies die Ramsey-Eigenschaft f¨ ur (ℓ1 , . . . , ℓr ). Der urspr¨ ungliche Fall (1) bezieht sich also auf ℓ1 = . . . = ℓr = 2. Hat eine n-Menge die Ramsey-Eigenschaft, so nat¨ urlich auch jede gr¨oßere Menge. Es interessiert uns daher das kleinste solche n und dies ist offenbar genau ℓ1 + · · · + ℓr − r + 1, da f¨ ur m = ri=1 ℓi − r = ri=1 (ℓi − 1) ja die F¨arbung vorliegen k¨ onnte, in der f¨ ur jedes i genau ℓi − 1 Elemente mit i gef¨arbt sind. Der Satz von Ramsey besagt nun, dass ein analoges Ergebnis f¨ ur F¨arbungen von h-Mengen gilt (h = 1 ist das Schubfachprinzip). Wir wollen dies nur f¨ ur h = 2, also Paare, ¨ zeigen und f¨ ur zwei Farben. Der allgemeine Fall folgt dann leicht (siehe Ubung 54). (3) Es seien k und ℓ nat¨ urliche Zahlen ≥ 2. Dann gibt es eine kleinste Zahl R(k, ℓ), genannt die Ramsey Zahl, so dass folgendes gilt: Ist N eine n-Menge mit
26
1
grundlagen
n ≥ R(k, ℓ) und f¨ arben wir alle Paare aus N beliebig mit rot oder blau, dann gibt es entweder eine k-Menge in N , deren Paare alle rot gef¨ arbt sind oder eine ℓ-Menge, deren Paare alle blau gef¨ arbt sind. Offenbar gilt R(k, 2) = k, da in einer k-Menge entweder alle Paare rot gef¨arbt sind oder ein Paar blau gef¨ arbt ist (ℓ = 2). Analog haben wir R(2, ℓ) = ℓ. Nun verwenden wir Induktion nach k+ℓ. Wir nehmen an, dass R(k−1, ℓ) und R(k, ℓ−1) existieren und zeigen R(k, ℓ) ≤ R(k − 1, ℓ) + R(k, ℓ − 1) . Es sei also die Menge N mit |N | = n = R(k − 1, ℓ) + R(k, ℓ − 1) gegeben, deren Paare beliebig mit rot oder blau gef¨ arbt sind. Sei a ∈ N , dann zerf¨allt N a in R ∪ B, wobei x ∈ R ist, falls {a, x} rot gef¨arbt ist bzw. y ∈ B, falls {a, y} blau gef¨ arbt ist. Da |R| + |B| = R(k − 1, ℓ) + R(k, ℓ − 1) − 1
ist, so muss entweder |R| ≥ R(k − 1, ℓ) sein oder |B| ≥ R(k, ℓ − 1). Nehmen wir den ersten Fall an (der zweite geht analog). Nach Induktion gibt es in R entweder k − 1 Elemente, deren Paare alle rot gef¨ arbt sind, dann haben wir zusammen mit a unsere gesuchte k-Menge. Oder es gibt eine ℓ-Menge, deren Paare alle blau gef¨arbt sind, und wir sind wieder fertig. Aus der Pascal“-Rekursion R(k, ℓ) ≤ R(k − 1, ℓ) + R(k, ℓ − 1) und den Anfangs” bedingungen erkennen wir sofort k+ℓ−2 R(k, ℓ) ≤ . k−1 Zum Beispiel erhalten wir f¨ ur den ersten interessanten Fall R(3, 3) ≤ 42 = 6, und 6 ist auch der genaue Wert (warum?). Mit der folgenden Interpretation wird der Satz von Ramsey in vielen B¨ uchern u ¨ ber mathematische Puzzles erw¨ ahnt. N ist eine Menge von Personen, ein rotes Paar bedeutet, dass sich die beiden kennen, und ein blaues, dass sie sich nicht kennen. Die Ramsey-Zahl R(3, 3) = 6 besagt somit: In jeder Gruppe von 6 Personen gibt es immer drei, die untereinander bekannt sind, oder drei, die sich gegenseitig nicht kennen. Eine ganz andere außerordentlich n¨ utzliche Methode ist wahrscheinlichkeitstheoretischer Natur. Wir definieren auf unseren Objekten einen Wahrscheinlichkeitsraum und zeigen, dass die Wahrscheinlichkeit f¨ ur ein Objekt, die gegebenen Bedingungen zu erf¨ ullen, gr¨oßer als 0 ist. Dann muss es ein solches Objekt geben. Als Illustration betrachten wir folgendes F¨arbungsproblem, das auf den ber¨ uhmten ungarischen Mathematiker Paul Erd˝ os zur¨ uckgeht. Es sei F eine Familie von d-Mengen, d ≥ 2, aus einer Grundmenge X. Wir sagen, dass F 2-f¨ arbbar ist, falls es eine F¨ arbung der Elemente von X mit zwei Farben gibt, so dass in jeder Menge A ∈ F beide Farben auftreten.
¨bungen u
27
Es ist klar, dass man nicht jede Familie F so f¨arben kann. Ist zum Beispiel F die Familie aller d-Untermengen einer (2d−1)-Menge, so muss es (nach dem Schubfachprinzip) eine gleichgef¨ arbte d-Menge geben. Andererseits ist aber auch klar, dass jede Teilfamilie einer 2-f¨ arbbaren Familie selber 2-f¨arbbar ist. Wir interessieren uns also f¨ ur die kleinste Zahl m = m(d), f¨ ur die es eine Familie F mit |F| =m gibt, welche nicht 2-f¨ arbbar ist. Das obige Beispiel zeigt also m(d) ≤ 2d−1 . Wie d ist es mit einer unteren Schranke f¨ ur m(d)? (4) Wir haben m(d) > 2d−1 , das heißt: Jede Familie mit h¨ ochstens 2d−1 d-Mengen ist 2-f¨ arbbar. Sei F mit |F| ≤ 2d−1 gegeben. Wir f¨ arben X zuf¨allig mit 2 Farben, wobei alle F¨ arbungen gleich wahrscheinlich sind. F¨ ur A ∈ F sei EA das Ereignis, dass die Elemente von A alle dieselbe Farbe erhalten. Da es genau zwei solche F¨arbungen auf A gibt, erhalten wir 1 2 p(EA ) = d = d−1 . 2 2 Also gilt mit |F| ≤ 2d−1 (wobei die Ereignisse nicht disjunkt sind) p(
EA )
3 niemals eine Quadratzahl ist. 8 Zeige, dass f¨ ur die Binomialkoeffizienten nk gilt: n n n n n < < ... < = > ... > , 0 1 ⌊n/2⌋ ⌈n/2⌉ n wobei f¨ ur gerades n die beiden mittleren Koeffizienten zusammenfallen. ⊲ 9 Zeige ein analoges Resultat f¨ ur die Stirling Zahlen zweiter Art. Zu jedem n ≥ 1 gibt es ein M (n), so dass gilt: Sn,0 < Sn,1 < . . . < Sn,M (n) > Sn,M (n)+1 > . . . > Sn,n oder Sn,0 < Sn,1 < . . . < Sn,M (n)−1 = Sn,M (n) > . . . > Sn,n , wobei M (n) = M (n − 1) oder M (n) = M (n − 1) + 1 ist. Dasselbe Resultat gilt auch f¨ ur sn,k . Hinweis: Verwende die Rekursionen f¨ ur Sn,k und schließe mit Induktion. ak k! mit 0 ≤ ⊲ 10 Zeige, dass jede nat¨ urliche Zahl n eine eindeutige Darstellung n = k≥0 ak ≤ k besitzt. 11 Leite folgende Rekursion f¨ ur die Partitionszahlen Pn,k ab: Pn,1 = Pn,n = 1 und Pn,k = Pn−k,1 + Pn−k,2 + . . . + Pn−k,k . ˜ ˜ 12 nDie Bellzahl ˜Bn ist die Anzahl aller Mengen-Partitionen einer n-Menge, also Bn = k=0 Sn,k mit B0 = 1. Zeige: n n ˜ ˜ Bn+1 = Bk . k k=0
⊲ 13 Sei fn,k die Anzahl der k-Untermengen von {1, . . . , n}, welche kein Paar aufeinanderfolgender Zahlen enthalten. Zeige: n−k+1 fn,k = Fn+2 , , b. a. fn,k = k k
wobei Fn die n-te Fibonacci Zahl ist (d. h. F0 = 0, F1 = 1, Fn = Fn−1 + Fn−2 (n ≥ 2)).
14 Zeige, dass die Summe der Binomialzahlen im Pascalschen Dreieck in einer Diagonale von rechts oben nach links unten stets die Fibonacci Zahl Fn+k+1 ist. Beispiel: Das Startelement n = 4, k = 3 ergibt 4 + 10 + 6 + 1 = 21 = F8 . m n n−k n ab. = 2m m und leite daraus 15 Zeige nr kr = nk n−k k m−k r−k k=0
⊲ 16 Ein u ¨ bliches Kartenpaket mit 52 Karten wird gut gemischt. Was ist die Wahrscheinlichkeit, dass sowohl die oberste wie die unterste Karte eine Dame ist (alle 52! Permutationen gleichwahrscheinlich)? 17 Beim Lotto werden sechs Zahlen aus {1, 2, . . . , 49} ausgew¨ ahlt. Wie groß ist die Wahrscheinlichkeit, dass die gezogene Menge 2 Zahlen mit Differenz 1 enth¨ alt? 18 Die Zufallsvariable X nehme nur die Werte 0 und 1 an. Zeige V X = EX · E(1 − X).
¨bungen u
29
⊲ 19 Zeige, dass in jeder Menge von n + 1 Zahlen aus {1, 2, . . . , 2n} es immer ein Paar von Zahlen gibt, die relativ prim zueinander sind, und immer ein Paar, in dem die eine Zahl ein Teiler der anderen ist. Gilt dies auch f¨ ur n Zahlen? 20 Konstruiere eine Folge von n2 verschiedenen Zahlen, die weder eine monoton steigende noch eine monoton fallende Unterfolge der L¨ ange n + 1 enth¨ alt. ⊲ 21 Die Eulersche ϕ-Funktion ist ϕ(n) = |{k : 1 ≤ k ≤ n, k relativ prim zu n}|. Beweise ϕ(d) = n . d|n
22 Die Felder eines 4×7 Schachbrettes werden auf irgendeine Weise mit weiß und schwarz gef¨ arbt. Zeige, dass es immer ein Rechteck gibt, dessen vier Eckfelder gleichgef¨ arbt sind. Stimmt dies auch f¨ ur ein 4 × 6 Schachbrett?
⊲ 23 Sei N = {1, 2, 3, . . . , 3n}. Jemand nimmt irgendwelche n Zahlen aus N weg. Zeige, dass man dann weitere n Zahlen entfernen kann, so dass die restlichen n Zahlen in der Reihenfolge ungerade, gerade, ungerade, gerade, . . . erscheinen.
24 Entlang eines Kreises sind n Punkte gew¨ ahlt, die mit rot oder blau markiert sind. ⌋ Sehnen, die verschieden gef¨ arbte Punkte verbinden und Zeige: Es gibt h¨ ochstens ⌊ 3n−4 2 die sich im Inneren des Kreises nicht schneiden. ⊲ 25 Wir betrachten ein n × n-Schachbrett, mit den Zeilen und Spalten nummeriert von 1 bis n. Eine Menge T von n Feldern heißt Transversale, falls keine zwei in derselben Zeile oder Spalte sind, mit anderen Worten T = {(1, π1 ), . . . , (n, πn )}, wobei (π1 , . . . , πn ) eine Permutation von {1, . . . , n} ist. Es sei nun n ≥ 4 gerade und die n2 Felder seien so mit Zahlen gef¨ ullt, dass jede Zahl genau zweimal vorkommt. Zeige, dass es immer eine Transversale gibt, die n verschiedene Zahlen enth¨ alt. Hinweis: Das Schachbrett enthalte r Paare von Feldern (in verschiedenen Zeilen und Spalten), die dieselbe Zahl enthalten. Konstruiere die (n!) × r-Inzidenzmatrix (mij ) mit mij = 1, falls die i-te Transversale das j-te Paar enth¨ alt. Z¨ ahle nun auf zwei Arten. 26 Wir wollen uns u ¨berlegen, wie wir alle n! Permutationen von {1, . . . , n} effektiv auflisten k¨ onnen. Die gebr¨ auchlichste Methode ist die lexikographische Anordnung. Wir ur das sagen, π = (π1 , . . . , πn ) ist lexikographisch kleiner als σ = (σ1 , . . . , σn ), wenn f¨ ur n = 3 die Liste 123, kleinste i mit πi = σi gilt πi < σi . Zum Beispiel erhalten wir f¨ 132, 213, 231, 312, 321. Zeige, dass der folgende Algorithmus zu π = (π1 , . . . , πn ) die Nachfolgerpermutation σ findet: 1. Suche den gr¨ oßten Index r mit πr < πr+1 . Wenn kein solches r existiert, ist π = (n, . . . , 2, 1) die letzte Permutation. 2. Suche den Index s > r mit πs > πr > πs+1 . 3. σ = (π1 , . . . πr−1 , πs , πn , . . . , πs+1 , πr , πs−1 , . . . , πr+1 ) ist die Nachfolgerpermutation. ¨ 27 Analog zur vorigen Ubung wollen wir alle 2n Untermengen einer n-Menge auflisten. Wie u asentieren wir die Untermengen als 0,1-W¨ orter der L¨ ange n. Die folgende ¨blich repr¨ ur n, dann ist Liste heißt Gray-Code. Angenommen G(n) = {G1 , . . . , G2n } sei die Liste f¨ G(n + 1) = {0G1 , 0G2 , . . . , 0G2n , 1G2n , 1G2n −1 , . . . , 1G1 }. Zeige: a. Je zwei benachbarte 0,1-W¨ orter in G(n) unterscheiden sich an genau einer Stelle. b. Sei G(n, k) die Unterfolge
30
1
grundlagen
von G(n) mit genau k 1’en. Zeige, dass aufeinanderfolgende W¨ orter in G(n, k) sich in genau zwei Stellen unterscheiden. 28 An einem Bridgeturnier nehmen 4n Spieler teil, und das Turnier findet an n Tischen statt. Jeder Spieler ben¨ otigt einen anderen Spieler als Partner und jedes Paar von Partnern ben¨ otigt ein anderes Paar als Gegner. Auf wie viele Arten kann die Wahl von Partner und Gegner erfolgen? ⊲ 29 Auf wie viele Arten k¨ onnen wir die Zahlen 1, . . . , n in einer Reihe anordnen, so dass abgesehen vom ersten Element die Zahl k nur dann platziert werden kann, falls einer der Vorg¨ anger (nicht notwendig unmittelbar) k − 1 oder k + 1 ist? Beispiel: 3 2 4 5 1 6 oder 4 3 5 2 1 6. 30 Auf wie viele Arten k¨ onnen die Zahlen 1, . . . , n in einem Kreis arrangiert werden, so dass benachbarte Zahlen sich um jeweils 1 oder 2 unterscheiden? 31 Gegeben sei eine Permutation a1 a2 . . . an von {1, . . . , n}. Eine Inversion ist ein Paar ai , aj mit i < j aber ai > aj . Beispiel: 1 4 3 5 2 hat die Inversionen 4,3; 4,2; 3,2; 5,2. Sei In,k die Anzahl der n-Permutationen mit genau k Inversionen. Zeige: a. In,0 = 1, b. In,k = In,(n)−k (k = 0, . . . , n2 ). 2 ur k < n. Gilt dies auch f¨ ur k = n? c. In,k = In−1,k + In,k−1 f¨ (n2 ) k d. k=0 (−1) In,k = 0, n ≥ 2.
⊲ 32 Sei a1 , a2 , . . . , an eine Permutation von {1, . . . , n}. Mit bj bezeichnen wir die Anzahl der Zahlen links von j, die gr¨ oßer als j sind (also eine Inversion mit j bilden). Die Folge b1 , . . . , bn heißt die Inversionstafel von a1 , . . . , an . Zeige: 0 ≤ bj ≤ n − j (j = 1, . . . , n), und beweise, dass umgekehrt jede Folge b1 , . . . , bn mit 0 ≤ bj ≤ n − j (∀j) Inversionstafel zu genau einer Permutation ist. 33 Wir betrachten nochmals die lexikographische Anordnung der Permutationen aus ¨ Ubung 26. Der kleinsten Permutation (1, 2, . . . , n) ordnen wir die Nummer 0 zu, der n¨ achsten die Nummer 1, usf. und schließlich der letzten Permutation (n, n − 1, . . . , 1) die Nummer n! − 1. Die Aufgabe besteht darin, zu einer Permutation π = (π1 , . . . , πn ) die Nummer ℓn (π) zu bestimmen. Zeige: ℓ1 ((1)) = 0, ℓn (π) = (π1 − 1)(n − 1)! + ℓn−1 (π ′ ), ′ wobei π ′ = (π1′ , . . . , πn−1 ) aus π entsteht, indem wir π1 entfernen und alle πj > π1 um 1 erniedrigen. Beispiel: ℓ4 (2314) = 3! + ℓ3 (213) = 3! + 2! + ℓ2 (12) = 8. ¨ 34 Umkehrung der vorigen Ubung. Sei ℓ, 0 ≤ ℓ ≤ n!−1 gegeben. Bestimme die zugeh¨ orige ¨ 10 k¨ onnen wir ℓ in der Form ℓ = Permutation π mit ℓn (π) = ℓ. Hinweis: Laut Ubung an−1 (n − 1)! + an−2 (n − 2)! + . . . + a1 1! mit 0 ≤ ak ≤ k darstellen. 35 Beweise die folgenden Rekursionen f¨ ur die Stirling Zahlen: n i Si,k . s , b. Sn+1,k+1 = a. sn+1,k+1 = i k n,i i
i
⊲ 36 Die Euler-Zahlen An,k z¨ ahlen die Permutationen π von {1, . . . , n} mit genau k Anur n = 3: A3,0 = 1, stiegen, d. h. k Stellen i mit πi < πi+1 . Zum Beispiel haben wir f¨ A3,1 = 4, A3,2 = 1. Zeige die Rekursion: An,k = (n − k)An−1,k−1 + (k + 1)An−1,k (n > 0) mit A0,0 = 1, A0,k = 0 (k > 0). 37 Viele Identit¨ aten f¨ ur Binomialzahlen k¨ onnen durch Abz¨ ahlen von Gitterwegen gewonnen werden. Betrachten wir ein m × n-Gitter, z. B. f¨ ur m = 5, n = 3. (Beachte, dass m und n die Anzahl der Kanten ist.)
¨bungen u
31 B
n A m Zeige, dass die Anzahl der verschiedenen Wege von A nach B, die stets nach rechts oder nach oben gehen, gleich m+n ist. Zum Beispiel haben wir f¨ ur m = 2, n = 2 die 42 = 6 n Wege
38 Zwei Beispiele zur Gittermethode. a. Klassifiziere die Gitterwege nach ihrem ersten Eintreffen auf der rechten Vertikalen und leite daraus Gleichung (8) aus 1.4 ab (siehe die linke Figur). Beweise die Vandermondesche Identit¨ at (12) aus Abschnitt 1.4 durch Klassifizierung der Gitterwege nach dem Schnittpunkt mit der in der Zeichnung angedeuteten Diagonalen (siehe die rechte Figur). k n
k
m ⊲ 39 Auf wie viele Arten kann ein K¨ onig von der linken unteren Ecke eines Schachbrettes nach der rechten oberen ziehen, wenn er stets nach oben, nach rechts oder diagonal nach rechts oben zieht? Hinweis: Setze r gleich der Anzahl der Diagonalz¨ uge und summiere dann u ¨ber r. 1 2k und folgere daraus die Formel −n2 = (− 14 )n 2n . 40 Zeige rk (r − 21 )k = (2r) n 22k
⊲ 41 Das folgende Problem geht auf J. L. F. Bertrand (1822–1900) zur¨ uck. Zwei Kandidaten A und B erhalten in einer Wahl a bzw. b Stimmen, a > b. Auf wie viele Arten k¨ onnen die Stimmzettel arrangiert werden, so dass bei der Ausz¨ ahlung, eine Stimme nach der anderen, A stets mehr Stimmen als B hat. Zum Beispiel erhalten wir f¨ ur a = 4, b = 2 die folgenden M¨ oglichkeiten: AAAABB, AAABAB, AAABBA,AABAAB, AABABA. a+b ist. Hinweis: Zeichne eine Folge als Punkte (x, y), Zeige, dass die gesuchte Zahl a−b a a+b wobei y die Anzahl der A-Stimmen minus Anzahl der B-Stimmen ist, wenn x Stimmen ausgez¨ ahlt sind. Die gesuchten Folgen sind dann die Wege von (0, 0) nach (a + b, a − b), welche nach (0, 0) nicht mehr die x-Achse ber¨ uhren. √ 2n+1 √ 2n+1 + (1 − 3)√ f¨ ur jedes n ≥ 0 eine nat¨ urliche Zahl darstellt. 42 Zeige, dass (1 + 3) √ Hinweis: Binomialsatz. Da 0√< |1 − 3| < 1 ist, muss also −(1 − 3)2n+1 der Anteil nach √ dem Komma von (1 + 3)2n+1 sein. Folgere daraus, dass der ganzzahlige Teil von alt. (1 + 3)2n+1 stets 2n+1 als Faktor enth¨ 1 + n1 + . . . + n1 . (n0 ) (1) (n) a + 1 ist und bestimme daraus lim an (falls dieser Grenzwert Zeige, dass an = n+1 n−1 2n n→∞ existiert). 2 ur n ≥ 4. Hinweis: Zeige, dass an > 2 + n und an+1 < an ist f¨
⊲ 43 Es sei an =
32
1
grundlagen
44 Offenbar teilen n Punkte auf einer Geraden diese in n + 1 Teile. a. Sei Ln =Maximalzahl von ebenen St¨ ucken, in welche die Ebene durch n Geraden zerf¨ allt. Bestimme eine Rekursion f¨ ur Ln und berechne Ln . ucken, in welche der Raum R3 durch b. Sei Mn = Maximalzahl von 3-dimensionalen St¨ n Ebenen zerf¨ allt. Bestimme eine Rekursion f¨ ur Mn und berechne Mn . c. Allgemein f¨ ur Rn . ⊲ 45 Das Pascalsche Dreieck (etwas verschoben) ergibt einen verbl¨ uffenden Primzahltest. Wir nummerieren die Zeilen wie u ebenso ¨ blich mit 0, 1, 2, . . . , n .. ., und die Spalten. In die n-te Zeile schreiben wir die n + 1 Binomialkoeffizienten n0 , n1 , . . . , n , aber verschoben n in die Spalten mit den Nummern 2n bis 3n inklusive. Schließlich zeichnen wir einen Kreis um eine dieser n + 1 Zahlen, falls sie ein Vielfaches von n ist. Die ersten Zeilen und Spalten sehen folgendermaßen aus: nL k 0
L
0 1 2 3 4
1
2
3
4
5
6
1
2l 1
7
8
9
10
11
12
1 1l 1l
1
3l 3l 1 1
4l 6
4l 1
Zeige: Eine Zahl k ist genau dann Primzahl, wenn alle Elemente in der k-ten Spalte einen Kreis haben. Hinweis: k gerade ist leicht und f¨ ur k ungerade beweise zun¨ achst, dass das n Element in der n-ten Zeile und k-ten Spalte k−2n ist.
⊲ 46 Zwei W¨ urfel haben dieselbe Wahrscheinlichkeitsverteilung. Zeige, dass die Wahrscheinlichkeit, in zwei W¨ urfen dieselbe Zahl zu werfen, immer mindestens 61 ist.
47 Die folgenden wichtigen Ungleichungen sch¨ atzen den Abstand von X zum Erwartungswert EX ab. Beweise Markovs Ungleichung: Sei X eine Zufallsvariable, die nur Werte ≥ 0 annimmt, dann gilt p(X ≥ α) ≤ EX f¨ ur α ≥ 0. Folgere daraus Tschebyscheffs α f¨ u r eine Zufallsvariable X und α ≥ 0. Ungleichung: p(|X − EX| ≥ α) ≤ VαX 2
¨ 48 Sch¨ atze mit Hilfe der vorigen Ubung die Wahrscheinlichkeit ab, dass eine Permutation k + 1 Fixpunkte hat (alle Permutationen gleichwahrscheinlich).
⊲ 49 n J¨ ager schießen zugleich auf r Hasen (sie treffen immer), wobei jeder J¨ ager mit gleicher Wahrscheinlichkeit auf jeden der Hasen zielt. Was ist die erwartete Anzahl der u ur n ≥ r(log r + 5) ¨berlebenden Hasen? Zeige mit Hilfe von Markovs Ungleichung, dass f¨ mit Wahrscheinlichkeit > 0, 99 kein Hase u ¨berlebt. 50 Ein Zufallsgenerator w¨ ahlt eine der Zahlen 1, 2, . . . , 9 aus, alle mit gleicher Wahrscheinlichkeit. Bestimme die Wahrscheinlichkeit, dass nach n Wahlen (n > 1) das Produkt dieser Zahlen durch 10 teilbar ist. Hinweis: Betrachte die Zufallsvariablen Xk = Anzahl der k, 1 ≤ k ≤ 9.
⊲ 51 Ein Spielkartenblatt mit n Karten enth¨ alt drei Asse. Es wird gemischt (alle Reihenfolgen gleichwahrscheinlich). Die Karten werden nun eine nach der anderen aufgedeckt bis
¨bungen u
33
das zweite As erscheint. Zeige, dass der Erwartungswert der dabei aufgedeckten Karten n+1 ist. 2 52 Es seien (p1 , . . . , p6 ) und (q1 , . . . , q6 ) die Wahrscheinlichkeitsverteilungen von zwei W¨ urfeln. Zeige, dass die pi , qj niemals so gew¨ ahlt werden k¨ onnen, dass die Summe 1 ) sind. 2, 3, . . . , 12 der W¨ urfe alle gleichwahrscheinlich (= 11 ⊲ 53 Es sei x eine reelle Zahl, dann gibt es unter den Zahlen x, 2x, 3x, . . . , (n − 1)x mindestens eine, die von einer ganzen Zahl um h¨ ochstens n1 abweicht. 54 Beweise den allgemeinen Satz von Ramsey: Es seien k und ℓ1 , . . . , ℓr gegeben. Dann gibt es eine kleinste Zahl R(k; ℓ1 , . . . , ℓr ), so dass folgendes gilt: Ist N eine n-Menge mit n ≥ R(k; ℓ1 , . . . , ℓr ) und sind die k-Untermengen von N irgendwie mit den Farben 1, . . . , r gef¨ arbt, so gibt es eine Farbe i, so dass in einer ℓi -Untermenge von N alle k-Teilmengen mit i gef¨ arbt sind. Hinweis: Induktion. ⊲ 55 Zeige: Sind die Ramsey Zahlen R(k−1, ℓ) und R(k, ℓ−1) beide gerade, so gilt R(k, ℓ) < R(k − 1, ℓ) + R(k, ℓ − 1). Berechne daraus R(3, 4).
56 Zeige f¨ ur das 2-F¨ arbungsproblem von Mengenfamilien in Abschnitt 1.6: m(2) = 3, m(3) = 7.
⊲ 57 Beweise R(k, k) ≥ 2k/2 . Hinweis: R(2, 2) = 2, R(3, 3) = 6, also sei k ≥ 4. Sei n < n 2k/2 . Insgesamt gibt es 2( 2 ) Bekanntheitssysteme. Sei A das Ereignis, |A| = k, dass alle Personen untereinander bekannt sind. Verwende nun die Wahrscheinlichkeitsmethode aus Abschnitt 1.6. 58 Jedes Paar von St¨ adten in einem Land ist durch genau eine von drei Transportm¨ oglichkeiten verbunden: Bus, Bahn oder Flugzeug, wobei alle drei M¨ oglichkeiten vorkommen. Keine Stadt ist durch alle drei Transporte verbunden, und keine drei St¨ adte sind paarweise durch denselben Transport verbunden. Bestimme die maximale Zahl der St¨ adte. Hinweis: Betrachte die m¨ oglichen Transporte aus einer festen Stadt. ⊲ 59 Angenommen n verschiedene Zahlen (n sehr groß) werden auf n Zetteln geschrieben und dann in einem Hut durchgemischt. Wir ziehen aus dem Hut eine Zahl nach der anderen. Unsere Aufgabe ist, die gr¨ oßte Zahl zu finden. Dabei m¨ ussen wir unmittelbar nach einer Ziehung sagen, das ist die gr¨ oßte Zahl, es ist nicht erlaubt, eine fr¨ uhere Zahl zu benennen. Da wir nichts u oßenordnungen der Zahlen wissen, erscheint die ¨ber die Gr¨ Aufgabe hoffnungslos. Und doch gibt es einen Algorithmus, der mit Wahrscheinlichkeit are dann die > 31 die richtige Zahl benennt. Hinweis: Lasse s Zahlen vorbeigehen und erkl¨ erste Zahl, die gr¨ oßer als alle bisherigen Zahlen ist, als gr¨ oßte. urlicher Zahlen. Dann existiert entweder 60 Es sei a1 , a2 , a3 , . . . eine unendliche Folge nat¨ eine unendliche streng monoton steigende Teilfolge ai1 < ai2 < ai3 < . . . (i1 < i2 < i3 < . . .) oder eine unendliche streng monoton fallende Teilfolge oder eine unendliche konstante Teilfolge aj1 = aj2 = aj3 = . . . .
2
Summation
Viele Abz¨ ahlprobleme reduzieren sich auf die Auswertung von Summen, und umgekehrt lassen sich Z¨ ahlkoeffizienten oft als eine Summe darstellen. Einige der Standardmethoden, wie man Summen berechnet, wollen wir nun kennenlernen.
2.1
Direkte Methoden
n Wir schreiben eine Summe u ¨ blicherweise in der Form k=0 ak oder 0≤k≤n ak . Der Laufindex wird meist mit k bezeichnet. Wollen 100wir die geraden Zahlen 50 zwischen 0 und 100 aufsummieren, so k¨ onnten wir k=0 k schreiben oder k=1 2k. Bequemer ist die folgende merausdruck bedeutet
k gerade Wahr–Falsch-Notation: 100 k=0 k[k
[k hat Eigenschaft E] =
= gerade]. Der Klam-
1 falls k die Eigenschaft E erf¨ ullt 0 falls nicht.
Eine der elementarsten (und n¨ utzlichsten) Techniken ist die Indextransformation. Sei i ≥ 0, dann ist n
ak =
k=m
n+i
ak−i =
k=m+i
n−i
ak+i .
k=m−i
Also: Erniedrigung im Laufindex um i entspricht Erh¨ohung der Summationsgrenzen um i, und umgekehrt. Als weiteres Beispiel erhalten wir durch die Transformation k → n − k bzw. k → m + k n
k=m
ak =
n−m k=0
an−k =
n−m
am+k .
k=0
Betrachten wir z. B. die arithmetische Summe S = 0 · a + 1 · a + ... + n · a = n n die Transformation k → n − k sehen wir S = k=0 ka. Durch k=0 (n − k)a, und n n n n daher 2S = k=0 ka + k=0 (n − k)a = k=0 na = n k=0 a = n(n + 1)a, d. h. a. S = n(n+1) 2 Angenommen, wir haben ein quadratisches Schema von reellen Zahlen ai aj gegeben (i, j = 1, . . . , n). Summieren wir alle Zahlen auf, so erhalten wir S = n n n 2 a a = ( a )( a ) = ( 1≤i,j≤n i j i=1 i j=1 j k=1 ak ) . Unsere Aufgabe lautet nun, alle Produkte ai aj unterhalb (und einschließlich) der Hauptdiagonale zu sumachst sehen wir, dass die mieren, also S = 1≤j≤i≤n ai aj zu bestimmen. Zun¨
36
summation
2
Summe oberhalb (und einschließlich) der Hauptdiagonale S = 1≤i≤j≤n ai aj = n n 2 2 i=1 ai = 2S − k=1 ak berechnen wir 1≤i≤j≤n aj ai = S ist. Aus S = S + S − nun sofort n n 1 S= ( ak ) 2 + a2k . 2 k=1
k=1
Welche direkte Methode wird man zur Berechnung von Summen zuerst ausprobieren? Zuallererst sicherlich Induktion. Ein einfaches Beispiel ist die Summation der ersten n ungeraden Zahlen Sn = nk=1 (2k − 1). Man beginnt mit einer Tafel kleiner Werte: n 1 2 3 4 5 6 Sn 1 4 9 16 25 36 Das sollte gen¨ ugen, um die Antwort Sn = n2 zu vermuten. F¨ ur n = 1 haben wir 2 S1 = 1 = 1. Aus der Annahme Sn = n2 folgt nun Sn+1 = Sn + (2n + 1) = n2 + 2n + 1 = (n + 1)2 , und die Richtigkeit der Aussage folgt mit Induktion. Der Nachteil der Induktionsmethode ist klar. Wir m¨ ussen die richtige Antwort raten“. Außerdem ist der Schluss von n auf n + 1 des ¨ofteren gar nicht einfach. ” Bei dieser zweiten Schwierigkeit kann man sich manchmal mit einer raffinierteren Variante der Induktion behelfen. Betrachten wir die geometrisch-arithmetische Ungleichung: Seien a1 , . . . , an reelle Zahlen ≥ 0, dann gilt f¨ ur alle n ≥ 1: (P n)
√ n
a1 a2 . . . an
a1 a2 . . . an
≤
a1 +...+an n
oder
n n ≤ ( a1 +...+a ) . n
2 2 F¨ ur n = 1 ist dies klar, f¨ ur n = 2 haben wir a1 a2 ≤ ( a1 +a ) ⇐⇒ 4a1 a2 ≤ 2 2 2 2 2 2 a1 + 2a1 a2 + a2 ⇐⇒ 0 ≤ a1 − 2a1 a2 + a2 = (a1 − a2 ) , also ist auch (P 2) richtig. Der Schluss von n auf n + 1 bereitet jedoch einige M¨ uhe. Wir gehen statt dessen in zwei Schritten vor:
(a) (P n) =⇒ (P (n − 1)) (b) (P n) ∧ (P 2) =⇒ P (2n). Die Kombination dieser beiden Schritte ebenfalls die volle Aussage (klar?). liefert ai Zum Beweis von (a) setzen wir b = n−1 i=1 n−1 und erhalten n n n−1 n−1 n−1 n−1 ak (P n) n k=1 ak k=1 ak + b = = ak b ≤ ak n−1 n n(n − 1) k=1 k=1 k=1 ⎛ n−1 ⎞n−1 n a n−1 k n−1 ⎜ k=1 ⎟ k=1 ak ⎟ = . , also ak ≤ ⎜ ⎝ ⎠ n−1 n−1 k=1
n−1
2.1
37
direkte methoden
Zu (b) haben wir ⎛ 2n ak 2n n 2n n 2n (P 2) (P n) ⎜ k=1 n ak n ak n ) ( ) ≤ ⎜ ak = ( ak )( ak ) ≤ ( ⎝ 2 n n
k=1
k=1
k=n+1
k=1
k=n+1
⎛ ⎞2n 2n ak ⎜ k=1 ⎟ ⎟ =⎜ ⎝ 2n ⎠ ,
⎞2n ⎟ ⎟ ⎠
und wir sind fertig.
Eine weitere n¨ utzliche Methode besteht darin, den ersten und letzten Term einer n Summe zu isolieren. Sei Sn = k=0 ak , dann gilt mit Indextransformation Sn+1 = Sn + an+1 = a0 +
n+1
n
ak = a0 +
k=1
ak+1 .
k=0
Die Idee ist, die letzte Summe zu Sn in Beziehung zu setzen. Zwei Beispiele m¨ogen 1 dies erl¨ autern. Zun¨ nachstk betrachten wir die geometrische Summe Sn = 1 + a + 2 n a + . . . + a = k=0 a . Isolieren der Terme ergibt Sn+1 = Sn + an+1 = 1 +
n
ak+1 = 1 + a
k=0
n
ak = 1 + aSn ,
k=0 n+1
f¨ ur a = 1. F¨ ur a = 1 ist und wir erhalten Sn + an+1 = 1 + aSn , d. h. Sn = a a−1−1 n das Ergebnis nat¨ urlich Sn = n + 1. Als n¨ achstes sei Sn = k=0 k2k zu berechnen. Unsere Methode ergibt Sn+1 = Sn + (n + 1)2n+1 =
n
(k + 1)2k+1 = 2
k=0
= 2Sn + 2n+2 − 2 ,
n
k=0
k2k + 2
n
2k
k=0
und daraus Sn = (n − 1)2n+1 + 2 . Sobald eine Formel bewiesen ist, sollte man sie zur Sicherheit f¨ ur kleine Werte verifizieren: F¨ ur n = 4 erhalten wir S4 = 21 +2·22 +3·23 +4·24 = 2+8+24+64 = 98 und rechts 3 · 25 + 2 = 96 + 2 = 98. Wir wollen uns noch kurz dem zweiten Aspekt der Einleitung zuwenden: Darstellung einer Z¨ ahlfunktion durch eine Summenformel. Die einfachste Form ist die
38
2
summation
folgende: Angenommen, die gesuchten Koeffizienten Tn (n ≥ 0) sind als Rekursion gegeben: T0 = α an Tn = bn Tn−1 + cn
(n ≥ 1) .
Wir k¨ onnen darin Tn−1 durch Tn−2 ausdr¨ ucken, Tn−2 durch Tn−3 usw., bis wir bei T0 angelangt sind. Das Ergebnis wird ein Ausdruck in ak , bk , ck und α sein. Der folgende Ansatz erleichtert die Rechnung erheblich. Wir multiplizieren beide Seiten der Rekursion mit einem Summationsfaktor sn , der (1)
sn−1 an−1 = sn bn
erf¨ ullt. Mit Sn = sn an Tn erhalten wir daraus Sn = sn (bn Tn−1 + cn ) = Sn−1 + sn cn also Sn =
n
s k c k + s 0 a 0 T0
k=1
und somit n
(2)
Tn =
1 ( s k c k + s 0 a 0 T0 ) . sn an k=1
Wie finden wir nun die Summationsfaktoren sn ? Durch Iteration der definierenden Gleichung (1) erhalten wir (3)
sn =
an−1 an−2 sn−2 an−1 an−2 . . . a0 an−1 sn−1 = = ... = , bn bn bn−1 bn bn−1 . . . b1
s0 = 1 ,
oder irgendein geeignetes Vielfaches. Allerdings m¨ ussen wir darauf achten, dass alle ai , bj = 0 sind. Als Beispiel wollen wir die Anzahl Dn der fixpunktfreien Permutationen, der sogenannten Derangements, berechnen. Wir haben D1 = 0, D2 = 1 und setzen D0 = 1. Sei n ≥ 3. Wir klassifizieren die fixpunktfreien Permutationen π nach dem Bild π(1) von 1. Offensichtlich kann π(1) eine der Zahlen 2, 3, . . . , n sein. Sei π(1) = i. Nun unterscheiden alle: π(i) = 1 oder π(i) = 1. Im ersten Fall wir zwei F¨ ... n haben wir π = i1...i , das heißt die Zahlen k = 1, i k¨onnen auf alle Arten ... 1 ... π(n) fixpunktfrei abgebildet werden, und wir erhalten demnach Dn−2 Permutationen. n . Ersetzen wir nun in der ersten Im zweiten Fall haben wir π = 1i ......π(i)i=1...... π(n) Zeile i durch 1 und entfernen die erste Stelle, so erhalten wir eine fixpunktfreie Permutation auf {1, . . . , n} {i}, und umgekehrt ergibt jede solche Permutation durch Wiederersetzung 1 → i eine Permutation von {1, . . . , n} mit π(i) = 1. Aus
2.2
39
differenzenrechnung
der Gleichheitsregel folgt, dass im zweiten Fall genau Dn−1 Permutationen resultieren. Da π(1) die n − 1 Werte 2, . . . , n annehmen kann, ergibt die Summenregel die Rekursion (4)
Dn = (n − 1)(Dn−1 + Dn−2 )
und diese Rekursion gilt auch f¨ ur n = 2, da wir D0 = 1 gesetzt haben. Um unsere Technik der Summationsfaktoren anwenden zu k¨onnen, ben¨otigen wir aber eine Rekursion erster Ordnung. Kein Problem. Aus (4) ersehen wir Dn − nDn−1 = −(Dn−1 − (n − 1)Dn−2 ) = .. .
Dn−2 − (n − 2)Dn−3
= (−1)n−1 (D1 − D0 ) = (−1)n , also (5)
Dn = nDn−1 + (−1)n
(n ≥ 1) ,
und jetzt haben wir unsere gew¨ unschte Form. Mit an = 1, bn = n, cn = (−1)n 1 und daraus mit (2) erhalten wir laut (3) den Summationsfaktor sn = n! Dn = n!(
n (−1)k
k=1
oder
k!
+ 1) = n!
n (−1)k k=0
k!
,
n Dn (−1)k = . n! k! k=0 k Aus der Analysis wissen wir, dass nk=0 (−1) mit n → ∞ gegen e−1 konvergiert. k! Daraus k¨ onnen wir das u ¨ berraschende Ergebnis ableiten: Ziehen wir zuf¨allig eine Permutation, so ist die Wahrscheinlichkeit, eine fixpunktfreie Permutation zu er1 halten, f¨ ur große n etwa e−1 ∼ 2.71 > 31 . Am¨ usante Interpretation: Werden durch einen Windstoß die geordneten Manuskriptbl¨atter eines Buches beliebig aufgewirbelt, so ist die Wahrscheinlichkeit, dass nachher keines mehr am richtigen Platz liegt, gr¨ oßer als 31 , eine wahrhaft betr¨ ubliche Erkenntnis.
2.2
Differenzenrechnung
b Die Summation onnen wir als diskretes Analogon des bestimmten Ink=a g(k) k¨ b tegrals a g(x) dx auffassen. Der Hauptsatz der Differential-Integralrechnung liefert uns bekanntlich folgende Methode zur Auswertung des Integrals. Sei D der Differentialoperator. Es sei f eine Stammfunktion von g, also g = Df , dann gilt (1)
b a
g(x) dx = f (b) − f (a).
40
2
summation
Wir wollen untersuchen, ob wir auch im diskreten Fall einen solchen Differential” operator“ finden k¨ onnen, der eine Berechnung der Summe wie in (1) erlaubt. (x) In der Analysis wird Df (x) durch die Quotienten f (x+h)−f angen¨ahert. Im h diskreten Fall steht uns als beste N¨ aherung h = 1 zur Verf¨ ugung, also f (x + 1) − f (x). F¨ ur eine Funktion f (x) erkl¨ aren wir den Translationsoperator E a mit a Schrittweite a durch E : f (x) → f (x + a), wobei wir E = E 1 setzen und I = E 0 . I ist die Identit¨ at. Nun erkl¨ aren wir die beiden fundamentalen Differenzenoperatoren: ∆ = E − I und ∇ = I − E −1 , also
∆ : f (x) → f (x + 1) − f (x) ∇ : f (x) → f (x) − f (x − 1) . ∆ heißt der (Vorw¨ arts-) Differenzenoperator und ∇ der (R¨ uckw¨ arts-) Differenzenoperator. Als Beispiel erhalten wir ∆(x3 ) = (x+1)3 −x3 = 3x2 +3x+1, d. h. ∆ bildet das Polynom x3 auf das Polynom zweiten Grades 3x2 + 3x + 1 ab. Allgemein erniedrigt ∆ den Grad eines Polynoms um 1, da sich die h¨ochsten Potenzen wegk¨ urzen. Operatoren k¨ onnen wir auf die u ¨ bliche Weise addieren, mit einem Skalarfaktor multiplizieren, und wir haben auch ein Produkt, die Komposition: (P + Q)f = P f + Qf (αP )f = α(P f ) (QP )f = Q(P f ) . Alle Rechenregeln gelten f¨ ur die Operatoren wie f¨ ur reelle Zahlen, mit Ausnahme der Existenz eines multiplikativen Inversen. Berechnen wir beispielsweise ∆n . Wegen ∆ = E − I ist ∆n = (E − I)n , und nach dem Binomialsatz, angewandt auf (E − I)n , erhalten wir die wichtige Formel: n
n
∆ f (x) = (E − I) f (x) = (2) =
n
(−1)n−k
k=0
n
(−1)
k=0
n−k
n f (x + k) . k
n E k f (x) k
Insbesondere ergibt dies f¨ ur x = 0 ∆n f (0) =
(3)
n
(−1)n−k
k=0 n
n k f (k) .
Wir k¨ onnen also ∆ f (x) an der Stelle x = 0 (oder an irgendeiner anderen Stelle) berechnen, ohne das Polynom ∆n f (x) zu kennen. Betrachten wir als Beispiel 3 ∆3 (x4 ). Hier ergibt sich ∆3 (x4 )x=0 = k=0 (−1)3−k k3 k4 = −0 + 3 · 1 − 3 · 24 + 34 = 36.
2.2
41
differenzenrechnung
Zur¨ uck zu unserer eigentlichen Aufgabe. Eine wichtige Regel des Differenzierens besagt Dxn = nxn−1 f¨ ur n ∈ Z. Auch f¨ ur die Differenzenoperatoren ∆ und ∇ gibt es Folgen mit diesen Eigenschaften, die fallenden und steigenden Faktoriellen xn = x(x − 1) . . . (x − n + 1) bzw. xn = x(x + 1) . . . (x + n − 1), die wir schon in Abschnitt 1.4 kennengelernt haben. Wir haben (x + 1)n = (x + 1)xn−1 , xn = xn−1 (x − n + 1) und daher ∆xn = (x + 1)n − xn = (x + 1)xn−1 − xn−1 (x − n + 1) = nxn−1 ,
(4)
und analog ∇xn = xn − (x − 1)n = xn−1 (x + n − 1) − (x − 1)xn−1 = nxn−1 .
(5)
Wir wollen (4) und (5) auf beliebiges n ∈ Z erweitern. Wie sollen wir xn bzw. xn f¨ ur n < 0 erkl¨ aren? Betrachten wir die Quotienten xn /xn−1 , so erhalten wir x − n + 1, also z. B. x3 /x2 = x−2, x2 /x1 = x−1, x1 /x0 = x. Als n¨achsten Quotienten sollten 1 wir x0 /x−1 = 1/x−1 = x + 1 erhalten, also definieren wir x−1 = x+1 , und dann 1 n −2 ur x vor. In Zusammenfassung geben x = (x+1)(x+2) usf. Analog gehen wir f¨ wir die folgende Definition:
(6)
(7)
xn −n
x
xn x−n
= x(x − 1) . . . (x − n + 1) =
1 (x+1)...(x+n)
n≥0
n>0
= x(x + 1) . . . (x + n − 1)
n≥0
=
n>0.
1 (x−1)...(x−n)
Die Formeln (4) und (5) gelten nun f¨ ur alle n ∈ Z. Pr¨ ufen wir dies f¨ ur ∆ nach: ∆x−n = (x + 1)−n − x−n = =
1 (x+1)...(x+n+1) (x
1 (x+2)...(x+n+1)
+ 1 − x − n − 1) =
1 (x+1)...(x+n) = 1 (−n) (x+1)...(x+n+1)
−
= (−n)x−n−1 .
In Zusammenfassung gilt also f¨ ur alle n ∈ Z: (8)
∆xn = n xn−1
(9)
∇xn = n xn−1 .
Im Folgenden konzentrieren wir uns auf den Operator b ∆. Rufen wir uns nochmals die analytische Methode in Erinnerung. Um a g(x) dx zu berechnen, beb stimmen wir eine Stammfunktion f , d. h. Df = g, und erhalten dann a g(x) dx = f (b) − f (a).
42
2
summation
Wir gehen nun genauso vor: f heißt eine (diskrete) Stammfunktion von g, falls ∆f = g gilt. Wir schreiben dann f = g und nennen f eine unbestimmte Summe, also ∆f = g ⇐⇒ f = g.
Das folgende Resultat ist das genaue Gegenst¨ uck zum Hauptsatz der DifferentialIntegralrechnung: Satz 2.1.
Sei f eine Stammfunktion von g, dann gilt b
k=a
g(k) = f (b + 1) − f (a) .
Beweis. Wegen ∆f = g gilt f (k + 1) − f (k) = g(k) f¨ ur alle k, und wir erhalten b
g(k) =
k=a
b
(f (k + 1) − f (k)) = f (b + 1) − f (a) ,
k=a
da sich die f (k) mit a < k ≤ b wechselweise wegk¨ urzen. b Damit ergibt sich folgendeMethode: Um k=a g(k) zu berechnen, bestimmen wir eine Stammfunktion f = g, und erhalten b
k=a
g(k) =
b+1 a
g(x) = f (x) |b+1 = f (b + 1) − f (a) . a
Vorsicht: Die Summationsgrenzen f¨ ur f sind a und b + 1! Um unsere Methode effektiv anwenden zu k¨ onnen, ben¨ otigen wir also eine Liste von Stammfunktionen. Ein Beispiel kennen wir schon:
xn =
xn+1 n+1
f¨ ur n = −1 .
1 Was ist x−1 ? Aus x−1 = x+1 = f (x+1)−f (x) folgt sofort f (x) = 1+ 12 +. . .+ x1 , d. h. f (x) = Hx , unsere wohlbekannte harmonische Zahl. In Zusammenfassung: ⎧ n+1 ⎨ x n = −1 n+1 n (10) x = ⎩ H n = −1 . x
Hx ist also das diskrete Analogon zum Logarithmus, und dies ist auch der Grund, warum die harmonischen Zahlen in vielen Summationsformeln erscheinen. Was ist das Analogon zu ex ? Gesucht ist eine Funktion f (x) mit f (x) = ∆f (x) = f (x + 1) − f (x). Daraus folgt f (x + 1) = 2f (x), d. h. f (x) = 2x . Betrachten wir
2.2
43
differenzenrechnung
eine beliebige Exponentialfunktion cx (c = 1). Aus ∆cx = cx+1 − cx = (c − 1)cx schließen wir cx (c =
1) . (11) cx = c−1 Wir bemerken noch, dass die Operatoren linear ∆ und sind,das heißt es gilt stets ∆(αf + βg) = α∆f + β∆g und (αf + βg) = α f + β g.
Nun ist es aber an der Zeit, unsere Ergebnisse anzuwenden. Wollen wir zum Bein spiel k=0 k2 berechnen, so ben¨ otigen wir eine Stammfunktion von x2 . Die kennen 2 wir nicht, aber wir haben x = x(x − 1) + x = x2 + x1 und erhalten nunmehr n
k2 =
n+1
x2 =
0
k=0
n+1
x2 +
0
n+1
x3 n+1 x2 n+1 | + | 3 0 2 0
x1 =
0
n(n + 12 )(n + 1) (n + 1)2 (n + 1)n(n − 1) (n + 1)n (n + 1)3 + = + = . 3 2 3 2 3 n m Es ist klar, wie diese Methode auf beliebige Potenzsummen angewandt k=0 k m m werden kann. Wir wissen aus Abschnitt 1.4, dass x = k=0 Sm,k xk ist. Daraus folgt f¨ ur m ≥ 1 =
n
km =
n+1
xm =
0
k=0
=
m
=
k=0
(
0
Sm,k
k=0 m
n+1
m
Sm,k xk ) =
k=0
m
Sm,k
k=0
xk+1 n+1 | = k+1 0
m
k=0
n+1
xk
0
Sm,k k+1 n+1 x |0 k+1
Sm,k (n + 1)n . . . (n − k + 1) . k+1
Wir haben also die Potenzsumme auf lauter elementare Gr¨oßen zur¨ uhrt, unckgef¨ Stirlingzahlen und fallende Faktorielle. Insbesondere sehen wir, dass k=0 km ein 1 und konstantem Polynom in n vom Grad m + 1 mit h¨ ochstem Koeffizienten m+1 ¨ Glied 0 ist (wegen Sm,0 = 0 f¨ ur m ≥ 1). In den Ubungen 2.37 und 3.45 werden wir diese Polynome n¨ aher bestimmen. Auch eine Regel f¨ ur partielle Summation gibt es. Aus ∆ u(x)v(x) = u(x + 1)v(x + 1) − u(x)v(x)
= u(x + 1)v(x + 1) − u(x)v(x + 1)
+ u(x)v(x + 1) − u(x)v(x)
= (∆u(x))v(x + 1) + u(x)(∆v(x)) folgt
u∆v = uv −
(Ev)∆u ,
44
2
summation
also genau das Analogon zur partiellen Integration, abgesehen von der zus¨atzlichen Translation E. Unsere schon bekannte Summe nk=0 k2k k¨ onnen wir wie folgt berechnen. Wir nun setzen u(x) = x, ∆v(x) = 2x und erhalten wegen 2x = 2x , ∆x = 1 n
k2k =
n+1 0
k=0
x2x = x2x |n+1 − 0
n+1 0
2x+1 = (n + 1)2n+1 − 2x+1 |n+1 0
= (n + 1)2n+1 − 2n+2 + 2 = (n − 1)2n+1 + 2 .
Noch ein Beispiel: Wir wollen die ersten n harmonischen Zahlen aufsummieren. Mit u(x) = Hx , ∆v(x) = 1 = x0 ergibt dies unter Beachtung von (10) n
k=1
Hk =
n+1 1
0
Hx x =
Hx x |n+1 1
−
n+1 1
1 (x + 1) = Hx x |n+1 − x |n+1 1 1 x+1
= (n + 1)Hn+1 − 1 − (n + 1) + 1 = (n + 1)(Hn+1 − 1) .
Nat¨ urlich k¨ onnten wir dieses Ergebnis auch mit unseren direkten Methoden aus Abschnitt 1 ableiten, aber mit wesentlich mehr M¨ uhe.Die Differenzenrechnung l¨ auft dagegen vollkommen automatisch ab. Da dies f¨ ur Hk so gut geklappt hat, noch ein etwas komplizierteres Beispiel: k x+1 x H ? Aus der binomialen Rekursion haben wir m+1 = m + Was ist nk=1 m x x k x x x , also ∆ = oder = . Partielle Summation mit u(x) = m+1 m m m+1 m+1 x Hx , ∆v(x) = m ergibt n n+1 n+1 1 x + 1 x x k n+1 Hx |1 − Hx = Hk = m+1 m m x+1 m+1 1 1 k=1 n+1 x 1 x n+1 Hx |1 − = m+1 m+1 1 m x x 1 = Hx |n+1 − |n+1 1 m+1 m+1 m+1 1 n+1 1 ) (m ≥ 0) , = (Hn+1 − m+1 m+1
da sich die unteren Grenzen wegk¨ urzen. Und noch einen Satz aus der Analysis k¨ onnen wir u ¨ bertragen. Sei f (x) ein Pon k lynom, f (x) = a x , dann wissen wir, dass f¨ ur die Koeffizienten ak gilt: k=0 k n Dk f (0) k D k f (0) f (k) (0) k ak = k! = , D f die k-te Ableitung von f . f (x) = x k=0 k! k! heißt bekanntlich die Taylor-Entwicklung von f (an der Stelle 0). In der Differenzenrechnung entspricht ∆ dem Differentialoperator D, xk entspricht xk , und es
2.3
45
inversion
gilt tats¨ achlich f¨ ur ein Polynom vom Grad n: (12)
f (x) =
n ∆k f (0)
k=0
k!
xk =
n
∆k f (0)
k=0
x . k
Die Form (12) heißt die Newton-Darstellung von f . Zum Beweis bemerken wir n zun¨ achst, dass f eindeutig in der Gestalt f (x) = k=0 bk xk dargestellt werden kann. Hat f den Grad 0, so ist dies offensichtlich richtig, f = a0 = a0 x0 . Ist nun an der h¨ ochste Koeffizient von f , so hat das Polynom g(x) = f (x) − an xn Grad n − 1, k f (0) und das Resultat folgt mit Induktion. Es bleibt also zu zeigen, dass bk = ∆ k! i−k k i−k k i = ist. Wirbemerken zun¨ achst ∆ x = i(i − 1) . . . (i − k + 1)x i x . Aus f (x) = ni=0 bi xi folgt wegen der Linearit¨ at von ∆ somit ∆k f (x) = ni=0 bi ik xi−k . F¨ ur i < k ist ik = 0 und f¨ ur i > k ist xi−k an der Stelle 0 gleich 0. Wir erhalten daher ∆k f (0) . ∆k f (0) = bk kk = k!bk also bk = k! Betrachten wir als Beispiel f (x) = xn . In diesem Fall wissen wir aus (15) in Abschnitt 1.4, dass bk = Sn,k ist, und wir schließen k! Sn,k = (∆k xn )x=0 . Aus (3) ergibt sich daraus (mit dem Laufindex i) k! Sn,k = (∆k xn )x=0 =
k
(−1)k−i
i=0
k n i , i
und wir erhalten eine Summenformel f¨ ur die Stirling Zahlen zweiter Art k k n 1 (−1)k−i i . (13) Sn,k = i k! i=0
2.3
Inversion
Betrachten wir die beiden Formeln (3) und (12) des vorigen Abschnittes, wobei wir x = n in (12) setzen: n n n−k n ∆ f (0) = (−1) f (k) k k=0 n n f (n) = ∆k f (0) . k k=0
Setzen wir uk = f (k), vk = ∆k f (0), so sehen wir, dass die erste Formel die Gr¨oße vn durch u0 , u1 , . . . , un ausdr¨ uckt, und die zweite die Zahl un durch v0 , v1 , . . . , vn . ¨ Wir sagen, dass hier eine Inversionsformel vorliegt. Uberlegen wir uns, ob dieser Formel ein allgemeineres Prinzip zugrundeliegt. Den ersten Teil haben wir aus der Gleichung (1)
∆n = (E − I)n
46
2
summation
geschlossen, d. h. wir haben ∆ mittels E ausgedr¨ uckt. Drehen wir die Sache um, so sehen wir (2)
E n = (∆ + I)n ,
und dies ergibt nat¨ urlich die zweite Formel, da E n = (∆ + I)n = angewandt auf f impliziert n n f (x + n) = ∆k f (x) , k
n
k ∆
n k=0 k
k=0
also mit x = 0 f (n) =
n n ∆k f (0) . k
k=0
Entscheidend ist also der Zusammenhang (1) und (2), und dies ist nichts anderes als eine zweimalige Anwendung des Binomialsatzes. Setzen wir E = x und ∆ = x − 1, so reduzieren (1) und (2) zu den Formeln n n k (x − 1)n = x (−1)n−k k k=0
xn =
n n (x − 1)k . k k=0
Nun liegt das allgemeine Prinzip auf der Hand. Eine Basisfolge (p0 (x), p1 (x), . . .) ist eine Folge von Polynomen mit Grad pn = n. Also, p0 (x) ist eine Konstante = 0, p1 (x) hat Grad 1, usw. Unsere Standardbeispiele sind die Potenzen (xn ) und die fallenden bzw. steigenden Faktoriellen (xn ) bzw. (xn ). Ist f (x) irgendein Polynom vom Grad n, so k¨ onnen wir f (x) eindeutig als Linearkombination der pk (x), 0 ≤ k ≤ n, darstellen. Den Beweis haben wir im vorigen Abschnitt uhrt, und er funktioniert wortw¨ortschon f¨ ur die fallenden Faktoriellen xk durchgef¨ lich f¨ ur jede Basisfolge. Oder in der Sprache der Linearen Algebra: Die Polynome p0 (x), p1 (x), . . . , pn (x) bilden eine Basis im Vektorraum aller Polynome vom Grad ≤ n. Es seien nun pn (x) und qn (x) zwei Basisfolgen, dann k¨onnen wir also jedes qn (x) eindeutig durch p0 (x), . . . , pn (x) ausdr¨ ucken, und umgekehrt jedes pn (x) durch q0 (x), . . . , qn (x). Das heißt, es gibt eindeutige Koeffizienten an,k und bn,k mit (3)
qn (x) =
n
an,k pk (x)
n
bn,k qk (x) .
k=0
(4)
pn (x) =
k=0
2.3
47
inversion
Wir nennen an,k , bn,k die Zusammenhangskoeffizienten, wobei wir an,k = bn,k = 0 f¨ ur n < k setzen. Die Koeffizienten (an,k ) und (bn,k ) bilden zwei untere (unendliche) Dreiecksmatrizen. Die Beziehungen (3) und (4) dr¨ ucken sich als Matrizengleichungen folgendermaßen aus: Seien A = (ai,j ), B = (bi,j ), 0 ≤ i, j ≤ n, dann gilt an,k bk,m = [n = m] , k≥0
d. h. die Matrizen A und B sind invers zueinander, A = B −1 .
Satz 2.2. Seien (pn (x)) und (qn (x)) zwei Basisfolgen mit Zusammenhangskoeffizienten an,k bzw. bn,k . Dann gilt f¨ ur zwei Folgen von Zahlen u0 , u1 , u2 , . . . und v0 , v1 , v2 , . . . n n an,k uk (∀n) ⇐⇒ un = bn,k vk (∀n) . vn = k=0
k=0
Beweis. Da die Matrizen A = (ai,j ), B = (bi,j ), 0 ≤ i, j ≤ n, invers zueinander sind, gilt f¨ ur zwei Vektoren u = (u0 , . . . , un ), v = (v0 , . . . , vn ) v = Au ⇐⇒ u = Bv . Jedes Paar von Basisfolgen liefert uns also eine Inversionsformel, sofern wir die Zusammenhangskoeffizienten bestimmen k¨ onnen. Schreiben wir unser erstes Beispiel n n xn = (x − 1)k k k=0 n n k (x − 1)n = (−1)n−k x k k=0
noch einmal hin. F¨ ur zwei Folgen u0 , . . . , un ; v0 , . . . , vn gilt daher nach Satz 2.2 n n n n−k n uk (∀n) ⇐⇒ un = vk (∀n) . (5) vn = (−1) k k k=0
k=0
Die Formel (5) heißt die Binomial-Inversion. Wir k¨onnen sie durch die Ersetzung un → (−1)n un auch auf eine symmetrische Form bringen: n n k n k n (6) vn = (−1) (−1) uk (∀n) ⇐⇒ un = vk (∀n) . k k k=0
k=0
Die Methode der Inversion lautet also folgendermaßen: Wir wollen eine Z¨ahlfunktion (also eine Koeffizientenfolge) bestimmen. K¨onnen wir eine bekannte Folge durch die zu bestimmende mittels einer Seite der Inversionsformel ausdr¨ ucken, so ist die gew¨ unschte Folge durch die andere Seite der Formel ausgedr¨ uckt.
48
2
summation
Betrachten wir als Beispiel nochmals die Derangementzahlen Dn . Sei d(n, k) die Anzahl der Permutationen der L¨ n mit genau k Fixpunkten, somit d(n, 0) = ange Dn . Da wir die k Fixpunkte auf nk Arten w¨ahlen k¨onnen, gilt n d(n, k) = Dn−k , k und daher (7)
n! =
n
d(n, k) =
n n
k=0
k=0
k
Dn−k =
n n Dk . k
k=0
Wenden wir nun die Binomial-Inversion (5) mit un = Dn , vn = n! an, so erhalten wir unsere alte Summenformel n n n n (−1)n−k (−1)k Dn = = n! . (−1)n−k k! = n! k (n − k)! k! k=0
k=0
k=0
Sehen wir uns noch die Basisfolgen (xn ) und (xn ) an. Aus den Beziehungen xn = xn =
n
Sn,k xk
k=0 n
(−1)n−k sn,k xk .
k=0
aus (15), (16) in Abschnitt 1.4 folgt die Stirling-Inversion vn =
n
k=0
Sn,k uk (∀n) ⇐⇒ un =
und insbesondere auch
k≥0 Sn,k (−1)
k−m
n
(−1)n−k sn,k vk (∀n) ,
k=0
sk,m = [n = m].
Pr¨ ufen ur n = 7, m = 3 nach, so erhalten wir das anhand unserer Stirling-Tabellen f¨ wir k≥0 S7,k (−1)k−3 sk,3 = 301 − 350 · 6 + 140 · 35 − 21 · 225 + 1624 = 0.
2.4
Inklusion-Exklusion
Betrachten wir das folgende Problem: Wie viele Zahlen zwischen 1 und 30 gibt es, die relativ prim zu 30 sind? Wir k¨ onnen die Zahlen von 1 bis 30 nat¨ urlich hinschreiben und dann die relativ primen unter ihnen ablesen. Wie immer wollen wir aber die Aufgabe f¨ ur allgemeines n l¨ osen – und da helfen unsere bisherigen Methoden nicht weiter. Versuchen wir es mit folgendem Ansatz. Da 30 = 2 · 3 · 5 die Primzerlegung von 30 ist, suchen wir alle Zahlen, die weder ein Vielfaches von 2 sind, noch von 3 und auch nicht von 5. Setzen wir S = {1, 2, . . . , 30} und erkl¨ aren wir A2 als die Menge der Vielfachen von 2, welche ≤ 30 sind, und analog
2.4
49
inklusion-exklusion
A3 (Vielfache von 3) und A5 (Vielfache von 5), so m¨ ussen wir also die Anzahl der Elemente in S \ (A2 ∪ A3 ∪ A5 ) bestimmen. Die gesuchte Menge ist demnach der schraffierte Teil des folgenden Mengendiagramms: S A2
A3
A5
Jedes Element aus S f¨ allt in genau einen der 8 Teile des Diagramms. Beginnen wir mit |S| − |A2 | − |A3 | − |A5 | , dann haben wir alle Elemente aus A2 ∪ A3 ∪ A5 abgezogen, aber einige doppelt, da ein Element aus, sagen wir A2 ∩ A3 , ja zweimal abgezogen wurde. Geben wir diese Elemente wieder hinzu, so erhalten wir |S| − |A2 | − |A3 | − |A5 | + |A2 ∩ A3 | + |A2 ∩ A5 | + |A3 ∩ A5 |. Jetzt ist die Formel schon fast richtig: Alle Elemente sind genau einmal abgezogen, mit Ausnahme derer in |A2 ∩ A3 ∩ A5 |. Diese Elemente haben wir dreimal abgezogen, aber auch dreimal dazugez¨ ahlt, also insgesamt noch nicht ber¨ ucksichtigt. Ziehen wir diese letzte Gruppe ab, so erhalten wir die genaue Formel: |S \∪Ai )| = |S|−|A2 |−|A3 |−|A5 |+|A2 ∩A3 |+|A2 ∩A5 |+|A3 ∩A5 |−|A2 ∩A3 ∩A5 |. Um unsere Ausgangsfrage zu beantworten, m¨ ussen wir |Ai |, |Ai ∩Aj |, |A2 ∩A3 ∩A5 | bestimmen. Das ist aber leicht. A2 sind die Vielfachen von 2, also |A2 | = 30 2 = 15, und analog |A3 | = 10, |A5 | = 6. A2 ∩ A3 enth¨alt offenbar die Vielfachen von 6, also ist |A2 ∩ A3 | = 30 6 = 5, und analog |A2 ∩ A5 | = 3, |A3 ∩ A5 | = 2, und schließlich ist |A2 ∩ A3 ∩ A5 | = 1, da nur 30 ein Vielfaches von 2,3 und 5 ist. Damit ist das Problem gel¨ ost: Die Anzahl der Zahlen ≤ 30, welche zu 30 relativ prim sind, ist 30 − 15 − 10 − 6 + 5 + 3 + 2 − 1 = 8 . Die Zahlen sind 1, 7, 11, 13, 17, 19, 23, 29. Zur Berechnung von |S \ (A2 ∪ A3 ∪ A5 )| schließen wir also Zahlen aus, schließen dann die zuviel abgezogenen Zahlen wieder ein, die jetzt zuviel gez¨ahlten Zahlen wieder aus, usf. Das ganze ist also eine Inklusion-Exklusions Methode und sie funktioniert f¨ ur beliebige Mengen S und beliebige Untermengen B1 , B2 , . . . , Bm von S. Seien B1 , . . . , Bm Untermengen von S, dann gilt |S
m
i=1
Bi | = |S| −
m i=1
|Bi | +
1≤i<j≤m
|Bi ∩ Bj | − . . . + (−1)m |B1 ∩ . . . ∩ Bm | .
Zum Beweis brauchen ¨ berlegen, wie oft ein Element x ∈ S gez¨ahlt m wir uns nur zu u wird. Ist x ∈ S i=1 Bi , so wird x auf der rechten Seite einmal gez¨ahlt, n¨amlich in
50
2
summation
|S|. Sei also x ∈ m i=1 Bi , genauer x sei in Bi1 , . . . , Bik , aber nicht in den anderen Bj ’s. Dann wird x zun¨ achst einmal gez¨ ahlt (in |S|), dann k-mal abgezogen (in ahlt (in |Bi1 ∩ Bi2 |, |Bi1 ∩ Bi3 |, . . .), dann k3 |Bi1 |, . . . , |Bik |), dann k2 dazugez¨ abgez¨ ahlt, usf. Insgesamt wird x also genau k k k k k 1− + − + . . . (−1) 1 k 2 3 mal gez¨ ahlt, und das ergibt 0, wie wir schon l¨angst wissen (Abschnitt 1.4 (11)). F¨ ur die Anwendungen wird die Formel meist in folgender Form benutzt, und das ist das eigentliche Prinzip der Inklusion-Exklusion. Es sei S eine Menge mit n Elementen, und E1 , . . . , Em eine Menge von Eigenschaften, die die Elemente aus S besitzen oder nicht. Mit N (Ei1 . . . Eik ) bezeichnen wir die Anzahl der Elemente, welche die Eigenschaften Ei1 , . . . , Eik besitzen (und m¨ oglicherweise noch weitere). Dann gilt f¨ ur die Anzahl N der Elemente, die u ¨berhaupt keine der Eigenschaften besitzen: (1)
N =n−
m i=1
N (Ei ) +
1≤i<j≤m
N (Ei Ej ) − . . . + (−1)m N (E1 . . . Em ).
Zum Beweis brauchen wir nur Bi = {x ∈ S : x besitzt Ei } zu setzen. Dann ist N (Ei1 . . . Eik ) = |Bi1 ∩ . . . ∩ Bik | , N = |S m i=1 Bi |, und (1) ist nichts anderes als unsere obige Formel. In unserem Ausgangsbeispiel war E2 die Eigenschaft durch 2 teilbar“, E3 durch 3 ” ” teilbar“, E5 durch 5 teilbar“, und das Problem liegt somit genau darin, die Anzahl ” ¨ N zu bestimmen. Ubung 43 zeigt, was das entsprechende Ergebnis f¨ ur beliebiges n ist. In vielen Beispielen h¨ angt N (Ei1 . . . Eik ) nur von der Anzahl k ab, das heißt es gilt N (Ei1 . . . Eik ) = N (Ej1 . . . Ejk ) f¨ ur je zwei k-Untermengen von {E1 , . . . , Em }. Wir k¨ onnen also Nk = N (Ei1 . . . Eik ) f¨ ur beliebige k-Mengen setzen, und Formel (1) nimmt die folgende einfache Gestalt an (mit N0 = n): (2)
N=
m
(−1)k
k=0
m Nk . k
Das Prinzip der Inklusion-Exklusion ist von bestechender Einfachheit und gerade darum vielseitig anwendbar. Ein paar weitere Beispiele m¨ogen dies illustrieren. Zun¨ achst noch einmal unsere altbekannten Derangement-Zahlen Dn . Die Vorgangsweise ergibt sich fast von selbst. S ist die Menge der n-Permutationen, und f¨ ur i = 1, . . . , n ist Ei die Eigenschaft, dass i Fixpunkt ist. W¨ahlen wir die Fixpunkte i1 , . . . , ik , so kann der Rest beliebig permutiert werden. Somit ist
2.4
inklusion-exklusion
51
N (Ei1 . . . Eik ) = (n − k)! f¨ ur jede k-Menge {i1 , . . . , ik } ⊆ {1, . . . , n} , und wir erhalten laut (2) Dn =
n
(−1)k
n n (−1)k . (n − k)! = n! k k! k=0
k=0
Im letzten Abschnitt haben wir die Formel f¨ ur Dn mittels Binomial-Inversion bewiesen, und tats¨ achlich kann man zeigen, dass auch das Prinzip der InklusionExklusion eine Inversion u ¨ ber einer geeigneten Struktur darstellt (siehe dazu die angegebene Literatur). Als ein etwas schwierigeres Beispiel betrachten wir eine n-Menge {a1 , . . . , an } und fragen uns, wie viele W¨ orter der L¨ ange 2n gebildet werden k¨onnen, die jedes ai genau zweimal enthalten, so dass gleiche Elemente niemals nebeneinander auftauchen. F¨ ur n = 2 erhalten wir zum Beispiel als einzige W¨orter a1 a2 a1 a2 und a2 a1 a2 a1 . Als Interpretation k¨ onnen wir uns eine lange Tafel vorstellen, und fragen, auf wie viele Arten n Ehepaare platziert werden k¨onnen, so dass Ehepartner niemals nebeneinander sitzen. S sei die Menge aller W¨orter der L¨ange 2n aus {1, 2, . . . , n}, in denen jedes i genau zweimal auftritt. Ist Ei die Eigenschaft, dass ein Wort die Zahl i nebeneinander enth¨ alt, so fragen wir also genau nach N . Betrachten wir eine k-Menge {i1 , . . . , ik }. Wie viele W¨orter enthalten i1 , i2 , . . . , ik jeweils nebeneinander? Zun¨ achst u ¨ berlegen wir uns, wie oft wir die 2k Zahlen i1 , i1 , . . . , ik , ik nebeneinander platzieren k¨ onnen. Betrachten wir die k Anfangsstellen der k Paare. Dies sind k Stellen zwischen 1 und 2n − 1, die sich jeweils um mindestens 2 unterscheiden (da die Stelle danach ja von dem zweiten Element be¨ setzt ist). Die Anzahl dieser k Wahlen aus {1, 2, . . . , 2n − 1} wurde in Ubung 1.13 2n−k zu berechnet. Nun k¨ onnen wir die k Paare auf k! Arten permutieren, und k Arten in die offenen Stellen einf¨ ugen (der die restlichen n − k Paare auf (2n−2k)! 2n−k Nenner ergibt sich wegen der Doppelz¨ ahlung bei den n − k Paaren). Wir erhalten (2n−2k)! k! 2n−k und daher nach (2) somit Nk = 2n−k k N=
n
n 2n − k (2n − 2k)! . (−1) k! 2n−k k k k
k=0
Die Transformation k → n − k und K¨ urzen ergibt das endg¨ ultige Ergebnis N=
n
(−1)
k=0
n−k
n n n+k (2k)! n−k n (n + k)! (−1) . (n − k)! k = k k n−k 2 2k k=0
Kommen wir kurz zu Zahl-Partitionen zur¨ uck. Wie viele Partitionen von 7 gibt es, in denen alle Summanden ungerade sind und wie viele gibt es, in denen alle Summanden verschieden sind? Diese Anzahlen wollen wir mit pu (7) und pv (7) bezeichnen.
52
2
summation
ungerade
verschieden
7 5+1+1 3+3+1 3+1+1+1+1 1+1+1+1+1+1+1
7 6+1 5+2 4+3 4+2+1
Also pu (7) = pv (7) = 5. Probieren wir andere kleine Zahlen, so kommen wir immer auf dasselbe Ergebnis pu (n) = pv (n). Ist dies immer richtig? Kein Problem mit Inklusion-Exklusion. Sei p(n) die Anzahl aller Partitionen von n. Wir berechnen zuerst pu (n). S ist die Menge aller Partitionen von n, und Ei die Eigenschaft, dass ein gerader Summand i vorkommt. Wie viele Partitionen enthalten 2? Offenbar p(n − 2) viele, da wir 2 jeweils wegstreichen. Nun ist klar, was herauskommt: pu (n) =
p(n) − p(n − 2) − p(n − 4) − p(n − 6) − . . . + p(n − 2 − 4) + p(n − 2 − 6) + p(n − 2 − 8) + . . . − p(n − 2 − 4 − 6) − . . .
Nun zu pv (n). Hier ist Ei die Eigenschaft, dass i mehrmals als Summand auftritt. Also erhalten wir pv (n) =
p(n) − p(n − 1 − 1) − p(n − 2 − 2) − p(n − 3 − 3) − . . . + p(n − 1 − 1 − 2 − 2) + p(n − 1 − 1 − 3 − 3) + . . .
und wir sehen, dass die beiden Berechnungen Zeile f¨ ur Zeile u ¨ bereinstimmen, also gilt tats¨ achlich pu (n) = pv (n) . Auch in der Wahrscheinlichkeitsrechnung k¨onnen wir das Prinzip oft verwenden. Gegeben n B¨ alle und r F¨ acher, n ≥ r. Wir werfen die n B¨alle zuf¨allig in die F¨ acher. Wie groß ist die Wahrscheinlichkeit, dass kein Fach leer bleibt? Ω ist also die Menge aller r n Verteilungen, alle gleich wahrscheinlich. Bezeichnen wir mit Ai das Ereignis, dass das Fach i leer bleibt, so besagt das Prinzip der InklusionExklusion, dass f¨ ur die gesuchte Wahrscheinlichkeit p gilt p=1−
r i=1
p(Ai ) +
1≤i<j≤r
p(Ai ∩ Aj ) ∓ . . .
Die Wahrscheinlichkeit f¨ ur Ai1 ∩. . .∩Aik ist nun offenbar p(Ai1 ∩. . .∩Aik ) = (g¨ unstige durch m¨ ogliche F¨ alle), und es folgt r r r (r − k)n 1 r−k r kn . = (−1) p= (−1)k k rn rn k k=0
(r−k)n rn
k=0
unstig) geteilt durch die Da p die Anzahl r!Sn,r der surjektiven Abbildungen (g¨ Anzahl r n aller Abbildungen (m¨ oglich) ist, haben wir mittels Inklusion-Exklusion wiederum die Formel (13) aus Abschnitt 2.2 bewiesen.
¨bungen u
53
¨ Ubungen zu Kapitel 2 ⊲ 1 L¨ ose mit Hilfe eines Summationsfaktors die Rekursion T0 = 3, 2Tn = nTn−1 + 3 · n! (n > 0). n k 2 Berechne k=0 kx (x = 1): a. mit der Methode ”Isolieren derkTerme“, b. mittels der Doppelsumme 1≤j≤k≤n xk , c. durch Differenzieren von n k=0 x . 3 Berechne k [1 ≤ j ≤ k ≤ n] als Funktion von j und n.
⊲ 4 Schreibe 1 und subtrahiere 1. Multipliziere das Ergebnis mit 2 und addiere 1. Multipliziere mit 3 und subtrahiere 1, multipliziere mit 4 und addiere 1. Schließlich: Multipliziere mit n und addiere (−1)n . Zeige, dass das Ergebnis Dn ist. Beispiel: 4(3(2(1 − 1) + 1) − 1) + 1 = 9 = D4 . 5 In einer Tabelle mit 3 Zeilen und n Spalten sind in beliebiger Reihenfolge n rote, n weiße und n gr¨ une Steine platziert. Zeige, dass man die Steine in jeder Zeile so umordnen kann, dass die Steine jeder Spalte verschieden gef¨ arbt sind. n−1 Hk ⊲ 6 Berechne k=1 (k+1)(k+2) durch partielle Summation. 1 1 2k+1 7 Berechne n k=1 k(k+1) auf zwei Arten: a. durch Partialbruchzerlegung k(k+1) = k − 1 , b. durch partielle Summation. k+1 8 Beweise die folgenden Analoga zum Binomialsatz: n n n k n−k n k n−k n n . (x + y) = (x + y) = x y x y k k k=0
k=0
n−1 ⊲ 9 Die Lah-Zahlen sind definiert durch Ln,k = (−1)n n! (n, k ≥ 0). k! k−1 k Beweise: (−x)n = n L x und leite daraus die Lah-Inversionsformel ab: n,k k=0 vn =
n
k=0
Ln,k uk (∀n) ⇐⇒ un =
n
Ln,k vk (∀n) .
k=0
10 Wieviele Buchstabenfolgen kann man aus E,H,I,R,S,W aufstellen, die weder WIR, IHR oder SIE enthalten? Also z. B. RSEWIH, aber nicht RSWIHE. 11 Wieviele nat¨ urliche Zahlen ≤ 1 Million sind weder von der Form x2 noch x3 noch x5 ? 12 Bestimme die kleinste nat¨ urliche Zahl mit genau 28 Teilern. n−m ⊲ 13 Wir wissen, dass r−m gleich der Anzahl der r-Untermengen einer n-Menge ist, die eine feste m-Menge M enthalten. Folgere daraus mit Inklusion–Exklusion n−m = r−m m k m n−k . (−1) k=0 r k k 14 Sei An = n (n ≥ 0). Leite eine Rekursion f¨ ur An ab und berechne An . k=0 n 15 Angenommen 60 % aller Professoren spielen Tennis, 65 % spielen Skat und 50 % spielen Schach; 45 % spielen jeweils zwei davon. Welchen Prozentsatz erh¨ alt man h¨ ochstens f¨ ur die Gelehrten, die allen drei Vergn¨ ugungen nachgehen?
16 Wieviele ganzzahlige L¨ osungen der Gleichung x1 + x2 + x3 + x4 = 30 gibt es mit: a. 0 ≤ xi ≤ 10 , b. −10 ≤ xi ≤ 20 , c) 0 ≤ xi , x1 ≤ 5, x2 ≤ 10, x3 ≤ 15, x4 ≤ 21?
54
2
grundlagen
⊲ 17 Was ist die Wahrscheinlichkeit, dass ein Blatt mit 13 Karten (von einem gew¨ ohnlichen 52er Blatt) folgende Karten enth¨ alt: a. mindestens eine Karte in jeder Farbe, b. mindestens ein As, K¨ onig, Dame und Junge?
⊲ 18 Turm von Hanoi. Wir haben 3 St¨ abe A,B,C. Auf A sind n verschiedene Scheiben der Gr¨ oße nach angeordnet (kleinste oben, gr¨ oßte unten). Ein Zug bewegt eine oberste Scheibe auf einen anderen Stab, wobei die Scheibe immer nur auf eine gr¨ oßere gesetzt werden darf. Stelle Rekursionen f¨ ur die folgenden Zahlen auf und berechne sie: a. Tn = Kleinste Anzahl der Z¨ uge, um den Turm von A nach B zu bewegen. b. Sn wie in a. mit der Einschr¨ ankung, dass nur Z¨ uge zwischen A und C bzw. B und C erlaubt sind, c. Rn = Anzahl der Z¨ uge von A nach B, wenn der Turm aus n verschiedenen Scheiben, zwei jeder Gr¨ oße, besteht, wobei gleich große nicht unterscheidbar sind, d. h. es ist gleichg¨ ultig, welche oben liegt. n k k 2 19 Berechne n k=1 (−1) k und k=1 (−1) k mit der Methode ”Isolieren der Terme“. ⊲ 20 Die folgende Aufgabe heißt Josephus-Problem (nach dem Historiker des 1. Jahrhunderts Flavius Josephus): n Menschen sind im Kreis herum aufgestellt, wir nummerieren sie 1 bis n. Jede zweite Person wird (im Uhrzeigersinn) eliminiert, wobei die Z¨ ahlung bei 1 beginnt. Bestimme die Nummer J(n) der letzten Person. Beispiel: n = 10, der Reihe nach werden eliminiert: 2, 4, 6, 8, 10, 3, 7, 1, 9, also J(10) = 5. Hinweis: Beweise die Rekursionen J(2n) = 2J(n) − 1 (n ≥ 1), J(2n + 1) = 2J(n) + 1 (n ≥ 1), J(1) = 1. m k ¨ 21 Sei J(n) wie in der vorigen Ubung definiert. Zeige: Falls n = k=0 ak 2 ist, ak ∈ m {0, 1}, dann gilt J(n) = k=1 ak−1 2k + am . ⊲ 22 Berechne S = 1≤j 1) . 1 41 Berechne 0 0 ,
so dass |f (n)| ≥ C|g(n)| ist f¨ ur n ≥ n0 } . Wir schreiben wiederum f (n) = Ω g(n) ,falls f (n) zu Ω g(n) geh¨ort. Offenbar gilt f (n) = O g(n) ⇐⇒ g(n) = Ω f (n) . Es ist dass O unmittelbar einsichtig, und Ω transitiv sind, d. h. aus f (n) = O g(n) , g(n) = O h(n) folgt f (n) = O h(n) , und analog f¨ ur Ω. Kurz ausgedr¨ uckt: O O(f (n)) = O f (n) , Ω Ω f (n) = Ω f (n) .
Jetzt liegt es nahe, auch ein Symbol einzuf¨ uhren, welches O und Ω zusammenfasst: (4)
Θ(g(n)) = {f (n) : es existieren Konstanten C1 > 0 , C2 > 0 ,
so dass C1 |g(n)| ≤ |f (n)| ≤ C2 |g(n)| ist f¨ ur n ≥ n0 } .
5.1
wachstum von funktionen
91
Setzen falls f (n) zu Θ g(n) geh¨ort, so gilt f (n) = wir wieder f (n) = Θ(g(n)), Θ g(n) ⇐⇒ f (n) = O g(n) und f (n) = Ω g(n) . Das Symbol Θ k¨onnen wir also als gleich schnelles“ Wachstum interpretieren, und wir schreiben manchmal ” f (n) ≍ g(n) ⇐⇒ f (n) = Θ(g(n)) ⇐⇒ g(n) = Θ(f (n)) . Eine st¨ arkere Version von ≍ erhalten wir durch # # # f (n) # # # (5) f (n) ∼ g(n) ⇐⇒ lim # # = 1. n→∞# g(n) #
Falls f (n) ∼ g(n) gilt, so sagen wir, f (n) und g(n) sind asymptotisch gleich. ¨ Offensichtlich sind ≍ und ∼ Aquivalenzrelationen, die mit ≺ , O und Ω vertr¨aglich sind. Das heißt z. B., dass aus f ≺ g und f ≍ f ′ auch f ′ ≺ g folgt, oder aus f = O(g) und f ∼ f ′ auch f ′ = O(g). Beispiel. Polynome k¨ onnen wir sofort analysieren. Hat p(n) den Grad d, so gilt p(n) ur k > d, und p(n) ≍ nd , und wir folgern f¨ ur Polynome p und q: limn→∞ nk = 0 f¨
(6)
p(n) ≺ q(n) ⇐⇒ Grad p(n) < Grad q(n)
p(n) ≍ q(n) ⇐⇒ Grad p(n) = Grad q(n)
p(n) ∼ q(n) ⇐⇒ Grad p(n) = Grad q(n) und die h¨ochsten
Koeffizienten sind im Absolutbetrag gleich. n Kehren wir zur¨ uck zu n!. Wegen log n! = k=1 log k folgt durch Ober- und Untersummenbildung der Logarithmusfunktion log x (7)
log(n − 1)!
0 an unterscheiden, es gilt logb n = log loga b (a, b > 1), bedeuten O(log n), O(log2 n) oder allgemein O(loga n) alle dasselbe. Da wir es in den meisten Problemen mit dem bin¨ aren Logarithmus zu tun haben, wollen wir ihn kurz lg n = log2 n bezeichnen. Zu all unseren Symbolen sei noch eins hinzugef¨ ugt. Wir schreiben (10)
o(g(n)) = {f (n) : f¨ ur jedes ε > 0 existiert n0 (ε)
mit |f (n)| ≤ ε|g(n)| f¨ ur n ≥ n0 (ε)}.
Mit der u f (n) = o g(n) , falls f (n) zu o g(n) geh¨ort, be¨ blichen Schreibweise deutet f (n) = o g(n) also nichts anderes als f (n) ≺ g(n). Die Bezeichnung f (n) = o(1) besagt daher, dass f (n) → 0 geht, w¨ahrend f (n) = O(1) bedeutet, dass f (n) beschr¨ ankt bleibt. Zum Beispiel k¨onnen wir (9) in der Form log n + σ + o(1) log n! = n log n − n + 2 ausdr¨ ucken, w¨ ahrend durch Ober- und Untersummenbildung von 1 1 1 1 + . . . + < log n < 1 + + . . . + 2 n 2 n−1
1 x
5.2
gr¨ oßenordnung von rekursionen
93
folgt, also Hn = log n + O(1) . ussige Details“ in den Ein weiterer Vorteil der O-Notation ist, dass wir u ¨ berfl¨ ” O-Summanden schieben k¨ o nnen. Erhalten wir beispielsweise in √ √ √ einer Rechnung n√ + a f¨ ur eine Konstante a, so k¨ o nnen wir sofort n + a = n + O(1) setzen, √ da n + a√− n ≤ |a| gilt, und k¨ onnen nun die Rechnung mit dem bequemeren Ausdruck n + O(1) fortsetzen.
5.2
Gr¨ oßenordnung von Rekursionen
Erinnern wir uns an die Fibonacci Rekursion. Aus Fn = Fn−1 + Fn−2 und den Anfangswerten F0 = 0, F1 = 1 haben wir mit unseren Methoden aus Abschnitt ˆ < 1 ist, sehen wir, dass Fn 3.2 geschlossen, dass Fn = √15 (φn − φˆn ) ist. Da |φ| 1 n asymptotisch gleich √5 φ ist, in unserer neuen Schreibweise √ 1+ 5 1 , F n ∼ √ φn , φ = 2 5 oder weniger genau F n ≍ φn . Die Fibonacci Zahlen wachsen also exponentiell schnell, und zwar so wie die Exponentialfunktion zur Basis φ ≈ 1, 61. ¨ Andert sich das Wachstum, wenn wir die Rekursion beibehalten, aber neue Anfangswerte verwenden? Zum Beispiel erhalten wir f¨ ur F0 = −2, F1 = 3 die Fibonacci-Folge −2, 3, 1, 4, 5, 9, 14, . . . oder f¨ ur F0 = 1, F1 = −1 die Folge 1, −1, 0, −1, −1, −2, −3, −5, . . . Nun, unsere 4 Schritte aus Abschnitt 3.2 bleiben diec+dz selben, es gilt wieder F (z) = 1−z−z 2 mit gewissen von den Anfangsbedingungen bestimmten Konstanten c, d. Mittels Satz 3.1 erhalten wir daraus Fn = aφn + bφˆn . und somit wiederum Fn ≍ φn , oder Fn ∼ aφn , außer wenn a = 0 ist. Dies tritt sicher auf, wenn F0 = F1 = 0 ist, in welchem Fall wir die 0-Folge erhalten, und noch f¨ ur einen weiteren Fall (welchen?). Eine explizite L¨ osung einer Rekursion wird uns mit einigen Manipulationen immer das richtige Wachstum angeben. Ganz anders ist die Frage, ob wir das Wachstum einer durch eine Rekursion gegebenen Z¨ahlfunktion bestimmen k¨onnen, ohne die L¨ osung zu kennen. Dies wird besonders dann interessant sein, wenn wir die Rekursion explizit gar nicht l¨ osen k¨ onnen. F¨ ur Rekursionen mit fester L¨ ange und konstanten Koeffizienten ist dies nicht weiter neu. Aus der Formel (A4) in Abschnitt 3.2 erkennen wir, dass die absolut gr¨ oßte Wurzel von q R (z) den Rest dominiert. Wir interessieren uns im folgenden also f¨ ur Rekursionen mit Koeffizienten, von denen einige oder alle von n abh¨angen.
94
5
asymptotische analyse
Den einfachsten Fall an Tn = bn Tn−1 +cn haben wir in Abschnitt 2.1 behandelt. Die dortige Methode funktioniert, weil die Glieder Tn , Tn−1 aufeinanderfolgende Indizes haben. In vielen, wenn nicht den meisten Problemen werden wir eine Di” vide and conquer“ Methode verwenden, die auf ganz andere Rekursionen f¨ uhrt. Betrachten wir folgendes Beispiel: In einem Tennisturnier nehmen n Spieler teil. In der ersten Runde scheiden alle Verlierer aus. Die Sieger spielen in Paaren in der zweiten Runde, die Verlierer scheiden wieder aus, usf. Wieviele Runden T (n) ben¨ otigen wir, um den Sieger zu ermitteln? Setzen wir, um es uns einfach zu machen, n = 2k . Unsere Rekursion lautet dann (1)
T (n) = T (n/2) + 1 , T (1) = 0 ,
da nach der ersten Runde n2 Spieler u ¨ brig bleiben. Nun, diese Rekursion ist einfach genug: T (2k ) = T (2k−1 ) + 1 = T (2k−2 ) + 2 = . . . = T (1) + k = k , also T (n) = lg n, n = 2k . Der Fall n = 2k ist nun auch schnell erledigt. In der ersten Runde scheiden ⌊ n2 ⌋ aus und ⌈ n2 ⌉ bleiben u ¨ brig. Die allgemeine Rekursion ist demnach (2)
n T (n) = T (⌈ ⌉) + 1 , T (1) = 0 , 2
und wir vermuten T (n) = ⌈lg n⌉. ⌈lg n⌉ ist die Potenz k von 2 mit 2k−1 < n < 2k . Insbesondere gilt dann 2k−1 < n+1 ≤ 2k , also ⌈lg n⌉ = ⌈lg(n+1)⌉, und damit auch n ⌈lg n2 ⌉ = ⌈lg n+1 2 ⌉ = ⌈lg⌈ 2 ⌉⌉. Gehen wir mit unserer Vermutung T (n) = ⌈lg n⌉ in (2), so erhalten wir n n T (n) = ⌈lg⌈ ⌉⌉ + 1 = ⌈lg ⌉ + 1 = ⌈lg n − lg 2⌉ + 1 2 2 = ⌈lg n⌉ . Probieren wir ein weiteres Beispiel: (3)
T (n) = T (n/2) + n , T (1) = 0 ,
wiederum f¨ ur n = 2k . Iteration ergibt T (2k ) = T (2k−1 )+2k = T (2k−2 )+2k +2k−1 = . . . = T (1)+2k +. . .+21 = 2k+1 −2 , also T (n) = 2n − 2 = Θ(n), und f¨ ur beliebiges n verschwindet die Differenz von ⌈ n2 ⌉ zu n2 in Θ(n). Machen wir es uns noch etwas komplizierter: (4)
n T (n) = 3T (⌊ ⌋) + n , T (1) = 1 . 2
gr¨ oßenordnung von rekursionen
5.2
95
Iteration mit n = 2k ergibt T (2k ) = 3T (2k−1 ) + 2k = 3(3T (2k−2 ) + 2k−1 ) + 2k = 32 T (2k−2 ) + 3 · 2k−1 + 2k
= . . . = 3k 20 + 3k−1 2 + 3k−2 22 + . . . + 30 2k . n n Durch Induktion oder mittels Konvolution von 3n z n und 2 z berechnen wir die rechte Seite zu 3k+1 − 2k+1 . Setzen wir 3 = 2lg 3 , so erhalten wir 3k+1 = 3 · 3k = 3 · (2lg 3 )k = 3nlg 3 , und somit T (n) = 3nlg 3 − 2n = Θ(nlg 3 )
f¨ ur n = 2k .
Wieder k¨ onnen wir erwarten, dass die Rundung ⌊ n2 ⌋ in Θ(nlg 3 ) verschwindet. Betrachten wir nun allgemein die Rekursion T (n) = a T (n/b) + f (n) , T (1) = c , wobei wir nb als ⌊ nb ⌋ oder ⌈ nb ⌉ interpretieren. Das Ergebnis h¨angt offenbar von a, b und f (n) ab. Der folgende Satz zeigt das Wachstum von T (n). Satz 5.1. Sei a ≥ 1, b > 1, und T (n) = a T (n/b) + f (n). a. Falls f (n) = O(nlogb a−ε ) f¨ ur ein ε > 0, dann gilt T (n) = Θ(nlogb a ). b. Falls f (n) = Θ(nlogb a ), dann gilt T (n) = Θ(nlogb a lg n). c. Falls f (n) = Ω(nlogb a+ε ) f¨ ur ein ε > 0, und a f ( nb ) ≤ c f (n) f¨ ur ein c < 1 und n ≥ n0 , dann gilt T (n) = Θ(f (n)). Wir wollen diesen Satz nicht beweisen, sondern ihn an einigen Beispielen erl¨autern. Im Wesentlichen zeigt er, wie das Wachstum von T (n) von der Gr¨oßenordnung von f (n) abh¨ angt. Im Fall c. dominiert f (n), im Fall a. dominiert der Summand a T (n/b). Beispiele. Betrachten wir zun¨ achst f (n) = C eine Konstante. Es ergeben sich die folgenden F¨ alle: a=1 a=b>1 a = b, a, b > 1
T (n) = Θ(lg n) T (n) = Θ(n) T (n) = Θ(nlogb a )
Fall b. Fall a. Fall a.
T (n) = Θ(n) T (n) = Θ(n lg n) T (n) = Θ(nlogb a )
Fall c. Fall b. Fall a.
Oder f¨ ur f (n) = Θ(n): 1≤a 1. Hinweis: In a. gilt k≥0 |f (k)| < ∞, daraus folgt die Richtigkeit. 16 Wir wissen, dass n! ≺ nn gilt. Zeige andererseits nn < (n!)2 f¨ ur n ≥ 3. Gilt auch nn ≺ (n!)2 ? 17 L¨ ose die Rekursion T (n) = 2T (⌊ n2 ⌋) + n2 , T (1) = 0.
⊲ 18 Zeige, dass T (n) = T ( n4 ) + T ( 3n ) + n die L¨ osung T (n) = O(n lg n) hat, durch Ent4 n = ( 16 + 3n ) + ( 3n + 9n ) wickeln der rechten Seite. Das heißt, wir schreiben n = n4 + 3n 4 16 16 16 usf. 19 L¨ ose mit derselben Methode T (n) = T (an) + T ((1 − a)n) + n, 0 < a < 1.
⊲ 20 Ein Algorithmus A habe eine Laufzeit gegeben durch die Rekursion T (n) = 7T ( n2 ) + n2 . Ein anderer Algorithmus A′ sei durch die Rekursion S(n) = αS( n4 ) + n2 gegeben. ur das gilt: Laufzeit (A′ ) ≺ Was ist das gr¨ oßte α, f¨ ur welches A′ schneller ist als A, d. h. f¨ Laufzeit (A)? 21 Gib m¨ oglichst gute asymptotische untere und obere Schranken f¨ ur die folgenden Re√ √ kursionen. a. T (n) = 2T ( n2 ) + n3 , b. T (n) = 3T ( n4 ) + n, c. T (n) = T ( n) + 10. n ab. 22 Sch¨ atze das Gr¨ oßenwachstum der gr¨ oßten Binomialkoeffizienten f (n) = n/2 Hinweis: Stirling Formel.
⊲ 23 Die folgende n−1Rekursion wird uns bei Sortierproblemen begegnen: T (n) = n2 k=0 T (k) + an + b, T (0) = 0 mit a > 0. Zeige, dass n ≺ T (n) ≺ n2 gilt. Hinweis: Probiere T (n) = cn bzw. T (n) = cn2 .
100
5
asymptotische analyse
¨ 24 Zeige, dass f¨ ur T (n) aus der vorigen Ubung gilt T (n) = cn lg n + o(n lg n) mit c = a log 4. Hinweis: Probiere T (n) = cn lg n. ⊲ 25 Der Euklidische Algorithmus zur Berechnung des gr¨ oßten gemeinsamen Teilers zweier Zahlen funktioniert bekanntlich durch sukzessive Division mit Rest. Beispiel: Gegeben seien 154, 56. Dann haben wir 154 = 2 · 56 + 42, 56 = 1 · 42 + 14, 42 = 3 · 14, also ist 14 = ggT(154, 56). Sei a > b. Zeige, dass aus b < Fn+1 (Fibonacci Zahl) folgt, dass die Anzahl der Rechenschritte zur Berechnung von ggT(a, b) h¨ ochstens n − 1 ist, und schließe daraus, dass die Anzahl der Schritte O(log b) ist. Zeige ferner, dass die Anzahl der Schritte h¨ ochstens 5-mal die Anzahl der Ziffern in b ist (gegeben in Dezimaldarstellung). ⊲ 26 Ein Kellner hat n verschieden große Pizzas auf einem Teller. Bevor er sie serviert, m¨ ochte er sie in die richtige Reihenfolge bringen, d. h. die kleinste oben, dann die n¨ achstkleinere, usf. bis zur gr¨ oßten unten. Eine Operation besteht darin, unter die k-te Pizza zu greifen und die ersten k als Ganzes umzudrehen. Wieviele solcher Umdrehungen ben¨ otigt der Kellner? In Permutationen ausgedr¨ uckt heißt dies: Eine Operation besteht in einem Flip der ersten k Elemente. Beispiel: 3241 −→ 2341 −→ 4321 −→ 1234. F¨ ur π sei ℓ(π) = Minimalzahl der Flips, und ℓ(n) = max ℓ(π). Zeige: n ≤ ℓ(n) ≤ 2n − 3. π Hinweis f¨ ur die obere Schranke: Bringe n mit 2 Flips an den Schluss, dann n − 1 mit 2 Flips an die vorletzte Stelle usf. 27 Betrachte ein verwandtes Problem. Eine Permutation π von {1, . . . , n} ist gegeben, die wir in die Form 1, 2, . . . , n bringen wollen. In jedem Schritt k¨ onnen wir das erste Element an irgendeiner Stelle einordnen. Die Anzahl der Schritte in einem optimalen Algorithmus ist ℓ(π) mit ℓ(n) = max ℓ(π). Berechne ℓ(n). 28 Das Sieb des Eratosthenes zur Entscheidung, ob n ≥ 3 Primzahl ist, geht folgender√ maßen: Teste alle Zahlen 2, 3, . . . , ⌊ n⌋ und stelle fest, ob eine davon ein Faktor von n ist. Wenn ja, ist n keine Primzahl, wenn nein, ist n Primzahl. Warum k¨ onnen wir bei √ otigt dieser Algorithmus maximal? ⌊ n⌋ stoppen ? Wieviele Schritte ben¨
¨ ⊲ 29 Im Turm von Hanoi (siehe Ubung 2.18) seien 4 St¨ abe A, B, C, D gegeben und das Problem bestehe darin, einen Turm von n Scheiben unter den u ¨blichen Bedingungen von ugen. Zeige: A auf D zu transferieren. Sei Wn die minimale Anzahl von Z¨ W(n+1) ≤ 2W(n) + Tn , 2 2 wobei Tn die minimale Anzahl f¨ ur 3 St¨ abe ist. Bestimme daraus eine Funktion f (n) mit W(n+1) ≤ f (n). Hinweis: Betrachte Un = (W(n+1) − 1)/2n . 2 2 30 Angenommen, wir haben am Anfang 1 und 2 gegeben. Bei jedem Schritt gilt aℓ = urfen drei Zahlen addieren. Kann jede Zahl n mit ai + aj + ak , i, j, k < ℓ, d. h. wir d¨ so einer 3-gliedrigen Additonskette erreicht werden? Wenn ja, sch¨ atze die L¨ ange m(n) nach oben und unten ab. Verallgemeinere auf k-gliedrige Ketten mit den Anfangswerten 1, 2, . . . , k − 1. 31 Um das Produkt A, B zweier n × n-Matrizen zu berechnen, brauchen wir mit der ur jedes der n2 inneren Produkte aus Zeilen u ¨blichen Methode n3 Multiplikationen, je n f¨ in A und Spalten in B. Insbesondere also 8 f¨ ur n = 2. Die folgende bemerkenswerte Methode von Strassen ben¨ otigt nur 7 Multiplikationen. Sei A = ac db , B = αγ βδ . Zeige, dass die Elemente von AB eine Summe von Termen ±mi ist, wobei m1 = (a + d)(α + δ), m2 = (c + d)α, m3 = a(β − δ), m4 = d(γ − α), m5 = (a + b)δ, m6 = (a − c)(α + β), otigt die normale Berechnung, m7 = (b−d)(γ+δ). Wieviele Additionen/Subtraktionen ben¨
¨bungen u
101
wieviele Strassens Methode? Finde eine Methode, die O(nlg 7 ) Multiplikationen f¨ ur das Produkt zweier n × n-Matrizen ben¨ otigt. Hinweis: Halbiere die Matrizen und verwende Rekursion mit n = 2 als Start. ⊲ 32 Es sei N eine nat¨ urliche Zahl, die wir in Bin¨ ardarstellung ak ak−1 . . . a0 bringen wollen. Zeige, wie man den Euklidischen Algorithmus dazu verwenden kann und sch¨ atze die Laufzeit f (n) ab, n = Anzahl der Stellen von N in Dezimaldarstellung. Hinweis: Dividiere N sukzessive durch 2. ¨ 33 Aus Ubung 11 folgt, dass jede Permutation π durch Vertauschung benachbarter Elemente in jede andere Permutation σ gebracht werden kann. Was ist die minimale Anzahl von Vertauschungen, die f¨ ur jedes Paar π und σ gen¨ ugt?
102
5
literatur zu teil i
Literatur zu Teil I Ideen und Methoden zur Abz¨ ahlung bilden das klassische Thema der Kombinatorik. Eine umfangreiche Auswahl von Summations- und Inversionsformeln findet man in den B¨ uchern von Riordan und Knuth. Sehr detailliert wird das Thema Summation und Differenzen in Graham–Knuth–Patashnik abgehandelt. Einige Themen wie die Differenzenrechnung auf Ordnungen (z. B. M¨obius-Inversion) wurden ganz ausgespart. Wer etwas dar¨ uber erfahren will, dem sei das Buch von Aigner empfohlen. Einen tieferen Einstieg in die Theorie der Erzeugenden Funktionen bieten die B¨ ucher von Aigner, Stanley und Wilf. Sch¨one Einf¨ uhrungen in die Wahrscheinlichkeitsrechnung geben das Buch von Krengel und der Klassiker von Feller. Daran sollte man das Buch von Alon–Spencer anschließen, das eine ausgezeichnete Darstellung der gerade f¨ ur die Diskrete Mathematik wichtigen Methoden enth¨alt. Wer mehr u ¨ ber die asymptotische Analyse erfahren will, dem sei wieder Graham– Knuth–Patashnik empfohlen, und als Weiterf¨ uhrung das Buch von Greene und Knuth. Eine sch¨ one Auswahl von Anwendungen findet man in Montroll. Und zu guter Letzt seien die B¨ ucher von Matouˇsek–Neˇsetril und Lov´ asz empfohlen, insbesondere das letzte ist eine wahre Fundgrube von alten und neuen Problemen (samt Hinweisen und L¨ osungen). M. Aigner: Combinatorial Theory. Springer-Verlag. N. Alon, J. Spencer: The Probabilistic Method. Wiley Publications. W. Feller: Probability Theory and its Applications. Wiley Publications. R. Graham, D. Knuth, O. Patashnik: Concrete Mathematics. Addison-Wesley. D. Greene, D. Knuth: Mathematics for the Analysis of Algorithms. Birkh¨ auser. D. Knuth: The Art of Computer Programming I, Fundamental Algorithms. Addison-Wesley. U. Krengel: Einf¨ uhrung in die Wahrscheinlichkeitstheorie und Statistik. Vieweg-Verlag. ´sz: Combinatorial Problems and Exercises. North-Holland. L. Lova J. Matouˇ sek, J. Neˇ setril: Diskrete Mathematik, eine Einladungsreise. Springer-Verlag. E. Montroll: Applied Combinatorial Mathematics (Beckenbach, ed.). Wiley. J. Riordan: Combinatorial Identities. J. Wiley & Sons. R. Stanley: Enumerative Combinatorics I, II. Cambridge University Press. H. Wilf: Generatingfunctionology. Academic Press.
Teil II: Graphen und Algorithmen Im ersten Teil haben wir verschiedene Methoden kennengelernt, wie wir endliche Mengen abz¨ ahlen. Nun wollen wir uns die Mengen selber ansehen. Die Mengen, die in einem Problem auftreten, haben ja meist eine vorgegebene Struktur, die wir bei der Untersuchung (und auch bei der Abz¨ahlung) ausn¨ utzen. Oder wir bringen sie in eine gewisse Form, um sie z. B. geeignet in den Rechner eingeben zu k¨ onnen. Die Erzeugung guter Datenstrukturen ist eine der wichtigsten Aufgaben der Informatik. Einige Strukturen sind uns so vertraut, dass wir mit ihnen umgehen, ohne viel Aufhebens zu machen. Zum Beispiel Listen a1 < a2 < . . . < an – die Elemente sind linear geordnet. Oder Matrizen (aij ) – die Elemente sind nach Zeilen und Spalten angeordnet. Oder allgemein Schemata (ai1 i2 ... ik ) mit k Indizes, oder Dreiecksschemata wie das Pascalsche Dreieck, das wir im ersten Teil besprochen haben. Die einfachste Struktur auf einer Menge wird von einer bin¨ aren Relation erzeugt. Zwei Elemente stehen in der vorgegebenen Beziehung oder nicht - und das sind genau Graphen. Graphen sind also nichts anderes als Mengen, auf denen eine bin¨ are Relation erkl¨ art ist. Die nat¨ urlichen Zahlen besitzen beispielsweise neben der n−1 2 2 ¨ 31 Verallgemeinere die vorige Ubung f¨ ur starken Zusammenhang in gerichteten Graphen.
⊲ 32 Sei G ein Graph mit Maximalgrad ∆. Zeige: χ(G) ≤ ∆ + 1.
120
6
graphen
33 F¨ ur einen Graphen H bezeichne δ(H) den Minimalgrad in H. Zeige: χ(G) ≤ max δ(H) + 1, wobei das Maximum u ¨ber alle induzierten Untergraphen H von G genommen wird. ⊲ 34 Zeige die Ungleichungen χ(G) + χ(G) ≤ n + 1, χ(G)χ(G) ≥ n. ⊲ 35 Beweise, dass ein Graph G mit k Farben gef¨ arbt werden kann (d. h. χ(G) ≤ k) genau dann, wenn die Kanten so orientiert werden k¨ onnen, dass in jedem Kreis C von G minKanten in jeder der beiden Richtungen orientiert sind. Hinweis: Betrachte destens |E(C)| k Wege von einer Ecke u nach einer Ecke v und z¨ ahle 1, falls die Kante in der richtigen Richtung orientiert ist und −(k − 1), falls sie entgegengesetzt orientiert ist. 36 Zeige, dass jeder selbst-komplement¨ are Graph mit mindestens zwei Ecken Durchmesser 2 oder 3 hat. ⊲ 37 Die Taillenweite t(G) eines Graphen G ist die L¨ ange eines k¨ urzesten Kreises in G (mit t(G) = ∞, falls G keinen Kreis besitzt). Ein k-regul¨ arer Graph G mit t(G) = t und der kleinstm¨ oglichen Eckenzahl f (k, t) heißt ein (k, t)-Graph, k ≥ 2, t ≥ 3. Bestimme die (k, t)-Graphen f¨ ur a. k = 2, t beliebig, b. t = 3, k beliebig, c. t = 4, k beliebig, d. k = 3, t = 5 und zeige f¨ ur k ≥ 3 k(k−1)r −2 falls t = 2r + 1 k−2 f (k, t) ≥ (k−1)r −2 falls t = 2r. k−2 38 Angenommen, ein Graph G = (E, K) auf n Ecken hat Unabh¨ angigkeitszahl α. Beweise n n |K| ≥ 12 (⌈ α ⌉ − 1)(2n − α⌈ α ⌉). Hinweis: Die extremalen Graphen bestehen aus disjunkten vollst¨ andigen Untergraphen. 39 Bestimme alle Graphen, die keinen induzierten Untergraphen mit 3 bzw. 4 Kanten enthalten. ⊲ 40 Sei G zusammenh¨ angend auf n ≥ 3 Ecken. Die Ecke u heißt Schnittecke, falls G {u} (d. h. G ohne u und die inzidenten Kanten) unzusammenh¨ angend ist. Zeige: G hat mindestens zwei Ecken, die nicht Schnittecken sind, und wenn es genau zwei solche Ecken gibt, dann ist G ein Weg. 41 Sei G = (E, K) gegeben. F¨ ur k, k′ ∈ K definiere k ∼ k′ ⇔ k = k′ oder k, k′ liegen auf ¨ einem gemeinsamen Kreis. Zeige, dass ∼ eine Aquivalenzrelation ist. Zeige analog, dass ¨ k ≈ k′ ⇔ k = k′ oder G {k, k′ } hat mehr Komponenten als G, eine Aquivalenzrelation ist. Ist ∼ gleich ≈? 42 Es sei G folgender Graph. Die Ecken sind alle n! Permutationen a1 a2 . . . an , wobei a1 . . . an , b1 . . . bn benachbart sind, falls sie sich nur durch einen Austausch ai −→ aj unterscheiden. Beispiel: 134562 ∼ 164532. Zeige, dass G bipartit ist. ⊲ 43 Ein Turnier T ist ein gerichteter Graph, in dem zwischen je zwei Ecken genau eine gerichtete Kante besteht. Zeige, dass es in einem Turnier immer eine Ecke gibt, von der aus jede weitere Ecke durch einen gerichteten Weg der L¨ ange ≤ 2 erreicht werden kann. 44 Zeige: Ein Turnier T ist genau dann stark zusammenh¨ angend, wenn T einen aufspannenden gerichteten Kreis enth¨ alt (d. h. einen Kreis der L¨ ange n = |E|). Hinweis: Betrachte einen l¨ angsten gerichteten Kreis. ⊲ 45 Es sei π : v1 v2 . . . vn eine Anordnung der Ecken eines Turniers. Eine Feedback -Kante ange dieser Kante, und ist ein Paar vi vj mit i < j und vj → vi . Es sei j − i die Feedbackl¨
¨bungen u
121
f (π) die Summe aller Feedbackl¨ angen. Zeige: Jede Ordnung π mit f (π) = min listet die Ecken mit nicht-steigenden Aus-Graden d− (v1 ) ≥ d− (v2 ) ≥ . . . ≥ d− (vn ) auf. Hinweis: ¨ Uberlege, was passiert, wenn in π zwei benachbarte Ecken ausgetauscht werden. ⊲ 46 Zeige, dass die Kanten eines Graphen G so orientiert werden k¨ onnen, dass der resul stark zusammenh¨ tierende gerichtete Graph G angend ist, genau dann, wenn G zusammenh¨ angend und br¨ uckenlos ist. 47 Sei G ein Graph, in dem alle Ecken geraden Grad haben. Zeige, dass G so orientiert stets d+ (u) = d− (u) gilt. werden kann, dass in G
7 7.1
B¨ aume Begriff und Charakterisierung
Die Theorie der B¨ aume wurde urspr¨ unglich aus dem Studium der Kohlenwasserstoffverbindungen und anderer Isomere entwickelt.
• H
•
•
• • @ @ @•
H C
• @ @ • @•
•H
• H
• Methan
•
•
• • • • @ @ @•
• @ @ • @•
Isobutan
Cayley warf Ende des 19. Jahrhunderts die Frage auf, wie viele verschiedene Isomere einer bestimmten Zusammensetzung existieren. Dies f¨ uhrte zur Abz¨ahltheorie von Graphen (siehe dazu Kapitel 4 und die Literaturhinweise). Die B¨aume bilden die fundamentalen Bausteine f¨ ur alle Graphen. Sie sind nicht nur als Graphen interessant, sondern sie ergeben auch die geeignete Datenstruktur f¨ ur viele diskrete Probleme – insbesondere f¨ ur Such- und Sortierprobleme, auf die wir in Kapitel 9 ausf¨ uhrlich eingehen werden. Definition. Ein Graph heißt ein Baum, falls er zusammenh¨angend ist und keine Kreise enth¨ alt. Ein Graph, dessen Komponenten jeweils B¨aume sind, heißt ein Wald. Die B¨ aume mit h¨ ochstens 5 Ecken sind:
•
• •
• •
•
• • • H•
• •
• •
•
• • •
•
• @• • •@ •
• @• • @ • •
Sei G = (E, K) ein zusammenh¨ angender Graph. Ein Untergraph T , der ein Baum der Ordnung n = |E| ist, heißt ein aufspannender Baum. Offenbar besitzt jeder zusammenh¨ angende Graph G stets aufspannende B¨aume. Entweder ist G bereits ein Baum, dann sind wir fertig, oder G besitzt einen Kreis C. Entfernen wir aus C eine Kante k, so ist G1 = (E, K {k}) nach wie vor zusammenh¨angend. Entweder ist G1 ein aufspannender Baum oder G1 besitzt wieder einen Kreis C1 . Wir entfernen eine Kante k1 aus C1 , usf. Nach endlich vielen Schritten erhalten wir einen aufspannenden Baum.
124 Satz 7.1.
7
b¨ aume
Die folgenden Bedingungen sind ¨ aquivalent:
a. G = (E, K) ist ein Baum. b. Je zwei Ecken in G sind durch genau einen Weg verbunden. c. G ist zusammenh¨ angend, und es gilt |K| = |E| − 1. Beweis. a. ⇒ b. W¨ aren u und v durch zwei Wege verbunden, so erg¨abe dies einen Kreis. b. ⇒ a. Ist C ein Kreis, so sind je zwei Ecken aus C durch zwei verschiedene Wege verbunden. a. ⇒ c. Ein Baum besitzt Ecken vom Grad 1. Sei n¨amlich P = u, u1 , u2 , . . . , v ein l¨ angster Weg in G , so sind alle Nachbarn von u in P , d. h. es gilt d(u) = 1 (und ebenso d(v) = 1), da G keine Kreise hat. Wir entfernen u und die inzidente Kante uu1 und erhalten einen Baum G1 = (E1 , K1 ) auf n − 1 Ecken mit |E1 | − |K1 | = |E| − |K|. Nach n − 2 Schritten erhalten wir einen Baum Gn−2 auf 2 Ecken, d. h. Gn−2 = K2 , und es gilt |E| − |K| = |En−2 | − |Kn−2 | = 1. c. ⇒ a. Sei T ein aufspannender Baum von G. Nach dem eben Bewiesenen ergibt dies 1 = |E(G)| − |K(G)| ≤ |E(T )| − |K(T )| = 1 , also K(G) = K(T ), d. h. G = T . Besteht ein Graph G = (E, K) aus t Komponenten, so folgt durch Anwendung von 7.1 auf die einzelnen Komponenten, dass jeder aufspannende Wald |E| − t Kanten besitzt. Wir k¨ onnen noch andere Charakterisierungen von B¨aumen angeben. Zum Beispiel: G ist genau dann ein Baum, wenn G zusammenh¨angend ist und jede Kante eine Br¨ ucke ist. (Beweis?) Ferner erhalten wir sofort aus 6.1: Folgerung 7.2. Ist T ein Baum der Ordnung n ≥ 2, und (d1 , d2 , . . . , dn ) die Gradfolge, so gilt n i=1
di = 2n − 2 .
Wie viele aufspannende B¨ aume hat ein Graph G? Dies ist im allgemeinen ein schwieriges Problem. F¨ ur vollst¨ andige Graphen k¨onnen wir aber leicht eine Antwort geben. Sei Kn der vollst¨ andige Graph auf {1, 2, . . . , n}. Die Anzahl der aufspannenden B¨ aume sei t(n). Sehen wir uns kleine Werte von n an.
7.1
n=2 n=3
1 • 1 •
2 • 2 • •3
n=4
1 2 • • @ @ • @• 3 4 • •
125
begriff und charakterisierung
t(2) = 1 1 2 • • @ @ @• 3 •
•
•
1 2 • • @ @ @• 3
t(3) = 3
•
•
•
• • @ @ • @•
•
•
•
•
•
•
• • @ @ • @•
•
•
•
•
•
•
•
•
•
•
•
•
• • @ @ • @•
•
•
• • @ @• • @
• • @ @ • @•
•
•
•
•
t(4) = 16
• • @ @ • @• • • @ @ • @•
F¨ ur t(5) berechnet man t(5) = 125. Man beachte, dass die B¨aume nicht alle verschieden sind (im Sinne der Isomorphie). Die folgende Formel, die durch die ersten Werte nahegelegt wird, ist eines der verbl¨ uffendsten Abz¨ahlergebnisse. Satz 7.3.
Es gilt t(n) = nn−2 .
Beweis. Der Ausdruck nn−2 legt als Beweismethode die Gleichheitsregel nahe. Die Eckenmenge sei E = {1, . . . , n}. Wir konstruieren nun eine Bijektion von der Menge aller B¨ aume auf die Menge aller Folgen (a1 , . . . , an−2 ) mit 1 ≤ ai ≤ n, deren Anzahl, wie wir wissen, nn−2 ist. Die Zuordnung T → (a1 , a2 , . . . , an−2 ) geschieht folgendermaßen: (1) Unter allen Ecken vom Grad 1 suche jene mit minimaler Nummer v. Die Nummer des Nachbarn von v ist a1 . (2) Entferne v und die inzidente Kante, dies ergibt einen Baum auf n − 1 Ecken. Gehe zu (1) und f¨ uhre die Vorschrift (n − 2)-mal aus. Dies ergibt der Reihe nach die Zahlen a1 , a2 , . . . , an−2 . Beispiel. 3 • 6 •
2 •
7 •
• 1
• 4
• 9 • 8 • 5
−→
(1, 8, 3, 1, 4, 4, 8) .
126
7
b¨ aume
Wir m¨ ussen nun umgekehrt zeigen, dass zu jeder Folge (a1 , a2 , . . . , an−2 ) genau ein Baum T existiert. Was sagt uns die Folge u ¨ ber den Baum? Sei di der Grad der Ecke i. Angenommen, die Nummer i erscheint fi -mal in der Folge. Da jedesmal, wenn i in die Folge aufgenommen wird, eine Nachbarecke von i entfernt wurde, haben wir fi ≤ di −1 f¨ ur alle i. Beachte fi ≤ di −1, da i nach wie vor im Restbaum ist, also Grad ≥ 1 hat. Nach Satz 7.2 folgt n−2=
n i=1
fi ≤
n i=1
(di − 1) = 2n − 2 − n = n − 2 ,
ur alle i. Insbesondere sind also die Nummern, die u also fi = di − 1 f¨ ¨ berhaupt nicht in der Folge auftauchen, genau die Ecken vom Grad 1. Daraus erhalten wir die inverse Zuordnung: (1) Suche das minimale b1 , welches nicht in der Folge (a1 , . . . , an−2 ) auftritt; dies ergibt die Kante b1 a1 . (2) Such das minimale b2 = b1 , welches nicht in der Folge (a2 , . . . , an−2 ) erscheint, usf. Beachte, dass sich die letzte Kante automatisch aus der obigen Gradbedingung ergibt. Beispiel. a: 2 2 7 5 3 9 1 1 b: 4 6 2 7 5 3 8 9
7.2
−→
9 8 • •H HH H• 1
3 •
5 •
7 •
• 10
• 4
• 2
• 6
Breadth-First und Depth-First Suche
Wie finden wir in einem Graphen G, gegeben durch seine Adjazenzmatrix (oder gleichbedeutend durch seine Nachbarschaftslisten), einen aufspannenden Baum? Oder allgemein einen aufspannenden Wald? Wie erkennen wir u ¨ berhaupt, ob G zusammenh¨ angend ist? Beispiel.
G sei durch die folgenden Nachbarschaftslisten gegeben: a b b a d c h d e
c b d g
d e a b b c
f g
g c f h
h a g
Ist G zusammenh¨ angend? Der folgende Algorithmus Breadth-First-Suche BFS konstruiert einen aufspannenden Baum (falls ein solcher existiert). Der Algorithmus durchsucht die Ecken der Breite nach, daher der Name.
7.2
breadth-first und depth-first suche
127
(1) Starte mit einer Ecke und gib ihr die Nummer 1, 1 ist die aktuelle Ecke. (2) Die aktuelle Ecke habe Nummer i, und es seien bereits die Nummern 1, . . . , r vergeben. Falls r = n, stop. Andernfalls betrachte die noch nicht nummerierten Nachbarn von i und gib ihnen der Reihe nach die Nummern r +1, r +2, . . . und f¨ uge die Kanten i(r + 1), i(r + 2), . . . hinzu. Falls nun die Nummer i + 1 nicht existiert, stop (G ist nicht zusammenh¨ angend), anderenfalls gehe zur Ecke mit Nummer i + 1, dies ist die neue aktuelle Nummer, und iteriere (2). In unserem Beispiel erhalten wir: a
2
1
b
3 d
5
c
e
6
4
h
7
g f
8
Also ist G zusammenh¨ angend. Wir wollen nun die Korrektheit unseres Algorithmus nachpr¨ ufen. Das heißt, ist G zusammenh¨ angend, so erzeugt BFS tats¨ achlich einen aufspannenden Baum. Der Fall, wenn G nicht zusammenh¨ angend ist, wird analog verifiziert. Sei also G zusammenh¨ angend. Da eine nummerierte Ecke immer nur zu h¨ochstens einer Ecke mit kleinerer Nummer benachbart ist, erzeugt BFS jedenfalls keine Kreise, und da Kanten immer an den aktuellen Graphen angeh¨angt werden, ist der resultierende Graph T ein Baum. Angenommen v ∈ / E(T ), und u ist die Anfangsecke des Algorithmus. Da G zusammenh¨ angend ist, gibt es einen Weg u = v0 , v1 , . . . , v, und somit einen Index i mit vi ∈ E(T ), vi+1 ∈ / E(T ). An einer Stelle des Algorithmus war vi die aktuelle Ecke. Laut Schritt (2) werden alle noch nicht nummerierten Nachbarn von vi hinzugenommen, also ist vi+1 doch in E(T ), Widerspruch. In gewissem Sinne dual zu BFS ist Depth-First-Suche DFS. Wir gehen solange in die Tiefe (Kante f¨ ur Kante), bis wir nicht mehr weiterk¨onnen. Dann gehen wir einen Schritt zur¨ uck und starten wieder in die Tiefe. Die Regeln f¨ ur DFS sind: (1) Starte mit einer Ecke und gib ihr die Nummer 1, 1 ist die aktuelle Ecke. W¨ahle einen Nachbarn von 1 und gib ihm die Nummer 2. F¨ uge die Kante 12 ein. 2 ist nun die aktuelle Ecke, und 1 die Vorg¨ angerecke. (2) Die aktuelle Ecke habe Nummer i, und es seien die Nummern 1, . . . r vergeben. Falls r = n ist, stop. Andernfalls w¨ahle einen noch nicht nummerierten Nachbarn von i, gib ihm die Nummer r + 1, und f¨ uge die Kante i(r + 1) ein. Die aktuelle Ecke ist nun r + 1 und i die Vorg¨angerecke. Falls keine nichtnummerierten Nachbarn von i existieren, gehe zur Vorg¨angerecke von i, falls i > 1. Dies ist nun die aktuelle Ecke. Iteriere (2). Wenn i = 1 ist, und keine nicht nummerierten Nachbarn existieren, so ist G nicht zusammenh¨angend, stop.
128
b¨ aume
7
In unserem Beispiel erhalten wir a b c
1
2
3
8 e
d
g
4
5
6 f
7 h
Der Korrektheitsbeweis f¨ ur DFS verl¨ auft analog zu dem von BFS. ¨ Uberlegen wir uns, wie lange z. B. der Algorithmus BFS l¨auft. Schritt (2) sucht alle nichtnummerierten Nachbarn der aktuellen Ecke ab, also ben¨otigt BFS ins gesamt O( u∈E d(u)) = O(|K|) Schritte. Da der Algorithmus klarerweise auch Ω(|K|) Operationen braucht, haben wir als Laufzeit Θ(|K|). Die Analyse f¨ ur Depth-First-Suche verl¨ auft analog.
7.3
Minimale aufspannende B¨ aume
Angenommen, wir haben ein Kommunikationsnetz gegeben mit Schaltelementen (das sind die Ecken) und Verbindungen zwischen den einzelnen Elementen (das sind die Kanten). Die Verbindung zwischen den Schaltelementen u und v herzustellen, kostet w(uv) Einheiten. Wir m¨ ochten einen Schaltplan konstruieren, so dass jedes Element mit jedem anderen kommunizieren kann, und die Gesamtkosten minimal sind. Ein analoges Problem ist die Konstruktion eines Streckenplans mit minimalen Gesamtkosten. Wir modellieren dieses Problem durch einen gewichteten Graphen. Gegeben sei ein zusammenh¨ angender Graph G = (E, K) zusammen mit einer Gewichtsfunktion w : K −→ R. Gesucht ist ein aufspannender Baum T mit minimalem Gewicht w(T ) = w(k). k∈K(T )
Beispiel.
6 s s 2 @ @ 6@ 3 @ 2 7 s @s @s @ @ 3 @4 @ 8@ 3 @s @s 1 6
G
Eine naive Vorgehensweise ist die folgende. Man w¨ahlt zun¨achst eine Kante von minimalem Gewicht. Hat man schon j Kanten bestimmt, so w¨ahle man als n¨achstes
7.3
minimale aufspannende b¨ aume
129
eine Kante minimalen Gewichts, so dass kein Kreis entsteht. Nach n − 1 Schritten ist dann ein Baum konstruiert. F¨ ur unseren Graphen erhalten wir z. B. s s @ @ 2 @ @ 6@ @ @ @ 2 @ @s @ @s s @ @ @ @ @s 3 @s 1 6
w(T ) = 20
Ist dieser Baum bereits optimal? Tats¨ achlich ergibt unser Algorithmus immer das Optimum, wie wir gleich sehen werden. Da unsere Vorschrift immer die beste Kante nimmt, sprechen wir von einem Greedy-Algorithmus (aus dem Englischen greedy = gierig). Die Strukturelemente unseres algorithmischen Problems sind die W¨alder, die in G enthalten sind. Bevor wir die Optimalit¨at des Greedy-Algorithmus beweisen, wollen wir die mengentheoretischen Eigenschaften der W¨alder analysieren und so den Kern des Greedy-Algorithmus herausarbeiten. Definition. S sei eine endliche Menge und U ⊆ B(S) eine Familie von Untermengen von S. Das Paar M = (S, U) heißt ein Matroid und U die Familie der unabh¨ angigen Mengen von M, falls folgendes gilt: 1. ∅ ∈ U 2. A ∈ U, B ⊆ A ⇒ B ∈ U 3. A, B ∈ U, |B| = |A| + 1 ⇒ ∃ v ∈ B \ A mit A ∪ {v} ∈ U. Eine maximale unabh¨ angige Menge heißt eine Basis des Matroides. Aufgrund von 3. folgt, dass je zwei Basen von M dieselbe Anzahl von Elementen enthalten (klar?); diese Anzahl heißt der Rang r(M) des Matroides. Genauer besagt Axiom 3, dass jede unabh¨ angige Menge durch Hinzunahme weiterer Elemente zu einer Basis erg¨ anzt werden kann. Der Name Matroid deutet auf eine Verallgemeinerung von Matrizen hin. Betrachten wir n Vektoren a1 , a2 , . . . , an in einem Vektorraum der Dimension m u orper, zum Beispiel den reellen Zahlen R. Wir k¨onnen die Vektoren ¨ ber einem K¨ aj als Spalten (a1j , . . . , amj )T schreiben und erhalten so eine m×n-Matrix. S ist in diesem Fall die Menge {a1 , . . . , an } und A ⊆ S ist unabh¨angig, falls die Vektoren in A eine linear unabh¨ angige Menge bilden, wobei wir auch ∅ als linear unabh¨angig erkl¨ aren. Axiom 2 ist klar, und 3 ist gerade der Steinitzsche Austauschsatz aus der Linearen Algebra. Der Rang ist in diesem Fall nat¨ urlich die Dimension des Unterraumes, aufgespannt von den aj ’s. Zur¨ uck zu Graphen. Wir betrachten alle Untergraphen H = (E, A) auf der gesamten Eckenmenge E und k¨ onnen daher H = (E, A) mit der Kantenmenge A ⊆ K identifizieren. Die Familie dieser Untergraphen entspricht also gerade der
130
7
b¨ aume
Familie B(K) aller Untermengen von K. W ⊆ B(K) bezeichne nun die Familie der Kantenmengen aller W¨ alder von G. Satz 7.4.
Gegeben der Graph G = (E, K), dann ist M = (K, W) ein Matroid.
Beweis. Die Axiome 1 und 2 sind unmittelbar klar. Seien nun W = (E, A) und W ′ = (E, B) zwei W¨ alder mit |B| = |A| + 1. Ferner seien T1 , . . . , Tm die Komponenten von W = (E, A) mit den Eckenmengen E1 , . . . , Em und Kantenmengen A1 , . . . , Am . Nach 7.1 haben wir |Ai | = |Ei | − 1, i = 1, . . . , m, E = E1 + . . . + Em , A = A1 + . . . + Am .
E1
k r r Es Et
Em
Da jeder Wald auf Ei h¨ ochstens |Ei |−1 Kanten besitzt, so muss es wegen |B| > |A| eine Kante k ∈ B geben, die zwei verschiedene Mengen Es und Et verbindet. Dann ist aber W ′′ = (E, A ∪ {k}) ein Wald, und Axiom 3 ist erf¨ ullt. Wir sehen, dass die Basen von M = (K, W) die aufspannenden W¨alder sind, und der Rang des Matroides |E| − t ist, t = Anzahl der Komponenten von G. Sch¨ on, jetzt wissen wir, dass die W¨ alder ein Matroid bilden, aber wir wollen ja unser Minimales Baum Problem l¨ osen. Der folgende Satz besagt, dass der Greedy Algorithmus eine optimale Basis in jedem beliebigen gewichteten Matroid M = (S, U) liefert. Umso mehr gilt dies also f¨ ur W¨alder, oder im Fall zusammenh¨ angender Graphen f¨ ur B¨ aume. Die Bedeutung dieses Satzes liegt auf der Hand: Wann immer wir in einem Optimierungsproblem mit Gewichtsfunktion eine Matroid Struktur nachweisen k¨ onnen, so funktioniert der Greedy Algorithmus! Ja ¨ mehr noch, in Ubung 7.30 wird gezeigt, dass der Greedy Algorithmus allgemein genau f¨ ur Matroide f¨ ur jede Gewichtsfunktion das Optimum liefert. Satz 7.5. Sei M = (S, U) ein Matroid mit Gewichtsfunktion w : S −→ R. Der folgende Algorithmus ergibt eine Basis minimalen Gewichtes: (1) Sei A0 = ∅ ∈ U. (2) Ist Ai = {a1 , . . . , ai } ⊆ S, so sei Xi = {x ∈ S \ Ai : Ai ∪ {x} ∈ U}. Falls Xi = ∅ ist, so ist Ai die gesuchte Basis. Andernfalls w¨ ahle ein ai+1 ∈ Xi von minimalem Gewicht, und setze Ai+1 = Ai ∪ {ai+1 }. Iteriere (2). Beweis. Sei A = {a1 , . . . , ar } die erhaltene Menge. Dass A eine Basis ist, folgt sofort aus Axiom 3. Aufgrund der Greedy-Konstruktion sehen wir mit Axiom 2, dass w(a1 ) ≤ w(a2 ) ≤ . . . ≤ w(ar ) gelten muss. F¨ ur w(a1 ) ≤ w(a2 ) ist dies wegen Schritt (1) klar. Sei 2 ≤ i ≤ r − 1. Da {a1 , . . . , ar } ∈ U ist, so gilt auch {a1 , . . . , ai−1 } ∈ U. Also sind ai , ai+1 ∈ Xi−1 , und wegen Schritt (2) gilt w(ai ) ≤ w(ai+1 ). Angenommen B = {b1 , . . . , br } w¨ are eine Basis mit w(B) < w(A), wobei wir w(b1 ) ≤ . . . ≤ w(br ) annehmen. Dann gibt es einen kleinsten Index i mit
7.4
k¨ urzeste wege in graphen
131
w(bi ) < w(ai ) und wegen Schritt (1) gilt i ≥ 2. Wir betrachten die unabh¨angigen Mengen Ai−1 = {a1 , . . . , ai−1 }, Bi = {b1 , . . . , bi }. Nach Axiom 3 existiert bj ∈ Bi Ai−1 mit Ai−1 ∪ {bj } ∈ U. Da nun w(bj ) ≤ w(bi ) < w(ai ) ist, h¨atte der Greedy Algorithmus im i-ten Schritt bj anstelle von ai gew¨ahlt, Widerspruch. Die Spezialisierung des Greedy Algorithmus f¨ ur Matroide auf Graphen wurde von Kruskal entdeckt und heißt daher Kruskals Algorithmus f¨ ur das MST-Problem (minimal spanning tree). Wie viele Rechenschritte ben¨otigt Kruskals Algorithmus? Zuerst m¨ ussen wir die Kanten ki nach ihrem Gewicht anordnen w(k1 ) ≤ w(k2 ) ≤ . . . ≤ w(kq ) , q = |K|. Mit anderen Worten, wir m¨ ussen die q Gewichte w(ki ) sortieren. Wie man das macht, werden wir in Kapitel 9 studieren und dort beweisen, dass O(q lg q) Vergleiche n¨ otig sind. Schritt (2) baut den Baum sukzessive auf. Nach i Schritten haben wir einen Wald mit n − i Komponenten E1 , E2 , . . . , En−i . Angenommen, kh war die zuletzt hinzugef¨ ugte Kante. Wegen w(k1 ) ≤ . . . ≤ w(kh ) ≤ w(kh+1 ) nehmen wir die n¨achste Kante kh+1 = uv und testen, ob sie zul¨ assig ist, d. h. ob durch Hinzunahme kein Kreis erzeugt wird. Es gilt kh+1 zul¨ assig ⇐⇒ u, v sind in verschiedenen Ej ’s. Wir stellen fest, in welchen Mengen Eu und Ev die Ecken u, v sind. Falls Eu = Ev ist, so f¨ ugen wir kh+1 hinzu, und verschmelzen Eu ∪Ev ∪{uv} zu einer Komponente. Falls Eu = Ev ist, so testen wir die n¨ achste Kante. Wir m¨ ussen also f¨ ur u und v jeweils h¨ ochstens n Vergleiche durchf¨ uhren, und die Gesamtzahl der Operationen in Schritt (2) ist O(nq) = O(q 2 ) . Insgesamt ben¨otigt unser Algorithmus somit O(q lg q)+O(q 2 ) = O(q 2 ) Operationen, und der Leser kann sich u ¨ berlegen, dass wir bei einer geeigneten Datenstruktur f¨ ur den Schritt (2) nur O(q lg q) Operationen brauchen, also insgesamt O(|K| lg |K|). Vertauschen wir minimal mit maximal und ≤ mit ≥, so ergibt der Greedy Algorithmus analog eine Basis mit maximalem Gewicht, oder f¨ ur Graphen einen Baum von maximalem Gewicht.
7.4
K¨ urzeste Wege in Graphen
Ein anderes Optimierungsproblem auf gewichteten Graphen liegt auf der Hand. Angenommen, wir haben einen Straßenplan vor uns und befinden uns an einer Stelle u. Wir m¨ ochten von u in m¨ oglichst kurzer Zeit nach v kommen. Die Straßen k (= Kanten) haben ein Gewicht w(k) ≥ 0, welches die Zeit angibt, die wir f¨ ur die Benutzung von k ben¨ otigen (abh¨ angig von Straßenbreite, Verkehr usf.). Modelliert als Graph heißt dies: Gegeben ein zusammenh¨angender Graph G = (E, K) und eine Gewichtsfunktion w : K → R+ = {x ∈ R : x ≥ 0}. Sei u ∈ E. F¨ ur einen Weg P = P (u, v) von u nach v bezeichnen wir mit ℓ(P ) = k∈K(P ) w(k) die (gewichtete) L¨ ange von P . Gesucht ist ein k¨ urzester u, v-Weg, f¨ ur den also ℓ(P ) minimal ist. Der Abstand d(u, v) sei die L¨ange eines k¨ urzesten Weges. Im speziellen Fall w(k) = 1 f¨ ur alle k ∈ K ist ℓ(P ) nat¨ urlich genau die bisherige L¨ange (= Anzahl der Kanten) und d(u, v) der bisherige Abstand.
132
b¨ aume
7
Sei u fest gew¨ ahlt. Der folgende ber¨ uhmte Algorithmus von Dijkstra konstruiert einen aufspannenden Baum, dessen eindeutiger Weg von u nach v stets ein k¨ urzester ist, f¨ ur alle v ∈ E. (1) Sei u0 = u, E0 = {u0 }, K0 = ∅, ℓ(u0 ) = 0. (2) Gegeben Ei = {u0 , u1 , . . . , ui }, Ki = {k1 , . . . , ki }. Falls i = n−1 ist, so sind wir fertig. Andernfalls betrachte f¨ ur alle Kanten k = vw, v ∈ Ei , w ∈ E \ Ei den Ausdruck f (k) = ℓ(v) + w(k) und w¨ ahle k mit f (k) = min f (k). Sei k = v w, dann setze ui+1 = w, ki+1 = k, Ei+1 = Ei ∪ {ui+1 }, Ki+1 = Ki ∪ {ki+1 }, ℓ(ui+1 ) = f (k). Iteriere (2). Beispiel.
2
2
2
3
3
1
3
1
2
3
3
1
1 1
0
4
4
u
3
5
Die Werte in den Kreisen sind die Zahlen ℓ(v). Satz 7.6. Sei G = (E, K) ein zusammenh¨ angender Graph mit Gewichtsfunktion w : K −→ R+ , u ∈ E. Der Algorithmus von Dijkstra ergibt einen aufspannenden Baum T mit der Eigenschaft, dass der eindeutige Weg von u nach v stets ein minimaler u, v-Weg in G ist mit d(u, v) = ℓ(v) f¨ ur alle v. Beweis. Der Algorithmus konstruiert jedenfalls einen aufspannenden Baum. Im ersten Schritt wird eine Kante minimalen Gewichts von u = u0 zu einem Nachbarn gew¨ ahlt, also ist k1 = u0 u1 ein minimaler u0 , u1 -Weg mit ℓ(u1 ) = w(k1 ) = d(u0 , u1 ). Angenommen, der Teilbaum Ti = (Ei , Ki ) habe die gew¨ unschten Eigenschaften, und Schritt (2) konstruiert k = v w. Wir m¨ ussen zeigen, dass ℓ(w) = f (k) = ℓ(v) + w(k) gleich dem (gewichteten) Abstand d(u0 , w) ist. F¨ ur den eben konstruierten u0 , w-Weg P0 gilt ℓ(P0 ) = d(u0 , v) + w(k) = ℓ(v) + w(k) = ℓ(w). Sei P ein k¨ urzester u0 , w-Weg und v die letzte Ecke von Ei in P , mit w ∈ E Ei als Nachfolger, k = vw. Dann sind die Teilwege P (u0 , v), P (w, w) ebenfalls k¨ urzeste Wege, und wir erhalten d(u0 , w) = ℓ(P (u0 , v)) + w(k) + ℓ(P (w, w)) = (ℓ(v) + w(k)) + ℓ(P (w, w)) = f (k) + ℓ(P (w, w)) ≥ f (k) = ℓ(w) = ℓ(P0 ) , also ist P0 ein k¨ urzester Weg.
¨bungen u
133
Wir sehen, dass unser Algorithmus stets eine k¨ urzeste Verl¨angerung des Teilbaumes konstruiert. Wir haben es also wieder mit einem Greedy-Algorithmus zu tun. Mehrere Varianten des K¨ urzeste-Wege-Problems kommen einem sofort in den Sinn. Angenommen, wir wollen nur einen k¨ urzesten Weg zwischen zwei vorgegebenen Ecken u und v bestimmen. Wir k¨ onnen Dijkstras Algorithmus mit u als Quelle anwenden, dies ergibt auch einen k¨ urzesten Weg von u nach v. Kein Algorithmus ist bekannt, der asymptotisch schneller als Dijkstras Algorithmus ist. Oder wir wollen k¨ urzeste Wege f¨ ur alle Eckenpaare u, v bestimmen. Wir k¨onnen dieses Problem l¨ osen, indem wir unseren Algorithmus auf jede Ecke u als Quelle anwenden, aber es geht normalerweise auch schneller, siehe dazu die Literatur. Schließlich sollte klar sein, wie die Vorschrift f¨ ur gerichtete Graphen modifiziert werden muß. In diesem Fall wollen wir also k¨ urzeste gerichtete Wege von u zu allen anderen Ecken bestimmen.
¨ Ubungen zu Kapitel 7 1 Beweise die folgenden Charakterisierungen von B¨ aumen: Sei G ein Graph auf n Ecken und q Kanten. G ist genau dann ein Baum, wenn gilt: a. G hat keinen Kreis und q = n − 1. b. G hat keinen Kreis, und wenn irgendzwei nichtbenachbarte Ecken durch eine Kante verbunden werden, dann hat der resultierende Graph genau einen Kreis. c. G ist zusammenh¨ angend (= Kn , falls n ≥ 3), und wenn irgendzwei nichtbenachbarte Ecken durch eine Kante verbunden werden, dann hat der resultierende Graph genau einen Kreis. ⊲ 2 Zeige, dass ein zusammenh¨ angender Graph mit einer geraden Anzahl von Ecken stets einen aufspannenden Untergraphen besitzt, in dem alle Ecken ungeraden Grad haben. Gilt dies auch f¨ ur unzusammenh¨ angende Graphen? 3 Sei G zusammenh¨ angend. F¨ ur u ∈ E setzen wir r(u) = max(d(u, v) : v = u). Der Parameter r(G) = min (r(u) : u ∈ E)) heißt der Radius von G, und Z(G) = {u ∈ E : r(u) = r(G)} das Zentrum von G. Zeige, dass das Zentrum eines Baumes entweder aus einer Ecke oder zwei benachbarten Ecken besteht. urlicher Zahlen. Zeige, dass (d1 , . . . , dn ) genau 4 Sei d1 ≥ . . . ≥ dn > 0 eine Folge nat¨ dann die Gradfolge eines Baumes ist, wenn n i=1 di = 2n − 2 gilt.
⊲ 5 aumen mit n Ecken jene B¨ aume, f¨ ur welche die Summe Bestimme unter allen B¨ d(u, v) minimal bzw. maximal ist. u=v∈E 6 F¨ uhre den Korrektheitsbeweis f¨ ur Depth-First-Suche.
7 In Verallgemeinerung von BFS oder DFS entwirf einen Algorithmus, der die Zusammenhangskomponenten eines Graphen bestimmt. 8 Verifiziere nochmals genau, dass alle Basen eines Matroides dieselbe M¨ achtigkeit haben. ⊲ 9 Ein zusammenh¨ angender Graph G habe lauter verschiedene Gewichte auf den Kanten. Zeige, dass G einen eindeutigen minimalen aufspannenden Baum besitzt.
134
7
b¨ aume
10 Betrachte den folgenden Graphen G mit Kostenfunktion. Bestimme mit Dijkstras Algorithmus k¨ urzeste Wege von u zu allen anderen Ecken. 9 16
2
u
12
17
4
5
3
12
4
3
5 19
12
3 9
⊲ 11 Zeige, dass ein Baum mindestens so viele Ecken vom Grad 1 hat wie der Maximalgrad betr¨ agt. Wann gilt Gleichheit?
¨ ⊲ 12 Diese Ubung gibt einen rekursiven Beweis der Formel t(n) = nn−2 f¨ ur die Anzahl aufspannender B¨ aume in Kn . Nummeriere die Ecken 1, 2, . . . , n. Sei C(n, k) die Anzahl der aufspannenden B¨ aume, in denen die Ecke n den Grad k hat. Beweise die Rekursion k(n−1) C(n, k + 1) und schließe daraus die Formel. C(n, k) = n−1−k ⊲ 13 Es sei B die Inzidenzmatrix eines Graphen G. Wir ¨ andern in jeder Spalte auf beliebige Weise eine der beiden 1’en in −1 (entspricht einer Orientierung von G), und nennen die aume von G ist neue Matrix C. Sei M = CC T . Beweise: Die Anzahl der aufspannenden B¨ gegeben durch t(G) = detMii , wobei Mii durch Streichen der i-ten Zeile und i-ten Spalte aus M hervorgeht (und dies gilt f¨ ur jedes i). Hinweis: Sei P eine r × s-Matrix und Q eine s × r-Matrix, r ≤ s. Dann sagt ein Satz der Linearen Algebra, dass det(P Q) gleich der Summe der Produkte von Determinanten korrespondierender r × r-Untermatrizen ist. ¨ 14 Verifiziere mit Hilfe der vorigen Ubung abermals t(Kn ) = nn−2 .
15 Berechne t(Km,n ). Antwort: mn−1 nm−1 . 16 Sei der vollst¨ andige Graph Kn auf {1, . . . , n} gegeben, und d1 , . . . , dn eine Folge nat¨ urlicher Zahlen ≥ 1 mit n i=1 di = 2n − 2. Zeige, dass die Anzahl der aufspannenden (n−2)! ist, und leite daraus B¨ aume, in denen die Ecke i den Grad di hat, gleich (d1 −1)!...(d n −1)! einen weiteren Beweis der Formel t(Kn ) = nn−2 ab. ⊲ 17 Sei G = Kn {k} der vollst¨ andige Graph minus einer Kante. Berechne ohne Benut¨ zung der Ubung 13 die Anzahl der aufspannenden B¨ aume in G. ⊲ 18 Der Gittergraph G(2, n) besteht aus zwei Wegen mit n Ecken (jeweils nummeriert 1 bis n), deren Ecken mit derselben Nummer paarweise verbunden sind. Beispiel: G(2, 2) ∼ = C4 . Bestimme die Anzahl der aufspannenden B¨ aume mit erzeugenden Funktionen. 19 Zeige: Jeder Automorphismus eines Baumes h¨ alt eine Ecke oder eine Kante fest. ¨ Hinweis: Ubung 3. 20 F¨ ur n Autofahrer stehen n Parkpl¨ atze zur Verf¨ ugung. Jeder Autofahrer hat einen Lieblingsplatz, und zwar Fahrer i den Platz g(i), 1 ≤ g(i) ≤ n. Die Fahrer kommen der Reihe nach an, 1 zuerst, dann 2 usf. Der i-te Fahrer parkt sein Auto in Platz g(i), falls
¨bungen u
135
er frei ist, wenn nicht nimmt er den n¨ achsten freien Platz k > g(i), falls es noch einen gibt. Beispiel: n = 4 g
1 3
2 2
3 2
4 , dann 1 → 3, 2 → 2, 3 → 4, 4 → 1, 1
g
1 2
2 3
3 3
4 , 1 → 2, 2 → 3, 3 → 4, 4 →? 2
aber
Sei p(n) die Anzahl der Funktionen g, die eine vollst¨ andige Belegung gestatten, berechne p(n). Hinweis: p(2) = 3, p(3) = 16, p(4) = 125. ⊲ 21 Sei G = (E, K) ein zusammenh¨ angender Graph und w : K → R+ eine Kostenfunktion. Zeige, dass der folgende Algorithmus ebenfalls einen minimalen aufspannenden Baum konstruiert: (1) W¨ ahle eine Kante uv minimalen Gewichtes und setze S = {u, v}, T = E S. (2) Falls T = ∅ stop, andernfalls w¨ ahle unter den Kanten zwischen S und T eine Kante k = u v minimalen Gewichts, u ∈ S, v ∈ T und setze S ← S ∪ {v}, T ← T {v}, iteriere (2). ¨ 22 Sch¨ atze die Laufzeit des Algorithmus der vorigen Ubung in der Eckenzahl n ab. 23 Gegeben Kn auf {1, . . . , n} mit der Kostenfunktion w(ij) = i+j. a. Konstruiere einen MST-Baum T . b. Was ist w(T )? c. Ist T eindeutig bestimmt? ⊲ 24 Sei ein Matroid M = (S, U ) gegeben, und B die Familie der Basen. Zeige, dass B folgende Bedingungen erf¨ ullt: a. A = B ∈ B ⇒ A B, B A, b. Sei A = B ∈ B, dann existiert zu jedem x ∈ A ein y ∈ B mit (A {x}) ∪ {y} ∈ B. Zeige umgekehrt, dass eine Mengenfamilie B, welche die Bedingungen a. und b. erf¨ ullt, die Familie von Basen eines Matroides bildet. 25 Sei M = (S, U ) ein Matroid und B die Familie von Basen. Zeige, dass die Familie B∗ = {S B : B ∈ B} ein Matroid M∗ definiert. M∗ heißt das zu M duale Matroid. Was ist der Rang von M∗ ? 26 Sei M = (K, W) das u ¨bliche Matroid induziert durch den Graphen G = (E, K). Beschreibe graphentheoretisch das duale Matroid M∗ . Das heißt, welche Kantenmengen sind unabh¨ angig in M∗ ?
¨ ⊲ 27 Sei wie in der vorigen Ubung M = (K, W) gegeben. Eine Kantenmenge A ⊆ K heißt minimal abh¨ angig, falls A ∈ / W, aber A′ ∈ W f¨ ur jede echte Teilmenge A′ von A. Beschreibe die minimal abh¨ angigen Mengen im Graphen, und ebenso die minimal abh¨ anangigen Mengen in M∗ sind minimale gigen Mengen in M∗ . Hinweis: Die minimal abh¨ Schnittmengen A, d. h. G = (E, K A) hat eine Komponente mehr als G und ist minimal mit dieser Eigenschaft. 28 Zeige, dass Kreise und minimale Schnittmengen immer eine gerade Anzahl von Kanten gemeinsam haben. 29 Sei B die Inzidenzmatrix von G = (E, K), aufgefasst als Matrix u orper ¨ber dem K¨ {0, 1}. Zeige, dass A ⊆ K genau dann unabh¨ angig im Matroid (K, W) ist, wenn die entsprechende Spaltenmenge linear unabh¨ angig ist. ⊲ 30 Sei (S, U ) ein Mengensystem, welches die Axiome 1 und 2 eines Matroides erf¨ ullt. Zeige, dass (S, U ) genau dann ein Matroid ist (also auch Axiom 3 erf¨ ullt), wenn der Greedy-Algorithmus f¨ ur jede Gewichtsfunktion w : S → R das Optimum liefert.
136
7
b¨ aume
31 Entwirf einen Dijkstra-Algorithmus f¨ ur gerichtete Graphen. 32 Bestimme die k¨ urzesten Wege von 1 nach allen i in dem folgenden gerichteten Graphen, gegeben durch seine Gewichtsmatrix. Dabei bedeuten fehlende Eintr¨ age, dass diese Kanten nicht vorhanden sind: 1 1 2 3 4 5 6 7
2
9 4 1 1 4
2
3
4
5
4 1
10 3 8
3 2 3 8
5 1 1 3
2 3
6
7
11 2 6 3
1 3 1
2 2
⊲ 33 Dijkstras Algorithmus funktioniert nur f¨ ur nichtnegative Kantengewichte w(u, v) ∈ R+ . Angenommen, auf einem gerichteten Graphen haben wir auch negative Gewichte. Falls gerichtete Kreise mit negativem Gesamtgewicht existieren, so kann kein = (E, K) k¨ urzester Abstand existieren (warum?). Es sei nun ein gerichteter Graph G mit Quelle u ∈ E gegeben, und eine Gewichtsfunktion w : K → R ohne negative Kreise, wobei wir annehmen, dass alle Ecken x = u von u durch einen gerichteten Weg erreicht werden k¨ onnen. Zeige, dass der folgende Algorithmus von Bellman–Ford einen Baum mit gerichteten k¨ urzesten Wegen von u liefert. (1) Nummeriere K = {k1 , . . . , kq }, setze ℓ(u) = 0, ℓ(x) = ∞ f¨ ur x = u, B = ∅. (2) Durchlaufe die Kanten aus K. Sei ki = (x, y). Falls ℓ(x) + w(x, y) < ℓ(y) ist, setze ℓ(y) ← ℓ(x) + w(x, y) und B ← (B ∪ {ki }) {k}, = (E, B) ist wobei k die bisherige Kante in B mit Endecke y ist. Iteriere (|E| − 1)-mal. G Zeige urzester Weg in G. dann ein “k¨ urzester” Baum. Hinweis: Sei u, v1 , . . . , vk = v ein k¨ mit Induktion, dass ℓ(vi ) = d(u, vi ) ist nach dem i-ten Durchlauf. 34 Bestimme k¨ urzeste Wege von 1 in dem folgenden Graphen gegeben durch seine L¨ angenmatrix: 1 2 3 4 5 1 2 3 4 5
6
2
−1
5 7
3 −4
−2 8
7
¨ ⊲ 35 Uberlege, wie man den Algorithmus von Bellman-Ford erg¨ anzen muss, um bei der Existenz von negativen Kreisen die Meldung “keine L¨ osung” zu erhalten. 36 Ein Minimax- oder Bottleneck-Baum ist ein aufspannender Baum, in dem das Maximum der Kantengewichte so klein wie m¨ oglich ist. Zeige, dass jeder MST-Baum auch ein Minimax-Baum ist.
8 8.1
Matchings und Netzwerke Matchings in bipartiten Graphen
Erinnern wir uns an das Job-Zuordnungsproblem. Gegeben ist eine Menge S = {P1 , . . . , Pn } von Personen und eine Menge T = {J1 , . . . , Jn } von Jobs. Wir setzen Pi Jj ∈ K , falls Pi f¨ ur den Job Jj geeignet ist. Wir wollen nun eine Zuordnung Pi −→ Jϕ(i) finden, so dass jede Person Pi einen geeigneten Job Jϕ(i) findet. Wann ist dies m¨ oglich? Allgemein werden wir Gewichte auf den Kanten Pi Jj haben (die wir z. B. als Eignungskoeffizienten interpretieren k¨onnen), und die Zuordnung soll optimal (= maximal groß) werden. Definition. Gegeben ein bipartiter Graph G = (S + T, K). Ein Matching M ⊆ K ist eine Menge von paarweise nicht-inzidenten Kanten. Der Name Matching“ ist heute auch im Deutschen gebr¨auchlich, und leitet sich aus ” dem englischen match (= Partner) ab. Wir interessieren uns also f¨ ur ein maximal großes Matching M von G = (S +T, K), und insbesondere f¨ ur die Matching-Zahl m(G) von G, welche die Anzahl von Kanten in einem maximal großen Matching bezeichnet. Ein Matching M heißt Maximum Matching, falls |M | = m(G) ist. Beispiel. u1
v1
u2
v2
u3
v3
u4
v4
u5
v5
Die fetten Kanten ergeben ein Matching mit m(G) = 4. Warum ist m(G) < 5? Da u3 , u4 , u5 zusammen zu v2 , v4 benachbart sind, muss bei einem Matching eine der Ecken u3 , u4 , u5 unber¨ ucksichtigt bleiben. Wir wollen zuerst die Frage beantworten, wann m(G) = |S| ist, d. h. wann alle Ecken aus S gematcht“ werden k¨ onnen. F¨ ur A ⊆ S setzen wir N (A) = {v ∈ T : ” uv ∈ K f¨ ur ein u ∈ A}. N (A) ist also die Menge der Nachbarn von A. Satz 8.1. Sei der bipartite Graph G = (S + T, K) gegeben. Dann ist m(G) = |S| genau dann, wenn |A| ≤ |N (A)| f¨ ur alle A ⊆ S gilt.
138
8
matchings und netzwerke
Beweis. Die Notwendigkeit ist klar. Wenn |A| > |N (A)| ist, dann k¨onnen nicht alle Ecken aus A zugleich gematcht werden. Sei nun umgekehrt die Bedingung des Satzes erf¨ ullt. Gegeben ein Matching M ⊆ K mit |M | < |S|, dann zeigen wir, dass M nicht Maximum Matching ist. Sei u0 ∈ S eine Ecke, die nicht mittels M gematcht ist. Da |N ({u0 })| ≥ |{u0 }| = 1 ist, existiert ein Nachbar v1 ∈ T . Falls v1 nicht gematcht ist in M , so f¨ ugen wir die Kante u0 v1 hinzu. Nehmen wir also u1 v1 ∈ M an f¨ ur ein u1 = u0 . Da |N {u0 , u1 }| ≥ |{u0 , u1 }| = 2 ist, gibt es eine Ecke v2 = v1 , welche zu u0 oder u1 benachbart ist. Falls v2 nicht gematcht ist, stop. Andernfalls existiert u2 v2 ∈ M mit u2 ∈ / {u0 , u1 }. Wir fahren auf diese Weise fort und erreichen schließlich eine ungematchte Ecke vr . u0
v1
u1
v2
u2 vr−1 u r−1
vr
Jede Ecke vj ist benachbart zu mindestens einer Ecke ui mit i < j. Gehen wir von vr r¨ uckw¨ arts, so erhalten wir von hinten einen Weg P = vr , ua , va , ub , vb , . . . , uh , vh , u0 mit r > a > b > . . . > h > 0. Die Kanten ua va , ub vb , . . . , uh vh sind in M , die Kanten vr ua , va ub , . . . , vh u0 sind nicht in M . Wir ersetzen nun in P die M -Kanten durch die Kanten, die nicht in M sind (welche um eins mehr sind), und erhalten so ein Matching M ′ mit |M ′ | = |M | + 1. Satz 8.1 wird auch Heiratssatz“ genannt. Am¨ usante Interpretation: S = Menge ” von Damen, T = Menge von Herren mit ui vj ∈ K, wenn ui , vj einer Heirat nicht abgeneigt sind. Der Satz gibt die genaue Bedingung an, wann alle Damen einen geeigneten Heiratspartner (= match) finden, ohne Bigamie zu betreiben. Im Allgemeinen wird G = (S + T, K) kein Matching der M¨achtigkeit |S| besitzen. Wie groß kann m(G) sein? Falls |A| − |N (A)| > 0 ist, so bleiben mindestens |A| − |N (A)| Ecken ungematcht, d. h. m(G) ≤ |S| − (|A| − |N (A)|). Mit δ = max(|A| − |N (A)|) sehen wir, dass m(G) ≤ |S| − δ sein muss. Beachte, dass A⊆S
δ ≥ 0 gilt, da f¨ ur A = ∅, |A| − |N (A)| = 0 ist. Der folgende Satz zeigt, dass in m(G) ≤ |S| − δ stets Gleichheit gilt. Satz 8.2.
Sei der bipartite Graph G = (S + T, K) gegeben. Dann ist m(G) = |S| − max (|A| − |N (A)|). A⊆S
Beweis. Sei δ = max(|A| − |N (A)|). Wir wissen schon m(G) ≤ |S| − δ. Sei D A⊆S
eine neue Eckenmenge mit |D| = δ. Wir erkl¨aren den bipartiten Graphen G∗ = (S + (T ∪ D), K ∗ ), indem wir zu G alle Kanten zwischen S und D hinzunehmen. F¨ ur A ⊆ S gilt N ∗ (A) = N (A) ∪ D, wobei N ∗ (A) die Nachbarn von A in G∗ sind.
8.1
matchings in bipartiten graphen
139
Wir haben somit |N ∗ (A)| = |N (A)| + δ ≥ |A|, d. h. G∗ hat ein Matching M ∗ der M¨ achtigkeit |S| nach 8.1. Entfernen wir nun die Kanten aus M ∗ , die zu D f¨ uhren, so erhalten wir ein Matching M in G mit |M | ≥ |S| − δ, und somit m(G) = |S| − δ. Satz 8.2 kann noch auf eine andere Weise interpretiert werden. Wir nennen eine Eckenmenge D ⊆ S + T einen Tr¨ ager des bipartiten Graphen G = (S + T, K), falls D jede Kante trifft oder, wie wir auch sagen, jede Kante bedeckt. Offenbar haben wir |D| ≥ |M | f¨ ur jeden Tr¨ ager D und jedes Matching M , da D jede Kante von M bedecken muss. Insbesondere gilt also min |D| ≥ max |M |. D
Satz 8.3.
M
F¨ ur einen bipartiten Graphen G = (S + T, K) gilt max (|M | : M M atching) = min (|D| : D Tr¨ ager ).
Beweis. Aus dem vorigen Satz wissen wir, dass m(G) = max |M | = |S| − |A0 | + |N (A0 )| = |S A0 | + |N (A0 )| f¨ ur ein A0 ⊆ S ist. Da (S A0 ) + N (A0 ) ersichtlich ein Tr¨ ager von G ist, A0 N (A0 ) XXX X XXX S \ A0 T \ N (A0 ) X
folgt min |D| ≤ max |M |, und somit min |D| = max |M |. Die Aussage min |D| = max |M | ist einer der fundamentalen Gleichgewichts” s¨ atze“ der Graphentheorie, welcher die beiden Begriffe Bedecken“ (= Tr¨ager) und ” Packen“ (= Matching) in Beziehung setzt. Sp¨ater werden wir den Satz auf Netz” werke ausweiten und ihn schließlich als Spezialfall des Hauptsatzes der Linearen Optimierung erkennen. Der Heiratssatz kann auf vielf¨ altige Weise kombinatorisch interpretiert werden, indem wir eine gegebene Situation als Matchingproblem auffassen. Das folgende Beispiel ist eine sch¨ one Illustration: Sei A = {A1 , . . . , Am } eine Mengenfamilie auf einer Grundmenge T = {t1 , . . . , tn }, wobei die Mengen Ai nicht verschieden sein m¨ ussen. Wir konstruieren einen bipartiten Graphen G = (A + T, K) vermittels Ai tj ∈ K ⇔ tj ∈ Ai . Als Beispiel erhalten wir f¨ ur A1 = {1, 2, 3}, A2 = {1, 3}, A3 = {2, 5, 6}, A4 = {4, 6} den folgenden Graphen.
140
8
matchings und netzwerke
1
A1
2 A2
3 4
A3
5
A4
6 Ein Matching M mit |M | = ℓ entspricht einer injektiven Abbildung ϕ : Ai → tϕi (i ∈ I ⊆ {1, . . . , m}, |I| = ℓ) mit tϕi ∈ Ai . Wir nennen TI = {tϕi : i ∈ I} eine Transversale oder System von verschiedenen Repr¨ asentanten der Unterfamilie AI = {Ai : i ∈ I} , und ϕ eine Auswahlfunktion von AI . Wann besitzt ganz A eine Auswahlfunktion? Die Antwort gibt der Heiratssatz 8.1. ur F¨ I ⊆ {1, . . . , m} ist nach Konstruktion des bipartiten Graphen N (AI ) = Ai ⊆ i∈I T . Somit erhalten wir: Satz 8.4. Sei A = {A1 , . . . , Am } eine Mengenfamilie. A besitzt eine Transversale (oder Auswahlfunktion) genau dann, wenn | Ai | ≥ |I| f¨ ur alle I ⊆ {1, . . . , m} i∈I gilt. Eine weitere u ¨ berraschende Anwendung des Resultates 8.3 ergibt einen wichtigen Satz u ¨ ber Matrizen. Angenommen M = (mij ) ist eine n × n-Matrix mit reellen Eintr¨ agen ≥ 0 , deren Zeilen- und Spaltensummen alle gleich r > 0 sind. Wir assoziieren zu M den bipartiten Graphen G = (Z + S, K), Z = {z1 , . . . , zn } Zeilen, S = {s1 , . . . , sn } Spalten, indem wir zi sj ∈ K ⇐⇒ mij > 0 setzen. Ein Matching entspricht also einer Menge von positiven Eintr¨agen mij , die in verschiedenen Zeilen und Spalten vorkommen. Wir nennen eine solche Menge {mij } eine Diagonale der Matrix M . Ein Tr¨ ager D ist eine Menge von Zeilen und Spalten, die zusammen alle positiven Eintr¨ age u ¨ berdecken. Beispiel.
2m0 1 3 0 0 4 0 0 2m 3 1m2 0 0 1 1 3m0 1 0 0 0 3m3
Die eingekreisten Elemente bilden eine Diagonale.
8.2
konstruktion von optimalen matchings
141
Angenommen, M hat keine Diagonale der Gr¨oße n, dann gibt es nach 8.3 e Zeilen und f Spalten mit e + f ≤ n − 1, die alle Eintr¨age = 0 u ¨ berdecken. Somit ist rn = mij ≤ r(e + f ) ≤ r(n − 1), Widerspruch. Also existiert eine Diagonale m1j1 , . . . , mnjn mit miji > 0. Sei c1 = min(m1j1 , . . . , mnjn ) > 0. Eine Permutationsmatrix ist eine n×n-Matrix, welche genau eine 1 in jeder Zeile und Spalte enth¨ alt und 0’en sonst. Wir betrachten die Matrix M1 = M − c1 P1 , wobei P1 die Permutationsmatrix ist, welche 1’en an den Stellen (i, ji ) und 0’en sonst hat. M1 hat wieder Eintr¨ age ≥ 0 und gleiche Zeilen- und Spaltensummen r − c1 , und mehr Nullen als M . Fahren wir so fort, so erhalten wir schließlich die Nullmatrix und t somit die Darstellung M = c1 P1 + . . . + ct Pt mit i=1 ci = r. Als Spezialfall erhalten wir einen ber¨ uhmten Satz von Birkhoff und von Neumann. Sei M = (mij ) eine doppelt-stochastische Matrix, d. h. mij ≥ 0, mit allen Zeilen und Spalten summen = 1 , dann ist M = c1 P1 + . . . + ct Pt , ti=1 ci = 1, ci > 0, (i = 1, . . . , t). Kurz ausgedr¨ uckt: Eine doppelt-stochastische Matrix ist eine konvexe Summe von Permutationsmatrizen. Wie wichtig dieser Satz ist, werden wir in Abschnitt 15.6 sehen.
8.2
Konstruktion von optimalen Matchings
Satz 8.2 gibt eine Formel f¨ ur die Matching-Zahl m(G) in einem bipartiten Graphen. Wie konstruiert man aber nun ein Maximum Matching? Dazu verwenden wir die ¨ Idee des Beweises von Satz 8.1. Die folgenden Uberlegungen gelten zun¨achst f¨ ur beliebige Graphen G = (E, K). Ein Matching in G = (E, K) ist nat¨ urlich wieder eine Menge von paarweise nichtinzidenten Kanten, und m(G) ist die M¨achtigkeit eines Maximum Matchings. Sei M ein Matching in G = (E, K). Ist die Ecke u in einer Kante von M , so nennen wir u M-saturiert, ansonsten M-unsaturiert. Ein M-alternierender Weg P ist ein Weg in G, der abwechselnd Kanten von M und K M verwendet, wobei die beiden Endecken von P jeweils unsaturiert sind. Ein M -alternierender Weg enth¨ alt also genau eine Kante aus K M mehr als aus M . Beispiel.
u1
u3
u6
u2
u4 u7
u5 u8
u9 u10
Die M -Kanten sind fett, u2 , u4 , u6 , u8 , u9 , u10 ist ein M -alternierender Weg.
142
8
matchings und netzwerke
Satz 8.5. Ein Matching M in G = (E, K) ist genau dann ein Maximum Matching, wenn es keinen M -alternierenden Weg gibt. Beweis. Sei M ein Matching und v0 , v1 , . . . , v2k−1 , v2k , v2k+1 ein M -alternierender Weg. Dann ist (M {v1 v2 , v3 v4 , . . . , v2k−1 v2k }) ∪ {v0 v1 , v2 v3 , . . . , v2k v2k+1 } ein Matching M ′ mit |M ′ | = |M | + 1. Seien umgekehrt M und M ′ Matchings mit |M ′ | > |M |. Wir setzen N = (M M ′ ) ∪ (M ′ M ) gleich der symmetrischen Differenz von M und M ′ . H sei der von der Kantenmenge N aufgespannte Untergraph. Jede Ecke in H hat Grad 1 oder 2, also ist jede Komponente von H entweder ein alternierender Kreis (Kanten von M und M ′ abwechselnd) oder ein Weg mit den Kanten von M und M ′ abwechselnd. Da |M ′ | > |M | ist, gibt es unter diesen Weg-Komponenten einen Weg P , der mit einer M ′ -Kante beginnt und endet. P ist also ein M -alternierender Weg, da die Endecken nicht M -saturiert sein k¨onnen (andernfalls w¨ aren sie zweimal von M ′ bedeckt). Betrachten wir in unserem Beispiel das Matching M ′ = {u1 u4 , u3 u6 , u7 u9 , u8 u10 }. Dann erhalten wir N = (M M ′ ) ∪ (M ′ M ): u1
u3
u6
u2
u4 u7
u5 u8
u9 u10
Die Ecken u1 , u3 , u6 , u4 bilden einen alternierenden Kreis, und u7 , u9 , u8 , u10 einen M -alternierenden Weg. Austauschen der M - und M ′ -Kanten auf diesem Weg f¨ uhrt zum neuen Matching (siehe die linke Figur). Wiederum existiert ein M alternierender Weg u5 , u6 , u4 , u2 . Austauschen liefert nun ein Maximum Matching in der rechten Figur.
u1
u3
u6
u4
u9 u10
u3 u7
u5 u8
u1
u2
u6
u2
u4 u7
u5 u8
u9 u10
8.2
konstruktion von optimalen matchings
143
Satz 8.5 ergibt f¨ ur bipartite Graphen die folgende Methode zur Konstruktion von Maximum Matchings. Gegeben G = (S + T, K). Wir stellen uns die Frage: Ist m(G) = |S|? Wenn ja, so soll der Algorithmus ein Maximum Matching ergeben, wenn nein, so soll der Algorithmus dies feststellen. (1) Beginne mit einem Matching M (z. B. M = ∅). (2) Falls jede S-Ecke M -saturiert ist, so sind wir fertig. Andernfalls w¨ahle eine M -unsaturierte Ecke u ∈ S und beginne die folgende Konstruktion eines al” ternierenden“ Baumes B. Am Anfang besteht B aus der Ecke u. Sei B im Lauf des Algorithmus: S T S T
S u
Der eindeutige Weg jeder Ecke zur Wurzel“ u alterniert zwischen M -Kanten ” und Nicht-M -Kanten. Die Ecken von Grad 1 sind alle in S. Sei SB = S ∩E(B), TB = T ∩ E(B).
(∗)
Frage: Ist N (SB ) ⊆ TB ?
Wenn ja, so gilt |N (SB )| = |TB | = |SB | − 1 und nach Satz 8.1 ist m(G) < |S|, stop. Wenn nein, w¨ ahle y ∈ N (SB ) TB . Sei xy ∈ K, x ∈ SB . Entweder ist y M -saturiert, yz ∈ M . Dann lassen wir den Baum B wachsen durch Hinzuf¨ ugen der Kanten xy ∈ / M , yz ∈ M . Mit diesem neuen Baum B ′ gehen wir zu (∗). Oder y ist M -unsaturiert, dann haben wir einen M -alternierenden Weg von u nach y gefunden. Wir tauschen wie im Beweis von 8.5 die Kanten. Mit dem neuen Matching M ′ gehen wir zu (2) und lassen den Baum wachsen. Der Leser kann den angegebenen Algorithmus ohne große M¨ uhe adaptieren, um allgemein ein Maximum Matching zu finden, und gleichzeitig einen Minimum Tr¨ager. Kehren wir zu unserem Job-Zuordnungsproblem zur¨ uck, S = Menge von Personen, T = Menge von Jobs mit ui vj ∈ K, falls Person ui f¨ ur den Job vj geeignet ist. Wir m¨ ochten nicht nur eine m¨ oglichst große Zuordnung ui → vϕi finden, sondern unter allen diesen Matchings eines mit einem m¨ oglichst großen Eignungskoeffizienten. Zwei Varianten sind plausibel: Wir haben eine Gewichtsfunktion w : S → R+ gegeben (Wert der Personen) und suchen ein Matching M mit u∈S∩E(M ) w(u) =
144
8
matchings und netzwerke
max. Oder wir setzen eine Gewichtsfunktion w : K → R+ voraus (Eignungskoeffizient Person/Job) und sind an einem Matching M mit k∈M w(k) = max interessiert. Betrachten wir zun¨ achst die erste Variante. Eine Teilmenge X ⊆ S, die in G = (S + T, K) gematcht werden kann, nennen wir wieder eine Transversale (inklusive ∅). Die Menge der Transversalen sei T ⊆ B(S). Wir suchen also eine Maximum Transversale A mit maximalem Gewicht w(A). Der folgende Satz zeigt, dass die Transversalen ein Matroid bilden – also f¨ uhrt nach Satz 7.5 der GreedyAlgorithmus zum Ziel. Satz 8.6. Sei G = (S + T, K) ein bipartiter Graph, T ⊆ B(S) die Familie der Transversalen. Dann bildet (S, T ) ein Matroid. Beweis. Die Axiome 1 und 2 eines Matroids sind klarerweise erf¨ ullt. Seien nun A und A′ Transversalen mit |A′ | = |A| + 1 und den zugeh¨origen Matchings M, M ′ , also A = S ∩ E(M ), A′ = S ∩ E(M ′ ), |M ′ | = |M | + 1. Wie im Beweis von 8.5 sehen wir, dass es einen M -alternierenden Weg P gibt, dessen Kanten abwechselnd in M und M ′ liegen. Da P ungerade L¨ ange hat, muss eine der beiden Endecken u von P in S liegen. Da u ∈ A′ A ist, kann also u zu A hinzugenommen werden. Wenden wir uns der zweiten Variante zu. Gegeben ist ein bipartiter Graph G = + (S + T, K) mit einer Gewichtsfunktion w : K → R . Gesucht ist ein Matching M mit maximalem Gewicht w(M ) = k∈M w(k). Zun¨achst stellen wir fest, dass wir annehmen k¨ onnen, dass G alle Kanten zwischen S und T enth¨alt, indem wir die neuen Kanten mit Gewicht 0 versehen. Ebenso k¨onnen wir |S| = |T | voraussetzen, indem wir Ecken zu S (oder T ) hinzunehmen und wieder das Gewicht 0 f¨ ur die zus¨ atzlichen Kanten w¨ ahlen. Wir k¨ onnen also G = (S + T, K) als vollst¨andigen bipartiten Graphen Kn,n voraussetzen. F¨ ur ein Matching M von maximalem Gewicht k¨ onnen wir somit |M | = n annehmen. Schließlich verwandeln wir das gegebene Maximum-Problem in ein Minimum-Problem, das leichter zu handhaben ist. Sei n¨ amlich W = max w(k), und G′ = (S + T, K) der Graph Kn,n mit Kank∈K
tengewicht w′ (k) = W − w(k) ≥ 0. Dann ist ersichtlich ein Maximum Matching M von minimalem Gewicht in G′ ein Matching von maximalem Gewicht in G. Mit S = {s1 , . . . , sn }, T = {t1 , . . . , tn } setzen wir wij = w(si tj ), wobei wir wij ∈ N0 voraussetzen. Die Gewichte bilden somit eine ganzzahlige Matrix (wij ). Mit xij bezeichnen wir die Variable, die den Wert 1 annimmt, falls si tj ∈ M ist und 0, falls si tj ∈ / M ist. Ein Matching M wird also durch eine Wahl der xij festgelegt, so dass gilt:
(1)
n j=1
xij = 1 (∀i) ,
n
xij = 1 (∀j) .
i=1
Mit anderen Worten, (xij ) ist eine Permutationsmatrix, und dies bedeutet ja gerade ein Matching in Kn,n .
8.2
konstruktion von optimalen matchings
145
Unser Problem hat demnach folgende Gestalt: Gegeben die Matrix (wij ). Gesucht ist eine Zuordnung (xij ), welche (1) gen¨ ugt, so dass wij xij minimal wird. Angenommen, wir subtrahieren von der h-ten Zeile von (wij ) einen festen Wert ′ ph . Dies ergibt eine Matrix (wij ). Da wegen (1) i,j
′ xij = wij
i,j
wij xij − ph
xhj =
i,j
j
wij xij − ph
′ ist, erkennen wir, dass die optimalen Zuordnungen f¨ ur (wij ) und (wij ) u ¨ bereinstimmen. Dasselbe gilt nat¨ urlich auch f¨ ur die Spalten, und wir k¨onnen diese Subtraktionen mehrfach ausf¨ uhren, ohne die optimalen Zuordnungen zu ver¨andern. Ebenso k¨ onnen wir feste Zahlen zu einer Zeile oder Spalte addieren, ohne die optimalen Zuordnungen zu ¨ andern. Diese Idee wollen wir nun ausn¨ utzen, um eine neue Matrix (wij ) zu erhalten, die im allgemeinen mehr Nullen enth¨alt als (wij ). Sei ph = min whj f¨ ur h = 1, . . . , n. Wir subtrahieren ph von der h-ten Zeile f¨ ur alle j
′ ′ h und erhalten eine neue Matrix (wij ). Sei qℓ = min wiℓ , ℓ = 1, . . . , n, dann subtrai
hieren wir qℓ von der ℓ-ten Spalte f¨ ur alle ℓ und erhalten die sogenannte reduzierte Matrix (wij ), von der wir wissen, dass sie dieselben optimalen Zuordnungen (xij ) wie die Ausgangsmatrix (wij ) hat. Nehmen wir als Beispiel die Matrix ⎛
⎞ 9 11 12 11 ⎜ 6 3 8 5 ⎟ ⎟ (wij ) = ⎜ ⎝ 7 6 13 11 ⎠ . 9 10 10 7
Wir haben p1 = 9, p2 = 3, p3 = 6, p4 = 7, ⎛ 0 ⎜ 3 ′ (wij )=⎜ ⎝ 1 2
und erhalten ⎞ 2 3 2 0 5 2 ⎟ ⎟. 0 7 5 ⎠ 3 3 0
Nun ist q1 = q2 = q4 = 0, q3 = 3, also erhalten wir die reduzierte Matrix ⎛ ⎞ 0m2 0 2 ⎜ 3 0 2 2 ⎟ ⎟ (wij ) = ⎜ ⎝ 1 0m4 5 ⎠ . 2 3 0m0
Ein Matching entspricht genau einer Diagonale in der Matrix (jede Zeile und Spalte enth¨ alt einen Eintrag). Gibt es in (wij ) also eine Diagonale mit lauter Nullen, so sind wir fertig – dies w¨ are unsere optimale Zuordnung (xij ), da ja immer w ij xij ≥ 0 gilt. In unserem Beispiel ist die maximale L¨ange einer 0-Diagonale gleich 3 (die eingekreisten Eintr¨ age). Nun wissen wir aus dem vorigen Abschnitt,
146
8
matchings und netzwerke
dass die maximale L¨ ange einer 0-Diagonale gleich ist der minimalen Anzahl von Zeilen und Spalten, die alle Nullen bedecken. (Wir vertauschen einfach die Rollen der 0-Eintr¨ age und der Nicht 0-Eintr¨ age). In unserem Fall sind dies z. B. die Zeilen 1 und 4 und die Spalte 2. Wir nennen so eine Menge von Zeilen und Spalten kurz eine minimale Bedeckung. Die letzte Phase des Algorithmus verl¨ auft nun folgendermaßen: Entweder haben wir eine 0-Diagonale der L¨ ange n gefunden, dann sind wir fertig, oder wir ver¨andern die Matrix (wij ) zu einer neuen Matrix (wij ), ohne die optimalen Zuordnungen zu andern, so dass f¨ ur die Gesamtsumme der Gewichte W = wij < W = wij ¨ gilt. Es ist klar, dass die zweite M¨ oglichkeit nur endlich oft auftreten kann (wegen wij ∈ N0 ), so dass der Algorithmus schließlich stoppt. Es trete also der zweite Fall auf, und eine minimale 0-Bedeckung enthalte e Zeilen und f Spalten, e + f < n. Es sei w > 0 das Minimum der unbedeckten Elemente. Wir ziehen zun¨ achst w von den n − e Zeilen ab, die nicht bedeckt sind, und addieren dann w zu allen f Spalten der Bedeckung. Die resultierende Matrix (wij ) hat dann nach unserer fr¨ uheren Bemerkung wieder dieselben optimalen Zuordnungen. In unserem Beispiel ist w = 1 = w31 : 0 3 (wij ) = 1 2
2 0 0 3
0 2 4 0
2 0 2 0 2 0 3 0m2 2 2 −1 1 1 2 0m1 1 −→ −→ m = (wij ) . 5 0 −1 3 4 0 0 3 4 m 0 2 3 0 0 2 4 0 0
F¨ ur die Ver¨ anderung w ij → wij haben wir ⎧ ⎨ w ij − w falls w ij unbedeckt ist w ij falls w ij von einer Zeile oder Spalte bedeckt ist w ij = ⎩ w ij + w falls w ij von einer Zeile und einer Spalte bedeckt ist.
ur alle i, j. Die Anzahl der doppelt bedeckten Insbesondere gilt also w ij ≥ 0 f¨ Eintr¨ age w ij ist e·f , und die Anzahl der unbedeckten Eintr¨age ist n2 −n(e+f )+ef . F¨ ur die Gesamtgewichte W und W errechnen wir demnach W − W = (ef )w − (n2 − n(e + f ) + ef )w = = (n(e + f ) − n2 )w < 0
wegen e + f < n. Unsere Analyse ist damit beendet. In unserem Beispiel enth¨ alt nun (wij ) eine 0-Diagonale der L¨ange 4 und eine optimale Zuordnung ist x13 = x22 = x31 = x44 = 1, xij = 0 sonst. Das urspr¨ ungliche Job-Zuordnungsproblem hat also das Minimalgewicht 12 + 3 + 7 + 7 = 29. Fassen wir die Schritte des Algorithmus zusammen: Input: Output:
Eine (n × n)-Matrix (wij ), wij ∈ N0 . Eine optimale Zuordnung (xij ).
8.3
fl¨ usse in netzwerken
147
(1) Initialisierung. (1.1) Subtrahiere pi = min wij von Zeile i in (wij ) f¨ ur alle i = 1, . . . , n. j
′ ). Die neue Matrix sei (wij ′ ′ (1.2) Subtrahiere qj = min wij von Spalte j in (wij ) f¨ ur alle j = 1, . . . , n. i
Die neue Matrix sei (wij ). (2) Finde eine minimale 0-Bedeckung in (wij ). Falls die Bedeckung weniger als n Zeilen und Spalten enth¨ alt, gehe zu (3), ansonsten zu (4). (3) Modifizierung der reduzierten Matrix. ¨ Sei w > 0 der kleinste unbedeckte Eintrag. Andere (wij ) zu (wij ), indem von allen unbedeckten Eintr¨ agen w abgezogen wird, und w zu allen doppelt bedeckten Eintr¨ agen dazuaddiert wird. Gehe zu (2). (4) Bestimme eine 0-Diagonale der L¨ ange n, und setze xij = 1 f¨ ur die Eintr¨age der 0-Diagonale und xij = 0 sonst, und stop. Noch zwei Bemerkungen: Die Laufzeit des Algorithmus ist, wie man unschwer veankt. Ein wesentlicher Punkt in der Analyse war, dass rifiziert, durch O(n3 ) beschr¨ die Verminderung des Gesamtgewichtes W < W in (3) wegen der Ganzzahligkeit nach endlich vielen Iterationen stoppt. Sind die Gewichte wij ∈ Q+ , also rational, so k¨ onen wir dies durch Multiplikation mit dem Hauptnenner auf den bisherigen Fall zur¨ uckf¨ uhren. Sind die Gewichte wij aber reell, so ist zun¨achst nicht klar, dass das Verfahren jemals stoppt (die Verringerungen k¨onnten immer kleiner werden). Hier m¨ ussen wir Stetigkeits¨ uberlegungen anstellen – mehr dar¨ uber im n¨achsten Abschnitt. Anstelle bipartiter Graphen k¨ onnen wir auch beliebige Graphen betrachten. Ein besonders wichtiger Spezialfall ist die Bestimmung eines Maximum Matchings M im vollst¨ andigen Graphen K2m . Auch hierf¨ ur gibt es einen Algorithmus, der die Laufzeit O(n3 ) aufweist.
8.3
Fl¨ usse in Netzwerken
Das Job-Zuordnungsproblem ist ein spezieller Fall einer allgemeinen Situation, die wir nun diskutieren wollen. Definition. Ein Netzwerk u ¨ ber N0 von u nach v besteht aus einem gerichteten = (E, K), u = v ∈ E, zusammen mit einer Gewichtsfunktion c : Graphen G K −→ N0 . Die Ecke u heißt die Quelle, v die Senke des Netzwerkes, und c die Kapazit¨ at. = (E, K) als ein Straßensystem vorstellen, mit c(k) als KapaWir k¨ onnen uns G zit¨ at, wie viel u ¨ ber die Straße k transportiert werden kann. Unsere Aufgabe ist herauszufinden, wie viel wir von der Quelle u zur Senke v transportieren k¨onnen unter Beachtung der Kapazit¨ atseinschr¨ ankung c. = (E, K). Der Eine Funktion f : K −→ N0 heißt ein Fluss G im Netzwerk Netto-Fluss in der Ecke x ∈ E ist (∂f )(x) = f (k) − k− =x f (k), d. h. k+ =x (∂f )(x) misst den Einfluss minus den Ausfluss in x.
148
8
matchings und netzwerke
= (E, K) mit Quelle u, Senke v und KapaDefinition. Gegeben das Netzwerk G zit¨ at c. f heißt ein zul¨ assiger Fluss von u nach v, falls a. 0 ≤ f (k) ≤ c(k) f¨ ur alle k ∈ K b. (∂f )(x) = 0 f¨ ur alle x = u, v. Ein zul¨ assiger Fluss transportiert also eine gewisse Menge von der Quelle zur Senke, so dass die Kapazit¨ at der Straßen nicht u ¨ berschritten wird (Bedingung a) und nichts an den Zwischenstationen u ¨ brig bleibt (Bedingung b). Der Wert w(f ) eines zul¨ assigen Flusses ist w(f ) = (∂f )(v), also der Netto Fluss in die Senke. Offensichtlich ist x∈E (∂f )(x) = 0, da in der Summe jeder Wert f (k) einmal positiv und einmal negativ gez¨ahlt wird. WegenBedingung b folgt also (∂f )(u) + (∂f )(v) = 0, und somit w(f ) = −(∂f )(u) = k− =u f (k) − k+ =u f (k). Also ist w(f ) auch gleich dem Netto-Fluss, der aus der Quelle herausfließt. Unser Problem besteht nun darin, den Wert w(f ) eines zul¨assigen Flusses zu maximieren. Betrachten wir das folgende Netzwerk. Auf jeder Kante k ist links der Fluss, rechts die Kapazit¨ at eingetragen.
1/4
2/2
2
2
1/
4
2
1/
2/
0/
z
1/3
1/2
0/
2
2/ 3
1/1
x
1/2
1 1/
0/4
u
2/3
v
1
1/
y
Der Wert des Flusses ist 4. Wie groß kann w(f ) sein? Theoretisch k¨onnen 2+3+3 = 8 Einheiten aus u entlang den drei Kanten ux herausfließen und ebenso 8 Einheiten in die Senke v hineinfließen. Denken wir uns nun das Netzwerk in zwei H¨alften links und rechts der strichlierten Linie geteilt. Es ist anschaulich klar, dass der Wert eines Flusses durch die Kapazit¨ at der drei Br¨ ucken“ vom linken in den rechten Teil (fett ” gezeichnet) beschr¨ ankt ist, in diesem Fall also durch 2 + 1 + 2 = 5. = (E, K) mit Quelle u, Senke v und KaDefinition. Gegeben das Netzwerk G pazit¨ at c. Ein Schnitt des Netzwerkes ist eine Partition E= X + Y mit u ∈ X, v ∈ Y . Die Kapazit¨ at des Schnittes (X, Y ) ist c(X, Y ) = c(k), wobei u ¨ ber alle Kanten k mit k− ∈ X, k+ ∈ Y summiert wird. = (E, K) ein Netzwerk mit Quelle u, Senke v und Kapazit¨ Lemma 8.7. Sei G at c. Dann gilt f¨ ur jeden zul¨ assigen Fluss f und jeden Schnitt (X, Y ) w(f ) ≤ c(X, Y ) .
8.3
149
fl¨ usse in netzwerken
Beweis. Wir setzen S(A, B) = {k ∈ K: k− ∈ A, k+ ∈ B} f¨ ur irgendeine Partition E = A + B. Sei nun (X, Y ) ein Schnitt. Wegen (∂f )(y) = 0 f¨ ur y = u, v gilt w(f ) = (∂f )(v) =
(∂f )(y) .
y∈Y
Sind beide Endecken einer Kante k in Y , so wird in der rechten Summe f (k) einmal positiv, einmal negativ gez¨ ahlt. Wir erhalten also einen Beitrag = 0 genau f¨ ur die Kanten k zwischen X und Y , und es folgt wegen der Bedingungen an f w(f ) =
f (k)−
k∈S(X,Y )
k∈S(Y,X)
f (k) ≤
k∈S(X,Y )
f (k) ≤
c(k) = c(X, Y ) .
k∈S(X,Y )
Unser Ziel ist der Nachweis der fundamentalen Gleichung max w(f ) = min c(X, Y ) des sogenannten Max Fluss-Min Schnitt-Satzes von Ford und Fulkerson. Ein zul¨ assiger Fluss f0 mit w(f0 ) = max w(f ) heißt ein Maximum Fluss, und analog ein Schnitt (X0 , Y0 ) mit c(X0 , Y0 ) = min c(X, Y ) ein Minimum Schnitt. Zun¨achst ist nicht klar, ob ein Maximum Fluss oder Minimum Schnitt u ¨ berhaupt existiert. Wir werden in unserem Hauptergebnis genau dies beweisen. Wie finden wir nun einen Maximum Fluss? Die folgende Methode ist eine Verallgemeinerung der alternierenden Wege in unserer L¨ osung des Matching Problems in bipartiten Graphen. Auch dort war das Ergebnis ja ein Maximum-Minimum-Satz. Wir k¨onnen den Wert eines zul¨assigen Flusses nur erh¨ ohen, indem wir den Netto-Ausfluss aus der Quelle vergr¨ oßern, ohne die Bedingung (∂f )(x) = 0 f¨ ur x = u, v zu verletzen. Ein (ungerichteter) Weg P : u = x0 , x1 , x2 , . . . , xt = x heißt ein zunehmender falls Weg von u nach x im Netzwerk G, ur jede Vorw¨ artskante“ ki = (xi−1 , xi ) f (ki ) < c(ki ) f¨ ” 0 < f (kj ) f¨ ur jede R¨ uckw¨ artskante“ kj = (xj , xj−1 ). ” Ist f ein zul¨ assiger Fluss, so definieren wir die Mengen Xf , Yf ⊆ E durch Xf = {x : x = u oder es existiert ein zunehmender Weg von u nach x} Yf = E \ Xf .
= (E, K) ein Netzwerk u Satz 8.8. Sei G ¨ber N0 mit Quelle u, Senke v und Kapazit¨ at c. Die folgenden Bedingungen sind f¨ ur einen zul¨ assigen Fluss f ¨ aquivalent: a. f ist Maximum Fluss. b. Es gibt keinen zunehmenden Weg von u nach v. c. (Xf , Yf ) ist Schnitt. F¨ ur einen Maximum Fluss f gilt w(f ) = c(Xf , Yf ).
150
8
matchings und netzwerke
Beweis. a. ⇒ b. Angenommen, P ist ein zunehmender Weg von u nach v. Wir definieren einen elementaren Fluss fP durch: ⎧ ⎨ 1 falls k ∈ K(P ), k Vorw¨artskante −1 falls k ∈ K(P ), k R¨ uckw¨artskante fP (k) = ⎩ 0 falls k ∈ / K(P ) .
Wir setzen α1 = min(c(k) − f (k) : k ∈ K(P ) Vorw¨artskante), α2 = min(f (k) : k ∈ K(P ) R¨ uckw¨ artskante). Aus der Definition eines zunehmenden Weges folgt, dass α = min(α1 , α2 ) > 0 ist. Klarerweise ist g = f + αfP wieder ein zul¨assiger Fluss und f¨ ur den Wert gilt w(g) = w(f ) + α > w(f ). Also war f nicht Maximum Fluss. b. ⇒ c. Folgt aus der Definition von Xf , Yf . c. ⇒ a. Betrachten wir eine Kante k ∈ S(Xf , Yf ) mit Anfangsecke x = k− ∈ Xf und Endecke y = k+ ∈ Yf . W¨ are f (k) < c(k), so k¨onnten wir einen zunehmenden Weg von u nach x um die Kante k nach y verl¨angern und h¨atten so einen zunehmenden Weg von u nach y, im Widerspruch zu y ∈ / Xf . Wir schließen also f (k) = c(k) f¨ ur alle k ∈ S(Xf , Yf ) und analog f (k) = 0 f¨ ur alle k ∈ S(Yf , Xf ).
Daraus folgt nun w(f ) =
k∈S(Xf ,Yf )
f (k) −
f (k) =
k∈S(Yf ,Xf )
c(k) = c(Xf , Yf ).
k∈S(Xf ,Yf )
Wegen Lemma 8.7 ist also f Maximum Fluss mit w(f ) = c(Xf , Yf ), womit alles bewiesen ist. Betrachten wir unser Ausgangsbeispiel. Der angegebene Fluss f hat Wert 4 und der Schnitt Kapazit¨ at 5. Der Weg u, x, y, z, v ist ein zunehmender Weg mit α = 1, also k¨ onnen wir entlang diesen Kanten den Fluss um 1 erh¨ohen und erhalten so einen Maximum Fluss f0 mit Wert 5. Die Ecken aus Xf0 sind fett gezeichnet. a
2/2
2/
1/ 2 2
3/ 3
1/1 2/2
3/3 1/2
1
1/
1/4
0/
x
4
2
z
1/3
u
b
0/
1/ 2
1/4
v
1
1/
y
Die Br¨ ucken“ k ∈ S(Xf0 , Yf0 ) sind ux, ab mit f0 (k) = c(k). ” Wir haben in 8.8 gezeigt, dass f¨ ur einen Maximum Fluss f0 stets w(f0 ) = c(Xf0 , Yf0 ) ist, also max w(f ) = min c(X, Y ) gilt. Aber wir wissen noch nicht, ob so ein Maximum Fluss u ¨ berhaupt existiert.
8.3
151
fl¨ usse in netzwerken
= (E, K) ein Netzwerk mit ganzzahligen Kapazit¨ Folgerung 8.9. Es sei G aten c : K → N0 . Dann gibt es einen ganzzahligen Maximum Fluss f : K → N0 , und es gilt somit max w(f ) = min c(X, Y ). Beweis. Analysieren wir unseren Beweis von 8.8. Wir starten mit dem ganzzahligen Fluss f = 0. Wenn f in einem Schritt des Algorithmus nicht maximal ist, so gibt es einen zunehmenden Weg von u nach v. Nun sehen wir, dass die Zahlen α1 = min(c(k) − f (k)), α2 = min(f (k)) ganzzahlig sind, und damit auch α = min(α1 , α2 ). Das heißt, mit jedem Schritt erh¨ohen wir den Wert des Flusses immer um eine positive ganze Zahl. Da nun die ganzzahlige Kapazit¨at eines Schnittes eine obere Schranke ist, erhalten wir in endlich vielen Schritten einen ganzzahligen Fluss f0 , f¨ ur den es keinen zunehmenden Weg mehr geben kann. Nach 8.8 ist dann f0 ein Maximum Fluss. Nat¨ urlich gibt es auch f¨ ur rationale Kapazit¨aten c : K → Q+ einen Maximum Fluss, wie man wieder durch Multiplizieren mit dem Hauptnenner erkennt. F¨ ur den allgemeinen Fall c : K → R+ bedarf es Stetigkeits¨ uberlegungen. Ein konstruktiver Beweis wird durch einen Algorithmus von Edmonds–Karp geliefert, siehe dazu die Literatur. In Kapitel 15 werden wir außerdem den vollen Satz u ¨ ber R als Folgerung des Hauptsatzes der Linearen Optimierung ableiten. Der Max Fluss–Min Schnitt-Satz ist Ausgangspunkt f¨ ur eine Reihe von interessanten Anwendungen, von denen wir einige besprechen wollen. Unser erstes MaximumMinimum Ergebnis war Satz 8.3, max(|M | : M Matching ) = min(|D| : D Tr¨ager) f¨ ur bipartite Graphen. Wir k¨ onnen dieses Ergebnis nun ohne M¨ uhe aus 8.9 ablei , indem wir alle Kanten ten. Zu G = (S + T, K) assoziieren wir ein Netzwerk G von S nach T orientieren. Zus¨ atzlich definieren wir eine Quelle u∗ und eine Senke ∗ ∗ v , wobei wir alle Kanten (u , x), x ∈ S, und (y, v ∗ ), y ∈ T , hinzunehmen. Die Kapazit¨ at sei identisch 1. Die neuen Ecken- und Kantenmengen seien E ∗ und K ∗ . x
y
u*
v*
S
T
Wir wissen, dass es einen Maximum Fluss f gibt, der nur die Werte 0 und 1 annimmt. Betrachten wir irgendeinen zul¨ assigen Fluss f : K ∗ → {0, 1}, so sehen wir ∗ ∗ aus der Bedingung (∂f )(x) = 0, x = u , v , dass im Falle f (u∗ , x) = 1 genau eine Kante (x, y), die x in Richtung T verl¨ aßt, den Wert 1 hat. Dasselbe gilt f¨ ur y ∈ T . Mit anderen Worten, die Kanten xy, x ∈ S, y ∈ T , mit f (x, y) = 1 bilden ein Matching in G = (S + T, K), und der Wert des Flusses f ist w(f ) = |M |. Umgekehrt ergibt ein Matching einen zul¨ assigen 0,1-Fluss, indem wir den Kanten von M den
152
8
matchings und netzwerke
Flusswert 1 zuteilen, und auch den Verbindungen zu u∗ bzw. v ∗ . Also: Maximum 0,1-Fl¨ usse sind Maximum Matchings. Genauso sieht man, dass Minimum Schnitte zu Minimum Tr¨ agern korrespondieren (nachpr¨ ufen!), und 8.3 folgt tats¨achlich aus 8.9. Mehr noch: Wenn wir unseren Beweis mit Hilfe alternierender Wege analysieren, so erkennen wir, dass es sich genau um die zunehmende Wege“-Methode ” handelt. Als weiteres Beispiel besprechen wir das Angebot-Nachfrage-Problem. Wir wollen von einer Menge S von Produktionsst¨atten Waren zu einer Menge T von Abnehmerst¨ atten transportieren. Nennen wir S die Quellen und T die Senken. Mit jeder Quelle x ∈ S assoziieren wir ein Angebot a(x) und mit jeder Senke y ∈ T eine Nachfrage b(y). Unser Problem besteht in der Konstruktion eines Flusses, der nicht mehr aus x ∈ S herausf¨ uhrt, als dort angeboten wird, also h¨ochstens a(x), und mindestens b(y) in y ∈ T hineinf¨ uhrt. Sei G = (E, K) der gegebene orientierte Graph mit Kapazit¨at c : K → R+ , S, T ⊆ E, S ∩ T = ∅, mit den Funktionen a : S → R+ , b : T → R+ . Gesucht ist ein Fluss f : K → R+ , der den folgenden Bedingungen gen¨ ugt: a. 0≤ f (k) ≤ c(k) b. k− =x f (k) − k+ =x f (k) ≤ a(x) f¨ ur alle x ∈ S c. f (k) − f (k) ≥ b(y) f¨ u r alle y ∈ T k+ =y k− =y d. f (k) − f (k) = 0 f¨ u r alle z ∈ E (S ∪ T ). k+ =z k− =z Bedingung b misst den Netto-Ausfluss aus der Quelle x, Bedingung c den NettoEinfluss in die Senke y. Ansonsten soll das u ¨ bliche Erhaltungsgesetz (∂f )(z) = 0 gelten. Nat¨ urlich muss so ein Fluss u ¨ berhaupt nicht existieren. Ein einfaches Beispiel ist a(x) = 1
c=2 -
b(y) = 2
• • x∈S y∈T Klarerweise ist y∈T b(y) eine notwendige Bedingung, aber das x∈S a(x) ≥ gen¨ ugt nicht, wie das folgende Beispiel zeigt: 3 •Q - 1 • 2 Q 2 Q s Q1 3 - QQ •3 2• 1 S T
Hier ist zwar x∈S a(x) = y∈T b(y) = 5, aber in die rechte untere Ecke z kann wegen der Kapazit¨ atsbeschr¨ ankung nur 2 hineinfließen, die Nachfrage b(z) = 3 also nicht befriedigt werden. Zur L¨ osung f¨ ugen wir eine neue Quelle u∗ und eine neue Senke v ∗ hinzu, und ∗ alle Kanten (u , x), x ∈ S, mit c(u∗ , x) = a(x) und alle Kanten (y, v ∗ ), y ∈ T , mit ∗ = (E ∗ , K ∗ ). c(y, v ∗ ) = b(y). Das so entstehende Netzwerk bezeichnen wir mit G
8.4
eulersche graphen, das traveling salesman-problem
153
besitzt genau dann einen Fluss, der Behauptung: Der urspr¨ ungliche Graph G ∗ a. bis d. gen¨ ugt, wenn G einen zul¨ assigen Fluss f ∗ im bisherigen Sinn hat, der ∗ ∗ alle Kanten (y, v ) saturiert, d. h. f (y, v ∗ ) = c(y, v ∗ ) = b(y) erf¨ ullt. Der Wert des ∗ ∗ Flusses f ist demnach w(f ) = y∈T b(y). ∗ , so gilt f (u∗ , x) ≤ a(x) (x ∈ S), also kann Ist f ∗ solch ein zul¨ assiger Fluss f¨ ur G nicht mehr als a(x) betragen, d. h. Bedingung b. ist der Netto-Ausfluss von x in G erf¨ ullt. Ebenso muss wegen f ∗ (y, v ∗ ) = b(y) der Netto-Einfluss in y ∈ T genau b(y) betragen (Bedingung c). Die Umkehrung sieht man genauso leicht. Nach unserem Hauptsatz 8.8 existiert also ein Fluss d. gen¨ ugt, in G, der den Bedingungen∗ a. bis ∗ ∗ ∗ gilt. genau dann, wenn c(X , Y ) ≥ y∈T b(y) f¨ ur jeden Schnitt (X , Y ∗ ) in G Schreiben wir X ∗ = X ∪ {u∗ }, Y ∗ = Y ∪ {v ∗ }, wobei X oder Y auch leer sein k¨ onnen, so resultiert als notwendige und hinreichende Bedingung c(X ∗ , Y ∗ ) = c(X, Y ) + a(x) + b(y) ≥ b(y) x∈S∩Y
y∈T ∩X
y∈T
also (1)
c(X, Y ) ≥
y∈T ∩Y
b(y) −
a(x) f¨ ur alle E = X + Y .
x∈S∩Y
Eine Reihe weiterer Variationen sind m¨ oglich. Zum Beispiel k¨onnten wir zul¨assige Fl¨ usse f durch zwei Funktionen beschreiben c(k) ≤ f (k) ≤ d(k), oder zus¨atzlich eine Kostenfunktion γ(k) auf den Kanten einf¨ uhren. Gesucht ist dann ein Maximum Fluss mit minimalen Kosten.
8.4
Eulersche Graphen, das Traveling Salesman-Problem
Jeder kennt Probleme der Art: Man zeichne eine Figur ohne Absetzen des Bleistifts. Zum Beispiel k¨ onnen wir die linke Figur in folgendem Diagramm (von der oberen Ecke ausgehend) durch die angegebene Kantenfolge in einem Zug zeichnen, und wieder an den Ausgangspunkt zur¨ uckkehren, aber nicht die rechte. • 1 Q 10 Q 9 Q • Q • Q 8 Q Q 6 2 7 Q Q Q• • Q 5 Q 3 Q• 4
• Q Q Q• •
•
•
Auf das von Euler gestellte K¨ onigsberger Br¨ uckenproblem (das in jedem Buch u uck, die wir nun behandeln ¨ ber Graphentheorie zu finden ist) geht die Frage zur¨ wollen. Ausnahmsweise betrachten wir Multigraphen G = (E, K), d. h. Schlingen und parallele Kanten sind erlaubt.
154
8
matchings und netzwerke
Sei G = (E, K) ein Multigraph mit q Kanten. Eine Kantenfolge k1 , . . . , kq , mit ki inzident zu ki+1 , die jede Kante genau einmal enth¨alt, und an ihre Ausgangsecke zur¨ uckkehrt, heißt ein Euler-Zug. Verlangen wir nicht, dass die Anfangs- und Endecke identisch sind, so sprechen wir von einem offenen Euler-Zug. Unser zweites Beispiel besitzt keinen (geschlossenen) Euler-Zug, aber einen offenen EulerZug. Ein Graph heißt Eulersch, falls er einen Euler-Zug besitzt. Wir stellen uns zwei Aufgaben: 1. Charakterisierung von Eulerschen Multigraphen. 2. Wie findet man einen Euler-Zug? Satz 8.10. Ein Multigraph G = (E, K) mit K = ∅ ist genau dann Eulersch, wenn G zusammenh¨ angend ist und alle Ecken geraden Grad haben (wobei Schlingen doppelt gez¨ ahlt werden). Beweis. G muss offensichtlich zusammenh¨angend sein, und da beim Passieren einer Ecke der Grad jeweils um 2 erh¨ oht wird, m¨ ussen alle Ecken geraden Grad haben. Seien nun umgekehrt die Bedingungen erf¨ ullt. Da jeder Grad gerade ist, existieren Kreise (warum?). Es sei C ein geschlossener Kantenzug mit maximal vielen Kanten. Falls K = K(C) ist, sind wir fertig. Andernfalls sei G′ = (E, K K(C)). Da G zusammenh¨ angend ist, m¨ ussen G′ und C eine gemeinsame Ecke u mit ′ dG′ (u) > 0 haben. In G hat wieder jede Ecke geraden Grad, also gibt es einen geschlossenen Kantenzug C ′ in G′ , der u enth¨alt, und C ′ kann beim Durchlaufen von C an der Ecke u eingeschoben werden, im Widerspruch zur Maximalit¨at von C. Wie findet man nun einen Euler-Zug? Man kann nicht einfach darauf losmarschieren, wie unser Ausgangsbeispiel zeigt. W¨ahlen wir die Kanten n¨amlich in der angegebenen Reihenfolge, so bleiben wir in der Ecke u h¨angen. Der Grund ist, dass die sechste Kante den Restgraphen in zwei Komponenten zerlegt. u •Q 1 Q 7 + k Q Q Q -2 •Q • + 3 Q Q 4 6 sQ5 6 Q 6Q Q Q • Q • Q Q Q• Der folgende Algorithmus konstruiert in jedem Eulerschen Multigraphen einen Euler-Zug: (1) Starte in einer beliebigen Ecke u0 .
8.4
eulersche graphen, das traveling salesman-problem
155
(2) Seien u0 , u1 , . . . , ui mit den Kanten kj = uj−1 uj (j = 1, . . . , i) bereits konstruiert. Gi = (E, K {k1 , . . . , ki }) sei der Restgraph. Falls K {k1 , . . . , ki } = ∅ ist, stop. Anderenfalls w¨ ahle unter den mit ui inzidenten Kanten in Gi eine Kante ki+1 , die keine Br¨ ucke in Gi ist, solange dies m¨oglich ist. Iteriere (2). Beweis der Korrektheit. Der Algorithmus konstruiere u0 , u1 , . . . , up mit W = {k1 , . . . , kp }. Klarerweise gilt up = u0 . In Gp hat die Ecke u0 den Grad 0, da wir ansonsten weitergehen k¨ onnten. Angenommen K(Gp ) = ∅, dann gibt es Ecken v mit dGp (v) > 0. Es sei S = {v ∈ E : dGp (v) > 0} und T = {v ∈ E : dGp (v) = 0}, es gilt also S = ∅, T = ∅. Sei nun ℓ der gr¨ oßte Index mit uℓ ∈ S, uℓ+1 ∈ T . Solch ein ℓ muss es geben, da ansonsten der Kantenzug W (der in u0 ∈ T startet) ganz T aussch¨ opfen w¨ urde, ohne S zu betreten, im Widerspruch zum Zusammenhang von G. S •XXk •u vX X 0 •u uℓ• k ℓ+1 ℓ+1
T
Da W nach uℓ+1 die Menge T nicht mehr verl¨asst, und dGp (x) = 0 f¨ ur alle x ∈ T gilt, ist kℓ+1 die einzige Kante in Gℓ zwischen S und T und daher eine Br¨ ucke in Gℓ . Nun ist aber dGp (uℓ ) > 0 gerade, also muss eine weitere Kante k in Gℓ inzident mit uℓ sein. Nach Regel (2) ist daher k ebenfalls eine Br¨ ucke in Gℓ und damit auch in Gp , da ja Gℓ und Gp auf S identisch sind. Nun wissen wir, dass in Gp jede Ecke einen geraden Grad hat, da beim Passieren einer Ecke in W jeweils der Grad um 2 vermindert wird. Sind A und B die beiden Komponenten von Gp , die nach Entfernen von k entstehen, B A k • v• uℓ so w¨ are uℓ die einzige Ecke ungeraden Grades in B, was nach 6.2 nicht geht. Also war k doch keine Br¨ ucke, und wir sind fertig. Bemerkung: Da in polynomialer Zeit festgestellt werden kann, ob eine Kante Br¨ ucke ist (klar?), so liefert unser Algorithmus ein polynomiales Verfahren zur Konstruktion eines Euler-Zuges. Als Anwendung k¨ onnen wir das Problem des chinesischen Postboten l¨osen (der Grund f¨ ur die Bezeichnung liegt einfach darin, dass die Aufgabe von einem chinesischen Mathematiker gestellt wurde). Gegeben ein zusammenh¨angender Multigraph G = (E, K) und eine Kostenfunktion w : K → R+ . Der Postbote startet in
156
8
matchings und netzwerke
einer Ecke u0 (Postamt) und muss jede Kante (Straße) mindestens einmal durchlaufen und nach u0 zur¨ uckkehren. Er soll eine Tour W mit minimalen Kosten k∈W w(k) konstruieren. Wenn G Eulersch ist, so konstruiert der Postbote einfach einen Euler-Zug. Wenn G nicht Eulersch ist, so m¨ ussen wir Kanten vervielfachen, so dass der re sultierende Multigraph G∗ = (E, K ∗ ) Eulersch ist und k∈K ∗ K w(k) minimal ist. L¨ osung. Es sei U die Menge der Ecken ungeraden Grades, |U | = 2m. (1) F¨ ur u, v ∈ U bestimme die L¨ ange d(u, v) eines gewichteten k¨ urzesten Weges (das K¨ urzeste Wege Problem aus Abschnitt 7.4). (2) Betrachte den vollst¨ andigen Graphen K2m auf U mit der Gewichtung w(uv) = d(u, v). Bestimme ein gewichtetes minimales Matching M = {u1 v1 , . . . , um vm } . (Gewichtetes Matching Problem aus Abschnitt 8.2) (3) F¨ uge die optimalen ui vi -Wege Pi ein. Der so erhaltene Multigraph G∗ = G ∪ m Pi ist dann eine L¨ osung. i=1
Beispiel. In dem folgenden Graphen G ist U = {u, v}. Ein k¨ urzester gewichteter u, v-Weg ist u, x, y, z, v mit d(u, v) = 6. Also erhalten wir den minimalen Multigraphen G∗ rechts. u 1
y
x
3
1
6
3
5
4
2
1
z
2 2
v
G
G*
= (E, K) u Euler-Z¨ uge k¨ onnen sinngem¨ aß auf gerichtete Multigraphen G ¨ bertragen + − − + werden, W = {k1 , . . . , kq } mit ki = ki+1 und kq = k1 . Der folgende Satz ist das Gegenst¨ uck zu 8.10 und wird genauso bewiesen. = (E, K) ist genau dann Eulersch, wenn Satz 8.11. Ein gerichteter Multigraph G − G zusammenh¨ angend ist und d (u) = d+ (u) f¨ ur alle u ∈ E gilt. Bisher haben wir geschlossene Kantenz¨ uge betrachtet, die alle Kanten genau einmal enthalten. Analog k¨ onnen wir nach geschlossenen Kantenfolgen fragen, die alle Ecken genau einmal enthalten. Mit anderen Worten, wir suchen einen Kreis in G der L¨ ange n = |E|. Auch mit diesem Problem ist ein ber¨ uhmter Name assoziiert –
8.4
eulersche graphen, das traveling salesman-problem
157
Hamilton, der diese Frage f¨ ur den Dodekaedergraphen aufgeworfen hat (siehe die Figur). Kreise Cn heißen daher Hamiltonsche Kreise, und ein Graph G heißt Hamiltonsch, falls G einen solchen Kreis enth¨alt.
Die fetten Linien ergeben einen Hamiltonschen Kreis. Im Gegensatz zu Eulerschen Graphen ist die Charakterisierung Hamiltonscher Graphen ein beweisbar schweres (NP -vollst¨andiges) Problem. Wir werden darauf im n¨ achsten Abschnitt zur¨ uckkommen. Man wird sich daher mit notwendigen und ¨ hinreichenden Bedingungen zufriedengeben (siehe dazu die Ubungen). Wir wenden uns nun einem der ber¨ uhmtesten algorithmischen Probleme zu, dem Traveling Salesman Problem TSP (Problem des Handlungsreisenden), das wir schon kurz in Abschnitt 5.3 erw¨ ahnt haben: Ein Handlungsreisender startet in einer Stadt, macht eine Rundtour durch alle St¨ adte auf seiner Liste und kehrt an seinen Ausgangspunkt zur¨ uck. Welche Reiseroute soll er w¨ahlen, um seine Gesamtkosten zu minimieren? Gegeben ist also der vollst¨ andige Graph Kn und eine Kostenfunktion w : K → R+ oder ¨ aquivalent dazu eine Kostenmatrix (wij ), 1 ≤ i, j ≤ n, mit a. wij ≥ 0 b. wij = wji (Symmetrie). Gesucht ist ein Hamiltonscher Kreis, d. h. eine zyklische Permutation π = (i1 = 1, i2 , . . . , in ) mit n w(i, π(i)) = min . w(π) = i=1
Da es (n − 1)! zyklische Permutationen gibt, ist ein Durchprobieren f¨ ur großes n unm¨ oglich. Im n¨ achsten Abschnitt werden wir sehen, dass auch das Traveling Salesman Problem zur Klasse der N P -vollst¨andigen Probleme geh¨ort, f¨ ur die man keine guten Algorithmen (d. h. mit polynomialer Laufzeit in n) kennt, und f¨ ur die es wahrscheinlich keine derartigen Algorithmen geben kann. Wie soll man nun vorgehen? Man wird ein heuristisches Verfahren versuchen, in der Hoffnung dem tats¨ achlichen Minimum m¨ oglichst nahe zu kommen. Beispiel. Rheinlandproblem (nach M. Gr¨ otschel) Die Kostenmatrix ist durch die folgende Tabelle der jeweiligen Entfernungen gegeben:
158
8
matchings und netzwerke
Aachen Bonn D¨ usseldorf Frankfurt K¨ oln Wuppertal
A
B
D
F
K
W
– 91 80 259 70 121
91 – 77 175 27 84
80 77 – 232 47 29
259 175 232 – 189 236
70 27 47 189 – 55
121 84 29 236 55 –
Unsere Aufgabe besteht also darin, eine k¨ urzeste Rundreise durch diese sechs St¨adte zu finden. Das Verfahren, das wahrscheinlich jedem als erstes in den Sinn kommt, ist das N¨ achster Nachbar“-Verfahren N N : ” (N N ): Sei E = {E1 , . . . , En }. W¨ ahle eine beliebige Startecke Ei1 . Falls Ei1 , . . . , Eim konstruiert ist, suche eine Ecke Ej0 ∈ E ′ = E \ {Ei1 , . . . , Eim } mit w(Ej0 , Eim ) = min (w(Ej , Eim ) : Ej ∈ E ′ ) und setze im+1 = j0 . Betrachten wir die n¨ achsten Nachbarn an beiden Enden des schon konstruierten Weges, so erhalten wir das Doppelte N¨ achster Nachbar“-Verfahren DN N . ” (DN N ) : Sei wie in (N N ) die Folge Ei1 , . . . , Eim bereits gew¨ahlt. In E ′ = E \ {Ei1 , . . . , Eim } sei Ej0 mit w(Ej0 , Ei1 ) = min (w(Ej , Ei1 ) : Ej ∈ E ′ ) und Ej1 mit w(Ej1 , Eim ) = min(w(Ej , Eim ) : Ej ∈ E ′ ). Falls w(Ej0 , Ei1 ) ≤ w(Ej1 , Eim ) ist, h¨ ange Ej0 an Ei1 an, andernfalls Ej1 an Eim . In unserem Beispiel ergibt (N N ) mit Startort K¨oln bzw. Frankfurt die Touren K–B–D–W– A –F–K F–B–K– D –W–A–F
w = 702 w = 658
Der Startort spielt also eine wesentliche Rolle f¨ ur die L¨ange der Tour. F¨ ur (DN N ) erhalten wir z. B. mit Startort K¨oln: K–B D¨ usseldorf ist sowohl zu K¨ oln (47) am n¨ achsten wie auch zu Bonn (77). Da die Entfernung zu K¨ oln geringer ist, h¨ angen wir D¨ usseldorf an K¨oln an und erhalten D–K–B– Fahren wir auf diese Weise fort, so ergibt sich als Rundtour K–B–A–F–W–D–K
w = 689.
(DN N ) wird im allgemeinen besser als (N N ) sein, aber in ung¨ unstigen F¨allen k¨onnen beide Verfahren sehr schlecht werden (weite Wege am Ende). Um diesen Nachteil wettzumachen, versuchen wir nun Kreise sukzessive zu vergr¨oßern. Wir starten mit einem beliebigen Kreis der L¨ ange 3. Sei der Kreis C = (Ei1 , . . . , Eim ) der L¨ange m konstruiert. Wenn wir Ej ∈ / {Ei1 , . . . Eim } in C einbauen wollen, sagen wir
8.4
eulersche graphen, das traveling salesman-problem
159
zwischen Eik und Eik+1 , so ist die Nettozunahme der Kosten gegen¨ uber C gleich d(Ej , k) = w(Eik , Ej ) + w(Ej , Eik+1 ) − w(Eik , Eik+1 ). Wir setzen nun d(Ej ) = min d(Ej , k) und w¨ ahlen Ej0 mit d(Ej0 ) = min (d(Ej ) : Ej ∈ / {Ei1 , . . . , Eim }). k
ugt. Dieses Verfahren heißt Billigste Ej0 wird nun an der richtigen Stelle eingef¨ ” Insertion“ BI.
Bisher haben wir Verfahren betrachtet, die eine Rundtour Schritt f¨ ur Schritt konstruieren. Wir wollen nun zwei globale Methoden studieren. MST (Minimum Spanning Tree-Heuristik) Die Idee ist einfach: Eine Tour ist ein Hamiltonscher Kreis. Lassen wir eine Kante weg, so erhalten wir einen aufspannenden Baum. M ST besteht aus drei Teilen: (1) Konstruiere einen minimalen aufspannenden Baum T (z. B. mit dem GreedyAlgorithmus aus Abschnitt 7.3). (2) Verdopple alle Kanten in T . Dies ergibt einen Eulerschen Multigraphen TD . Sei C = {v1 , v2 , . . .} ein Euler-Zug in TD . ¨ (3) In C ist ein Hamiltonscher Kreis enthalten (durch Uberspringen schon durchlaufener Ecken). In unserem Beispiel haben wir: 7 D
W
W
D
D
W
6 8
5
9 A
K
A
K
A
K
10 1
4 3
B
F
B
F
B
F
2
w = 654 T
Euler−Zug in T D
CH (Christofides-Heuristik) (1) Konstruiere einen minimalen aufspannenden Baum T . (2) Sei U die Menge der Ecken ungeraden Grades in T , |U | = 2m. Konstruiere ein Maximum Matching (mit minimalen Kosten) M auf U , M ={u1 v1 , . . . , um vm } und f¨ uge M zu T hinzu. Dies ergibt einen Eulerschen Multigraphen TD . (3) In TD ist ein Hamiltonscher Kreis enthalten. F¨ ur unser Rheinland Problem ergibt dies:
160
8
D
matchings und netzwerke
W
D
5
W
D
W
4 3 A
A
K
6
K
A
K
2 1 B
F
B
7
F
B
F
w = 617
w(T) = 348
w ( TD ) = 654
U = { A, K, W, F }, M = { AK, WF }
Man kann zeigen, dass diese letzte Tour f¨ ur das Rheinlandproblem optimal ist. Wir haben erw¨ ahnt, dass TSP ein beweisbar schweres Problem ist. K¨onnen wir aber sagen, dass ein gegebenes (polynomiales) Verfahren wenigstens eine Tour konstruiert, die nicht zu weit vom wahren Minimum abweicht? Wir sagen, ein Algorithmus hat G¨ utegarantie ε, falls f¨ ur die konstruierte Tour C gilt: w(C) ≤ (1 + ε)w(Copt ) . F¨ ur eine beliebige Kostenmatrix (wij ) ist auch dies ein schweres Problem. F¨ ur einen wichtigen Spezialfall k¨ onnen wir aber genauere Aussagen machen, wenn n¨amlich die wij ’s als geometrische Streckenl¨ angen interpretiert werden, wie in unserem Beispiel. In diesem Fall erf¨ ullen die wij ’s die Dreiecksungleichung wij ≤ wih + whj f¨ ur alle i, j, h, und wir sprechen von einem metrischen TSP. Sowohl MST als auch die Christofides-Heuristik CH sind schnelle Verfahren, da die Einzelschritte jeweils polynomiale Laufzeit haben. Es sei CM ST bzw. CCH eine von der M ST -Heuristik bzw. Christofides-Heuristik konstruierte Tour. Satz 8.12. Sei ein metrisches T SP mit Kostenmatrix (wij ) gegeben. Dann gilt a. w(CM ST ) ≤ 2 w(Copt ). b. w(CCH ) ≤ 32 w(Copt ). Beweis. a. Da Copt minus eine Kante ein Baum ist, gilt f¨ ur den von M ST in Phase (1) konstruierten Baum T, w(T ) ≤ w(Copt ) und somit w(TD ) ≤ 2w(Copt ). Sei C = {v1 , v2 , . . .} der Euler-Zug, und CM ST = {vi1 , vi2 , . . .} die darin enthaltene Tour. Aus der Dreiecksungleichung folgt w(vi1 , vi2 ) ≤ w(vi1 , vi1 +1 ) + . . . + w(vi2 −1 , vi2 ) im Euler-Zug, und analog f¨ ur w(vi2 , vi3 ), usf. Wir erhalten daraus w(CM ST ) ≤ w(TD ) ≤ 2 w(Copt ). b. Wiederum gilt w(T ) ≤ w(Copt ). Sei {v1 , v2 , . . . , vn } eine minimale Tour, und vi1 , vi2 , . . . , vi2m die Ecken von U in dieser Reihenfolge. Wir betrachten die Matchings M1 = {vi1 vi2 , vi3 vi4 , . . . , vi2m−1 vi2m }, M2 = {vi2 vi3 , vi4 vi5 , . . . , vi2m vi1 }. F¨ ur das in der Christofides-Heuristik bestimmte Matching M gilt w(M ) ≤ w(M1 ),
8.5
die komplexit¨ atsklassen p und np
161
w(M ) ≤ w(M2 ), und wegen der Dreiecksungleichung w(M1 ) + w(M2 ) ≤ w(Copt ). Daraus erhalten wir w(M ) ≤ 12 (w(M1 ) + w(M2 )) ≤ 21 w(Copt ), also insgesamt w(CCH ) ≤ w(T ) + w(M ) ≤
3 w(Copt ). 2
Bemerkung: Die mit der Christofides-Heuristik bestimmte G¨ utegarantie ε = 12 ist die beste bekannte G¨ utegarantie f¨ ur das metrische Traveling Salesman-Problem.
8.5
Die Komplexit¨ atsklassen P und NP
Wir haben nun eine Reihe von Problemen kennengelernt, f¨ ur die schnelle Algorithmen existieren, z. B. das K¨ urzeste Wege Problem oder die Charakterisierung Eulerscher Graphen bzw. die Konstruktion eines Euler-Zuges. Umgekehrt haben wir die Charakterisierung Hamiltonscher Graphen oder das Traveling SalesmanProblem als schwer“ bezeichnet. Wir wollen uns in diesem Abschnitt ein paar ” Gedanken u ¨ ber den Schwierigkeitsgrad abstrakter Probleme machen. Wir definieren ein abstraktes Problem als eine Familie I von Eingaben (Instances) zusammen mit einer Familie S von L¨osungen (Solutions). Zum Beispiel sind beim TSP die Eingaben alle Matrizen (wij ) und die L¨osungen die minimalen Touren. Beim Hamiltonschen Problem HP sind die Eingaben Graphen, zum Beispiel gegeben durch Adjazenzmatrizen und die L¨osungen 1 und 0, 1 f¨ ur ja (der Graph ist Hamiltonsch), 0 f¨ ur nein (der Graph ist nicht Hamiltonsch). Wir sehen, dass das TSP ein Optimierungsproblem ist, und HP ein Entscheidungsproblem. Die Theorie der Komplexit¨atsklassen, wie wir sie im folgenden skizzieren, gilt f¨ ur Entscheidungsprobleme. Um sie auch f¨ ur Optimierungsprobleme anwenden zu k¨ onnen, m¨ ussen wir diese in Entscheidungsprobleme umwandeln. Typischerweise macht man das so, dass man zu einem Optimierungsproblem, z. B. dem TSP, noch eine Schranke M angibt. Das zugeh¨orige Entscheidungsproblem lautet dann: Ist w(Copt ) ≤ M ? Eine L¨osung des Optimierungsproblems ist dann nat¨ urlich auch eine L¨ osung des Entscheidungsproblems. Das Optimierungsproblem ist also mindestens so schwer wie das zugeh¨orige Entscheidungsproblem. Wie misst man nun den Schwierigkeitsgrad oder, wie wir sagen, die Komplexit¨ at eines Entscheidungsproblems? Durch den Aufwand, den man zur L¨osung betreiben muss. Dazu m¨ ussen wir den Input codieren. Informell gesagt ist dies eine Abbildung der Eingaben auf 0,1-W¨ orter. Zum Beispiel k¨onnen wir die Adjazenzmatrix eines Graphen durch die n2 Eintr¨age mit Wert 0 oder 1 codieren. Oder wir codieren nat¨ urliche Zahlen durch ihre bin¨are Darstellung. Wir sagen nun, ein Algorithmus l¨ ost ein Problem in Zeit O(f (n)), falls er zu jedem Input der L¨ange n die L¨ osung mit O(f (n)) Rechenschritten produziert. Das ist ein bisschen vage, zu einer genauen Begriffsbildung ben¨ otigt man das Konzept der formalen Sprachen und der Turing Maschinen. Das Buch von Garey–Johnson gibt dazu einen ausge¨ zeichneten Uberblick. Was unter einer Laufzeit O(f (n)) gemeint ist, sollte aber klar sein.
162
8
matchings und netzwerke
Ein Entscheidungsproblem heißt polynomial (genauer: l¨osbar in polynomialer Zeit), falls ein Algorithmus mit Laufzeit O(ns ) f¨ ur eine Konstante s existiert. Die Komplexit¨ atsklasse P umfasst alle polynomialen Entscheidungprobleme. Betrachten wir das Hamilton Problem HP. Angenommen, der Algorithmus probiert alles durch. Das heißt, wir schreiben alle m! Permutationen der m Ecken hin und pr¨ ufen f¨ ur jede Permutation nach, ob die Kanten alle in G sind. Wie groß ist die Laufzeit? Ist der Graph durch √ die Adjazenzmatrix gegeben, so ist die L¨ange 2 n. F¨ ur die m! Permutationen brauchen wir alder Eingabe n = m oder m = √ √ so Ω(m!) = Ω( n!) = Ω(2 n ) Operationen, und das ist, wie wir aus Kapitel 5 wissen, f¨ ur kein s gleich O(ns ). Wir sagen also, der angegebene Algorithmus ist exponentiell. Gibt es aber vielleicht doch polynomiale Algorithmen f¨ ur HP, d. h. ist HP ∈ P ? Wahrscheinlich nicht. Warum, das wollen wir uns jetzt klarmachen. Die n¨ achste fundamentale Komplexit¨ atsklasse ist die Klasse N P (non-deterministic polynomial). Wie der Name N P andeutet, wurde diese Klasse im Rahmen von nicht-deterministischen Problemem eingef¨ uhrt. Wir behandeln sie mittels des aquivalenten Begriffes der Verifikation. ¨ Ein Entscheidungsproblem ist in N P , falls eine positive L¨osung (d. h. Antwort 1 = ja) in polynomialer Zeit verifiziert werden kann. Was heißt das? Angenommen, jemand behauptet, er habe f¨ ur das TSP mit Input-Matrix (wij ) eine Tour C konstruiert mit w(C) ≤ M . Wir m¨ ussen nun imstande sein, in polynomialer Zeit zu u ufen, ob C u ¨ berpr¨ ¨ berhaupt ein Hamiltonscher Kreis ist, und zweitens ob w(C) ≤ M tats¨ achlich gilt. Nat¨ urlich geht das: Wir brauchen nur die Zyklizit¨at von C nachzupr¨ ufen (ein Schritt pro Ecke) und dann w(C) mit M zu vergleichen. Also ist TSP ∈ N P . Ganz anders ist die Frage, ob wir auch eine negative L¨osung (Antwort 0 = nein) in polynomialer Zeit verifizieren k¨ onnen. Diese Klasse wird mit co − N P bezeichnet. Offenbar gilt P ⊆ N P ∩ co − N P . Die beiden fundamentalen Fragen der Komplexit¨ atstheorie, die heute zu den gr¨ oßten offenen Problemen der gesamten Mathematik geh¨ oren, betreffen diese drei Klassen: Ist P = N P ? Ist N P = co − N P ? Die meisten Forscher in diesem Gebiet glauben, dass die Antwort auf beide Fragen ja ist. Und daf¨ ur gibt es gute Gr¨ unde. Dazu betrachten wir eine spezielle Klasse von Problemen in N P , die sogenannten N P -vollst¨andigen Probleme. Ein Entscheidungsproblem Q heißt NP-vollst¨ andig, falls es in N P liegt, und falls aus der polynomialen L¨ osbarkeit dieses Problems die polynomiale L¨osbarkeit aller N P Probleme folgt. Mit anderen Worten: Q ∈ P ⇒ N P = P . Wie beweist man nun, dass ein Problem Q N P -vollst¨ andig ist? Gegeben irgendein Problem R ∈ N P . Dann muss es m¨ oglich sein, R in polynomialer Zeit auf einen Spezialfall von Q zu transformieren“. Die polynomiale Transformation von R auf Q zusammen mit der ” polynomialen L¨ osung von Q ergibt dann R ∈ P . Q ist also mindestens“ so schwer ” wie R, die N P -vollst¨ andigen Probleme sind somit die schwersten“ Probleme in ” NP . Wir werden uns gleich so eine Transformation ansehen. Aber zuerst m¨ ussen wir die Frage beantworten, ob es u ¨ berhaupt ein N P -vollst¨andiges Problem gibt. Das erste Beispiel eines solchen Entscheidungsproblems wurde von Cook 1971 an-
¨bungen u
163
gegeben, das Satisfiability-Problem SAT f¨ ur Boolesche Ausdr¨ ucke, wir kommen darauf in Kapitel 11 zu sprechen. Ein weiteres Problem wurde von Karp 1972 als N P -vollst¨ andig bewiesen – unser Hamilton Problem HP. Als Beispiel, was unter einer Transformation zu verstehen ist, beweisen wir, dass das Traveling Salesman Problem TSP ebenfalls N P -vollst¨andig ist. Wir wissen schon, dass TSP in N P ist. K¨ onnen wir nun HP in polynomialer Zeit auf TSP transformieren, dann ist TSP N P -vollst¨ andig, da dies ja bereits f¨ ur HP gilt. So eine Transformation liegt auf der Hand. Gegeben der Graph G = (E, K), E = {1, 2, . . . , n}. Wir assoziieren zu G ein spezielles TSP auf folgende Weise:
0 falls ij ∈ K wij = 1 falls ij ∈ / K. Offenbar besitzt G einen Hamiltonschen Kreis genau dann, wenn das spezielle TSP eine Tour C besitzt mit w(C) ≤ 0 (und damit = 0). K¨onnen wir also TSP polynomial entscheiden, so auch HP. Die meisten Probleme in N P , die wir in unserem Buch bisher besprochen haben, sind entweder in P oder sie sind N P -vollst¨andig. Eines der bekanntesten Probleme, dessen Komplexit¨ atsstatus ungekl¨ art ist, ist das Graphenisomorphieproblem GI. Die Eingabe besteht aus einem Paar von Graphen G und H, und die Frage ¨ lautet: Sind G und H isomorph ? GI ist sicherlich in N P (siehe Ubung 46), und die bisherigen Arbeiten legen eher die Vermutung GI ∈ P nahe. Seit der Einf¨ uhrung dieser Begriffe hat man hunderte von Entscheidungs- und Optimierungsproblemen als N P -vollst¨ andig erkannt. Doch trotz aller Anstrengungen kennt man f¨ ur kein einziges dieser Probleme einen polynomialen Algorithmus – und wir wissen, falls man eines polynomial l¨ osen k¨ onnte, so auch alle anderen. Diese, wenn man so will, empirische Tatsache spricht tats¨ achlich f¨ ur P = N P . Informell gesagt sind Probleme in P leicht und solche nicht in P , also wahrscheinlich z. B. die N P vollst¨ andigen Probleme, schwer. Nat¨ urlich muss man N P -vollst¨andige Probleme trotz der vermutlichen Aussichtslosigkeit, einen schnellen Algorithmus zu finden, in der Praxis angehen. Wie man sich dabei behilft, z. B. mittels Heuristiken, haben wir anhand des TSP im vorigen Abschnitt besprochen.
¨ Ubungen zu Kapitel 8 1 Der bipartite Graph G = (S + T, K) sei k-regul¨ ar, k ≥ 1. Zeige, dass |S| = |T | gilt und G stets ein Matching M mit |M | = |S| = |T | enth¨ alt. 2 Ein 1-Faktor in einem beliebigen Graphen G = (E, K) ist ein Matching M , das alle . G heißt 1-faktorisierbar, falls K in disjunkte 1-Faktoren Ecken enth¨ alt, also |M | = |E| 2 ¨ zerlegt werden kann. Schließe mit Hilfe der vorigen Ubung, dass ein k-regul¨ arer bipartiter Graph, k ≥ 1, 1-faktorisierbar ist. ⊲ 3 Zeige, dass ein bipartiter Graph G = (S +T, K) mit |S| = |T | = n und |K| > (m−1)n ein Matching der Gr¨ oße m enth¨ alt. Ist m bestm¨ oglich?
164
8
matchings und netzwerke
4 Sei T = {1, 2, . . . , n}. Wie viele verschiedene Transversalen hat die Mengenfamilie A = {{1, 2}, {2, 3}, {3, 4}, . . . , {n − 1, n}, {n, 1}}? 5 Zeige, dass ein Baum h¨ ochstens einen 1-Faktor besitzt. 6 Zeige, dass der Petersen Graph nicht 1-faktorisierbar ist. ⊲ 7 Sei G ein Graph auf n Ecken, n gerade, in dem d(u) + d(v) ≥ n − 1 f¨ ur je zwei Ecken u, v gilt. Zeige, dass G einen 1-Faktor besitzt. ⊲ 8 Das m × n-Gitter G(m, n) hat als Ecken die Paare (i, j), 1 ≤ i ≤ m, 1 ≤ j ≤ n, wobei (i, j), (k, ℓ) durch eine Kante verbunden sind, wenn i = k, |j − ℓ| = 1 ist oder ¨ j = ℓ, |i − k| = 1 (siehe Ubung 7.18 f¨ ur G(2, n)). Zeige, dass G(m, n) genau dann einen 1-Faktor hat, wenn mn gerade ist. Berechne die Anzahl der 1-Faktoren in G(2, n). 9 L¨ ose das optimale Zuordnungsproblem f¨ ur die beiden folgenden Matrizen auf K4,4 bzw. K5,5 : ⎛ ⎞ ⎛ ⎞ 8 7 5 11 4 8 3 2 4 ⎜ ⎟ ⎜ 10 9 3 6 ⎟ ⎜ 9 7 6 11 3 ⎟ ⎜ ⎟ , ⎜ 12 9 4 ⎟. 8 2 ⎟ ⎝ 2 1 1 5 ⎠ ⎜ ⎝ 1 2 3 5 6 ⎠ 3 8 2 1 11 4 2 8 2
10 Analysiere nochmals genau, warum Satz 8.3 aus 8.9 folgt.
11 L¨ ose das Chinesische-Postboten-Problem f¨ ur das folgende Straßensystem: 8
1 2
6 4
2 5
11 2
4 2
6 4
3 5
3
2
3
¨ von A nach B. Das Ol ¨ kann via eine n¨ 12 Eine Pipeline schickt Ol ordliche Route und via eine s¨ udliche Route gehen. Jede Route hat eine Zwischenstation mit einer Pipeline von S¨ uden nach Norden. Die erste H¨ alfte der n¨ ordlichen Route (bis zur Station) hat eine Kapazit¨ at von 300 Barrel pro Stunde, die zweite H¨ alfte 400 Barrel/Stunde. F¨ ur die s¨ udliche Route sind die Kapazit¨ aten 500 und 300, und f¨ ur die Pipeline von S¨ uden nach Norden 300 Barrel. Wie viele Barrel k¨ onnen maximal in der Stunde von A nach B transportiert werden? ⊲ 13 Beweise: Sei G = (E, K) Hamiltonsch und A ⊆ E, A = ∅. Dann hat G A h¨ ochstens |A| Komponenten. 14 Zeige, dass der Petersen-Graph nicht Hamiltonsch ist. ⊲ 15 Zeige, dass alle Hyperw¨ urfel Qn , n ≥ 2, Hamiltonsch sind. 16 Konstruiere einen nicht-Hamiltonschen Graphen auf 10 Ecken, f¨ ur den d(u)+d(v) ≥ 9 ¨ f¨ ur je zwei nichtbenachbarte Ecken gilt. (Siehe Ubung 43, dass dies bestm¨ oglich ist.) ⊲ 17 Gegeben sei ein W¨ urfel mit 27 = 3 × 3 × 3 K¨ asest¨ ucken. Eine Maus sucht einen Weg von einem Eckst¨ uck u ucke, der schließlich im Mittelst¨ uck endet. Ist ¨ber alle anderen St¨ dies m¨ oglich? Diskutiere dieselbe Frage f¨ ur 5 × 5 × 5 und allgemein f¨ ur n × n × n, n ungerade.
¨bungen u
165
18 Teste die Methode (BI) Billigste Insertion“ f¨ ur das Rheinlandproblem aus Abschnitt ” 8.4. 19 Eine weitere Methode zur Konstruktion einer Traveling Salesman-Tour ist Fernste ” Insertion“ (F I). Starte mit einem beliebigen Kreis der L¨ ange 3. Sei C = {Ei1 , . . . , Eik } ′ ′ / C mit w(Eij , Eij ) = min(w(Eh , Eij ) : schon konstruiert. Zu jedem Eij bestimme Eij ∈ Eh ∈ / C} und unter den Ei′j bestimme das entfernteste“ Eij0 mit w(Ei′j0 , Eij0 ) ≥ ” ur alle ij . Nun baue Ei′j0 an der g¨ unstigsten Stelle ein wie in (BI). Tew(Ei′j , Eij ) f¨ ste (F I) f¨ ur das Rheinland-Problem. ⊲ 20 Das Tr¨ agerproblem hat als Eingabe (Graph G, k ∈ N) mit der Frage: Existiert ein Tr¨ ager D in G mit |D| ≤ k? Das Cliquenproblem hat als Eingabe (Graph G, k ∈ N) mit der Frage: Existiert ein vollst¨ andiger Untergraph H ⊆ G mit |E(H)| ≥ k? Zeige, dass beide Problem in N P liegen und polynomial ¨ aquivalent sind. Hinweis: Betrachte ¨ sind beide Probleme N P -vollst¨ andig. den komplement¨ aren Graphen G. Ubrigens 21 Konstruiere k-regul¨ are Graphen (k > 1) ohne 1-Faktor f¨ ur jedes k.
¨ ⊲ 22 Sei G = (S + T, K) bipartit. Zeige die Aquivalenz der folgenden Aussagen: a. G ist zusammenh¨ angend und jede Kante ist in einem 1-Faktor, b. |S| = |T | und |N (A)| > |A| f¨ ur alle A ⊆ S mit ∅ = A = S, c. G {u, v} hat einen 1-Faktor f¨ ur alle u ∈ S, v ∈ T . ¨ 23 Wir haben in Ubung 6.10 die Unabh¨ angigkeitszahl α(G) eingef¨ uhrt. Zeige: Ein Graph f¨ u r jeden Untergraphen H von G ⇔ m(H) = d(H) f¨ ur G ist bipartit ⇔ α(H) ≥ |E(H)| 2 jeden Untergraphen H von G. (m(H) = Matchingzahl, d(H) = Tr¨ agerzahl) 24 Zeige: Ist G ein k-regul¨ arer Graph auf n Ecken, so gilt α(G) ≤
n . 2
25 Zeige, dass die Kantenmenge eines bipartiten Graphen G mit Maximalgrad ∆ Vereinigung von ∆ Matchings ist. ⊲ 26 Zwei Personen spielen ein Spiel auf einem zusammenh¨ angenden Graphen G. Sie w¨ ahlen abwechselnd verschiedene Ecken u1 , u2 , u3 , . . . unter der Bedingung ui ui+1 ∈ K (i ≥ 1). Der letzte Spieler, der eine Ecke w¨ ahlen kann, gewinnt. Zeige, dass der erste Spieler genau dann eine Gewinnstrategie hat, wenn G keinen 1-Faktor hat. ¨ 27 Uberlege, wie die Methode des B¨ aume Wachsens“ aus Abschnitt 8.2 modifiziert wer” den kann, um allgemein ein Maximum Matching zu finden. ⊲ 28 Zeige: Jeder k-regul¨ are bipartite Graph G = (S + T, K) enth¨ alt mindestens k! verschiedene 1-Faktoren. Hinweis: Induktion nach n = |S| = |T |. 29 Wir betrachten das u ¨bliche 8 × 8-Schachbrett. Entfernt man zwei weiße (oder zwei schwarze) Felder, so kann man den Rest nicht mehr mit 31 Dominosteinen belegen (klar?). Zeige aber: Entfernt man irgendein weißes und irgendein schwarzes Feld, so l¨ asst sich das Brett mit 31 Dominosteinen belegen. 30 Sei M ein Matching in einem Graphen G, und u ∈ E M -unsaturiert. Zeige: Wenn es keinen M -alternierenden Weg gibt, der in u startet, so ist u unsaturiert in einem Maximum Matching. 31 Sei G = (E, K) ein Graph ohne isolierte Ecken, m(G) sei die Matching-Zahl und β(G) die kleinste Anzahl von Kanten, die alle Ecken treffen. Zeige m(G) + β(G) = |E|.
166
8
matchings und netzwerke
⊲ 32 Zeige, dass f¨ ur bipartite Graphen G, α(G) = β(G) gilt. Gib ein Beispiel eines nichtbipartiten Graphen, f¨ ur den die Behauptung falsch ist. 33 Zeige, dass die Laufzeit des Optimalen Matching-Algorithmus auf einem bipartiten Graphen G = (S + T, K) in der Eckenzahl n gleich O(n3 ) ist. ⊲ 34 Verallgemeinertes Tic-Tac-Toe. Ein Positionsspiel ist ein Paar (S, F ), F ⊆ B(S). Die Mengen aus F heißen die Gewinnmengen. Zwei Spieler besetzen abwechselnd Positionen, d. h. Elemente von S. Ein Spieler gewinnt, wenn er eine Gewinnmenge A ∈ F vollst¨ andig besetzt hat. Das gew¨ ohnliche 3 × 3-Tic-Tac-Toe hat also |S| = 9, |F| = 8. Angenommen, es gilt |A| ≥ a f¨ ur alle A ∈ F , und jedes s ∈ S ist in h¨ ochstens b Gewinnmengen. Zeige: Der zweite Spieler kann ein Unentschieden erzwingen, falls a ≥ 2b ist. Hinweis: Betrachte den bipartiten Graphen auf S + (F ∪ F ′ ) mit s adjazent zu A, A′ falls s ∈ A, wobei F ′ eine Kopie von F ist. Was folgt f¨ ur das n × n-Tic-Tac-Toe? 35 Bestimme einen maximalen Fluss von 0 nach 11 in dem folgenden gerichteten Graphen, wobei die Zahlen die Kapazit¨ aten sind. 6
8
2
7
3
8
6
2
6
9 7
11
7
9
3
1
6
14
5
1
3
9
5
0
8
8
2
4
2
8
4
6
1
4
2
11
12
10 9
⊲ 36 Es seien (r1 , . . . , rm ) und (s1 , . . . , s n ) zwei Folgen nichtnegativer ganzer Zahlen, die n m ugen. Zeige den Satz von den Bedingungen s1 ≥ . . . ≥ sn und i=1 ri = j=1 sj gen¨ Gale-Ryser: Genau dann gibt es eine m × n-Matrixmit 0, 1-Eintr¨ agenund Zeilensummen k ur alle k = r1 , . . . , rm bzw. Spaltensummen s1 , . . . , sn , wenn m i=1 min(ri , k) ≥ j=1 sj f¨ 1, . . . , n gilt. Hinweis: Transformiere das Problem auf ein Angebot-Nachfrage Problem auf dem bipartiten Graphen G = (Z + S, K), Z = Zeilen, S = Spalten, und wende den entsprechenden Satz aus Abschnitt 8.3 an. ulle die Dreiecksungleichung cik ≤ cij +cjk . ⊲ 37 Die symmetrische Matrix (cij ), cij ≥ 0, erf¨ achster Nachbar“ Tour. Zeige cN N ≤ 21 (⌈lg n⌉ + 1)copt . Sei cN N die Kosten einer N¨ ” der N N -Tour. Zeige zun¨ achst copt ≥ Hinweis: Seien ℓ1 ≥ . . . ≥ ℓn die Kantenkosten 2k n ℓ . 2 i=k+1 ℓi f¨ ur 1 ≤ k ≤ ⌊ 2 ⌋ und copt ≥ 2 n i i=⌈n/2⌉+1
= (E, K) ein gerichteter Graph, u = v ∈ E, (u, v) ∈ ⊲ 38 Sei G / K. A ⊆ K heißt u, v A kein gerichteter Weg von u nach v existiert. trennende Kantenmenge, falls in G Eine Menge W von gerichteten u, v-Wegen heißt ein u, v-Wegesystem, falls je zwei Wege aus W kantendisjunkt sind. Beweise den Satz von Menger: max |W| = min |A| u ¨ber alle Wegesysteme W und u, v-trennenden Kantenmengen A. Hinweis: Setze die Kapazit¨ at c ≡ 1, und nimm u als Quelle, v als Senke.
¨bungen u
167
39 Beweise die Eckenversion des Satzes von Menger. Das heißt, u = v ∈ E, (u, v) ∈ / K. Die Mengen A ⊆ E {u, v} sind trennende Eckenmengen, und die u, v-Wege aus W sind eckendisjunkt (bis auf u, v). Hinweis: Tranformiere das Problem in die Kantenversion. = (E, K) ein gerichteter Graph, S, T ⊆ E. Eine S, T -trennende Eckenmenge 40 Sei G ¨ A und ein S, T -Ecken-Wegesystem W werden analog zu den vorigen Ubungen definiert. Beweise wieder max |W| = min |A|. Hinweis: Adjungiere zus¨ atzliche Ecken u∗ , v ∗ zu S bzw. T . ¨ ⊲ 41 Spezialisiere die vorige Ubung auf bipartite Graphen G = (S + T, K). 42 Sch¨ atze die Laufzeit des Algorithmus zur Konstruktion eines Euler-Zuges in Abschnitt 8.4 ab. ⊲ 43 G sei ein Graph mit n ≥ 3 Ecken. Zeige: Gilt d(u) + d(v) ≥ n f¨ ur jedes Paar nichtbenachbarter Ecken, so ist G Hamiltonsch. Hinweis: Angenommen, der Satz ist f¨ ur n falsch. Dann w¨ ahle unter allen Gegenbeispielen eines mit einer maximalen Anzahl von Kanten. 44 Wir betrachten das asymmetrische Traveling Salesman-Problem ATSP, das heißt es kann cij = cji sein. Gegeben sei die Kostenmatrix (cij ) auf {1, . . . , n}. Wir konstruieren auf {1, . . . , n, n + 1}. Die Kanten (i, 1), 1 ≤ i ≤ n, folgenden gerichteten Graphen G werden ersetzt durch (i, n + 1) mit demselben Gewicht ci,1 , alle anderen Kanten bleiben unver¨ andert. Zeige: ATSP ist ¨ aquivalent zur Bestimmung eines k¨ urzesten gerichteten Weges der L¨ ange n von 1 nach n + 1 in G. 45 Sei (cij ) eine symmetrische Kostenmatrix f¨ ur das TSP, cij ≥ 0, welche die Dreiecksungleichung cik ≤ cij +cjk erf¨ ullt. Starte mit einer beliebigen Ecke v und schreibe C1 = {v}. / Ck mit minimalem AbSei der Kreis Ck = {u1 , . . . , uk } schon konstruiert. Bestimme u ∈ uge u vor der entsprechenden Ecke mit k¨ urzestem Abstand ein. Zeige, stand zu Ck und f¨ dass f¨ ur die so konstruierte Tour c(T ) ≤ 2c(Topt ) gilt.
⊲ 46 Zeige, dass das Entscheidungsproblem, ob zwei Graphen G und H isomorph sind, in NP liegt, durch eine polynomiale Beschreibung der Verifikation G ∼ = H. 47 Zeige, dass P ⊆ co-N P gilt.
⊲ 48 Beweise, dass N P = co-N P impliziert P = N P .
9
Suchen und Sortieren
9.1
Suchprobleme und Entscheidungsb¨ aume
Eine Variante des folgenden Spieles kennt wahrscheinlich jeder. Jemand verl¨asst den Raum. Die u ¨ brigen Spieler einigen sich auf einen gewissen Begriff. Nach der R¨ uckkehr sucht der ausgew¨ ahlte Spieler nach dem Begriff, indem er Fragen stellt, die nur ja/nein Antworten erlauben. Err¨ at er den gesuchten Begriff mit h¨ochstens 20 Fragen, so hat er gewonnen. Das 20-Fragen“ Spiel enth¨ alt bereits alle wesentlichen Elemente eines allge” meinen Suchproblems: Gegeben ist ein Suchbereich S und ferner gewisse Tests, mit denen das gesuchte Element x∗ bestimmt werden soll. Betrachten wir ein mathematisches Beispiel: Der Frager weiß, dass der gesuchte Begriff eine Zahl von 1 bis 7 ist, der Suchbereich ist also S = {1, 2, . . . , 7). Die zul¨ assigen Tests sind: x∗ < i?, wobei i irgendeine nat¨ urliche Zahl ist. Wie viele Fragen werden zur Bestimmung von x∗ ben¨otigt? Einen Frage-Algorithmus k¨ onnen wir leicht anhand eines sogenannten Entscheidungsbaumes modellieren: x*< 4 ?
1,...,7 ja
in
ne
x* < 3 ?
x*< 6 ?
1,2,3
4,5,6,7 ja
n
x*< 5 ?
in ne
5
x*< 2 ?
4
1,2 2
ja
6
ja
3 ja
ne
4,5 ja
in
6,7 7
i ne
ne in
x*< 7 ?
in
ne
1
In den rund gezeichneten Ecken stehen die an dieser Stelle des Algorithmus noch m¨ oglichen Ergebnisse, in den eckig gezeichneten sind die eindeutigen Resultate enthalten. Wir sagen, dass der Spieler bei diesem Suchalgorithmus im schlechtesten Fall 3 Fragen ben¨ otigt, und im Durchschnitt (unter Annahme der Gleichwahrscheinlichkeit) 71 (1 · 2 + 6 · 3) = 20 7 Fragen. Ein weiteres allseits bekanntes Suchproblem betrifft W¨agungen von M¨ unzen. Wir haben n M¨ unzen, von denen eine falsch ist. Alle echten M¨ unzen haben dasselbe Gewicht, von der falschen wissen wir nur, dass ihr Gewicht verschieden ist, aber nicht, ob sie leichter oder schwerer ist. Der Suchbereich ist also {1L , 1S , 2L , 2S , . . . , nL , nS }, wobei iL bzw. iS bedeutet, dass die i-te M¨ unze falsch ist, und zwar leichter bzw. schwerer. In einem Test nehmen wir zwei Mengen A und B von M¨ unzen,
170
9
suchen und sortieren
|A| = |B|, legen A auf die linke Waagschale einer Balkenwaage, B auf die rechte Schale und beobachten das Ergebnis. Der Test hat also drei Ausg¨ange: A < B (A ist leichter als B), A = B (gleich schwer), A > B (A ist schwerer als B). Der Ausgang A < B gibt uns die Information, dass entweder die gesuchte M¨ unze in A ist (und leichter ist) oder in B ist (und schwerer ist). Dasselbe gilt f¨ ur A > B mit den Rollen von A und B vertauscht. Im Fall A = B wissen wir, dass die gesuchte M¨ unze weder in A noch in B ist. F¨ ur n = 12 f¨ uhrt der folgende Algorithmus zum Ziel, wobei der rechte Teil unseres Entscheidungsbaumes symmetrisch zum linken ist, so dass wir ihn der ¨ Ubersichtlichkeit halber weglassen. 1,2,3,4 : 5,6,7,8
sym
met
1,2,6 : 3,5,9
7:8
= >
4L
7S
risch
< 3L
= 6S
11 S 9L 10 S
>
12 S 12 L
10 : 11 < =
>
10 L 9S
11 L
Jeder Frage-Algorithmus kann also durch einen Entscheidungsbaum dargestellt werden, und die L¨ ange des Algorithmus korrespondiert genau zur L¨ange des Weges von der Wurzel“ zur jeweiligen Endecke“. Wir wollen nun die notwendigen Begriffe ” ” f¨ ur allgemeine Suchprobleme zusammenstellen. Ein Wurzelbaum (T, v) ist ein Baum im u ¨ blichen Sinn zusammen mit einer ausgezeichneten Ecke v, der Wurzel von T . Wir sagen auch, T ist verwurzelt in v. Wir wissen, dass f¨ ur jede Ecke x von T genau ein Weg von v nach x existiert. Wir k¨ onnen uns diese Wege wie in den Beispielen als von oben nach unten verlaufend vorstellen – sie sind also eigentlich gerichtete Wege. Die folgenden Begriffe ergeben ¨ sich aus dieser Uberlegung. Eine Ecke x ist Vorg¨ anger von y, falls x in dem Weg P (v, y) von v nach y enthalten ist, und x heißt unmittelbarer Vorg¨ anger, falls P (v, y) = v, . . . , x, y ist. Analog haben wir die Begriffe Nachfolger und unmittelbarer Nachfolger. Die Ecken ohne Nachfolger (also jene vom Grad 1) heißen Endecken oder Bl¨ atter von T , die u ¨ brigen Ecken innere Ecken. Ebenso ist klar, was unter einem Unterbaum verwurzelt in x zu verstehen ist: x ist die Wurzel und der Baum enth¨ alt alle Nachfolger von x. Die L¨ ange ℓ(x) einer Ecke x ist die L¨ ange des eindeutigen Weges von der Wurzel v nach x. Die Wurzel ist also die einzige Ecke mit L¨ange 0. Schließlich verstehen wir unter der L¨ ange L(T ) des Baumes, L(T ) = max ℓ(x), die L¨ange eines l¨angsten x∈E Weges von der Wurzel.
9.1
suchprobleme und entscheidungsb¨ aume
171
Der folgende Wurzelbaum hat 22 Ecken, 12 sind Bl¨atter, 10 sind innere Ecken, die L¨ ange des Baumes ist 4. Wir werden die inneren Ecken stets rund zeichnen und die Bl¨ atter eckig.
In einem Wurzelbaum T hat also jede Ecke, abgesehen von der Wurzel, genau einen unmittelbaren Vorg¨ anger. Wir sagen, T ist ein (n, q)-Baum, falls T n Bl¨atter hat, und die maximale Anzahl von unmittelbaren Nachfolgern einer inneren Ecke q ist, wobei wir stets q ≥ 2 voraussetzen. T heißt ein vollst¨ andiger (n, q)-Baum, wenn ¨ jede innere Ecke genau q Nachfolger hat. Es gilt dann q − 1|n − 1 (siehe Ubung 3). Mit T (n, q) bezeichnen wir die Klasse der (n, q)-B¨aume. Unser erster Algorithmus von oben liefert einen vollst¨andigen (7, 2)-Baum, unsere W¨ ageprozedur einen (nicht vollst¨ andigen) (24, 3)-Baum, und unser letztes Beispiel ist ein (12, 4)-Baum. Wir haben also jeden Algorithmus A f¨ ur ein gegebenes Suchproblem als einen (n, q)-Baum T dargestellt. Die Bl¨ atter von T korrespondieren zu den Ergebnissen, n ist dabei die Gr¨ oße des Suchbereichs, und q ist die maximal m¨ogliche Anzahl von Ausg¨ angen bei unseren Testfragen. Die L¨ ange L(A) des Algorithmus im schlechtesten Fall (worst case) ist genau die L¨ ange L(T ) des zugeh¨origen Entscheidungsbaumes T . F¨ ur ein gegebenes Suchproblem sind wir somit an der Gr¨oße L = min L(A) u oglichen Algorithmen A, d. h. u ¨ ber alle m¨ ¨ ber alle m¨oglichen Entscheidungsb¨aume interessiert. Die folgende untere Schranke von L heißt die informationstheoretische Schranke. Satz 9.1.
Sei T ∈ T (n, q), n ≥ 1, q ≥ 2. Dann gilt L(T ) ≥ ⌈logq n⌉ ,
wobei logq n der Logarithmus zur Basis q ist. Beweis. Wir zeigen, dass f¨ ur einen Baum T ∈ T (n, q) der L¨ange L stets q L ≥ n gilt. F¨ ur L = 0 ist dies klar. Nun verwenden wir Induktion nach L. Die unmittelbaren Nachfolger der Wurzel v seien x1 , . . . , xt , t ≤ q. Einer der Unterb¨aume Ti verwurzelt in xi , muss mindestens nq Bl¨atter enthalten. Nach Induktion gilt
172
9
suchen und sortieren
q L(Ti ) ≥ nq und mit L ≥ L(Ti ) + 1 also q L ≥ q L(Ti )+1 ≥ n. Da L(T ) eine ganze Zahl ist, folgt L(T ) ≥ ⌈logq n⌉. Das Wort informationstheoretische“ Schranke resultiert aus der Interpretation ei” nes Suchprozesses als Informations-Gewinn. Am Anfang wissen wir nichts (Information 0), mit jeder Frage erh¨ ohen wir unsere Information u ¨ ber das tats¨achliche Ergebnis, bis wir am Schluss alles wissen (vollst¨andige Information). Die Gr¨oße ⌈logq n⌉ gibt also eine untere Schranke f¨ ur die im schlechtesten Fall notwendige Anzahl von Fragen, um vollst¨ andige Information zu gewinnen. Beispiel. Sind alle Tests erlaubt, so erhalten wir alle B¨aume T ∈ T (n, q) als Entscheidungsb¨ aume. F¨ ur einen vollst¨ andigen (n, q)-Baum T gilt offenbar L(T ) = ⌈logq n⌉, also ist die untere Schranke in diesem Fall erf¨ ullt. Daraus ergibt sich sofort das allgemeine Problem: F¨ ur welche Familien W von (n, q)-B¨aumen wird die untere Schranke angenommen, d. h. min(L(T ) : T ∈ W) = ⌈logq n⌉? Betrachten wir nochmals unser W¨ ageproblem. F¨ ur 12 M¨ unzen haben wir n = 24 m¨ ogliche Ergebnisse, also erhalten wir L ≥ ⌈log3 24⌉ = 3, somit L = 3 nach unserem Algorithmus von vorhin. Wie ist es nun mit 13 M¨ unzen? Theoretisch ist auch hier L = 3 m¨ oglich, da log3 26 < 3 ist. Angenommen, wir legen bei der ersten W¨agung ℓ M¨ unzen in jede Schale. Falls die linke Seite leichter ist, kann jede der ℓ M¨ unzen auf der linken Seite leichter sein, oder jede der ℓ M¨ unzen auf der rechten Seite schwerer. Insgesamt erhalten wir also 2ℓ m¨ ogliche Ergebnisse. Dieselbe Zahl 2ℓ erhalten wir, falls die rechte Seite leichter ist. Im Fall der Gleichheit ergeben sich 26 − 2ℓ − 2ℓ = 2m m¨ogliche Ausg¨ange. Aus 26 = 2ℓ + 2ℓ + 2m schließen wir max(2ℓ, 2m) ≥
26 , 3
also max(2ℓ, 2m) ≥ 10, da 2ℓ und 2m gerade sind. Aus der informationstheoretischen Schranke erkennen wir, dass max(2ℓ, 2m) nicht in zwei W¨agungen erledigt werden kann, also gilt L ≥ 4. Dass vier W¨ agungen f¨ ur 13 M¨ unzen gen¨ ugen, ist leicht zu sehen, somit ist L = 4 in diesem Fall. Der Leser kann sich u ¨ berlegen ¨ (oder die Ubungen konsultieren), dass dies der typische Ausnahmefall ist. Es gilt allgemein L = ⌈log3 (2n + 2)⌉ f¨ ur das n-M¨ unzenproblem.
9.2
Der Hauptsatz der Suchtheorie
Interessanter als die Bestimmung der L¨ ange eines Suchprozesses im schlechtesten Fall ist der Durchschnittsfall. In den allermeisten F¨allen werden die m¨oglichen Ergebnisse nicht mit der gleichen Wahrscheinlichkeit auftreten. Wenn wir wissen, dass ein Ergebnis xi sehr wahrscheinlich ist, dann werden wir einen Entscheidungsbaum konstruieren, der xi eine kurze L¨ ange ℓi zuteilt. Unser allgemeines Problem stellt sich also wie folgt dar: Gegeben sei ein (n, q)Baum T mit Bl¨ attern x1 , . . . , xn , und einer Wahrscheinlichkeitsverteilung
9.2
173
der hauptsatz der suchtheorie
(p1 , . . . , pn ), pi = p(x∗ = xi ). Sei ℓi die L¨ange von xi , dann sind wir an der durchschnittlichen L¨ ange n pi ℓi L(T ) = i=1
interessiert, und insbesondere an L = min L(T ), u ¨ ber alle Entscheidungsb¨aume T . L(T ) ist also nichts anderes als der Erwartungswert f¨ ur die L¨ange eines zuf¨allig herausgegriffenen Blattes. Zuerst m¨ ussen wir kl¨ aren, wann ein Baum T ∈ T (n, q) mit L¨angen ℓ1 , . . . , ℓn der Bl¨ atter u ¨ berhaupt existiert. Satz 9.2. (Kraftsche Ungleichung) atter. Dann gilt a. Sei ∈ T (n, q) gegeben mit den L¨ angen ℓ1 , . . . , ℓn der Bl¨ n T −ℓ i q ≤ 1, und wir haben Gleichheit genau dann, wenn T vollst¨ andig ist. i=1 n −ℓi b. Seien ℓ1 , . . . , ℓn ∈ N0 gegeben mit q ≤ 1. Dann existiert ein Baum i=1 T ∈ T (n, q) mit den L¨ angen ℓ1 , . . . , ℓn . Beweis. Um a. zu beweisen, bemerken wir zun¨achst, dass ein beliebiger (n, q)Baum durch Anh¨ angen von Bl¨ attern an unges¨attigte“ innere Ecken immer in ” einen vollst¨ a ndigen (n′ , q)-Baum T ′ mit n′ ≥ n transformiert werden kann. Da −ℓi die Summe q dabei zunimmt, gen¨ ugt es also, die Gleichheit f¨ ur vollst¨andige B¨ aume nachzuweisen. Wir verwenden Induktion nach n. F¨ ur n = 0 besteht der Baum nur aus der Wurzel, und wir haben q 0 = 1. Sei also n > 0. Wir ersetzen eine Gabel“ von Endecken der L¨ ange ℓ: ” l−1 l 1
2
q q
Der neue Baum T ′ ist ein vollst¨ andiger (n − q + 1, q)-Baum. Durch Induktion schließen wir n
q −ℓi =
i=1
n
i=q+1
q −ℓi + q · q −ℓ =
n
i=q+1
T
q −ℓi + q −(ℓ−1) = 1 . T′
Nun nehmen wir umgekehrt an, dass ni=1 q −ℓi ≤ 1 gilt. Sei wk = |{i : ℓi = k}|, k = 0, 1, . . . , L = L(T ), d. h. wk ist die Anzahl der Bl¨atter L¨ange k in dem der Baum T , den wir konstruieren wollen. Die Ungleichung q −ℓi ≤ 1 k¨onnen wir daher als L wk q −k ≤ 1 k=0
174
9
suchen und sortieren
schreiben, oder ¨ aquivalent als (1)
w0 q L + w1 q L−1 + . . . + wL−1 q + wL ≤ q L .
Wir konstruieren den gew¨ unschten Baum T induktiv. Falls w0 = 1 ist, haben wir L = 0, und T besteht nur aus der Wurzel. Angenommen, wir haben T bereits bis zur L¨ ange k bestimmt. Sei Nk = {u ∈ E : ℓ(u) = k}. Wir haben bereits w0 , w1 , . . . , wk Bl¨ atter der L¨ angen 0, 1, . . . , k konstruiert. In Nk stehen also die Ecken unterhalb dieser w0 + . . . + wk Bl¨ atter nicht mehr zur Verf¨ ugung, und wir folgern, dass in Nk noch k
(2)
q −
k
wi q k−i
i=0
innere Ecken frei sind. Nach (1) haben wir wk+1 q L−k−1 ≤ q L −
k
wi q L−i ,
i=0
also wk+1 ≤ q k+1 −
k i=0
wi q k+1−i = q(q k −
k
wi q k−i ) .
i=0
Mit (2) folgt, dass wir alle wk+1 Bl¨ atter der L¨ange k + 1 platzieren k¨onnen. Beispiel. Sei n = 6, q = 2, ℓ1 = 1, ℓ2 = 2, ℓ3 = 3, ℓ4 = ℓ5 = 5, ℓ6 = 6. Wir 6 haben w0 = 0, w1 = w2 = w3 = 1, w4 = 0, w5 = 2, w6 = 1 und k=0 wk 26−k = 5 4 3 6 2 + 2 + 2 + 2 · 2 + 1 = 61 ≤ 2 . Die Konstruktion ist nun wie folgt:
Bevor wir zu unserem Hauptergebnis kommen, brauchen wir noch ein Resultat u ur den nat¨ urlichen Loga¨ ber Logarithmen. Aus der Analysis wissen wir, dass f¨ rithmus log gilt: log x ≤ x − 1 f¨ ur x > 0 mit log x = x − 1 genau f¨ ur x = 1. n Hilfssatz 9.3. Es seien n n s1 , . . . , syni , y1 , . . . , yn positive reelle Zahlen mit i=1 si ≤ i=1 yi . Dann gilt i=1 yi logq si ≥ 0 (q > 1) mit Gleichheit genau dann, wenn si = yi f¨ ur alle i gilt.
9.2
175
der hauptsatz der suchtheorie
x Beweis. Da logq x = log ugt es, den nat¨ urlichen Logarithmus zu belog q ist, gen¨ trachten. Aus log x ≤ x − 1 folgt n
n
yi log
i=1
n
n
n
si si ≤ yi ( − 1) = si − yi ≤ 0 , yi yi i=1 i=1 i=1
und daher i=1 yi log ysii ≥ 0. Gleichheit kann nur gelten, wenn log ysii = alle i ist, d. h. wenn si = yi f¨ ur alle i gilt.
si yi
− 1 f¨ ur
Der folgende ber¨ uhmte Satz von Shannon wird der 1. Hauptsatz der Informationstheorie genannt. Satz 9.4. Sei n ≥ 1, q ≥ 2, und p = (p1 , . . . , pn ) eine Wahrscheinlichkeitsverteilung auf den Bl¨ attern von T ∈ T (n, q). Dann gilt −
n i=1
pi logq pi ≤ L = min L(T ) < (−
n
pi logq pi ) + 1 .
i=1
Beweis. Wir nehmen zun¨ achst pi > 0 f¨ ur allei an. Um die linke Ungleichung n n zu beweisen, m¨ ussen wir zeigen, dass L(T ) = i=1 pi ℓi ≥ − i=1 pi logq pi f¨ ur alle B¨ a ume T ∈ T (n, q) gilt. Aus der Kraftschen Ungleichung 9.2 haben wir n −ℓi n −ℓi ≤ so erhalten i=1 q i=1 pi . Setzen n wir in 9.3 ℓsi i = q , yi = pi , n1 = n pi wir daraus i=1 pi logq q−ℓi = i=1 pi logq (pi q ) ≥ 0 oder L(T ) = i=1 pi ℓi ≥ n − i=1 pi logq pi . Um die rechte Ungleichung zu beweisen, definieren wir nat¨ urliche Zahlen ℓi durch − logq pi ≤ ℓi < (− logq pi ) + 1. Wegen 0 < pi ≤ 1 sind die ℓi ’s wohldefiniert. Wir ur alle i und somit ni=1 q −ℓi ≤ ni=1 pi = 1. Nach Teil b haben also q −ℓi ≤ pi f¨ der Kraftschen Ungleichung existiert also ein Baum T ∈ T (n, q) mit den L¨angen ℓ1 , . . . , ℓn der Bl¨ atter, und wir erhalten L(T ) =
n i=1
pi ℓi
0 umgehen, indem wir 0 · logq 0 = 0 setzen. Der Beweis funktioniert dann auch in diesem Fall. Der Satz bestimmt die minimale L¨ ange von (n, q)-B¨aumen versehen mit einer Verteilung (p , . . . , p ) bis auf einen Fehler < 1. Ist q = 2, so heißt H(p1 , . . . , pn ) = 1 n − ni=1 pi lg pi die Entropie von (p1 , . . . , pn ). Sie ist also, im Sinne der Informationstheorie, ein Maß f¨ ur die durchschnittliche Anzahl von ja/nein-Fragen, die n¨otig sind, um volle Information zu erhalten. Sind alle B¨aume T ∈ T (n, q) m¨ ogliche Entscheidungsb¨aume f¨ ur das gegebene Suchproblem, so gibt 9.4 eine untere und obere Schranke f¨ ur die durchschnittliche Suchdauer. Im allgemeinen kommen aber nur gewisse B¨aume in Frage. Zum
176
9
suchen und sortieren
Beispiel haben beim W¨ agungsproblem wegen |A| = |B| die linken und rechten Unterb¨ aume stets dieselbe Anzahl von Bl¨ attern. Wir k¨onnen f¨ ur beliebige Suchprobleme also zun¨ achst nur die untere Schranke verwenden. Kehren wir nochmals aumen T ∈ T (n, q) zur¨ uck. Wir wissen, dass n zu den B¨ L = min L(T ) etwa − i=1 pi logq pi ist. Aber was ist der genaue Wert L(p1 , . . . , pn )? Der folgende ber¨ uhmte Algorithmus von Huffman bestimmt diesen Wert. ¨ Ubrigens k¨ onnen wir anstelle einer Verteilung (p1 , . . . , pn ) irgendwelche Gewichte w1 , . . . , wn ∈ R+ w¨ ahlen. Setzen wir pi = wi / ni=1 wi (i = 1, . . . , n), so sind die optimalen B¨ aume nat¨ urlich f¨ ur beide Probleme dieselben. Sei also (p1 , . . . , pn ) eine Verteilung, wobei wir p1 ≥ p2 ≥ . . . ≥ pn ≥ 0 annehmen wollen. ur die Verteilung (p1 , . . . , pn ), d. h. n Der Baum T ∈ T (n, q) sei optimal f¨ L(T ) = i=1 pi ℓi = L(p1 , . . . , pn ). Wir k¨ onnen annehmen, dass q−1 ein Teiler von n−1 ist, indem wir weitere Bl¨ atter mit pj = 0 hinzunehmen. Dies ¨andert offensichtlich nichts an L(T ). Wir wollen nun T analysieren. Es seien x1 , . . . , xn die Bl¨atter von T mit den L¨ angen ℓ1 , . . . , ℓn und den Wahrscheinlichkeiten p1 ≥ . . . ≥ pn . (i) Es gilt ℓ1 ≤ ℓ2 ≤ . . . ≤ ℓn . Angenommen, es existieren Indizes i, j mit pi > pj , ℓi > ℓj . Vertauschen wir in T die Pl¨ atze von xi und xj , so erhalten wir einen Baum T ′ ∈ T (n, q) mit L(T ′ ) =
k=i,j
pk ℓk + pi ℓj + pj ℓi = L(T ) − (pi − pj )(ℓi − ℓj ) < L(T ) ,
im Widerspruch zur Optimalit¨ at von T . ur alle j mit (ii) Sei L = L(T ). Aus (i) folgt, dass ℓi = L impliziert ℓj = L f¨ i ≤ j ≤ n. Aus der Bedingung q − 1 | n − 1 folgt ferner, dass T vollst¨andig ist. H¨ atte n¨ amlich eine innere Ecke u mit ℓ(u) ≤ L − 2 weniger als q unmittelbare Nachfolger, so k¨ onnten wir ein Blatt der L¨ ange L an u anh¨angen, und T w¨are nicht minimal. Sei I die Menge der inneren Ecken u mit ℓ(u) ≤ L − 2 und J jene mit ℓ(u) = L − 1. Jede Ecke mit Ausnahme der Wurzel hat genau einen unmittelbaren Vorg¨ anger. Die Ecken von I haben q unmittelbare Nachfolger und vj ∈ J habe nj Nachfolger (Bl¨ atter der L¨ ange L). Durch zweifaches Abz¨ahlen erhalten wir |I|q +
J
nj = |I| + |J| − 1 + n ,
(−1 wegen der Wurzel), somit (n − 1) − |I|(q − 1) =
(nj − 1) .
Wegen q − 1 | n − 1 folgt q − 1 | (nj − 1). Ist nj = q f¨ ur alle j, dann ist T vollst¨ andig. Andernfalls ersetzen wir soviele nj durch q wie m¨oglich (dies ¨andert L nicht). F¨ ur die u ¨ brigen n′j gilt wegen q − 1 | (nj − 1) dann n′j = 1. Hat aber eine innere Ecke u, ℓ(u) = L − 1, nur ein Nachfolgerblatt x, so k¨onnen wir x an die Stelle von u hinaufschieben, im Widerspruch zur Minimalit¨at von T .
9.2
der hauptsatz der suchtheorie
177
(iii) Wir k¨ onnen also annehmen, dass xn−q+1 , . . . , xn mit den L¨angen ℓn−q+1 = . . . = ℓn = L alle einen gemeinsamen unmittelbaren Vorg¨anger v haben. Nun ersetzen wir die Gabel
v’
v
x n−q+1
xn
und erhalten einen vollst¨ andigen Baum T ′ ∈ T (n − q + 1, q). Teilen wir v ′ die Wahrscheinlichkeit p = pn−q+1 + . . . + pn zu, so folgt L(p1 , . . . , pn−q , p) ≤ L(T ′ ) = L(T ) − pL + p(L − 1) = L(T ) − p . (iv) Es sei umgekehrt U ′ ein optimaler (n − q + 1, q)-Baum f¨ ur die Verteilung (p1 , . . . , pn−q , p) und v ′ eine Endecke, deren Wahrscheinlichkeit p ist, ℓ(v ′ ) = ℓ. Wir ersetzen v’
p n−q+1
pn
und erhalten einen (n, q)-Baum U f¨ ur die Verteilung (p1 , . . . , pn ), wobei gilt L(p1 , . . . , pn ) ≤ L(U ′ ) − pℓ + p(ℓ + 1) = L(U ′ ) + p.
Nehmen wir (iii) und (iv) zusammen, so schließen wir (v) L(p1 , . . . , pn ) = L(p1 , . . . , pn−q , p)+p , wobei p = pn−q+1 +. . .+pn ist. Mit anderen Worten: T ∈ T (n, q) ist genau dann optimal f¨ ur die Verteilung (p1 , . . . , pn ), wenn T ′ ∈ T (n − q + 1, q) optimal f¨ ur die Verteilung (p1 , . . . , pn−q , p) ist, wobei p = pn−q+1 + . . . + pn die Summe der q kleinsten Wahrscheinlichkeiten ist. Das ist die Basis f¨ ur unseren Algorithmus. Die Ersetzung einer Gabel mit den kleinsten q Wahrscheinlichkeiten f¨ uhrt laut (iii) zu einem optimalen (n − q + 1, q)Baum. Wir ersetzen wieder eine Gabel usf., bis wir beim trivialen Baum angelangt sind. Nun entwickeln wir laut (iv) den trivialen Baum sukzessive in der umgekehrten Richtung, bis wir schließlich einen optimalen Baum f¨ ur die angegebene Verteilung (p1 , . . . , pn ) erhalten. Zus¨ atzlich hinzugef¨ ugte Bl¨atter mit pj = 0 streichen wir schließlich weg. Wir erkennen, dass der Huffman-Algorithmus wiederum ein Algorithmus vom Greedy-Typ ist.
178
9
suchen und sortieren
Beispiel. Sei n = 8, q = 3, p1 = p2 = 22, p3 = 17, p4 = 16, p5 = 15, p6 = p7 = 3, p8 = 2. Um q − 1 | n − 1 zu erreichen, f¨ ugen wir ein Blatt mit p9 = 0 hinzu. Die Phase (iii) von Huffmans Algorithmus sieht folgendermaßen aus: - 23 - 55 - 100 22 22 22 17 16 15 3 3 2 0
22 17 16 15 - 5 3
22 22 17 16
23 22
Nun entwickeln“ wir den trivialen Baum laut (iv): ” 100 55
23
22
23 22
17
22
16
22 22
17
16
15
5
3
22 22
17
16
15 3
3 2
wobei wir das 0-Blatt am Schluss weglassen. Die durchschnittliche L¨ange des optimalen Baumes T ist also L = 22 + 2(22 + 17 + 16 + 15 + 3) + 3(3 + 2) = 183, oder 8 wenn wir durch i=1pi = 100 dividieren, L(T ) = 1, 83. F¨ ur die untere Schranke pi pi log = 1, 67. Beachte, dass die L¨ange von T gleich 3 in 9.4 erhalten wir − 3 100 100 ist, also T nicht optimal im Sinne des schlechtesten Falles ist, L(T ) = ⌈log3 8⌉ = 2.
9.3
Sortieren von Listen
Viele Algorithmen verlangen in einem ersten Arbeitsgang, dass die zugrundeliegenden Elemente zun¨ achst sortiert werden: Ein Beispiel war der Greedy Algorithmus f¨ ur Matroide aus Abschnitt 7.3. Wir wollen nun die dabei auftretenden Probleme analysieren. Angenommen, wir haben eine Liste von n verschiedenen Zahlen a1 , . . . , an gegeben, und unsere Aufgabe besteht darin, sie in die richtige Reihenfolge, zum Beispiel in aufsteigender Folge, zu bringen. Das heißt wir m¨ ussen die eindeutige Permutation π bestimmen, so dass aπ(1) < aπ(2) < . . . < aπ(n) gilt. Statt Zahlen k¨onnen wir irgendeine Liste von Elementen betrachten, auf denen eine lineare Ordnung gegeben ist. Als Tests stehen uns paarweise Vergleiche ai : aj zur Verf¨ ugung, mit den Antworten ai < aj oder aj < ai . Der Suchbereich S besteht also aus allen n! m¨oglichen Permutationen der ai , jede einzelne Permutation ergibt genau eine m¨ogliche lineare Ordnung, und jeder
9.3
179
sortieren von listen
Test hat q = 2 Ergebnisse. Bezeichnen wir mit S(n) die Anzahl der Vergleiche, die ein optimaler Algorithmus (im schlechtesten Fall) ben¨otigt, so liefert 9.1 (1)
S(n) ≥ ⌈lg n!⌉.
Wie nahe k¨ onnen wir an die Schranke (1) herankommen? Betrachten wir als Beispiel n = 4. Es gilt urlich a1 , . . . , a4 sortieren, S(n) ≥ ⌈lg 24⌉ = 5. Wir k¨onnen nat¨ uhren. Die Schranke (1) besagt, indem wir alle 42 = 6 Vergleiche ai : aj durchf¨ dass wir jedenfalls 5 Vergleiche ben¨ otigen. Der folgende Algorithmus, dargestellt als Entscheidungsbaum, zeigt, dass es tats¨achlich mit 5 Vergleichen geht, d. h. S(4) = 5 ist. a 1 : a2 > s ym
a4 erhalten wir das Hasse-Diagramm
a3 a2 a4
a1
und m¨ ussen noch den 5. Vergleich a1 : a4 durchf¨ uhren. F¨ ur n = 5 erhalten wir S(5) ≥ ⌈lg 120⌉ = 7. Da 120 nahe bei 27 = 128 liegt, ist zu erwarten, dass ein Sortieralgorithmus mit 7 Vergleichen einiger Sorgfalt bedarf. Aber es geht, wie sich der Leser u ¨ berzeugen sollte. Wir wollen nun drei allgemeine Sortieralgorithmen besprechen: Einf¨ ugen, Zusammenlegen und QUICKSORT, und sie genau analysieren. Die Einf¨ ugungsmethode wird wahrscheinlich jedem als erste einfallen. Wir vergleichen als erstes a1 : a2 . Haben wir schon die richtige Ordnung ah1 < . . . < ahi f¨ ur die ersten i Elemente ermittelt, so nehmen wir ai+1 und sortieren es an die richtige Stelle in ah1 < . . . < ahi ein. Setzen wir ahj = bj , also b1 < . . . < bi . Wir vergleichen nun ai+1 mit dem Median b i+1 , falls i ungerade ist, oder mit b 2i , 2 falls i gerade ist. Damit halbieren wir in etwa die m¨oglichen Stellen, in denen ai+1 liegen kann. Nun nehmen wir in diesem kleineren Intervall wieder einen Vergleich mit dem Median vor, usf. Wie viele Vergleiche ben¨otigen wir im schlechtesten Fall f¨ ur die Einsortierung von ai+1 ? Da wir f¨ ur ai+1 die i + 1 M¨oglichkeiten ai+1 < b1 , b1 < ai+1 < b2 , . . . , bi < ai+1 haben, brauchen wir nach 9.1 jedenfalls ⌈lg(i+1)⌉ Vergleiche. Induktion ergibt nun sofort, dass wir mit dieser Zahl von Vergleichen auch auskommen. F¨ ur i = 1 ist dies klar. Nach dem ersten Vergleich bleiben im schlechtesten Falle ⌈ i+1 oglichkeiten. Nach Induktion k¨onnen wir ai+1 nun 2 ⌉ M¨ mit ⌈lg⌈ i+1 ⌉⌉ weiteren Vergleichen einsortieren, also ben¨otigen wir insgesamt 1 + 2 ⌈lg⌈ i+1 ⌉⌉ = ⌈lg(i + 1)⌉ Vergleiche. 2 F¨ ur die Gesamtzahl B(n) der Vergleiche erhalten wir daraus B(n) =
n i=2
⌈lg i⌉ .
Sei n = 2m + r, 0 < r ≤ 2m . Da ⌈lg i⌉ = k f¨ ur 2k−1 < i ≤ 2k ist, schließen wir B(n) =
m
k 2k−1 + r(m + 1) .
k=1
In Abschnitt 2.1 haben wir wir
m
k=1
k 2k = (m − 1)2m+1 + 2 berechnet, also erhalten
B(n) = (m − 1)2m + 1 + (n − 2m )(m + 1) = n(m + 1) − 2m+1 + 1
9.3
181
sortieren von listen
und somit B(n) = n⌈lg n⌉ − 2⌈lg n⌉ + 1 .
(2)
Aus der Stirling-Formel und (1) folgern wir S(n) ≥ lg n! = Ω(n lg n), und aus (2), S(n) ≤ B(n) = O(n lg n). Insgesamt haben wir mit (1) und (2) das Sortierproblem asymptotisch gel¨ ost: (3)
S(n) = Θ(n lg n) .
Die Zusammenlegungsmethode (die wir schon kurz in Abschnitt 5.3 erw¨ahnt haben) funktioniert rekursiv. Zuerst teilen wir die n Elemente in zwei m¨oglichst gleiche H¨ alften, also ⌊ n2 ⌋ und ⌈ n2 ⌉ Elemente. Nun sortieren wir diese beiden Teillisten und legen sie dann zusammen. Seien a1 < . . . < as , b1 < . . . < bt , s = ⌊ n2 ⌋, t = ⌈ n2 ⌉, die beiden geordneten Teillisten. Vergleichen wir a1 : b1 , so haben wir das minimale Element bestimmt, wir legen es weg. Nun vergleichen wir die minimalen Elemente der neuen Listen und ermitteln so das zweitkleinste Element. Fahren wir so fort, so erhalten wir nach s + t − 1 = ⌊ n2 ⌋ + ⌈ n2 ⌉ − 1 = n − 1 Vergleichen die komplette Liste. F¨ ur die Anzahl M (n) der Vergleiche erhalten wir somit die Rekursion n n M (n) = M (⌊ ⌋) + M (⌈ ⌉) + (n − 1) . 2 2 Man kann sich leicht durch Induktion u ¨ berzeugen, dass stets M (n) = B(n) gilt, also ist auch der Zusammenlegungsalgorithmus asymptotisch optimal. Sehen wir uns die ersten Werte von S(n) an. Als untere Schranke haben wir ⌈lg n!⌉ aus (1) und als obere Schranke B(n) = M (n) aus (2): n ⌈lg n!⌉ B(n)
2 3 4 5
6
1 2 5 7 10 1 2 5 8 11
7
8
9
10 11 12
13 16 19 22 26 29 14 17 21 25 29 33
F¨ ur n ≤ 11 ist die untere Schranke korrekt, d. h. S(n) = ⌈lg n!⌉, aber f¨ ur n = 12 hat eine Computer-Suche den Wert S(12) = 30 ergeben. Der Einf¨ ugungsalgorithmus liefert hingegen nur f¨ ur n ≤ 4 den richtigen Wert. Analysieren wir nochmals die Zusammenlegungsmethode. Sie funktioniert in drei Schritten: 1. Zerlege die Liste in zwei Teile (trivial). 2. Sortiere die Teillisten rekursiv. 3. F¨ uge die sortierten Listen zusammen (n − 1 Vergleiche). Der folgende Algorithmus, QUICKSORT, arbeitet genau umgekehrt: 1. Zerlege die Liste in eine untere und obere H¨alfte R1 und R2 , d. h. ai < aj f¨ ur alle i ∈ R1 , j ∈ R2 (n − 1 Vergleiche). 2. Sortiere die Teillisten rekursiv. 3. F¨ uge die sortierten Listen zusammen (trivial).
182
9
suchen und sortieren
Sei a1 , . . . , an die gegebene Liste. In Schritt 1 vergleichen wir a1 mit allen u ¨ brigen ai und stellen fest, welche ai ≤ a1 sind (i ∈ R1 ) bzw. aj > a1 sind (j ∈ R2 ). Dazu ben¨ otigen wir n − 1 Vergleiche. Ist s der richtige Platz f¨ ur a1 , so sortieren wir nun die unteren s − 1 Elemente < a1 und die oberen n − s Elemente > a1 rekursiv. Schritt 1 geschieht am einfachsten mit Hilfe zweier Zeiger i, j. Am Anfang ist i = 1, j = n. Nun vergleichen wir ai : aj . Falls ai > aj ist, werden die Pl¨atze von ai , aj ausgetauscht. Ansonsten wird j um 1 erniedrigt und wir vergleichen wieder ai : aj . Nach dem ersten Austausch wird i um 1 erh¨oht und wiederum ai : aj verglichen. Sobald ai > aj ist, tausche die Pl¨atze von ai und aj . Erniedrige j um 1 und beginne wieder die Vergleiche ai : aj . Am Ende dieser n − 1 Vergleiche steht a1 am richtigen Platz, die Elemente links sind < a1 und die Elemente rechts > a1 . Das folgende Beispiel erl¨ autert einen Durchgang von QUICKSORT. Die Elemente, die ausgetauscht werden, sind jeweils unterstrichen. 4 8
9
5
2
3 8
9
5
2
9
5
2
9
5
→
3 4 3 1
→
3 1
4
3 1 3 1
2 2
5
→
5 4
←
1
6 7 3
1
6 7 4
1
6 7 8
2
4
6 7 8
2
9
6 7 8
4 5
9 9
6 7 8 6 7 8
←
←
Die Anzahl der Vergleiche ist 1 + 1 + 3 + 1 + 1 + 1 = 8. Wie gut ist QUICKSORT? Angenommen die Liste a1 , . . . , an ist bereits in der richtigen Ordnung a1 < . . . < an . Dann ben¨ otigt der erste Durchlauf n−1 Vergleiche mit a1 als Referenzelement, der zweite Durchgang n − 2 Vergleiche mit a2 als Referenzelement, usf. Insgesamt f¨ uhrt der Algorithmus also alle (n−1)+(n−2)+. . .+2+1 = n2 Vergleiche durch, d. h. QUICKSORT ben¨ otigt im schlechtesten Fall O(n2 ) Vergleiche, mehr als das optimale Θ(n lg n). Dass der schlechteste Fall ausgerechnet f¨ ur die bereits sortierte Liste eintritt, ist etwas peinlich. Sehen wir uns nun aber die durchschnittliche Laufzeit an, wobei wir annehmen, dass alle n! Permutationen gleichwahrscheinlich sind. Sei Qn die durchschnittliche Anzahl der Vergleiche. Mit Wahrscheinlichkeit n1 ist s der richtige Platz von a1 , 1 ≤ s ≤ n. Nach dem ersten Durchgang ergeben sich zwei Teillisten der L¨ ange s − 1 bzw. n − s. Wir erhalten also die Rekursion n
Qn = n − 1 +
1 (Qs−1 + Qn−s ), n s=1
Q0 = 0
das heißt (4)
Qn = n − 1 +
n−1 2 Qk , n k=0
Q0 = 0 .
9.3
183
sortieren von listen
Mit der Methode der Summationsfaktoren aus Abschnitt 2.1 k¨onnen wir die Rekursion m¨ uhelos l¨ osen. Zun¨ achst schreiben wir n Qn = n(n − 1) + 2
n−1
Qk
k=0
(n − 1) Qn−1 = (n − 1)(n − 2) + 2
n−2
(n ≥ 1) Qk
(n ≥ 2) .
n Qn − (n − 1)Qn−1 = 2(n − 1) + 2 Qn−1
(n ≥ 2) ,
k=0
Subtraktion ergibt
somit n Qn = (n + 1)Qn−1 + 2(n − 1) (n ≥ 1) , da dies auch f¨ ur n = 1 gilt (Q1 = 0) . Mit der Notation aus Abschnitt 2.1 (1) haben wir an = n, bn = n+1, cn = 2(n−1). Der Summationsfaktor sn ist also sn =
2 (n − 1)(n − 2) . . . 1 = , (n + 1)n . . . 3 (n + 1)n
und wir erhalten Qn =
n
n−1
k=1
k=0
k n + 1 4(k − 1) = 2(n + 1) . 2 k(k + 1) (k + 1)(k + 2)
n−1 k Wie sollen wir die Summe urlich mit unserem k=0 (k+1)(k+2) berechnen? Nat¨ Differenzenkalk¨ ul aus Abschnitt 2.2. Partielle Summation ergibt n−1 k=0
n n x−1 ##n k = + (x + 1)−1 x · x−2 = x 0 (k + 1)(k + 2) −1 0 0
=−
n 2n + Hn+1 − 1 = Hn − , n+1 n+1
und wir erhalten (5)
Qn = 2(n + 1)Hn − 4n .
Nun wissen wir, dass Hn = Θ(log n) ist, woraus Qn = Θ(n lg n) folgt, also ist QUICKSORT im Durchschnitt optimal. In vielen Problemen sind wir nicht an der gesamten sortierten Liste interessiert, sondern nur an einem Teil. Wie viele Vergleiche W1 (n) brauchen wir zum Beispiel, um nur das Maximum der Elemente a1 , . . . , an zu ermitteln? Da jedes der n Elemente in Frage kommt, haben wir nach 9.1 die untere Schranke W1 (n) ≥ ⌈lg n⌉. In
184
9
suchen und sortieren
diesem Fall ist die informationstheoretische Schranke keine große Hilfe. Jedes der Elemente ai ungleich dem Maximum muss in mindestens einem Vergleich ai : aj den Ausgang ai < aj ergeben, da ansonsten ai als Maximum nicht ausgeschlossen werden k¨ onnte, also gilt W1 (n) ≥ n − 1. Andererseits ergibt die Folge der Verurlich das Maximum, gleiche a1 : a2 , max(a1 , a2 ) : a3 , max(a1 , a2 , a3 ) : a4 , . . . nat¨ und wir erhalten W1 (n) = n − 1, sowohl im schlechtesten wie im Durchschnittsfall. Der Leser m¨ oge sich u ur die gleichzeitige ¨ berlegen, wie viele Vergleiche man f¨ Bestimmung des Maximums und Minimums ben¨otigt. Nach dem eben Bewiesenen brauchen wir nicht mehr als (n − 1) + (n − 2) = 2n − 3 Vergleiche, aber es geht ¨ besser (siehe Ubung 30).
9.4
Bin¨ are Suchb¨ aume
In den vorigen Abschnitten haben wir Entscheidungsb¨aume als Methode f¨ ur Suchprobleme studiert. Nun betrachten wir bin¨ are B¨ aume, d. h. Wurzelb¨aume mit jeweils h¨ ochstens zwei unmittelbaren Nachfolgern, als Datenstrukturen f¨ ur geordnete Listen. Zu jeder Ecke v k¨ onnen wir also einen linken und rechten unmittelbaren Nachfolger vL bzw. vR assoziieren; falls vL oder vR nicht vorhanden ist, lassen wir das entsprechende Feld leer. Der linke Unterbaum von v ist der Unterbaum verwurzelt in vL , entsprechend wird der rechte Unterbaum definiert. Sei T nun ein bin¨ arer Baum mit n Ecken, und A = {a1 , . . . , an } eine Liste von n verschiedenen Elementen, die mittels < linear geordnet sind. Wir speichern A in den Ecken E von T mittels der Zuordnung κ : E → A, und sagen, T ist ein bin¨ arer Suchbaum f¨ ur A, falls folgende Eigenschaft erf¨ ullt ist: Sei v ∈ E, dann gilt κ(x) < κ(v) f¨ ur alle x im linken Unterbaum von v und κ(x) > κ(v) f¨ ur alle x im rechten Unterbaum von v. Der Baum in der folgenden Figur ist ein bin¨arer Suchbaum f¨ ur die Menge {2, 4, 5, 7, 8, 10, 11, 12, 13, 15, 16, 18, 20}. 12 13
5
2
16
8
4 7
10
15 11
18 20
Warum speichern wir die Elemente nicht einfach in einer geordneten Liste ab? Der Vorteil von bin¨aren Suchb¨ aumen als Datenstruktur liegt darin, dass eine Reihe von elementaren Operationen wie Suchen nach einem Element, Einf¨ ugen, Weglassen usf. sehr schnell durchgef¨ uhrt werden k¨ onnen. Wir werden sehen, dass alle diese Operationen eine Laufzeit O(L) haben, wobei L die L¨ange des Baumes ist.
9.4
185
bin¨ are suchb¨ aume
Sei der bin¨ are Suchbaum T auf A gegeben. F¨ ur ein a ∈ A wollen wir die Ecke x mit κ(x) = a bestimmen. Es ist klar, was zu tun ist. Wir vergleichen a mit κ(v), v Wurzel. Falls a = κ(v) ist, so sind wir fertig, x = v. Falls a < κ(v) it, so vergleichen wir a mit κ(vL ), und falls a > κ(v) ist, so vergleichen wir a mit κ(vR ). Auf diese Weise laufen wir den eindeutigen Weg von der Wurzel zur gesuchten Ecke x mit κ(x) = a, und die Anzahl der Vergleiche ist O(L). Ebenso einfach k¨ onnen wir das Minimum oder Maximum bestimmen. Wir gehen einmal immer nach links, das andere Mal immer nach rechts. Wiederum ist die Anzahl der Operationen O(L). Angenommen, wir wollen ein neues Element b ∈ A einf¨ ugen. Das heißt, wir m¨ ussen den Baum T um eine Ecke z erg¨ anzen mit κ(z) = b, so dass der neue Baum T ′ Suchbaum f¨ ur A ∪ {b} ist. Kein Problem. Wir vergleichen b mit κ(v), v Wurzel. Falls b < κ(v) ist, gehen wir nach links, ansonsten nach rechts. Ist vL leer, so setzen wir z = vL , κ(z) = b, ansonsten vergleichen wir b mit κ(vL ). Im Fall b > κ(v) setzen wir z = vR , falls vR leer ist, und vergleichen ansonsten b mit κ(vR ). Auf diese Weise gelangen wir zu einer eindeutigen Ecke y, so dass b < κ(y) und yL leer ist (z = yL , κ(z) = b), oder b > κ(y) und yR leer ist (z = yR , κ(z) = b). Die Anzahl der Operationen ist abermals O(L). Angenommen, wir wollen in unserem Beispiel die Zahl 9 einf¨ ugen. Wir erhalten der Reihe nach 9 < 12, 9 > 5, 9 > 8, 9 < 10 und 10L leer, also erg¨anzen wir den Baum: 12 13
5
2
16
8
4
10
7 9
15 11
18 20
Ist T ein bin¨ arer Suchbaum, so k¨ onnen wir die in T gespeicherte Liste durch die folgende rekursive Methode, genannt In-Order, in sortierter Form ausgeben. Der Wert κ(x) der Wurzel x eines Unterbaumes wird zwischen den Werten des linken Unterbaumes (verwurzelt in xL ) und denen des rechten Unterbaumes (verwurzelt in xR ) ausgedruckt – daher der Name In-Order. Die Laufzeit dieser Ausgabeprozedur ist ersichtlich Θ(n). Wie erzeugen wir nun einen Suchbaum f¨ ur eine gegebene Liste {a1 , . . . , an }? Eine einfache Methode ist, dass wir die Elemente Schritt f¨ ur Schritt nach unserer eben beschriebenen Methode einf¨ ugen. Nehmen wir als Beispiel A = {8, 2, 4, 9, 1, 7, 11, 5, 10, 12, 3, 6}. Der Baum wird nun sukzessive aufgebaut:
186
9
8
suchen und sortieren
8
8 2
2
8
8
2
9
4
2
4
1
9 4
3
11 7
10
12
5 6
Jede Permutation π = a1 a2 . . . an ergibt auf diese Weise einen eindeutigen bin¨aren Suchbaum T = T (π). Wir haben schon gesehen, dass der wichtigste Parameter f¨ ur unsere elementaren Operationen die L¨ ange L(T ) ist. Wir wollen nun zwei Gr¨ oßen bestimmen. Es seien ℓ1 (π), . . . , ℓn (π) die L¨angen der Zahlen 1, 2, . . . , n im Baum T (π). Dann ist L(π) = n1 ni=1 ℓi (π) die durchschnittliche L¨ange und L(π) = max1≤i≤n ℓi (π) die maximale L¨ ange derEcken i, d. h. die L¨ange L(T (π)) des Baumes. Was sind die Erwartungswerte E L(n) bzw. E L(n) , unter der Voraussetzung, dass alle n! Permutationen gleichwahrscheinlich sind? Betrachten wir als Beispiel n = 3. Die Permutationen π und ihre zugeordneten B¨ aume T (π) sehen wie folgt aus: 1
2
1
2 3
2
1
3
3
1
2
3 2
2 123
3
1
3
132
213
231
312
1 321
F¨ ur L(π) bzw. L(π) erhalten wir der Reihe nach: L(π) :
1 1
2 3
2 3
1 1
L(π) :
2 2 1
1
2 2
also gilt E(L(3)) = 61 (1 + 1 +
2 3
+
2 3
+ 1 + 1) = 89 ,
E(L(3)) =
5 3
.
ur eine Permutation π gilt L(π) = n1 ni=1 ℓi (π). Studieren wir zun¨ achst E(L(n)). F¨ n Erkl¨ aren wir die Zufallsvariable Xn : π → i=1 ℓi (π), so ist also E(L(n)) = 1 E(X ). Wir wollen nun f (n) = E(X ) bestimmen. Als Anfangswerte haben wir n n n f (0) = 0, f (1) = 0, f (2) = 1, und aus unserem Beispiel f (3) = 38 . Klassifizieren wir Xn nach dem Wert i der Wurzel, so erhalten wir sofort die Rekursion n
f (n) =
1 [f (i − 1) + (i − 1) + f (n − i) + (n − i)] , n i=1
9.4
bin¨ are suchb¨ aume
187
da der linke Teilbaum die erwartete L¨ angensumme f (i − 1) hat plus 1 f¨ ur jeden Wert < i, analog f¨ ur den rechten Teilbaum. Umformung ergibt (1)
f (n) =
n−1 2 f (i) + n − 1 , n i=0
f (0) = 0 ,
und diese Rekursion haben wir eben im vorigen Abschnitt beim Studium von QUICKSORT gel¨ ost, mit dem Ergebnis f (n) = 2(n + 1)Hn − 4n. F¨ ur den Erwartungswert E(L(n)) ergibt sich somit (2)
E(L(n)) =
2 1 f (n) = (2 + )Hn − 4 , n n
oder E(L(n)) = Θ(log n) . Pr¨ ufen wir das Ergebnis f¨ ur n = 3 nach, so erhalten wir wieder 8 8 11 2 −4= . E(L(3)) = (2 + )H3 − 4 = · 3 3 6 9 F¨ ur die L¨ ange L des Zufallsbaumes ist die Analyse etwas komplizierter. Wir erkl¨aren die Zufallsvariable Yn : π → max ℓi (π) u atter i und m¨ ussen E(Yn ) ¨ ber alle Bl¨ berechnen. Eine Rekursion analog zu (1) l¨ asst sich nicht ableiten. Nat¨ urlich gilt E(Yn ) ≥ E(L(n)) = Θ(log n). Wir werden also versuchen, E(Yn ) nach oben durch eine leichter zug¨ angliche Gr¨ oße abzusch¨ atzen. Zun¨ achst wollen wir allgemein die sogenannte Jensensche Ungleichung E(Y ) ≤ lg E(2Y )
(3)
f¨ ur eine reelle Zufallsvariable Y beweisen, wobei wir im zugrundeliegenden Wahrscheinlichkeitsraum Ω Gleichverteilung annehmen. Sei Ω = {ω1 , . . . , ωm }, Y (ωi ) = yi , dann bedeutet (3) m
(4)
m
1 yi 1 yi ≤ lg 2 . m i=1 m i=1
Setzen wir xi = 2yi , so ist (4) ¨ aquivalent zu m
m
1 1 lg xi ≤ lg xi m i=1 m i=1 oder (5)
lg (
m
i=1
m
xi )1/m ≤ lg
1 xi . m i=1
188
9
suchen und sortieren
Durch Potenzieren mit 2 ist (5) aber nichts anderes als die Ungleichung vom arithmetisch-geometrischen Mittel. Also ist (5) und damit auch (3). Berichtig trachten wir nun die Zufallsvariable Zn : π → 2ℓi (π) u ¨ ber alle Bl¨atter i. Es gilt E(2Y n ) ≤ E(Zn ) wegen 2max ℓi (π) ≤ 2ℓi (π) , also nach (3) E(Yn ) ≤ lg E(2Yn ) ≤ lg E(Zn ) .
(6)
Die Funktion g(n) = E(Zn ) erlaubt nun eine vollst¨andige Analyse. Als Anfangswerte haben wir g(0) = 0, g(1) = 1, g(2) = 2. Klassifizieren wir wieder nach dem Wert i der Wurzel, so erhalten wir n
g(n) =
1 2(g(i − 1) + g(n − i)) (n ≥ 2) , n i=1
ℓj da die Ausdr¨ ucke 2 in den Teilb¨ aumen mit 2 multipliziert werden m¨ ussen (die L¨ angen sind um 1 gr¨ oßer). Daraus ergibt sich ng(n) = 4 (n − 1)g(n − 1) = 4
n−1
i=0 n−2
g(i)
(n ≥ 2)
g(i)
(n ≥ 3)
i=0
und durch Subtraktion (7)
ng(n) = (n + 3)g(n − 1)
(n ≥ 3) ,
also g(n) =
(n + 3)(n + 2) . . . 6 (n + 3)(n + 2)(n + 1) g(2) = ≤ n3 n (n − 1) . . . 3 30
(n ≥ 2) .
Mittels (6) erhalten wir daraus E(L(n)) = E(Yn ) ≤ lg g(n) ≤ lg n3 = 3 lg n . Mit lg n = lg e · log n ergibt dies schließlich (8)
E(L(n)) ≤ 3 lg e · log n ≈ 4.34 log n .
Es ist also nicht nur die durchschnittliche L¨ange einer Ecke, sondern sogar die durchschnittliche maximale L¨ ange von der Gr¨oßenordnung Θ(log n) . Abschließend fragen wir uns, wie viele bin¨ are Suchb¨aume auf n Ecken existieren. Diese Zahl sei Cn . F¨ ur n = 1, 2, 3 haben wir folgende B¨aume:
9.4
189
bin¨ are suchb¨ aume
Es ist also C1 = 1, C2 = 2, C3 = 5, und wir setzen C0 = 1. Betrachten wir den linken und rechten Unterbaum der Wurzel, so ergibt sich sofort die folgende Rekursion: Cn = C0 Cn−1 + C1 Cn−2 + . . . + Cn−1 C0 (n > 0) oder
Cn =
(9)
n−1
Ck Cn−1−k + [n = 0] f¨ ur alle n .
k=0
Dies sieht nat¨ urlich wie eine Konvolution aus, und wir verwenden unsere Methode aus Abschnitt 3.2. Sei C(z) = n≥0 Cn z n die erzeugende Funktion. Die Konvolution (9) lautet f¨ ur C(z) C(z) = C(z) · zC(z) + 1 , das heißt C(z) 1 + = 0. z z L¨ osung dieser quadratischen Gleichung ergibt √ 1 1 − 4z C(z) = ± . 2z 2z Da f¨ ur das Pluszeichen C(0) = C0 = ∞ resultieren w¨ urde, muss das Minuszeichen gelten, also √ 1 − 1 − 4z C(z) = . 2z Nun ist 1 1 −1 √ 2 (−4z)n = 1 + 2 1 − 4z = (−4z)n . 2n n − 1 n (C(z))2 −
n≥0
Den Ausdruck erhalten wir
− 1 2
n
n≥1
¨ haben wir in Ubung 1.40 berechnet:
− 1 2
n
= (− 41 )n
2n n . Somit
1 2n − 2 1 2n − 2 √ 1 − 4z = 1 + (−4)z n = 1 − 2 zn 2n n − 1 n n−1 n≥1 n≥1 1 2n =1−2 z n+1 , n+1 n n≥0
und daraus Cn =
2n 1 . n+1 n
190
9
suchen und sortieren
Cn heißt die n-te Catalan-Zahl, sie erscheint in Abz¨ahlproblemen fast so h¨aufig wie die Binomialzahlen oder die Fibonacci-Zahlen. Eine Reihe von interessanten ¨ Beispielen ist in den Ubungen enthalten.
¨ Ubungen zu Kapitel 9 1 L¨ ose das W¨ ageproblem, wenn bekannt ist, dass die falsche M¨ unze schwerer ist. ⊲ 2 Wir betrachten das Suchproblem mit n M¨ unzen, wobei eine M¨ unze leichter oder schwerer ist. Zeige, dass ein optimaler Algorithmus die L¨ ange L = ⌈log3 (2n + 2)⌉ hat. 3 Zeige, dass es f¨ ur n, q (q ≥ 2) genau dann einen vollst¨ andigen (n, q)-Baum gibt, wenn q − 1 ein Teiler von n − 1 ist. ⊲ 4 Sei T ein vollst¨ andiger bin¨ arer Baum mit n Bl¨ attern, e(T ) bezeichne die Summe der L¨ angen der Bl¨ atter, i(T ) die Summe der L¨ angen der inneren Ecken. Zeige: e(T ) = i(T ) + 2(n − 1). 5 Sei die Menge S = {1, . . . , n} gegeben, und x∗ ∈ S ein unbekanntes Element. Zur Verf¨ ugung stehen nur die Tests x∗ < i? (i = 2, . . . , n) mit ja/nein Antworten. Zeige, dass L = ⌈lg n⌉ die optimale L¨ ange eines Suchalgorithmus ist.
6 Gegeben die Verteilung (30, 20, 15, 14, 11, 10) f¨ ur die Bl¨ atter 1, 2, . . . , 6. Zeige, dass die folgenden Suchb¨ aume optimal sind. Nur einer ist ein Huffman-Baum, welcher?
2 5
6
1
1 3
4
2 6
4
5
3
7 Beweise, dass das bin¨ are Einsortieren und die Zusammenlegungsmethode aus Abschnitt 9.3 dieselbe Laufzeit B(n) = M (n) haben. ⊲ 8 Angenommen, wir sollen das Maximum einer Liste mit n Elementen ermitteln, wobei uhren k¨ onnen. Zeige, dass ein wir in jeder Runde ⌊ n2 ⌋ disjunkte Vergleiche parallel durchf¨ optimaler Algorithmus ⌈lg n⌉ Runden ben¨ otigt. 9 Wir wollen eine (ungeordnete) Liste mit n Elementen in einer Runde sortieren, wobei beliebige Vergleiche erlaubt sind (also auch nicht-disjunkte). Zeige, dass wir alle n2 Vergleiche durchf¨ uhren m¨ ussen. 10 Bestimme optimale Sortieralgorithmen f¨ ur n = 6, 7, 8 Elemente. Hinweis: Die Suchl¨ angen sind 10, 13, 16. ⊲ 11 Gegeben ist die Menge S = {1, . . . , n} und eine nat¨ urliche Zahl d ≥ 0. Wir sollen eine unbekannte Zahl x∗ ∈ S ermitteln. Die erlaubten Tests sind x∗ = i? mit den Antworten ange. Zeige: a. L0 (n) = n−1 , x∗ = i, |x∗ −i| ≤ d, |x∗ −i| > d. Sei Ld (n) die optimale Suchl¨ b. L1 (n) = ⌈ n3 ⌉ f¨ ur n ≥ 3 mit L1 (1) = 0, L1 (2) = 1 , c. Was ist L2 (n)?
¨bungen u
191
¨ 12 Die n¨ achsten Ubungen behandeln die Catalan-Zahlen Cn aus Abschnitt 9.4. Es seien die Reihenfolge von x0 , x1 , . . . , xn Variablen, die wir beklammern wollen, wobei x0 bis x erhalten bleibt. Beispiel: n = 1, (x x ); n = 2, x (x x ) , (x x )x ; n = 3, n 0 1 0 1 2 0 1 2 x0 (x1 (x2 x3 )) , (x0 x1 )(x2 x3 ) , ((x0 x1 )x2 )x3 , x0 ((x1 x2 )x3 ) , (x0 (x1 x2 ))x3 . Zeige, dass die Anzahl der m¨ oglichen Beklammerungen gleich Cn ist: a. Durch Aufstellen einer Rekursion, b. durch Bijektion auf die Menge der Suchb¨ aume. ⊲ 13 Vor einer Kasse warten 2n Leute in einer Schlange. Der Eintritt kostet 10 Euro. Genau n der Leute haben einen 10 Euro Schein in der Tasche, die anderen n einen 20 Euro Schein. Der Kassierer hat kein Geld zu Beginn und kann daher jedem korrekt herausgeben, wenn zu jeder Zeit die Anzahl der 10 Euro – Leute mindestens so groß ist wie die Anzahl der 20 Euro – Leute. Zeige, dass die Anzahl der Schlangen, in denen der Kassierer stets herausgeben kann, die Catalan-Zahl Cn ist. Hinweis: Insgesamt haben wir 2n Schlangen, berechne nun die Anzahl der Schlangen, wo es nicht funktioniert. n
14 Wir zerlegen ein regelm¨ aßiges n-Eck, n ≥ 3, in Dreiecke durch Einf¨ ugen von Diagonalen. Beispiel: n = 4 r r r r
r
r
@ r @r
Zeige, dass die Anzahl der m¨ oglichen Triangulierungen des n-Eckes gleich Cn−2 ist. ⊲ 15 Die Zahlen 1 bis 100 seien in einem bin¨ aren Suchbaum gespeichert. Welche der Folgen k¨ onnen nicht eine Suchfolge f¨ ur das Element 37 sein? a. 2, 7, 87, 83, 30, 31, 81, 37; b. 75, 11, 67, 25, 55, 33, 34, 37; c. 10, 80, 48, 60, 22, 70, 43, 30, 37. 16 Wir k¨ onnen n Zahlen sortieren, indem wir zuerst einen bin¨ aren Suchbaum bilden mit dem Einf¨ ugungsalgorithmus aus Abschnitt 9.4 und dann die Zahlen in In-Order ausgeben. Was ist die Laufzeit im besten und schlechtesten Fall?
⊲ 17 Gegeben sei ein Graph G = (E, K), |E| = n, |K| = m. Gesucht ist eine unbekannte Kante k∗ , und jeder Test besteht in einer Frage: Ist u ∈ k∗ , u ∈ E, mit den Antworten + 1, ja oder nein. Sei L die minimale L¨ ange eines Suchprozesses. Zeige: a. |K| ≤ L+1 2 L+2 b. |E| ≤ 2 + 1. c. Schließe daraus untere Schranken f¨ ur L mittels n und m. Hinweis: Induktion nach L. ¨ 18 Zeige, dass die Schranken in der vorigen Ubung mit Gleichheit erf¨ ullt sein k¨ onnen.
19 Gegeben ein Graph G. Wir sollen herausfinden, ob die unbekannte Kante k∗ zu G oder ¨ zum Komplement G geh¨ ort, mit Hilfe derselben Tests 17. Zeige, dass f¨ ur die wie in Ubung , n− ω(G) , wobei minimale Suchl¨ ange L gilt: min n−α(G), n−ω(G) ≤ L ≤ min n− α(G) 2 2 α(G) die Unabh¨ angigkeitszahl von G ist und ω(G) die Cliquezahl (d. h. ω(G) = α(G)). Hinweis: Betrachte eine Testfolge v1 , . . . , vk , wo die Antwort immer nein“ ist. ” ⊲ 20 Angenommen, wir haben eine Menge S mit n Elementen gegeben, in der ein unbekannur |A| ≤ k , wobei k ≤ n fest vorgegetes Element x∗ ist. Als Tests sind erlaubt: x∗ ∈ A f¨ ange eines optimalen Suchalgoben ist, mit den Antworten ja oder nein. Sei L≤k (n) die L¨ ur k ≥ n2 , b. L≤ (n) = t + ⌈lg(n − tk)⌉, t = ⌈ nk ⌉ − 2 f¨ ur rithmus. Zeige: a. L≤k (n) = ⌈lg n⌉ f¨ ur festes k. Betrachte k < n2 . Hinweis: Die Funktion L≤k (n) ist monoton steigend in n f¨ nun die Situation nach dem ersten Test A1 , |A1 | ≤ k.
192
9
suchen und sortieren
21 Es seien m · n Leute in einem m × n-Rechteck angeordnet. Wir sollen die unbekannte Person x∗ durch Fragen: Ist x∗ in der i-ten Zeile bzw. ist x∗ in der j-ten Spalte? finden. Wie viele Fragen ben¨ otigen wir? 22 Eine Menge S von n Personen sei gegeben, von denen jede mit derselben Wahrscheinlichkeit p > 0 krank ist. Unser Ziel ist, die kranken Personen X ∗ ⊆ S zu ermitteln, wobei jede Testmenge A ⊆ S die Information A ∩ X ∗ = ∅ oder A ∩ X ∗ = ∅ liefert. Was ist die ange L und Wahrscheinlichkeitsverteilung der Mengen X ∗ ? Bestimme die optimale Suchl¨ gib eine untere Schranke f¨ ur L mit Hilfe von Satz 9.4. Hinweis: L ≥ nH(p, 1 − p).
¨ ⊲ 23 Es sei n = 2 in der vorigen √ Ubung. Die elementweise Suche liefert L ≤ L = 2. Zeige, ur p ≥ 3−2 5 gilt. dass L = 2 genau f¨ 24 Es sei H(p1 , . . . , pn ) = − n i=1 pi lg pi die Entropie der Verteilung (p1 , . . . , pn ). Zeige: ur alle (p1 , . . . , pn ) mit Gleichheit nur f¨ ur die a. H(p1 , . . . , pn ) ≤ H( n1 , . . . , n1 ) = lg n f¨ Gleichverteilung. b. H(p1 , . . . , pn ) = H(p1 , . . . , pk , s) + sH(p′k+1 , . . . , p′n ) mit 2 ≤ k ≤ n n − 1, s = i=k+1 pi , p′i = psi (i = k + 1, . . . , n).
⊲ 25 Sei h(n) =min (T ; n1 , . . . , n1 ), d. h. h(n) ist die optimale durchschnittliche L¨ ange bei T
Gleichverteilung (ermittelt mit dem Huffman-Algorithmus), q = 2. Zeige, dass h(n) eine wachsende Funktion in n ist, genauer h(n)+ n1 ≤ h(n+1). Wann gilt Gleichheit? Hinweis: Betrachte einen optimalen (n + 1, 2)-Baum und entferne ein Blatt. dass L(p1 , . . . , pn ) ≤ L( n1 , . . . , n1 ) gilt. 26 Sei (p1 , . . . , pn ) eine Verteilung, q ≥ 2. Zeige, ur alle k. achst ki=1 pi ≥ nk f¨ Hinweis: Setze p1 ≥ . . . ≥ pn und zeige zun¨ 27 Sei L(p1 , . . . , pn ) das Optimum f¨ ur die Verteilung (p1 , . . . , pn ), q ≥ 2. Zeige, dass L(p1 , . . . , pn ) = − n p log p genau dann gilt, wenn alle pi von der Form pi = q −ℓi i i q i=1 f¨ ur gewisse ℓi ∈ N0 sind. 28 Betrachte die Verteilung (p1 , . . . , pn ) mit pi = i/ n+1 , i = 1, . . . , n. Berechne 2 L(p1 , . . . , pn ) f¨ ur q = 2.
⊲ 29 Angenommen, wir haben eine Liste y1 < y2 < . . . < yn gegeben und wir wollen ein unbekanntes Element x∗ einsortieren, d. h. wir m¨ ussen feststellen, wo x∗ hineingeh¨ ort. ∗ Als Tests haben wir x = yi mit den Antworten . Bestimme die optimale Suchl¨ ange. Hinweis: Stelle einen Suchalgorithmus als bin¨ aren Baum dar (obwohl zun¨ achst drei Antworten vorliegen). ⊲ 30 Zeige, dass ein optimaler Algorithmus zur Bestimmung des Maximums und Minimums ⌉ − 2 Vergleiche ben¨ otigt. Hinweis zur unteren Schraneiner Liste mit n Elementen ⌈ 3n 2 ke: Konstruiere eine Gegenstrategie, die bei jedem Vergleich die Anzahl der m¨ oglichen Kandidaten f¨ ur das Maximum und Minimum m¨ oglichst wenig verringert. 31 Berechne die optimale durchschnittliche Suchl¨ ange zur Bestimmung des Maximums einer Liste, unter Annahme der Gleichwahrscheinlichkeit. ⊲ 32 Es sei M (n, n) die minimale Anzahl der Vergleiche, die wir ben¨ otigen, um eine n-Liste {x1 < . . . < xn } mit einer n-Liste {y1 < . . . < yn } zu sortieren. Berechne M (n, n). 33 Angenommen, wir d¨ urfen beliebige Vergleiche in einer Runde verwenden, aber maximal n viele. Am Anfang haben wir eine ungeordnete Liste gegeben. Zeige, dass nach der ersten Runde die Anzahl der m¨ oglichen Maximum Kandidaten mindestens ⌈ n3 ⌉ ist, und 4 n⌉ zu beschr¨ anken. Betrachte das Beispiel dass es m¨ oglich ist, diese Anzahl auf ≤ ⌈ 11 n = 16 und verifiziere, dass beide Schranken scharf sind.
¨bungen u
193
34 Die folgende Sortiermethode heißt Bubble-Sort“. Sei die Eingabe a1 , . . . , an . Wir ver” andert, anderenfalls tauschen gleichen a1 : a2 , falls a1 < a2 ist, bleiben die Elemente unver¨ sie ihre Pl¨ atze. Nun wird a2 : a3 verglichen usf. bis an−1 : an . Auf diese Weise gelangt das gr¨ oßte Element an das Ende. Jetzt beginnen wir den n¨ achsten Durchgang, wieder mit den ersten beiden Elementen, usf., dann den n¨ achsten Durchgang, bis schließlich alles sortiert ist. In dem Beispiel schreiben wir die Liste von unten nach oben, so dass die großen Elemente nach oben bubblen“: ” 5
6
6
6
6
1
5
5
5
5
3
1
4
4
4
6
3
1
3
3
2
4
3
1
2
4
2
2
2
1
F¨ uhre Bubble-Sort f¨ ur die Liste 6, 10, 9, 2, 8, 4, 11, 3, 1, 7, 5 durch und zeige allgemein, dass alle Elemente oberhalb des zuletzt ausgetauschten Elementes nach einem Durchgang in der richtigen Reihenfolge sind (angedeutet durch Striche im Beispiel). ⊲ 35 Zur Analyse von Bubble-Sort untersuchen wir die Gr¨ oßen A = Anzahl der Austauschungen von Elementen, D = Anzahl der Durchg¨ ange, V = Anzahl der Vergleiche. In un¨ serem Beispiel aus der vorigen Ubung haben wir A = 8, V = 12, D = 5. Sei a1 , . . . , an eine Permutation von {1, . . . , n}, und a′1 , . . . , a′n die Permutation nach einem Durchgang. Mit ¨ origen Inversionstafeln (siehe Ubung b1 , . . . , bn bzw. b′1 , . . . , b′n bezeichnen wir die zugeh¨ 1.32). Zeige: b′1 , . . . , b′n entsteht aus b1 , . . . , bn , indem jedes bj = 0 um 1 erniedrigt wird. der Ausgangspermutation, dann gilt Schließe D daraus: Sei b1 , . . . , bn die Inversionstafel A= n i=1 bi , D = 1 + max(b1 , . . . , bn ), V = i=1 ci mit ci = max(bj + j : bj ≥ i − 1) − i.
⊲ 36 Es seien alle Permutationen von {1, . . . , n} als Input in den Bubble-Sort gleich1 n−k k k! ist wahrscheinlich. Zeige, dass die Wahrscheinlichkeit, dass k ist, gleich n! n D k≤ n−k k! und folgere f¨ ur den Erwartungswert E(D) = n + 1 − k=0 n! . Den Erwartungswert ¨ haben wir schon in Ubung 3.28 berechnet. E(A) = n(n−1) 4 37 Entwirf eine Methode, wie man aus einem bin¨ aren Suchbaum ein Element entfernen kann. 38 Es seien ℓ1 (π), . . . , ℓn (π) die L¨ angen der Elemente 1, . . . , n im bin¨ aren Suchbaum induziert von der Permutation π. Zeige, dass E(ℓ1 (π)) = Hn − 1 ist, unter der Voraussetzung, dass alle Permutationen gleichwahrscheinlich sind.
⊲ 39 Unter denselben Voraussetzungen berechne E(ℓk (π)). Hinweis: Verwende eine ¨ ahnliche Methode wie in Abschnitt 9.4. 40 Beschreibe bin¨ are Suchb¨ aume, in denen die Durchschnittsl¨ ange der Ecken Θ(lg n) ist, aber die maximale L¨ ange ≻ lg n ist. ⊲ 41 Zeige, dass die Ungleichung von Jensen (siehe Abschnitt 9.4 (3)) f¨ ur beliebiges c > 1 gilt, d. h. E(Y ) ≤ logc E(cY ). Leite daraus eine bessere obere Schranke f¨ ur E(L(n)) ab (siehe Abschnitt 9.4 (8)). 42 Zeige, dass jeder bin¨ are Wurzelbaum mit n Bl¨ attern einen Unterbaum mit k Bl¨ attern besitzt, n3 ≤ k ≤ 2n . 3
194
9
suchen und sortieren
43 Sei T ein Wurzelbaum. Wir wandern zuf¨ allig von der Wurzel v1 zu einem Blatt u1 , u2 , u3 , . . . , d. h. von jeder inneren Ecke gehen wir mit Gleichverteilung zu einem der xi Nachfolger. Sei S die Zufallsvariable X = x1 + x1 x2 + x1 x2 x3 + . . .. Zeige: EX = Anzahl der Ecken von T minus 1.
10 Allgemeine Optimierungsmethoden In den bisherigen Abschnitten von Teil II haben wir eine Reihe von Algorithmen f¨ ur wichtige Probleme, wie das Job-Zuordnungsproblem oder das Traveling Salesman Problem, kennengelernt und dabei die grundlegenden Fragen diskutiert, die beim Entwurf und der Analyse von Algorithmen auftauchen: Wie beschreiben wir die Algorithmen? Welche Datenstrukturen sollen wir verwenden? Wie schnell ist der Algorithmus? Gibt es u ¨ berhaupt effiziente Algorithmen? In diesem Kapitel wollen wir noch einige allgemeine Methoden f¨ ur Optimierungsprobleme besprechen und uns u ur welches Pro¨ berlegen, welches Verfahren f¨ blem von Nutzen ist.
10.1
Backtrack
Angenommen, wir betreten ein Labyrinth an einer Stelle A und m¨ ussen unseren Weg zu einer Stelle E finden. Wir kennen weder die G¨ange im Labyrinth noch den Ausgang E. Wie sollen wir vorgehen? Nun da hilft nur eines, wir m¨ ussen alle Wege durchprobieren. Dieses Durchprobieren wird durch die folgenden zwei Regeln organisiert: (1) Gehe von der aktuellen Position zu einer noch nicht betretenen Nachbarstelle. (2) Falls so eine Stelle nicht existiert, gehe einen Schritt zur¨ uck auf dem Weg, der zur aktuellen Position f¨ uhrte. Nun probiere wieder (1). Dieses Zur¨ uckgehen (= Backtrack) ist die Essenz der Methode. Es erlaubt uns, aus allen Sackgassen wieder herauszufinden, und außerdem werden wir einen Irrweg nicht mehr als einmal gehen, also letzlich den Ausgang E finden. Im folgenden Beispiel sind die m¨ oglichen Fortsetzungen des Weges durch Pfeile angedeutet. E
A
196
10
allgemeine optimierungsmethoden
Backtrack ist also keine schnelle“ Methode zur Auffindung der optimalen L¨osung, ” sondern sie organisiert das ersch¨ opfende Durchsuchen, so dass wir keine Schleifen bei der Suche erhalten. Wir erweitern eine partielle L¨osung so lange es geht, und wenn wir nicht mehr weiterk¨ onnen, gehen wir einen Schritt zur¨ uck und probieren von Neuem. Ein uns schon bekanntes Beispiel ist die Depth-First-Suche aus Abschnitt 7.2. Allgemein k¨ onnen wir Backtrack mit einem Baumdiagramm modellieren. Gegeben sind Mengen A1 , A2 , . . . , und gesucht ist eine Folge (a1 , a2 , a3 , . . .) mit ai ∈ Ai , die gewissen Bedingungen gen¨ ugt. Wir beginnen mit dem leeren Wort ( ) als Wurzel. S1 ist die Menge der Kandidaten aus A1 , daraus w¨ahlen wir das erste Element a1 , (a1 ) ist nun unsere Teill¨ osung. Haben wir schon (a1 , . . . , ai ) erhalten, so w¨ahlen wir aus der Kandidatenmenge Si+1 ⊆ Ai+1 (welche den Bedingungen gen¨ ugt) das erste Element ai+1 , und erweitern die partielle L¨osung zu (a1 , a2 , . . . , ai , ai+1 ). Falls Si+1 leer ist, gehen wir einen Schritt zur¨ uck und testen den n¨achsten Kandidaten aus Si , usf. Sehen wir uns das folgende wohlbekannte Damenproblem auf dem n×n-Schachbrett an. Gesucht ist eine Platzierung von m¨oglichst vielen Damen, so dass keine eine andere schlagen kann. Da in jeder Zeile und Spalte h¨ochstens eine Dame stehen kann, k¨ onnen wir h¨ ochstens n Damen platzieren. Geht es immer mit n Damen? F¨ ur n = 2, 3 sieht man sofort, dass nur 1 bzw. 2 Damen platziert werden k¨onnen. Allgemein ist eine L¨ osung a1 , a2 , . . . , an eine Permutation von {1, . . . , n}, wobei ai die Position der Dame in Reihe i angibt. Die Diagonalbedingung besagt, dass |ai − aj | =
|i − j| f¨ ur i = j sein muss. Probieren wir n = 4. Zun¨achst sehen wir durch Symmetrie, dass wir a1 ≤ 2 annehmen k¨onnen. Unser Backtrack-Baum hat also folgende Gestalt: ()
1 3
2 4
4
2
1
3
Mit der Symmetrie a1 = 2 ←→ a1 = 3 haben wir somit genau zwei Platzierungen gefunden. × ×
× ×
×
× ×
×
10.1
197
backtrack
Auch f¨ ur das u ¨ bliche 8 × 8-Schachbrett kann das Damenproblem mittels Backtrack noch mit der Hand gel¨ ost werden. Insgesamt gibt es genau 92 Anordnungen, z. B. ×
× ×
× ×
×
× ×
F¨ ur großes n muss Backtrack nat¨ urlich wegen der Anzahl der Verzweigungen im Suchbaum scheitern. Aber es geht f¨ ur n ≥ 4 immer, und mit ein bisschen Intuition ist eine L¨ osung leicht zu finden. Um Backtrack effizienter zu machen, werden wir versuchen, ganze Teilb¨aume u ¨ berfl¨ ussig zu machen. In unserem Damenproblem haben wir gesehen, dass wir aus Symmetriegr¨ unden a1 ≤ ⌈ n2 ⌉ annehmen k¨onnen – die Teilb¨aume mit a1 > ⌈ n2 ⌉ m¨ ussen nicht mehr durchlaufen werden. Eine besondere interessante Variante dieser Idee ist das Branch and boundVerfahren. Angenommen, wir haben ein Minimierungsproblem vorliegen. In jeder Ecke (a1 , . . . , ak ) des Backtrack Baumes assoziieren wir eine untere Schranke c(a1 , . . . , ak ) f¨ ur das gesuchte Minimum copt . Nun verzweigen wir (branch), vergleichen die neuen Schranken (bound), und fahren mit der Ecke fort, welche die kleinste untere Schranke ergibt. Haben wir auf diese Weise in einem Blatt einen Wert c ermittelt, so k¨ onnen wir alle Teilb¨ aume mit c(a1 , . . . , aℓ ) > c ignorieren. Das Traveling Salesman-Problem wird die Idee des Branch and bound sofort klarmachen. Betrachten wir die Kostenmatrix 1 2 3 4
1 2 3 4 ∞ 2 8 6 2 ∞ 6 4 4 5 ∞ 5 8 7 3 ∞
Der Eintrag cij ≥ 0 gibt die Kosten von i nach j an. Wir sehen, dass wir es mit einem asymmetrischen TSP zu tun haben, im allgemeinen ist cij = cji , und wir schreiben ∞ in die Hauptdiagonale, da i → i nicht m¨oglich ist. Da von jeder Ecke eine Kante ausgehen muss, k¨ onnen wir von jeder Zeile den kleinsten Wert abziehen, und anschließend von jeder Spalte. Dies erniedrigt die Kosten der Tour, ¨andert aber nichts an der Gestalt der optimalen Tour. Der Leser wird sich erinnern, dass wir diese Idee schon beim gewichteten Matchingproblem in Abschnitt 8.2 verwendet haben.
198
10
allgemeine optimierungsmethoden
Die neuen Matrizen sind nun 1 2 3 4
1 2 3 4 ∞ 0 6 4 0 ∞ 4 2 0 1 ∞ 1 5 4 0 ∞
−→
1 2 3 4
1 2 3 4 ∞ 0 6 3 0 ∞ 4 1 0 1 ∞ 0 5 4 0 ∞
alle Touren Schranke ≥ 12 Die Summe der abgezogenen Zahlen ist 12, also ist 12 eine untere Schranke f¨ ur die Wurzel, in der alle Touren enthalten sind. Nun suchen wir uns einen 0-Eintrag, z. B. (1, 2) und verzweigen. Der linke Teilbaum enth¨alt alle Touren mit 1 → 2, der rechte alle Touren mit 1 2. Da in den Touren mit 1 → 2 von 1 keine Kante mehr ausgeht und nach 2 keine Kante mehr hineinf¨ uhrt, streichen wir die erste Zeile und zweite Spalte und setzen den (2, 1)-Eintrag = ∞. Auf diese Weise erhalten wir eine weitere Kostenmatrix, in der wir wieder die kleinsten Eintr¨age abziehen k¨onnen. Dies ergibt
2 3 4
1 3 4 ∞ 4 1 0 ∞ 0 5 0 ∞
−→
1 3 4 ∞ 3 0 0 ∞ 0 5 0 ∞
2 3 4
Touren mit 1 → 2 Schranke ≥ 13 In den Touren mit 1 2 setzen wir den (1, 2)-Eintrag = ∞ und erhalten 1 2 3 4
1 2 3 4 ∞ ∞ 6 3 0 ∞ 4 1 0 1 ∞ 0 5 4 0 ∞
−→
1 2 3 4
1 2 3 4 ∞ ∞ 3 0 0 ∞ 4 1 0 0 ∞ 0 5 3 0 ∞
Touren mit 1 2 Schranke ≥ 16 Wir fahren also mit dem Teilbaum 1 → 2 fort. Probieren wir als n¨achstes (3, 4), so ergibt sich f¨ ur 3 → 4 die Schranke 21 und f¨ ur 3 4 die Schranke 13. Die Wahl (2, 4) ergibt schließlich den folgenden endg¨ ultigen Backtrack-Baum:
10.2
dynamisches programmieren
199
alle >− 12 /> 2 1 −− >− 16
1 −−> 2 >− 13 /> 4 3 −− >− 13
3 −−> 4 >− 21
2 −−> 4 >− 13
4 −−> 3 >− 13
/> 4 2 −− keine Lösung
/> 3 4 −− keine Lösung
3 −−> 1 = 13
Die Tour 1 −→ 2 −→ 4 −→ 3 −→ 1 mit Kosten 13 ist demnach optimal.
10.2
Dynamisches Programmieren
Dynamisches Programmieren wird, wie auch die Divide and conquer“-Methode, ” auf Optimierungsprobleme angewandt, indem man das gegebene Problem in kleinere Unterprobleme zerlegt und dann die L¨osung rekursiv berechnet. Bevor wir die allgemeinen Schritte des Dynamischen Programmierens besprechen, betrachten wir ein Beispiel. Gegeben sei ein konvexes n-Eck in der Ebene. Das heißt, die geschlossene Randkurve besteht aus n Geradenst¨ ucken, und die Verbindungslinie zwischen je zweien der Randpunkte verl¨ auft ganz im n-Eck. In der Figur ist beispielsweise das linke 5-Eck konvex, das rechte nicht.
Wir sind an Triangulierungen von n-Ecken interessiert, das heißt, wir zerlegen das n-Eck durch Einf¨ ugen von n − 3 Diagonalen in n − 2 Dreiecke. Die folgende Figur zeigt eine Triangulierung des 8-Eckes:
200
10
allgemeine optimierungsmethoden
Nun wollen wir aber nicht irgendeine Triangulierung finden, sondern eine optimale in bezug auf eine Gewichtsfunktion. Es seien v1 , . . . , vn die Ecken, dann erkl¨aren wir eine Gewichtsfunktion auf den n3 Dreiecken w(∆(vi vj vk )) = wijk ∈ R. Ein nat¨ urlicher Kandidat ist z. B. w = Fl¨ acheninhalt oder w = |vi −vj |+|vi −vk |+|vj − vk |, die Summe der Seitenl¨ angen. Wir wollen aber nichts weiter an die Funktion w voraussetzen, jede reellwertige Funktion ist erlaubt. Ist T eine Triangulierung, so sei w(T ) = w(∆), erstreckt u ¨ ber alle n − 2 Dreiecke ∆ der Triangulierung, und unsere Optimierungsaufgabe besteht darin, eine Triangulierung von minimalem Gewicht zu bestimmen. Wir k¨ onnten zun¨ achst versuchen (z. B. mit Backtrack), alle Triangulierungen aufzulisten und eine optimale daraus zu bestimmen. Bevor wir das versuchen, sollten wir die Anzahl der Triangulierungen bestimmen (oder zumindest absch¨atzen). Es sei Rn (n ≥ 3) diese Zahl, wobei offenbar die Gestalt des konvexen n-Eckes keine Rolle spielt. Der Anfangswert ist R3 = 1, und f¨ ur n = 4 erhalten wir R4 = 2. Betrachten wir ein (n + 2)-Eck. Wir numerieren die Ecken im Uhrzeigersinn v1 , v2 , . . . , vn+2 . Die Kante v1 vn+2 kommt in genau einem Dreieck vor, sagen wir in v1 vk vn+2 , 2 ≤ k ≤ n + 1.
vn+2
v1
vn+1
v2
(n−k+3)−Eck
k−Eck
vk+1 vk
vk−1
Wieviele Triangulierungen gibt es, in denen das Dreieck v1 vk vn+2 erscheint? Nun, das konvexe k-Eck v1 v2 . . . vk kann auf alle m¨oglichen Arten trianguliert werden, und analog das konvexe (n − k + 3)-Eck vk vk+1 . . . vn+2 . Wir erhalten somit die Rekursion n+1 Rn+2 = Rk Rn−k+3 (n ≥ 1) , k=2
10.2
dynamisches programmieren
201
wobei wir R2 = 1 setzen, um auch den Fall vn+2 v1 v2 einzubeziehen. Indextransformation ergibt Rn+2 =
n−1
Rk+2 R(n−1−k)+2
k=0
(n ≥ 1) ,
und diese Rekursion kennen wir schon aus Abschnitt 9.4 – sie definiert die CatalanZahlen. Ergebnis: 2n 1 Rn+2 = (n ≥ 0) . n+1 n 2n 1 ≥ 2n−1 , das heißt Rn ≥ 2n−3 . Die Durch Induktion sieht man sofort n+1 n Anzahl der Triangulierungen w¨ achst also exponentiell, und eine ersch¨opfende Suche kommt somit nicht in Frage. Wie funktioniert nun Dynamisches Programmieren? Gegeben sei das konvexe n-Eck mit den Ecken v1 , v2 , . . . , vn , und dem Gewicht w auf den Dreiecken. Als ersten Schritt sehen wir uns die Struktur der optimalen L¨osungen an. Angenommen, in einer optimalen Triangulierung erscheint das Dreieck v1 vk vn , 2 ≤ k ≤ n − 1. Dann ist klar, dass die Triangulierungen auf den Teilen v1 , . . . , vk bzw. vk , vk+1 , . . . , vn ebenfalls optimal sein m¨ ussen. Und das ist die Basis f¨ ur unser Vorgehen: Eine optimale L¨ osung setzt sich aus optimalen Teill¨osungen zusammen. Bezeichnen wir mit c(i, j), i < j, das minimale Gewicht der Triangulierungen ¨ des (j − i + 1)-Eckes vi , vi+1 , . . . , vj , so besagt unsere obige Uberlegung (1)
c(i, j) = min (c(i, k) + c(k, j) + wikj ) i yi . Die endg¨ ultige Position von z ist eine von 2n+1 M¨oglichkeiten: entweder z = yi (1 ≤ i ≤ n) oder z < y1 bzw. yi < z < yi+1 (1 ≤ i ≤ n), wobei wir yn+1 = ∞ setzen. Unser Suchbereich ist daher eine Menge X ∪ Y , X = {x0 , x1 , . . . , xn }, Y = {y1 , . . . , yn }, wobei der Ausgang xj bedeutet yj < z < yj+1 (bzw. z < y1 f¨ ur x0 ) und yi bedeutet z = yi . Da wir drei m¨ ogliche Antworten auf einen Vergleich z : yi haben, ist dies ein tern¨ ares Problem. Wir k¨ onnen es aber auch als bin¨aren Suchbaum modellieren. Sei z. B. n = 4. Wir vergleichen zun¨ achst z : y3 . Falls z > y3 ist, machen wir den Test z : y4 , und im Falle z < y3 den Vergleich z : y1 , und falls nun z > y1 ist, den Vergleich z : y2 . Wenn bei einem Test z = yi resultiert, so stoppen wir nat¨ urlich. Der Entscheidungsbaum sieht also folgendermaßen aus:
y1
y4
y2
x0 x1
x3
x4
x2
Wir sehen, dass die inneren Ecken zu den Ausg¨angen z = yi korrespondieren und die Bl¨ atter zu den Ausg¨ angen xj : yj < z < yj+1 . F¨ ur die Bl¨atter ist die L¨ange ℓ(xj ) gleich der Anzahl der Fragen, f¨ ur die inneren Ecken m¨ ussen wir noch die Frage z : yi hinzuz¨ ahlen, also ist hier ℓ(yi ) + 1 die Anzahl der Tests. Die worst-case L¨ ange des Algorithmus ist somit max ( max ℓ(xj ) , max ℓ(yi ) + 1) = 3 . 0≤j≤4
1≤i≤4
¨ Wir stellen uns nun folgende Frage, welche die Uberlegungen aus Abschnitt 9.3 verallgemeinert. Angenommen, wir haben eine Verteilung (p0 , . . . , pn , q1 , . . . , qn )
204
10
allgemeine optimierungsmethoden
auf X ∪ Y gegeben, nj=0 pj + ni=1 qi = 1. Was ist die minimale Durchschnittsl¨ ange eines Sortieralgorithmus? Wir sind also an der Gr¨oße L(p0 , . . . , pn , q1 , . . . , qn ) = min ( T
n
pj ℓ(xj ) +
j=0
n
qi (ℓ(yi ) + 1))
i=1
interessiert, erstreckt u aume mit n + 1 Bl¨attern. ¨ ber alle B¨ Angenommen, ein optimaler Algorithmus testet zuerst z : yk . Dann muss der linke Teilbaum optimal f¨ ur das Problem auf der Ergebnismenge S0,k−1 = {x0 , y1 , x1 , . . . , yk−1 , xk−1 } sein, und der rechte Baum optimal auf der Menge Sk,n = {xk , yk+1 , xk+1 , . . . , xn }. Wir haben also genau die Situation f¨ ur Dynamisches Programmieren. Sei c(i, j) die optimale Durchschnittsl¨ ange f¨ ur die Ergebnismenge Sij = {xi , yi+1 , xi+1 , . . . , yj , xj }, i < j, mit c(i, i) = 0 f¨ ur alle i. Ferner setzen wir j j wij = p + q . Unter Einbeziehung des Vergleiches an der Wurk=i k k=i+1 k zel (der die H¨ohe der Unterb¨ aume um 1 erh¨oht) erhalten wir die Bellmansche Optimalit¨ atsgleichung (2)
c(i, j) = wij + min (c(i, k − 1) + c(k, j)) (i < j) i pj , also bi ≥ pi > pj > bj , so k¨onnen wir die Positionen von i und j vertauschen, und i ist nach wie vor fr¨ uh und j sp¨at. Die Strafe s(P ) bleibt also gleich. Ferner k¨onnen wir die fr¨ uhen Jobs alle nach aufsteigenden Endzeiten anordnen. Sind n¨ amlich i und j fr¨ uhe Jobs mit pi < pj , bi > bj , so gilt pi < pj ≤ bj < bi , also k¨ onnen wir die Positionen von i und j vertauschen, und beide Jobs sind nach wie vor fr¨ uh. Wir k¨ onnen also voraussetzen, dass in einem Plan zuerst die fr¨ uhen Jobs A platziert werden und dann die sp¨ aten S = N A.Und jetzt kommt die entscheidende Idee. Die Gesamtstrafe von P ist s(P ) = i∈S si . s(P ) ist also minimal, angig wenn s(A) = j∈A sj maximal ist. Wir nennen eine Menge A ⊆ N unabh¨ (inklusive A = ∅), falls die Jobs in A als fr¨ uhe Jobs in einem Plan realisiert werden k¨ onnen. K¨ onnen wir zeigen, dass (N, A), A = Familie der unabh¨angigen Mengen, ein Matroid bilden, so k¨ onnen wir unseren Greedy-Algorithmus aus Satz 7.5 auf (N, A) mit der Gewichtsfunktion s anwenden. Wir sehen also, dass wir die Jobs nach ihrer Strafe absteigend anordnen m¨ ussen und dann den jeweils n¨achstm¨oglichen nehmen m¨ ussen. Im Nachhinein u ussen ¨ berlegt ist das eigentlich klar – wir m¨ zusehen, die Jobs mit der h¨ ochsten Strafe zuerst zu platzieren. In unserem Beispiel erhalten wir: i
7 5 2 1 4 6 3
si bi
5 4 3 2 2 2 1 4 2 2 3 1 2 6
Wir nehmen zuerst Job 7, dann 5. Job 2 kann ebenfalls platziert werden, wenn wir die Reihenfolge 5,2,7 nehmen, ebenso 1 mit der neuen Reihenfolge 5,2,1,7. Job 4 kann nicht platziert werden, auch nicht 6, aber wieder 3. Wir erhalten somit die optimale Basis des Matroides A = {7, 5, 2, 1, 3}. Arrangieren wir A nach aufsteigendem bi , so ergibt sich der optimale Plan P 5, 2, 1, 7, 3, 4, 6 mit s(P ) = s4 + s6 = 4. Es bleibt der Nachweis, dass (N, A) ein Matroid ist. Die ersten beiden Axiome sind klar. Bevor wir das Austauschaxiom beweisen, u ¨ berlegen wir uns eine Charakterisierung unabh¨ angiger Mengen A. Wir nehmen an, dass A mit aufsteigenden Endzeiten bi angeordnet ist. F¨ ur k = 1, . . . , n sei Nk (A) die Anzahl der Jobs in A mit bi ≤ k, N0 (A) = 0. Klarerweise muss Nk (A) ≤ k f¨ ur alle k gelten, und ebenso klar folgt aus dieser Bedingung, dass A unabh¨angig ist. Die Bedingung Nk (A) ≤ k (k = 0, . . . , n) charakterisiert somit unabh¨ angige Mengen. Zum Nachweis von Axiom 3) seien A, B ∈ A mit |B| = |A| + 1. Wir haben N0 (A) = N0 (B) = 0 und Nn (A) = |A| < |B| = Nn (B). Es existiert also ein gr¨oßter Index t mit 0 ≤ t < n, so dass Nt (B) ≤ Nt (A) ist. Aus Nt+1 (B) > Nt+1 (A)
208
10
allgemeine optimierungsmethoden
folgt, dass es einen Job i ∈ B A gibt mit bi = t + 1. Sei A′ = A ∪ {i}. F¨ ur k ≤ t folgt Nk (A′ ) = Nk (A) ≤ k, da A unabh¨angig ist, und f¨ ur j ≥ t + 1 gilt Nj (A′ ) ≤ Nj (B) ≤ j, da B unabh¨ angig ist. Nach unserer obigen Bemerkung ist also A ∪ {i} unabh¨ angig, und der Beweis ist beendet. Wir bemerken noch, dass eine Greedy-Vorgehensweise auch zum Ziel f¨ uhren kann, ohne dass ein Matroid gegeben ist (obwohl es oft im Nachhinein gefunden werden kann). Der Huffman-Algorithmus aus Abschnitt 9.2 ist eine GreedyMethode – wir w¨ ahlen immer Bl¨ atter kleinster Wahrscheinlichkeit. Oder Dijkstras K¨ urzeste-Wege-Algorithmus aus Abschnitt 7.4. Betrachten wir noch ein weiteres ber¨ uhmtes Problem – das Rucksackproblem (knapsack problem). Jemand findet n Gegenst¨ande. Jeder Gegenstand i hat einen Wert wi und ein Gewicht gi , wi , gi ∈ N. Er m¨ochte nun seinen Rucksack mit Gegenst¨ anden eines m¨ oglichst hohen Gesamtwertes f¨ ullen, kann aber h¨ochstens ein Gewicht G tragen. Welche Gegenst¨ ande soll er nun einpacken? Eine Greedy-Strategie wird zun¨ achst die Gegenst¨ande nach ihrem relativen Wert wgii in absteigender Reihenfolge anordnen, und immer den n¨achsten noch m¨ oglichen Gegenstand einpacken. Leider funktioniert dies schon f¨ ur n = 3 nicht. Sei z. B. i 1 2 3 wi gi wi /gi
3 1 3
5 2 5/2
6 3 2
G=5
Die Greedy-Methode w¨ ahlt 1 und dann 2 mit Gesamtwert 8, aber 2 und 3 sind auch m¨ oglich mit Wert 11. Angenommen, eine optimale Belegung B des Rucksacks enth¨alt Gegenstand m. Dann ist B {m} eine optimale Belegung des Unterproblems auf {1, . . . , n} {m} mit Gesamtgewicht G − gm . Die richtige Methode ist also nicht der Greedy¨ Algorithmus, sondern Dynamisches Programmieren (mehr dar¨ uber in den Ubungen). ¨ In den Ubungen werden wir auch sehen, dass der Greedy-Algorithmus sogar beliebig weit vom Optimum abweichen kann. Betrachten wir aber die folgende Variante, in der wir beliebig viele Exemplare eines Gegenstandes einpacken k¨onnen, solange nicht das Gesamtgewicht Gu wird. Gesucht ist also ein Vektor ¨ berschritten (x1 , . . . , xn ), xi ∈ N0 , mit gi xi ≤ G und wi xi = max. Probieren wir wiederum den Greedy-Algorithmus mit wg11 ≥ . . . ≥ wgnn , wobei wir g1 ≤ G annehmen k¨ onnen, da ansonsten der Gegenstandt 1 keine Rolle spielt. Mit der Greedy-Methode packen wir x1 Exemplare von 1 ein mit x1 = ⌊ gG1 ⌋. Sei nun (x1 , . . . , xn ) eine optimale L¨ osung, so haben wir wj ≤ wg11 gj f¨ ur alle j, also wopt =
n j=1
w j xj ≤
n w1 G G gj xj ≤ w1 ≤ 2w1 ⌊ ⌋ ≤ 2w∗ . g1 j=1 g1 g1
Der Greedy-Wert w∗ erreicht also mindestens die H¨alfte des Optimums. In den ¨ Ubungen wird gezeigt, dass die Schranke w∗ ≥ 12 wopt allgemein nicht weiter ver-
¨bungen u
209
bessert werden kann. Und noch eine letzte Bemerkung: Das Rucksackproblem ist in beiden Varianten N P -vollst¨ andig.
¨ Ubungen zu Kapitel 10 ⊲ 1 L¨ ose das K¨ onigsproblem (analog zum Damenproblem) auf dem n × n-Schachbrett. ¨ 2 Bestimme mit Backtrack alle 3 ×3-magischen Quadrate (siehe Ubung 12.37). Hinweis: 1 kann nicht in einer Ecke sein. ⊲ 3 Zeige, dass wir im Damenproblem auf dem n × n-Schachbrett a1 = 1 annehmen k¨ onnen. 4 Diskutiere das u ¨bliche 3 × 3-Tic-Tac-Toe-Spiel anhand eines Spielbaumes. ⊲ 5 Zeige, dass die Bestimmung von c(1, n) aus der Rekursion (1) in Abschnitt 10.2 exponentielle Laufzeit hat. 6 L¨ ose das folgende Traveling Salesman-Problem mit Branch and bound:
1 2 3 4 5 6
1
2
3
4
5
6
∞ 4 3 4 3 7
3 ∞ 2 2 3 4
6 3 ∞ 6 2 5
2 4 6 ∞ 6 7
8 4 3 4 ∞ 6
1 5 5 4 4 ∞
7 Bestimme eine optimale Triangulierung des regul¨ aren Sechseckes mit der Gewichtsfunktion w(vi vj vk ) = |vi − vj | + |vj − vk | + |vk − vi |. ⊲ 8 Das M¨ unzwechselproblem lautet folgendermaßen: Gegeben sind m M¨ unzen der Werte c1 , c2 , . . . , cm , ci ∈ N. F¨ ur n ∈ N bestimme (falls m¨ oglich) k1 , . . . , km mit m i=1 ki ci = n 0 1 m−1 k minimal. Zeige, dass f¨ u r die Potenzen c , c , . . . , c (c > 1, m ≥ 1) ein und m i i=1 Greedy-Algorithmus funktioniert. 9 Berechne die Anzahl der Vergleiche in dem Dynamischen Programm f¨ ur das Traveling Salesman-Problem. 10 L¨ ose mit Backtrack das Wolf, Esel, Mohrr¨ uben-Problem: Ein F¨ ahrmann muss die drei u ¨ber den Fluss bringen. Bei einer Fahrt kann er immer nur einen mitnehmen, und weder Wolf und Esel noch Esel und Mohrr¨ ube d¨ urfen allein auf einer Flussseite sein. ⊲ 11 Konstruiere ein Beispiel, wo der Greedy-Algorithmus (nimm immer ein zul¨ assiges Paar h¨ ochsten Wertes) f¨ ur das gewichtete Job-Zuordnungsproblem c : K → R+ aus Abschnitt 8.2 nicht funktioniert.
210
10
allgemeine optimierungsmethoden
12 L¨ ose das Damenproblem auf dem n × n-Schachbrett.
13 Es seien Matrizen M1 , . . . , Mn vom Typ ri × ri+1 (i = 1, . . . , n) gegeben. Eine Auswertung des Produktes M1 . . . Mn besteht aus einer Folge von Matrizenmultiplikationen, wobei die Kosten der Multiplikation einer r × s-Matrix A mit einer s × t-Matrix B gleich rst sind. Bestimme mit Dynamischem Programmieren eine billigste Multiplikationsfolge. Hinweis: Siehe das Triangulierungsproblem aus Abschnitt 10.2. 14 Bestimme eine optimale Multiplikationsfolge f¨ ur die sechs Matrizen mit den aufeinanderfolgenden Dimensionen 3, 5, 11, 2, 9, 23, 6. ⊲ 15 Drei eifers¨ uchtige M¨ anner wollen mit ihren Frauen u ¨ber den Fluss setzen. Das Boot fasst h¨ ochstens zwei Personen. Bestimme einen Transportplan, der alle u ¨bersetzt, ohne dass jemals eine Frau mit einem anderen Mann (ohne ihren eigenen) auf einer Flussseite oder im Boot ist. Geht es auch mit vier Paaren? urfeln. Die Aufgabe ist, die n3 16 Wir f¨ ullen einen n × n × n-W¨ urfel mit n3 Einheitsw¨ W¨ urfel mit weiß und schwarz so zu f¨ arben, dass die Anzahl der einfarbigen Linien (in jeder Richtung inklusive den Diagonalen) m¨ oglichst klein ist. ⊲ 17 Das Markenproblem lautet folgendermaßen: Gegeben sind n Marken verschiedener Werte aus N, und auf einen Brief k¨ onnen h¨ ochstens m Marken geklebt werden. Bestimme das gr¨ oßte N , so dass alle Summenwerte von 1 bis N realisiert werden k¨ onnen. Beispiel: F¨ ur n = 4, m = 5 realisiert {1, 5, 12, 28} alle Zahlen von 1 bis 71. Entwirf ein Backtrack Programm. ¨ ⊲ 18 Es sei χ(G) die chromatische Zahl des Graphen G = (E, K), siehe Ubung 6.12. F¨ ur + − uv ∈ / K sei G = G ∪ {uv} und G der Graph, der durch Identifikation von u und v in eine neue Ecke uv entsteht. Dabei ist z in G− zu uv benachbart genau dann, wenn z zu u oder v in G benachbart war. Zeige χ(G) = min(χ(G+ ), χ(G− )). Durch Iteration entwirf einen Branch and bound-Algorithmus zur Bestimmung von χ(G). Hinweis: Benutze den gr¨ oßten vollst¨ andigen Untergraphen als Schranke. ur das M¨ un19 Zeige, dass f¨ ur c1 = 1, c2 = 5, c3 = 10, c4 = 25 der Greedy-Algorithmus f¨ ¨ zenproblem funktioniert (siehe Ubung 8). Gib andererseits ein Beispiel {c1 , . . . , cm } an, wo der Greedy-Algorithmus nicht die optimale L¨ osung ergibt (auch wenn alle n realisiert werden k¨ onnen). 20 Zeige, wie Dynamisches Programmieren auf das Rucksackproblem angewandt werden kann mit Laufzeit O(Gn). ⊲ 21 Zeige anhand eines Beispieles, dass der Greedy-Algorithmus f¨ ur das Rucksackproblem beliebig weit vom Optimum abweichen kann. Das heißt, f¨ ur jedes 0 < ε < 1 gibt es einen ugt n = 2. Rucksack, so dass w∗ < (1 − ε)wopt ist, w∗ = Greedy-Wert. Hinweis: Es gen¨
1 n ⊲ 22 Seien im Rucksackproblem w ≥ ... ≥ w die relativen Werte. Zeige: wopt ≤ g1 gn k k wk+1 ur alle k, und folgere daraus w∗ ≥ wopt − max(wj : j=1 wj + gk+1 (G − j=1 gj ) f¨ ∗ j = 1, . . . , n), w = Greedy-Wert.
23 Eine Anzahl von Vortr¨ agen V1 , . . . , Vn sollen in R¨ aumen gehalten werden, wobei Vorotigt. Zu einer gegebenen Zeit kann in einem Raum nur ein Vortrag trag Vi eine Zeit ci ben¨ stattfinden. Entwirf einen Greedy-Algorithmus, der m¨ oglichst wenige R¨ aume benutzt, so dass alle Vortr¨ age zur Zeit C ≥ max ci beendet sind.
⊲ 24 Es seien n Jobs auf einer Maschine zu erledigen, wobei Ji zur Zeit ai beginnt und zur assig, falls ehi ≤ ahi+1 f¨ ur alle i Zeit ei endet. Eine Menge von Jobs Jh1 , . . . , Jhm heißt zul¨
¨bungen u
211
ist, das heißt falls sie hintereinander ausgef¨ uhrt werden k¨ onnen. Zeige, dass der folgende Greedy-Algorithmus eine maximal große zul¨ assige Menge liefert: Ordne die Jobs nach achstm¨ oglichen. e1 ≤ e2 ≤ . . . ≤ en , und nimm immer den n¨
25 Eine Variante des Rucksackproblems erlaubt, Teile derGegenst¨ ande einzupacken. Das heißt, gesucht ist (x1 , . . . , xn ) mit 0 ≤ xi ≤ 1, so dass gi xi ≤ G ist und wi xi maximal ist. Zeige, dass der Greedy-Algorithmus eine optimale L¨ osung liefert. Hinweis: Zeige, dass immer eine optimale L¨ osung mit x1 = Greedy (x1 ) existiert. 26 Sei die Variante des Rucksackproblems wie am Ende von Abschnitt 10.3 gegeben. Zeige anhand eines Beispieles, dass die Schranke w∗ ≥ 21 wopt nicht verbessert werden kann.
212
10
literatur
Literatur zu Teil II Es gibt eine Reihe guter Lehrb¨ ucher zur Graphentheorie, z. B. Diestel oder West. Ein klassisches Gebiet der Graphentheorie, die Einbettbarkeit von Graphen in die Ebene, wurde ganz ausgespart. Diese Frage stand ganz am Anfang der Graphentheorie, in Form des allgemein bekannten 4-Farbenproblems. Wer mehr dar¨ uber erfahren m¨ ochte, vor allem u ¨ ber den Einfluss des 4-Farbenproblems auf die Ent¨ wicklung der Graphentheorie, kann dies im Buch von Aigner nachlesen. Uber Graphenalgorithmen und kombinatorische Algorithmen gibt es eine große Zahl von B¨ uchern. Sehr umfangreich und detailliert ist das Buch von Corman–Leiserson– Rivest, empfohlen seien auch Even, Horowitz–Sahni, Papadimitriou–Steiglitz und Jungnickel. Das Buch von Lawler enth¨ alt unter anderem eine Vertiefung u ¨ ber Matroide und die damit verbundenen algorithmischen Probleme. F¨ ur Sortieralgorithmen ist nach wie vor der Klassiker das Buch von Knuth, und wer sich in das relativ neue Gebiet der Suchtheorie einarbeiten will, der sollte zu dem entsprechenden Buch von Aigner oder Ahlswede–Wegener greifen. Eine ausgezeichnete Darstellung der Komplexit¨atsklassen P und N P und allgemein der Komplexit¨atstheorie ist im Buch von Garey–Johnson enthalten. R. Ahlswede, I. Wegener: Suchprobleme. Teubner. M. Aigner: Graphentheorie – eine Entwicklung aus dem 4-Farben Problem. Teubner. M. Aigner: Combinatorial Search. Teubner-Wiley. T. Corman, C. Leiserson, R. Rivest: Introduction to Algorithms. MIT Press. R. Diestel: Graphentheorie. Springer-Verlag. S. Even: Algorithmic Combinatorics. MacMillan. M. Garey, D. Johnson: Computers and Intractability: A Guide to the Theory of N P -Completeness. Freeman. E. Horowitz, S. Sahni: Fundamentals of Computer Algorithms. Computer Science Press. D. Jungnickel: Graphen, Netzwerke und Algorithmen. Spektrum-Verlag D. Knuth: The Art of Computer Programming III, Sorting and Searching. Addison-Wesley. E. Lawler: Combinatorial Optimization: Networks and Matroids. Holt, Rinehart and Winston. C. Papadimitriou, K. Steiglitz: Algorithms and Complexity. Prentice-Hall. D. West: Introduction to Graph Theory. Prentice-Hall.
Teil III: Algebraische Systeme Im ersten Teil haben wir uns mit der Abz¨ ahlung von Mengen besch¨aftigt, die meist durch einfache kombinatorische Bedingungen erkl¨art waren, z. B. Untermengen oder Partitionen. Im zweiten Teil haben wir Graphen studiert und viele algorithmische Probleme gel¨ ost, indem wir Graphen als Datenstruktur eingef¨ uhrt haben. An mehreren Stellen haben wir gesehen, wie n¨ utzlich es ist, auf den Mengen, die zun¨ achst keine weitere Struktur aufweisen, algebraische Begriffe einzuf¨ Ein uhren. eindrucksvolles Beispiel waren die erzeugenden Funktionen F (z) = an z n . Zun¨ achst sind die Zahlen an nichts weiter als die M¨achtigkeit der gegebenen Mengen. Fassen wir sie aber als Koeffizienten der Reihe F (z) auf, so k¨onnen wir mit ihnen rechnen, sie addieren oder das Konvolutionsprodukt betrachten. Ein weiteres Beispiel war der Greedy-Algorithmus zur Erzeugung minimaler aufspannender B¨ aume in Abschnitt 7.2. Er funktioniert, weil die W¨alder ein Matroid bilden, ja der Korrektheitsbeweis wird sogar wesentlich durchsichtiger und auch einfacher, indem wir ihn auf die abstrakte Ebene der Matroide heben. Graphen oder allgemeiner Mengenfamilien haben wir mittels Inzidenz als 0, 1-Matrizen dargestellt, und mit Matrizen k¨ onnen wir wieder rechnen. Wir k¨onnen sie addieren und multiplizieren, eine Matrix hat einen Rang, und wir werden erwarten, dass der Rang der Inzidenzmatrix etwas u ¨ ber den Graphen aussagt. Informell gesagt haben wir algebraische Methoden verwendet, um gegebene diskrete Strukturen besser zu verstehen bzw. Probleme einfacher zu l¨osen. In diesem Teil nehmen wir in einem gewissen Sinn den umgekehrten Standpunkt ein. Wir untersuchen einige wichtige algebraische Systeme, arbeiten zun¨achst ihre Struktur heraus und u ¨ berlegen uns dann, auf welche diskrete Fragestellungen wir sie gewinnbringend anwenden k¨ onnen. Zum Beispiel kann man auf jeder endlichen Menge eine nat¨ urliche Addition oder Multiplikation einf¨ uhren. Wir werden sehen, dass die Menge mit dieser Addition oder Multiplikation (oder beidem) eine Anzahl von Symmetrien aufweist – und diese Symmetrien verwenden wir dann zur Konstruktion diskreter Konfigurationen. Ein besonders wichtiges Beispiel sind Ungleichungssysteme, auf die wir im letzten Kapitel eingehen. Wir kommen auf algebraischem Weg zu einem grundlegenden Ergebnis, dem Hauptsatz der linearen Optimierung, und stellen dann fest, dass dieser Satz alle unsere Fluss-Schnitt S¨atze umfasst, ja mehr noch, dass die Dualit¨ at Maximum Packen – Minimum Bedecken“ erst durch die algebraische ” Betrachtung in den richtigen Rahmen gestellt wird.
11
11.1
Boolesche Algebren
Definition und Eigenschaften
Wir studieren die Menge B(n) = {0, 1}n . Die Elemente von B(n) sind also Folgen oder Vektoren x = (x1 , . . . , xn ) von 0’en und 1’en der L¨ange n, oder 0, 1-W¨orter der L¨ ange n. Zun¨ achst ist das einfach eine Menge, aber wir k¨onnen nun B(n) auf mehrfache Weise interpretieren, auf B(n) verschiedene Strukturen erkl¨aren, und das macht die Sache erst interessant. Mit x, y, z . . . bezeichnen wir stets Elemente aus B(n), mit x, y, z, . . . einzelne Koordinaten. Eine Interpretation kennen wir schon l¨ angst. Wir betrachten die Menge S = {1, . . . , n} der Stellen und interpretieren x = (x1 , . . . , xn )
als Ax = {i : xi = 1} .
x ist also der charakteristische Vektor der Menge Ax , und die Beziehung x ←→ Ax ist bijektiv. Wir bezeichnen von nun an mit 0 = (0, . . . , 0) und 1 = (1, 1, . . . , 1) das Nullwort bzw. das Einswort. Die zugeh¨origen Mengen sind A0 = ∅ bzw. A1 = S. B(S) bezeichnet analog die Familie aller Untermengen von S. Eine andere und f¨ ur das Rechnen auf Computern fundamentale Interpretation ergibt sich, indem wir x als bin¨ are Darstellung einer nat¨ urlichen Zahl auffassen. In diesem Fall schreiben wir x = (x0 , x1 , . . . , xn−1 ) und haben die Beziehung
x = (x0 , x1 , . . . , xn−1 ) ←→ zx =
n−1
xi 2i .
i=0
Das Nullwort entspricht hier z0 = 0 und das Einswort z1 = 2n − 1. Operationen mit Mengen oder Zahlen k¨onnen also auch mittels 0, 1-W¨ortern durchgef¨ uhrt werden, und das ist der Grundgedanke, von dem wir uns im folgenden leiten lassen. F¨ ur Mengen haben wir drei Grundoperationen: Vereinigung ∪, Durchschnitt ∩, und Komplement − . Wir erkl¨ aren entsprechende Operationen nun f¨ ur 0, 1-W¨orter koordinatenweise: x 0 1 0 1
y 0 0 1 1
x+y 0 1 1 1
x 0 1 0 1
y 0 0 1 1
xy 0 0 0 1
x 0 1
x 1 0
216
11
boolesche algebren
und allgemein (x1 , . . . , xn ) + (y1 , . . . , yn ) = (x1 + y1 , . . . , xn + yn ) (x1 , . . . , xn )(y1 , . . . , yn ) = (x1 y1 , . . . , xn yn ) (x1 , . . . , xn ) = (x1 , . . . , xn ). Offenbar entspricht x+y der Vereinigung Ax ∪Ay , xy dem Durchschnitt Ax ∩Ay , und x dem Komplement Ax . Die Rechenregeln sind bekannt: Die Operationen + und · sind kommutativ, assoziativ und distributiv mit Nullelement 0 und Eins= x= x ist. element 1, und eindeutiger Komplementierung, x→ x, wobei Ferner gelten die Regeln von de Morgan: xi = xi , xi = xi , wobei und die eben eingef¨ uhrten Summe und Produkt bezeichnen. B(n) versehen mit den Operationen +, · und − (oder ¨aquivalent B(S) mit ∪, ∩,− ) heißt die Boolesche Algebra der Ordnung n. Man beachte, dass weder + noch · eine Gruppe ergibt, da 1 kein additives Inverses hat und z. B. (1, 0) kein multiplikatives Inverses f¨ ur n = 2. Eine weitere Struktur erhalten wir, indem wir die Operationen ⊕ und · zugrundelegen: x y xy x y x⊕y 0 0 0 0 0 0 1 0 1 1 0 0 0 1 0 1 1 0 1 1 0 1 1 1 In diesem Fall ist {0, 1} mit den Operatoren ⊕, · ein K¨ orper, den wir auch das Galoisfeld GF (2) nennen. (Wir kommen auf endliche K¨orper ausf¨ uhrlich in Abschnitt 12.2 zur¨ uck.) Erweitern wir die Operationen koordinatenweise, so wird B(n) ein Vektorraum der Dimension n u ¨ ber GF (2). Als Menge interpretiert entspricht x⊕y der symmetrischen Differenz (Ax Ay ) ∪ (Ay Ax ), die wir also ebenfalls mit der kurzen Bezeichnung Ax ⊕ Ay versehen. Die Inklusion auf Mengen A ⊆ B legt als weitere Struktur eine Ordnung x ≤ y auf B(n) nahe: F¨ ur x = (x1 , . . . , xn ), y = (y1 , . . . , yn ) setzen wir x ≤ y ⇐⇒ xi ≤ yi
f¨ ur alle i .
Offenbar gilt x ≤ y genau dann, wenn Ax ⊆ Ay ist. Die Ordnung ≤ hat die zus¨ atzliche Eigenschaft, dass zu je zwei Elementen x, y genau eine kleinste obere Schranke und genau eine gr¨ oßte untere Schranke existieren, die wir mit x ∨ y bzw. x ∧ y bezeichnen. Nun, das ist klar. Aus der Definition folgt z =x∨y w =x∧y
mit mit
zi = max (xi , yi ) wi = min (xi , yi )
f¨ ur alle i f¨ ur alle i .
Da f¨ ur n = 1 laut den Definitionstafeln f¨ ur + und · x∨y =x+y
und
x ∧ y = xy
11.2
aussagenlogik und boolesche funktionen
217
gelten, so ist auch allgemein x ∨ y = x + y , x ∧ y = xy , d. h. x ∨ y, x ∧ y entsprechen wieder der Vereinigung und dem Durchschnitt von ¨ Mengen. Das ist nat¨ urlich auch der Grund f¨ ur die Ahnlichkeit der Symbole ∨, ∪ bzw. ∧, ∩ . Eine Ordnung, die f¨ ur alle x, y ein Supremum x ∨ y und ein Infimum x ∧ y besitzt, heißt ein Verband. B(n) ist also mit der Ordnung ≤ (bzw. B(S) mit ⊆) ein Verband, genannt der Boolesche Verband. Der Grund, warum wir einmal + und ·, das andere Mal ∨ und ∧ verwenden, liegt im verschiedenen Ansatz. Das erste Mal steht der algebraische Aspekt im Vordergrund, das zweite Mal die Ordnung. Wir werden die Operationen je nach Problemstellung in der einen oder in der anderen Form verwenden. Schließlich k¨ onnen wir auch einen Abstand erkl¨aren, den sogenannten HammingAbstand : ∆(x, y) = |{i : xi = yi }| . Man sieht sofort, dass ∆ : B(n) → R+ eine Metrik im Sinne der Analysis ist, d. h. es gelten ∆(x, y) ≥ 0 mit ∆(x, y) = 0 genau f¨ ur x = y, ∆(x, y) = ∆(y, x), und die Dreiecksungleichung ∆(x, z) ≤ ∆(x, y) + ∆(y, z). Der Leser wird wahrscheinlich schon den Zusammenhang zu den W¨ urfelgraphen Qn aus Abschnitt 6.1 bemerkt haben. Die Ecken sind die W¨orter x ∈ B(n), und ¨ zwei Ecken sind benachbart, wenn ihr Hamming-Abstand gleich 1 ist. Ubrigens entspricht ∆(x, y) genau dem Abstand in Qn im graphentheoretischen Sinn.
11.2
Aussagenlogik und Boolesche Funktionen
Einer der historischen Ausgangspunkte f¨ ur Boolesche Algebren war der Zusammenhang zur Aussagenlogik. Betrachten wir n = 2. Eine Abbildung f : B(2) → {0, 1} heißt eine (zweiwertige) Boolesche Funktion. Da |B(2)| = 4 ist, gibt es also 24 = 16 solche Funktionen. Die Variablen x und y werden als Aussagen interpretiert, und zwar 1 als wahr und 0 als falsch. Schreiben wir nochmals die Tafeln f¨ ur unsere drei Grundoperationen ∨, ∧, ⊕ hin: x y x∨y x∧y x⊕y 0 0 0 0 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 0 Die Operation x ∨ y entspricht also der Aussage: x ∨ y ist wahr, wenn x oder y oder beide wahr sind; wir nennen x ∨ y im Sinne der Aussagenlogik Disjunktion. Der Operator x ∧ y entspricht der Konjunktion: x ∧ y ist genau dann wahr, wenn sowohl x als auch y wahr sind. Auf diese Weise k¨onnen wir alle 16 Funktionen aussagenlogisch interpretieren. Zum Beispiel entspricht x ⊕ y dem entweder–oder
218
11
boolesche algebren
(entweder x ist wahr und y ist falsch, oder y ist wahr und x ist falsch). Ein weiteres Beispiel ist: x y x→y 0 0 1 1 0 0 1 0 1 1 1 1 Dies entspricht der Implikation x → y. x → y ist immer wahr, außer wenn x urlich als Negation wahr und y falsch ist. Die Komplementierung x → x wird nat¨ ¬x interpretiert. Sehen wir uns ein Beispiel f¨ ur n = 3 an. Was ist die Wahrheitstafel f¨ ur die Funktion f (x, y, z) = (x → y) ∧ [(y ∧ ¬z) → (x ∨ z)]? Wir setzen alle 8 m¨oglichen Tripel (x, y, z) in f ein und berechnen die rechte Seite. F¨ ur x = y = z = 0 erhalten wir beispielsweise f (0, 0, 0) = (0 → 0) ∧ [(0 ∧ 1) → (0 ∨ 0)] = 1 ∧ [0 → 0] = 1 ∧ 1 = 1 , und f¨ ur x = 1 , y = 0 , z = 1 f (1, 0, 1) = (1 → 0) ∧ [(0 ∧ 0) → (1 ∨ 1)] = 0 , da 1 → 0 = 0 ist. Wir erkennen sofort zwei Probleme: 1. K¨ onnen wir eine gegebene Boolesche Funktion f : B(n) → {0, 1} auf eine einfache Form bringen, die eine schnelle Auswertung erlaubt? 2. Existiert f¨ ur f u ¨ berhaupt ein (x1 , . . . , xn ) mit f (x1 , . . . , xn ) = 1? Wir fragen also: Kann f u ullt werden, d. h. jemals wahr werden? ¨ berhaupt erf¨ Beide Fragen sind f¨ ur die Aussagenlogik von eminenter Bedeutung. Man m¨ochte eine Methode entwickeln, wie zusammengesetzte Aussagen als wahr (oder falsch) erkannt werden k¨ onnen, oder zumindest prinzipiell erkennen, ob sie erf¨ ullbar sind. Zur Behandlung der ersten Frage stellt man Normalformen auf. Die bekanntesten Normalformen sind die disjunktive Normalform DNF, bzw. durch Komplementierung die konjunktive Normalform CNF. Als Bausteine verwenden wir +, · und − . F¨ ur jede Eingabe c = (c1 , . . . , cn ) mit f (c) = 1 bilden wir die sogenannte Minterm Funktion mc mc (x1 , . . . , xn ) = xc11 xc22 . . . xcnn , wobei x1 = x und x0 = x bedeuten soll. Nach Definition des Produktes gilt also mc (x) = 1 genau f¨ ur x = c (klar?). Die Funktion f kann daher in der Form (DNF) f (x1 , . . . , xn ) = xc11 . . . xcnn c:f (c)=1 geschrieben werden. Dabei ist f ≡ 0 durch die leere Summe gegeben.
Zum Beispiel hat die Funktion f (x1 , x2 , x3 ) = x1 ⊕ x2 ⊕ x3 die DNF f (x1 , x2 , x3 ) = x1 x2 x3 + x1 x2 x3 + x1 x2 x3 + x1 x2 x3 .
11.2
aussagenlogik und boolesche funktionen
219
Die DNF zeigt, dass jede Boolesche Funktion mittels der Operationen +, ·,− ausgedr¨ uckt werden kann. Wir sagen daher, dass die Menge {+, ·,− } eine Basis f¨ ur alle Booleschen Funktionen bildet. Dabei setzen wir stets voraus, dass die Konstanten (= 0-wertige Funktionen) 0 und 1 frei gegeben sind. Dass dies von Bedeutung ist, wird weiter unten klar werden. ¨ Durch Komplementierung erhalten wir die konjunktive Normalform (s. Ubung 4): (CNF) f (x1 , . . . , xn ) = (xc11 + · · · + xcnn ) . c:f (c)=0 F¨ ur unser Beispiel ergibt dies x1 ⊕ x2 ⊕ x3 = (x1 + x2 + x3 )(x1 + x2 + x3 )(x1 + x2 + x3 )(x1 + x2 + x3 ) . Die beiden Operationen +, · allein bilden keine Basis. Zum Beispiel kann x1 ⊕x2 nicht mittels + und · dargestellt werden. Warum? Ist eine Funktion f in der Gestalt f (x1 , . . . , xn ) =
xi1 . . . xiℓ
(i1 ,...,iℓ )
gegeben, so sehen wir sofort, dass f (x) ≤ f (y) f¨ ur x ≤ y gilt, da dies ja laut den Tafeln f¨ ur + und · zutrifft. Auf die angegebene Weise k¨onnen also nur monotone Funktionen dargestellt werden (und f¨ ur diese Funktionen ist {+, ·} tats¨achlich eine ¨ Basis, siehe die Ubungen). Unsere Funktion x1 ⊕ x2 ist wegen (1, 0) ≤ (1, 1) und 1 ⊕ 0 = 1, 1 ⊕ 1 = 0 nicht monoton, und daher nicht mittels +, · darstellbar. Andererseits bilden wegen xy = x + y bzw. x + y = x y auch {+,− } bzw. {·,− } Basen. Ebenso ist {⊕, ·} eine Basis, wie wir aus x+y = (x⊕y)⊕(xy) und x = x⊕1 ur erkennen. Zum Beispiel haben wir x1 x2 x3 = x1 x2 (1 ⊕ x3 ) = x1 x2 ⊕ x1 x2 x3 . F¨ die Basis {⊕, ·} werden die Konstanten ben¨otigt, da ansonsten das Komplement nicht erzeugt werden kann. Bevor wir weitergehen, ist es Zeit f¨ ur ein typisches Beispiel aus dem t¨aglichen Leben. Im Wirtschaftsteil einer Zeitung steht folgender gelehrter Kommentar: Ent” weder der Euro wird abgewertet oder, falls der Export nicht zur¨ uckgeht, m¨ ussen die Preise eingefroren werden. Wird der Euro nicht abgewertet, so geht der Export zur¨ uck und die Preise werden nicht eingefroren. Werden die Preise aber eingefroren, dann wird der Export nicht zur¨ uckgehen und der Euro darf nicht abgewertet werden.“ Was heißt das? Wir setzen x f¨ ur Euro wird abgewertet“, y f¨ ur Export geht zur¨ uck“ ” ” und z f¨ ur Preise werden eingefroren“. Dann lassen sich obige Aussagen schreiben ” als A1 := x ∨ (¬y → z), A2 := ¬x → (y ∧ ¬z), A3 := z → (¬y ∧ ¬x) . Dies ergibt (nachpr¨ ufen!) A1 = x ∨ y ∨ z,
A2 = x ∨ (y ∧ ¬z),
A3 = ¬z ∨ (¬y ∧ ¬x)
220
11
boolesche algebren
also A1 ∧ A2 ∧ A3
= (x ∨ y ∨ z) ∧ (x ∨ (y ∧ ¬z)) ∧ (¬z ∨ (¬y ∧ ¬x))
= (x ∨ (y ∧ ¬z)) ∧ (¬z ∨ (¬y ∧ ¬x)) = (x ∧ ¬z) ∨ (y ∧ ¬z)
= ¬z ∧ (x ∨ y) = ¬z ∧ (¬x → y).
Das Gesagte ist also gleichbedeutend mit: Die Preise werden nicht eingefroren ” und, wenn der Euro nicht abgewertet wird, so geht der Export zur¨ uck.“ Und das klingt schon wesentlich einfacher. Kehren wir zur¨ uck zu den Normalformen. Wir haben gesehen, dass die disjunktive Normalform jede Boolesche Funktion als Summe von Produkten ausdr¨ uckt. Normalerweise ist aber die DNF nicht der einfachste Ausdruck dieser Gestalt. Betrachten wir als Beispiel f (x, y, z) = xyz + xyz + xyz. Jeder der drei Minterme enth¨ alt alle drei Variablen. Wegen z + z = 1 und w1 = w k¨onnen wir aber f (x, y, z) = xy(z + z) + xyz = xy + xyz auch als Summe von Produkten mit nur zwei Summanden schreiben. Nun liegt das allgemeine Problem auf der Hand: Finde f¨ ur eine Boolesche Funktion, z. B. gegeben in DNF, eine Darstellung als Summe von Produkten mit m¨oglichst wenig Summanden. Damit haben wir eine weitere Beschreibung, die sogenannte SOPEDarstellung Boolescher Funktionen (sums of products expansion). Ein bekannter Algorithmus zur Konstruktion einer SOPE-Darstellung stammt von Quine und McCluskey (siehe dazu die Literatur). F¨ ur kleine n kann man sich die Transformation von der DNF in die SOPE-Darstellung mit Hilfe der sogenannten KarnaughAbbildung anschaulich klarmachen. Betrachten wir wieder eine Funktion f (x, y, z) gegeben in DNF. Wir wissen, dass die DNF 8 m¨ ogliche Minterme enth¨ alt, und wenn (wie in unserem Beispiel) zwei Minterme sich nur in einer Variablen unterscheiden, so k¨onnen wir sie vereinfachen, indem wir diese Minterme addieren und die Variable streichen. Dies ist nun die Idee der Karnaugh-Abbildung. Wir repr¨asentieren die 8 m¨oglichen Minterme durch ein rechteckiges Schema, so dass benachbarte Felder sich nur in einer Variablen unterscheiden: y y y y x x z
z
z
z
Das linke obere Feld korrespondiert beispielsweise zum Produkt xyz und das rechte untere Feld zu x yz. Gehen wir von einem Feld zu einem Nachbarfeld, so bleiben zwei Variablen gleich, w¨ ahrend die dritte in das Komplement u ¨ bergeht. Dabei muss man sich die Felder zyklisch angeordnet vorstellen, d. h. gehen wir vom rechten oberen Feld xyz nach rechts, so landen wir beim Feld xyz links oben, entsprechend f¨ ur die Spalten. Nun schreiben wir 1 in ein Feld, falls der entsprechende Minterm in der DNF auftritt. Erscheinen nun zwei 1’en in benachbarten Feldern, so zeichnen wir ein
11.3
221
logische netze
Rechteck um diese 1’en und eliminieren die Beispiel ergibt dies y y y y x x 1 −→ x 1 1 x z z z z xyz + xyz + xyz
entsprechende Variable. In unserem y 1 z
y
y
y 1
1 z z z xy + xyz
Eine SOPE-Darstellung entspricht daher einer minimalen Bedeckung aller 1’en mit Rechtecken. Beachte, dass ein Quadrat, welches vier 1’en bedeckt, der Eliminierung von zwei Variablen entspricht. Sei z. B. f (x, y, z) = xyz + xyz + xyz + xyz + x yz. Die Karnaugh-Abbildung ist y y y y x 1 1 1 x 1 z
z
z
1 z
und wir erhalten f (x, y, z) = xyz + z, da außen herum ein Quadrat alle vier 1’en in den Ecken bedeckt. Kommen wir zur zweiten Frage: Wann ist eine Formel f (x1 , . . . , xn ), z. B. gegeben in disjunktiver Normalform, erf¨ ullbar? Hier liegt also ein Entscheidungsproblem im Sinne von Abschnitt 8.5 vor. Dieses Problem SAT (f¨ ur satisfiability) war das erste Beispiel, f¨ ur das 1971 von Cook die NP -Vollst¨andigkeit nachgewiesen wurde. Die Eingabel¨ ange ist die Anzahl der bin¨ aren Operationen, in die wir f z. B. mittels der DNF zerlegen. Nat¨ urlich ist SAT ∈ NP, da wir f¨ ur die xi ja nur die Werte einsetzen m¨ ussen. Dass SAT tats¨ achlich NP -vollst¨ andig ist, geht u ¨ ber unseren Rahmen hinaus und kann z. B. in dem Buch von Garey–Johnson nachgelesen werden. K¨onnen wir SAT in polynomialer Zeit l¨ osen, so auch alle Probleme in NP. Das Boolesche Erf¨ ullbarkeitsproblem steht also im Zentrum der Algorithmentheorie.
11.3
Logische Netze
Wir haben im letzten Abschnitt gesehen, dass sich Boolesche Funktionen mit Hilfe von einigen wenigen Basisoperationen darstellen lassen. Wir wollen nun einige wichtige Funktionen n¨ aher studieren, und insbesondere m¨oglichst effiziente Realisierungen herleiten. Unser Modell sieht folgendermaßen aus: Gegeben ist eine endliche Menge Ω = {gi : B(ni ) → {0, 1}} von Booleschen Funktionen, die wir die Basis nennen. Basis heißt wie bisher, dass alle Booleschen Funktionen mittels Ω dargestellt werden k¨ onnen, so wie etwa durch Ω0 = {+, ·,− }. Die Eingabe ist X = {x1 , . . . , xn , 0, 1}, wobei 0, 1 die Konstanten 0, 1 sind. Eine Berechnung oder Realisierung von f ∈ B(n) erfolgt nun Schritt f¨ ur Schritt aus den Eingaben und dann aus Auswertungen von Funktionen gi aus unserer Basis mit Argumenten, die wir schon berechnet
222
11
boolesche algebren
haben. Und am Schluss soll nat¨ urlich f vorliegen. Formal ist eine Berechnung von f also eine Folge α1 , α2 , . . . , αm , so dass f¨ ur alle αj entweder αj ∈ X gilt oder αj = gi (αj1 , . . . , αjni ) f¨ ur ein gi und j1 , . . . , jni < j. Schließlich ist αm = f . Allgemein k¨ onnen nat¨ urlich auch mehrere Ausgaben vorliegen (siehe die Addition weiter unten). Eine Berechnung α1 , . . . , αm k¨ onnen wir in naheliegender Weise durch einen repr¨ gerichteten Graphen G asentieren. Die Ecken sind die αj ’s, und wir zeichnen einen Pfeil αj → αk , falls αj in die Berechnung von αk eingeht. F¨ ur αj → αk gilt also stets j < k. Dieser gerichtete Graph heißt ein logisches Netz zur Realisierung hat als Quellen die Menge X und als Senke αm = f . von f . G Beispiel. Sei Ω0 = {+, ·,− }. Ein logisches Netz zur Berechnung von f (x1 , x2 , x3 ) ¨ = x1 x2 + x2 x3 + x1 x3 ist in der folgenden Figur gegeben, wobei wir der Ubersichtlichkeit halber die Pfeile weglassen. α1 = x1
α2 = x2
α3 = x3
r
α5 r r
b r
α6 b r α4 b
r
α7 α8
α9
α10 +
+
α 11
Formal setzen wir α1 = x1 , α2 = x2 , α3 = x3 , α4 = α1 , α5 = α2 , α6 = α3 , α7 = α1 α5 , α8 = α2 α6 , α9 = α3 α4 , α10 = α7 + α8 , α11 = α9 + α10 = f . Wir haben 3 Eingabeschritte, 3 Negationen, 3 Multiplikationen und 2 Additionen. Wie in der Figur angedeutet ist, zeichnen wir f¨ ur die Negation einen kleinen Kreis ◦, und f¨ ur die zweistelligen Operationen sogenannte Gatter, UND-Gatter ·⊃ bzw. ODER-Gatter +⊃. Ein theoretisch wie praktisch gleichermaßen interessantes Problem ergibt sich daraus: Gegeben eine Basis Ω und f ∈ B(n). Wie viele Rechenschritte ben¨ otigen wir zur Realisierung von f ? Unter Rechenschritten verstehen wir dabei nur die Kompositionen, die Eingaben werden nicht gez¨ahlt. In unserem Beispiel sind dies 8 Schritte. Geht es auch mit weniger als 8 ? Wir wollen mit CΩ (f ) die minimale Anzahl der Rechenschritte bezeichnen, und mit CΩ∗ (f ) die Anzahl der mehrwertigen Operationen, also die Negationen nicht mitgez¨ahlt. F¨ ur unser Beispiel erhalten wir somit CΩ0 (f ) ≤ 8, CΩ∗ 0 (f ) ≤ 5. Aus dem Beispiel erkennen wir noch ein weiteres Komplexit¨atsmaß. Die drei Multiplikationen k¨ onnen wir parallel ausf¨ uhren, und z¨ahlen dies als einen Schritt. Danach kommen die beiden Additionen. Wir sagen, die Tiefe des Netzes ist 3 na(ohne Negationen). Die Definition der Tiefe wird vom gerichteten Graphen G hegelegt. Die Quellen sind die Eingaben (Ecken mit In-Grad 0), die Senken sind die Ergebnisse (Aus-Grad 0). Die Tiefe ist dann genau die L¨ange eines l¨angsten
11.3
logische netze
223
in unserem Fall also 4, falls wir die Negationen z¨ahlen, gerichteten Weges in G, bzw. 3, falls wir nur die Gatter ber¨ ucksichtigen. Wir haben also zwei weitere Maße ∗ DΩ0 (f ) ≤ 4, DΩ (f ) ≤ 3 f¨ u r die minimalen Realisierungen. 0 Nehmen wir wieder die Basis Ω0 = {+, ·,− }. Wir wollen eine untere Schranke des Netf¨ ur CΩ∗ 0 (f ), f ∈ B(n) ableiten. Dazu betrachten wir den Graphen G zes. Wir sagen, f h¨ angt wesentlich von xi ab, falls es cj ∈ {0, 1}, j = i, gibt mit f (c1 , . . . , ci−1 , 0, ci+1 , . . . , cn ) = f (c1 , . . . , ci−1 , 1, ci+1 , · · · , cn ). Es ist klar, dass genau die wesentlichen Variablen als Quellen in jeder Realisierung von f vorkommen m¨ ussen, die unwesentlichen Variablen k¨ onnen wir unber¨ ucksichtigt lassen. Wir nehmen also oBdA an, dass f von allen xi wesentlich abh¨angt. Ein optimales Netz habe ℓ Negationen (In-Grad = Aus-Grad = 1) und CΩ∗ 0 (f ) Operationen + und · . zweifach. Nach Ecken hinein f¨ Wir z¨ ahlen nun die Kanten von G uhren ℓ + 2CΩ∗ 0 (f ) Kanten, und aus Ecken heraus mindestens n + ℓ + CΩ∗ 0 (f ) − 1 (aus der Senke f¨ uhrt keine Kante heraus, aber Eingaben und Gatter werden eventuell mehrfach benutzt), also erhalten wir ℓ + 2CΩ∗ 0 (f ) ≥ n + ℓ + CΩ∗ 0 (f ) − 1 oder (1)
CΩ∗ 0 (f ) ≥ n − 1 .
Beispiel. Betrachten wir die Matching-Funktion fM f¨ ur n gerade:
1 falls xi = yi f¨ ur alle i fM (x1 , . . . , xn/2 , y1 , . . . , yn/2 ) = 0 sonst. angt von allen Variablen ab. Setzen wir n¨amlich alle Variablen = xi gleich 1, fM h¨ so gilt fM = 0 f¨ ur xi = 0 und fM = 1 f¨ ur xi = 1. Nach (1) gilt also CΩ∗ 0 (fM ) ≥ n − 1. Um fM zu realisieren, verwenden wir zun¨achst g(x, y) = (x + y)(x + y). Die Funktion g erf¨ ullt g(x, y) = 1 genau f¨ ur x = y. Die Matchingfunktion wird demnach durch fM = g(x1 , y1 )g(x2 , y2 ) . . . g(xn/2 , yn/2 ) realisiert. Jede Funktion g(xi , yi ) ben¨ otigt 3 bin¨are Operationen aus unserer Basis, also insgesamt 3n , und die sukzessiven Multiplikationen der g(xi , yi ) weitere n2 − 1. 2 Wir erhalten somit n − 1 ≤ CΩ∗ 0 (fM ) ≤ 2n − 1 ,
und es kann gezeigt werden, dass CΩ∗ 0 (fM ) = 2n − 1 die tats¨achliche Komplexit¨at ist. Verwenden wir statt {+, ·,− } die Basis Ω1 = {⊕, ·,− }, so k¨onnen wir g(x, y) = x ⊕ y mit einer bin¨ aren Operation realisieren, und es folgt CΩ∗ 1 (fM ) ≤ n2 + n2 − 1 = ∗ n − 1, also CΩ1 (fM ) = n − 1 aufgrund der unteren Schranke (1), die nat¨ urlich auch f¨ ur Ω1 g¨ ultig ist. Eine besonders wichtige Funktion ergibt sich aus der Interpretation von 0, 1-W¨ortern als Zahlen in ihrer Bin¨ ardarstellung. Angenommen, wir wollen 14 + 11 addieren. In Bin¨ ardarstellung ist dies 14 = 0 · 20 + 1 · 21 + 1 · 22 + 1 · 23 , 11 = 1 · 20 + 1 · 21 + 0 · 22 + 1 · 23 : 14 : 0 1 1 1 11 : 1 1 0 1
224
11
boolesche algebren
¨ Wir addieren im Bin¨ arsystem mit Summe s und Ubertrag u:
x y
0 1 1 1 1 1 0 1
u s
0 1 1 1 1 0 0 1 1
Die Summe ist 1 · 20 + 0 · 21 + 0 · 22 + 1 · 23 + 1 · 24 = 25.
Wir sehen, dass si und ui+1 jeweils Funktionen von xi , yi und ui sind mit den folgenden Tafeln: x
y
z
s
u
0 1 0 0 1 1 0 1
0 0 1 0 1 0 1 1
0 0 0 1 0 1 1 1
0 1 1 1 0 0 0 1
0 0 0 0 1 1 1 1
Die einzelnen Bausteine des logischen Netzes heißen Voll-Addierer FA. Die gesamte Addition von x = (x0 , . . . , xn−1 ), y = (y0 , . . . , yn−1 ) wird somit folgendermaßen dargestellt: s0 6 u0 = 0 −→
FA 66 x0 y0
sn−1
s1 6 u1 −→
FA 6 6 x1 y1
6 u2 −→
...
un−1 −→
FA
−→ un = sn
6 6 xn−1 yn−1
Der Leser kann sich leicht u ¨ berzeugen, dass der Voll-Addierer durch folgendes Netz realisiert wird, wobei wir der K¨ urze halber auch ⊕-Gatter verwenden.
11.4
boolesche verb¨ ande, ordnungen, hypergraphen i≥1
i=0
s0
x0
r
r
ui+1 +
si
⊕ r
225
⊕
r
r
⊕
u1
y0
xi yi
ui
xi yi
ui
Die Gesamtzahl der Operationen in der Basis {+, ·, ⊕} ist daher 2 + 5(n − 1) = 5n − 3. Da in Ω0 = {+, ·,− } jedes ⊕-Gatter durch drei Additionen und Multiplikationen ersetzt werden kann, erhalten wir CΩ∗ 0 (fA ) ≤ 4 + 9(n − 1) = 9n − 5 f¨ ur die Additionsfunktion fA : B(2n) → B(n + 1), fA (x0 , . . . , xn−1 , y0 , . . . , yn−1 ) = (s0 , . . . , sn−1 , sn ).
11.4
Boolesche Verb¨ ande, Ordnungen, Hypergraphen
Wir wollen uns nun dem Ordnungsgesichtspunkt einer Booleschen Algebra zuwenden und B(n) als Mengenverband B(S) auf einer n-Menge S interpretieren mit der Inklusion A ⊆ B als Ordnungsrelation. Der Verband B(4) sieht folgendermaßen aus, wobei wir die geschweiften Klammern um die Mengen weglassen: 1234
123
12
13
1
134
124
14
23
2
3
234
24
34
4
0/
In diesem Diagramm sind die Inklusionen von unten nach oben als Kanten eingetragen. Wir haben nicht alle Inklusionen ber¨ ucksichtigt, sondern nur die Relationen
226
11
boolesche algebren
A ⊆ B mit |B| = |A| + 1, die u alt man durch Transitivit¨at. Zum Beispiel ¨ brigen erh¨ folgt aus {1} ⊆ {1, 3}, {1, 3} ⊆ {1, 3, 4}, dass {1} ⊆ {1, 3, 4} gilt. Diese bildliche Darstellung heißt das Hasse-Diagramm von B(4) (siehe Abschnitt 9.3, wo wir Hassediagramme f¨ ur Sortierprobleme verwendet haben). Wir k¨onnen das HasseDiagramm auch als gerichteten Graphen von unten nach oben auffassen, mit ∅ als einziger Quelle und {1, 2, 3, 4} als einziger Senke. Das Hasse-Diagramm kann nat¨ urlich auch f¨ ur beliebige Ordnungen (P, ≤) gezeichnet werden. Wir verbinden x und y, falls x < y ist und es kein z gibt mit x < z < y. Das folgende Hasse-Diagramm rg ri rj @ @ re @r f @ @ @r c r d b r @ @ r @ a repr¨ asentiert die Ordnung auf P = {a, b, . . . , j} mit den Relationen a < b, a < c, a < d, a < e, a < f , a < g, a < i, a < j, b < e, b < g, c < e, c < g, d < f , d < i, d < j, e < g, f < i, f < j. Aus der Ordnung ≤ auf P ergeben sich sofort einige Begriffe. Eine Kette in (P, ≤) der L¨ ange k ist eine Folge von k + 1 verschiedenen ange einer l¨angsten Kette mit Endelement a Elementen a0 < a1 . . . < ak . Die L¨ heißt die H¨ ohe h(a) von a ∈ P , und h(P ) = maxa∈P h(a) die H¨ohe von P . In unserem Beispiel sehen wir h(a) = 0, h(b) = h(c) = h(d) = 1, h(e) = h(f ) = 2, h(g) = h(i) = h(j) = 3. Ein Element a heißt minimal, wenn es kein b gibt mit b < a, und analog maximal, wenn es kein c gibt mit a < c. In einer Kette sind je zwei Elemente x, y vergleichbar, d. h. es gilt x < y oder y < x. Umgekehrt nennen wir x, y unvergleichbar, falls weder x < y noch y < x zutrifft. In unserem Beispiel sind b und c oder e und j unvergleichbar. Eine Antikette ist eine Teilmenge A ⊆ P von paarweise unvergleichbaren Elementen. Mit anderen Worten: A enth¨ alt keine Ketten der L¨ange ≥ 1. In unserem Beispiel sind {e, f } und {b, c, i, j} Antiketten. Kehren wir zur¨ uck zu Booleschen Verb¨ anden B(S), |S| = n. Eine Kette C ist eine Mengenfamilie A0 ⊂ A1 ⊂ A2 ⊂ . . . ⊂ Ak , und eine Antikette eine Familie A ⊆ B(S) mit A B und B A f¨ ur alle A, B ∈ A. Was ist die H¨ohe von A ⊆ S ? Nun offenbar |A|, da die l¨ angsten Ketten von ∅ nach A einer Permutation der Elemente von A = {a1 , . . . , ak } entsprechen: ∅ ⊂ {a1 } ⊂ {a1 , a2 } ⊂ . . . ⊂ A. Insbesondere ist die H¨ ohe von B(S) gleich n, und die Ketten der L¨ange n korrespondieren genau zu den n! Permutationen von {1, 2, . . . , n}. Nun stellen wir uns die Frage, wie groß Antiketten in B(S) sein k¨onnen. Zun¨ achst ist klar, dass Sk = {A ⊆ S : |A| = k} eine Antikette ist f¨ ur alle k (da keine k-Menge in einer anderen k-Menge enthalten sein kann), also | Sk | = nk . Wir wissen schon, dass die gr¨ oßten Binomialkoeffizienten in der Mitte auftreten,
11.4
boolesche verb¨ ande, ordnungen, hypergraphen
227
n ¨ also max0≤k≤n nk = ⌊n/2⌋ (siehe Ubung 1.8). Dass es keine gr¨oßeren Antiketten gibt, besagt der folgende Satz von Sperner. Satz 11.1.
In B(S), |S| = n, gilt max (|A| : A Antikette ) =
n ⌊n/2⌋
.
Beweis. F¨ ur diesen fundamentalen Satz gibt es viele Beweise. Der folgende ist der k¨ urzeste und eleganteste. Sei |A| = m, und fi die Anzahl der Mengen A ∈ A mit |A| = i, also ni=0 fi = m. Wir betrachten die n! maximalen Ketten in B(S) von ∅ bis {1, . . . , n}. Da A Antikette ist, trifft solch eine maximale Kette die Antikette A in h¨ ochstens einer Menge. Die Anzahl der Ketten, die durch ein A ∈ A gehen, ist |A|!(n − |A|)!, da wir zun¨ achst auf alle m¨oglichen Weisen von ∅ bis A gehen k¨ onnen und dann von A nach S = {1, . . . , n} (Produktregel). Also erhalten wir n! ≥
A∈A
|A|! (n − |A|)! =
n i=0
fi i!(n − i)!
oder (1) Ersetzen wir
1≥ n i
n i=0
n i=0
also wie gew¨ unscht m ≤
fi
1
n ⌊n/2⌋
n ⌊n/2⌋
i
n ⌊n/2⌋
durch das Maximum 1≥
1 fi n .
=
1
n ⌊n/2⌋
, so ergibt (1)
n i=0
fi =
1 n ⌊n/2⌋
m,
S . Da ⌊n/2⌋ Antikette ist, ist der Satz bewiesen.
¨ Ubrigens kann leicht gezeigt werden, dass die einzigen maximal Antiketten S großen S in B(S) genau die Familien Sn f¨ ur n gerade bzw. n−1 , n+1 f¨ ur n ungerade 2 2 2 ¨ sind (siehe Ubung 30). Stellen wir uns nun die folgende Aufgabe: Wir wollen B(S) in m¨ weni oglichst n Ketten, ge disjunkte Ketten zerlegen. Sicherlich brauchen wir mindestens ⌊n/2⌋ da keine zwei Mengen einer Antikette in einer Kette erscheinen k¨ o nnen. Gibt es n aber nun eine Zerlegung in ⌊n/2⌋ Ketten? Ja, die gibt es, und der entsprechende allgemeine Satz von Dilworth sagt aus, dass dies sogar f¨ ur beliebige Ordnungen zutrifft. Satz 11.2.
Es sei (P, ≤) eine endliche Ordnung. Dann gilt min (|C| : C Kettenzerlegung) = max (|A| : A Antikette) .
228
11
boolesche algebren
Beweis. Sei C = {C1 , C2 , . . . , Ct } eine Zerlegung von P in t disjunkte Ketten. Da die Elemente einer Antikette A in verschiedenen Ci ’s erscheinen, haben wir |C| ≥ |A|, und somit min |C| ≥ max |A| . Um die Gleichheit zu beweisen, benutzen wir Induktion nach n = |P |. F¨ ur n = 1 ist nichts zu zeigen. Es sei A(P ) die Familie der Antiketten von P . Wir nehmen induktiv an, dass min |C| = max |A| f¨ ur alle Ordnungen Q mit |Q| < |P | gilt. Es sei m = max (|A| : A ∈ A(P )). Nehmen wir zun¨achst an, es existiert eine Antikette A mit |A| = m, welche weder alle maximalen Elemente noch alle minimalen Elemente von P enth¨ alt. Wir definieren P + und P − durch ur ein a ∈ A} P + = {p ∈ P : p ≥ a f¨
P − = {p ∈ P : p ≤ a f¨ ur ein a ∈ A} . Die Voraussetzung an A impliziert P + = P , P − = P und P = P + ∪ P − , A = P + ∩P − (warum?). Nach Induktion k¨ onnen P + und P − in jeweils m Ketten zerlegt werden, die in den Elementen von A zusammengef¨ ugt eine Kettenzerlegung von P in m Ketten ergeben. Im anderen Fall enth¨ alt jede Antikette A mit |A| = m entweder alle maximalen oder alle minimalen Elemente. Es kann daher h¨ochstens zwei solche Antiketten geben, eine bestehend aus allen maximalen Elementen, die andere aus allen minimalen Elementen. Sei a ein maximales Element, und b ein minimales Element mit b ≤ a. Nach Induktion k¨ onnen wir P {a, b} in m − 1 Ketten zerlegen, und k¨ onnen dann b ≤ a hinzuf¨ ugen. Der Satz von Dilworth mit seiner Maximum-Minimum Aussage ¨ahnelt stark fr¨ uheren S¨ atzen dieses Typs – und das ist kein Zufall. Der Satz 8.3 u ¨ ber Maximum Matchings in bipartiten Graphen ist eine unmittelbare Folgerung aus 11.2. Dazu fassen wir G = (S + T, K) als Ordnung auf E = S + T auf, indem wir die Kanten von S nach T orientieren, also u < v setzen, falls u ∈ S, v ∈ T und uv ∈ K ist. Eine disjunkte Kettenzerlegung entspricht einer Menge von nichtinzidenten Kanten zusammen mit den u ¨ brigen Ecken. Wir erhalten offenbar eine minimale Zerlegung, indem wir m¨ oglichst viele Kanten hineinpacken, d. h. ein Maximum Matching M nehmen. Somit haben wir |C| = |M | + (|E| − 2|M |) = |E| − |M |, also min |C| = |E| − max (|M | : M Matching ) . Eine Antikette entspricht einer Menge U von Ecken, die durch keine Kanten verbunden sind. Die Komplement¨ armenge E U ist daher ein Tr¨ager, und umgekehrt, falls D ein Tr¨ ager ist, so ist E D eine Antikette. Eine maximal große Antikette A entspricht also einem minimal kleinen Tr¨ ager D = E A, und wir folgern max |A| = |E| − min (|D| : D Tr¨ager ) . Aus dem Satz von Dilworth folgt nun sofort max |M | = min |D|.
11.4
boolesche verb¨ ande, ordnungen, hypergraphen
229
Wir k¨ onnen Mengenfamilien F ⊆ B(S) auch als Verallgemeinerung von Graphen auffassen. Wir nennen S die Ecken und die Mengen A ∈ F die (Hyper-) Kanten, (S, F) heißt dann ein Hypergraph. Mengen A, die mehrfach in F vorkommen, heißen wieder Mehrfachkanten. Graphen sind also der Spezialfall, wenn F ⊆ S2 ist. Viele Begriffe und S¨ atze aus der Graphentheorie k¨onnen ohne weiteres auf Hypergraphen erweitert werden. Zum Beispiel ist der Grad d(u), u ∈ S, die Anzahl der A ∈ F mit u ∈ A. Stellen wir die u ¨ bliche Inzidenzmatrix M = (mij ) auf, S = {u1 , . . . , un }, F = {A1 , . . . , Aq } mit
1 falls ui ∈ Aj mij = 0 sonst, so erhalten wir durch zweifaches Abz¨ ahlen
u∈S
d(u) =
q j=1
|Aj | .
¨ Die Ubungen enthalten eine Reihe von weiteren Beispielen, wie Graphenbegriffe sinnvoll auf Hypergraphen, d. h. auf Mengenfamilien, angewandt werden k¨onnen. Besonders interessant ist der Fall F ⊆ Sk . Wir nennen dann den Hypergraphen (S, F) k-uniform. Graphen sind also genau die 2-uniformen Hypergraphen. Betrachten wir ein Beispiel, das jedem gel¨aufig ist, das Lotto. Die Zahlen S = {1, 2, . . . , 45} sind gegeben. Jeder Lottotip besteht aus einer Familie F ⊆ S6 ; (S, F) ist also ein 6-uniformer Hypergraph. Ist X die gezogene 6-Menge, so wird ein Gewinn ausgezahlt, falls |X ∩ A| ≥ 3 f¨ ur mindestens ein A ∈ F gilt. Um mit Sicherheit einen vollen Gewinn zu erzielen, m¨ ussen wir F = S6 setzen, mit 45 |F| = 6 = 8, 145.060. Das geht nat¨ urlich nicht (und darum verdient der Staat insgesamt an jeder Ziehung, selbst wenn er den ganzen Gewinn aussch¨ utten w¨ urde, was er aber nur zu 30% tut). Jedenfalls haben wir es mit einem Minimierungsproblem zu tun: Um mit Sicherheit u ussen wir ¨ berhaupt einen Gewinn zu bekommen, m¨ einen 6-uniformen Hypergraphen (S, F) konstruieren, so dass zu jedem X ∈ S6 ein A ∈ F existiert mit |X ∩ A| ≥ 3. Was ist min |F| ? Niemand weiß es, und selbst f¨ ur wesentlich kleinere Zahlen als 45, zum Beispiel 15, ist die Antwort offen. Machen wir uns die Sache einfacher. Ein 6-uniformer Hypergraph (S, F) ist sicherlich erfolgreich, wenn jedes Tripel von Zahlen in einem A ∈ F vorkommt. Wir sagen, F bedeckt ganz S3 . Allgemein haben wir folgendes Problem: Seien n ≥ k ≥ t gegeben, |S| = n. Die C(n, k, t) ist die minimale Bedeckungszahl Gr¨ oße eines Hypergraphen F ⊆ Sk , so dass jede t-Menge in mindestens einem A ∈ F vorkommt. Analog dazu ist die Packungszahl P (n, k, t) die maximale Gr¨ oße von F ⊆ Sk , so dass jede t-Menge in h¨ ochstens einem A ∈ F auftritt. Klarerweise ist C(n, k, 1) = ⌈ nk ⌉, P (n, k, 1) = ⌊ nk ⌋. Sehen wir uns den ersten interessanten Fall k = 3, t = 2 an. Sei F ⊆ S3 eine minimal große bedeckende Menge, |F| = C = C(n, 3, 2). Wir betrachten die Paare (X, A), X ∈ S2 , A ∈ F, n X ⊆ A. Durch zweifaches Abz¨ ahlen erhalten wir 2 ≤ 3C, also C ≥ ⌈ n(n−1) 3·2 ⌉.
230
11
boolesche algebren
F¨ ur n = 4 ergibt dies C(4, 3, 2) ≥ 2. Zwei Tripel, z. B. {1, 2, 3}, {1, 2, 4}, gen¨ ugen aber nicht, da {3, 4} nicht bedeckt ist. Satz 11.3.
n n−1 Es gilt C(n, 3, 2) ≥ ⌈ n3 ⌈ n−1 2 ⌉⌉, P (n, 3, 2) ≤ ⌊ 3 ⌊ 2 ⌋⌋.
Beweis. Seien A1 , . . . , AC , C = C(n, 3, 2), die Tripel in F, S die Grundmenge. F¨ ur u ∈ S sei ru die Anzahl der Tripel in F, welche u enthalten. Da jedes Paar {u, v} in einem Tripel Ai enthalten sein muss, und jedes Aj h¨ochstens zwei Paare n−1 n−1 {u, x} beisteuert, folgt r ≥ , also r ≥ ⌈ ⌉. Nun gilt 3C = u u u∈S ru , somit 2 2 n n−1 C = 13 u∈S ru ≥ n3 ⌈ n−1 ur P (n, 3, 2) verl¨auft 2 ⌉, also C ≥ ⌈ 3 ⌈ 2 ⌉⌉. Der Beweis f¨ analog. Den bestm¨ oglichen Fall (ohne Aufrundungen) erhalten wir f¨ ur C(n, 3, 2) = n(n−1) . 6 Soll das erf¨ ullt sein, so muss jedes Paar in genau einem Tripel sein, also auch gelten. Wann ist dies m¨oglich? Nun, zuerst haben wir die P (n, 3, 2) = n(n−1) 6 arithmetische Bedingung, dass n(n−1) eine ganze Zahl sein muss. Das heißt, n 6 muss von der Form n = 6m + 1 oder n = 6m + 3 sein, also kann dies nur f¨ ur n = 3, 7, 9, 13, 15, . . . erf¨ ullt sein. Sehen wir uns das erste interessante Beispiel ullt die Bedingung: n = 7 an. Die folgende Familie F mit |F| = 7 = 7·6 6 erf¨ F = {124, 235, 346, 457, 561, 672, 713} . Der Leser wird sicher sofort bemerkt haben, dass F eine besondere Struktur hat. Das erste Tripel ist 1, 2, 4 und die weiteren erhalten wir, indem wir jeweils 1 zu den Elementen hinzuz¨ ahlen, und zwar zyklisch, oder wie wir sagen, modulo 7. 1 7
2
3
6
5
4
Allgemein werden wir erwarten, dass die extremalen Familien eine gewisse innere Struktur besitzen – und diese (algebraische) Struktur ist Thema des n¨achsten Kapitels.
¨bungen u
231
¨ Ubungen zu Kapitel 11 1 Pr¨ ufe die u ur (B(n), +, ·) nach wie Kommutativit¨ at, Assoziativit¨ at, ¨blichen Regeln f¨ Distributivit¨ at, und zeige ferner x + x = 1, x + x = x, x · x = 0 , x · x = x, x + xy = x(x + y) = x. 2 Sind die folgenden Aussagen widerspr¨ uchlich oder konsistent? a. A1 = {(x → y) → z, (¬x ∨ y) → (y ∧ z), z → (¬x → y)}, b. A1 ∪ {¬(y → z)}, c. A1 ∪ {y → z}. 3 Die Booleschen Funktionen f, g ∈ B(n) seien monoton, s = x1 ∧ . . . ∧ xn , t = x1 ∨ . . . ∨ xn . Zeige: a. s ≤ f ∨ g ⇒ s ≤ f oder s ≤ g, b. f ∧ g ≤ t ⇒ f ≤ t oder g ≤ t. ⊲ 4 Zeige, dass CNF aus DNF durch Anwendung der de Morganschen Regeln folgt. 5 Zeige, dass jedes f ∈ B(n) in der Form f (x1 , . . . , xn ) = x1 f (1, x2 , . . . , xn ) + x1 f (0, x2 , . . . , xn ) geschrieben werden kann, und wende dieses Prinzip auf f = x1 x2 + x2 x3 + x2 x3 x4 an, um die DNF zu erhalten. ⊲ 6 Sei f : B(3) → {0, 1} gegeben durch f (0, 0, 0) = f (0, 1, 1) = 0 und ansonsten 1. Bestimme die DNF und CNF und finde eine noch einfachere Darstellung mit 3 Summanden, in denen die Variablen insgesamt nur 5-mal vorkommen. 7 Interpretiere alle 16 Booleschen Funktionen f mit zwei Variablen aussagenlogisch und als Operationen auf Mengen. 8 Zeige, dass Ω = {⊕, ·} keine Basis mehr ist, wenn die Konstanten 0 und 1 nicht frei gegeben sind. 9 Zu einer Ordnung P assoziieren wir einen Graphen G(P ) folgendermaßen: die Ecken von G(P ) sind die Elemente aus P , und es gilt xy ∈ K(G(P )) ⇔ x < y oder y < x in P . ¨ G(P ) heißt der Vergleichbarkeitsgraph von P . Uberlege, was der Satz von Dilworth f¨ ur G(P ) bedeutet. ⊲ 10 Zeige das folgende Gegenst¨ uck zu Satz 11.2: Sei P eine Ordnung, dann ist die Anzahl der Elemente in einer l¨ angsten Kette gleich der minimalen Anzahl von Antiketten, in die P zerlegt werden kann. ⊲ 11 Sei H = (S, F ) ein Hypergraph. Ein Kreis in H besteht aus einer Folge u1 , F1 , u2 , F2 , . . . , Fk , u1 mit ui ∈ S, Fj ∈ F , so dass aufeinanderfolgende Glieder inzident sind. H heißt zusammenh¨ angend, falls jedes Paar u, v durch eine Folge u, F1 , u2 , . . . , Fk , v verbunden ist. Zeige: H ist zusammenh¨ angend und kreislos ⇔ F ∈F (|F | − 1) = |S| − 1. Hinweis: Betrachte den bipartiten Graphen G = (S + F , K) mit uF ∈ K ⇔ u ∈ F . 12 Angenommen, je zwei Kanten eines Hypergraphen H = (S, F ) haben ein Element ur welche gemeinsam, und H hat keine mehrfachen Kanten. Zeige: |F| ≤ 2n−1 , n = |S|. F¨ F gilt Gleichheit?
⊲ 13 Beweise die Ring-Summen-Normalform (RSE): Jede Boolesche Funktion f kann ein deutig in der Form f (x) = I ⊕aI xI geschrieben werden, ur I = {i1 < . . . < wobei f¨ ⊕ bedeutet Summation mit ik } ⊆ {1, . . . , n}, xI = xi1 xi2 . . . xik ist und aI ∈ {0, 1}. ⊕.
14 Bestimme DNF, CNF und RSE f¨ ur die folgenden Booleschen Funktionen: a. x1 x2 +x3 , b. x1 + . . . + xn , c. x1 x2 . . . xn .
⊲ 15 Es seien f = g ∈ B(n) durch ihre RSE-Darstellung gegeben. Wie kann man eine Eingabe a mit f (a) = g(a) finden, ohne alle Eingaben zu testen?
232
11
boolesche algebren
⊲ 16 Aus der Chemie: F¨ allt ein weißer Niederschlag, dann enth¨ alt die Probe Natrium oder Ammoniak. Ist kein Natrium in der Probe, so enth¨ alt sie Eisen. Ist Eisen vorhanden und f¨ allt ein weißer Niederschlag, dann kann kein Ammoniak vorhanden sein. Was ist also sicher vorhanden, wenn ein weißer Niederschlag f¨ allt?
17 Zeige, dass der Sheffer Stroke ↑ gegeben durch x 0 1 0 1
y 0 0 1 1
x↑y 1 1 1 0
zusammen mit den Konstanten 0, 1 eine einelementige Basis bildet. Unter den 16 Funktionen in B(2) gibt es eine weitere einelementige Basis, welche?
⊲ 18 Zeige, dass die Basis Ω = {+, ·} genau die monotonen Funktionen realisiert. 19 Zeige, dass die SOPE-Darstellung von x1 ⊕ . . . ⊕ xn gleich der DNF ist.
⊲ 20 Stelle eine Karnaugh-Abbildung f¨ ur vier Variablen x, y, z, w auf, d. h. benachbarte Felder unterscheiden sich wieder in genau einer Variablen. Bestimme eine SOPE-Darstellung f¨ ur die Funktion g(x, y, z, w) = xyz w + xyzw + xy z w + xyzw + xyz w + x y z w + x y z w mit Hilfe der Karnaugh-Abbildung. Hinweis: Es gen¨ ugen drei Summanden. ∗ 21 Berechne CΩ (f ) f¨ ur die folgenden Funktionen in bezug auf die Basis Ω = {+, ·,− , ⊕}:
ur alle i 1 xi + yi = 1 f¨ a. f (x1 , . . . , xn , y1 , . . . , yn ) = , 0 sonst
1 xi = yi f¨ ur alle i . b. f (x1 , . . . , xn , y1 , . . . , yn ) = 0 sonst.
22 Ein logisches Netz hat fan-in bzw. fan-out s, falls jedes Gatter h¨ ochstens s Eing¨ ange at bei fan-out s. Zeige bzw. s Ausg¨ ange hat. Sei Ω eine Basis und Cs (f ) die Komplexit¨ Cs+1 (f ) ≤ Cs (f ), s ≥ 1.
⊲ 23 Sei Ω eine Basis mit fan-in r. LΩ (f ) = C1 (f ) (fan-out 1) heißt die Formell¨ ange von f ∈ B(n). Zeige: logr ((r − 1)LΩ (f ) + 1) ≤ DΩ (f ), DΩ (f ) = Tiefe von f . 24 Konstruiere ein logisches Netz mit fan-out 1 f¨ ur f (x1 , . . . , xn ) = x1 x2 . . . xn , n = 2k , ur DΩ (f ) annimmt. Folgere, dass in welches gleichzeitig das Minimum f¨ ur LΩ (f ) und f¨ ¨ der vorigen Ubung Gleichheit gelten kann.
⊲ 25 Es sei N (n) die Anzahl der Booleschen Funktionen f ∈ B(n), welche wesentlich von n 2n mit N (0) = 2, und bestimme jeder Variablen abh¨ angen. Beweise: n j=0 N (j) j = 2 n
N (n) f¨ ur n ≤ 4. Berechne lim N (n)/22 . n→∞
26 Es seien f1 , . . . , fm Boolesche Funktionen mit n Variablen wobei fi = fj , f j f¨ ur alle ∗ ∗ (fj ) ≥ 1 f¨ ur alle j, Ω beliebige Basis. Zeige: CΩ (f1 , . . . , fm ) ≥ m − 1 + i = j ist, und CΩ ∗ (fj ). min CΩ j
(n)
⊲ 27 Die folgende Funktion fT (x0 , . . . , xn−1 ) = (g0 , . . . , g2n −1 ) heißt Bin¨ ar-Positionsn−1 j x 2 = i wobei die gew¨ ohnTransformation. Es ist gi (x0 , . . . , xn−1 ) = 1 ⇔ j j=0 (n)
∗ (fT ) ≤ 2n + n2⌈n/2⌉ − 2 f¨ ur liche Zahlen-Addition ist. Zeige, dass 2n + n − 2 ≤ CΩ 0
¨bungen u
233
cn−1 Ω0 = {+, ·,− } gilt. Hinweis: Es gilt gi (x0 , . . . , xn−1 ) = mc (x0 , . . . , xn−1 ) = xc00 . . . xn−1 (Minterm Funktion), wobei c die bin¨ are Darstellung von i ist. ∗ ∗ 28 Bestimme gute obere und untere Schranken f¨ ur CΩ (f ) und DΩ (f ) von
1 xi = y f¨ ur ein i f : {0, 1}(n+1)b → {0, 1} mit f (x1 , . . . , xn , y) = 0 sonst ,
u ¨ber der Basis Ω = {+, ·,− , ⊕}, wobei xi , y ∈ {0, 1}b sind.
29 F¨ ur ein Gremium von drei Personen soll folgendes realisiert werden. Wenn eine Mehrheit daf¨ ur“ ist, soll eine Lampe brennen. Entwirf ein logisches Netz daf¨ ur. ” ⊲ 30 Zeige, dass die einzigen maximal großen Antiketten in B(S), |S| = n, die Familien S S bzw. sind. ⌊n/2⌋ ⌈n/2⌉
⊲ 31 Ein Verband (P, ≤) heißt distributiv, falls die Gesetze x ∧ (y ∨ z) = (x ∧ y) ∨ (x ∧ z) und x ∨ (y ∧ z) = (x ∨ y) ∧ (x ∨ z) gelten. Zum Beispiel ist der Boolesche Verband distributiv. Zeige, dass in einem Verband das erste Gesetz bereits das zweite impliziert, und umgekehrt. 32 Der 3-uniforme Hypergraph H = (S, F ) erf¨ ulle |F| = |S| − 1. Beweise, dass H einen Kreis enth¨ alt.
33 Es sei H = (S, F ) ein 3-uniformer Hypergraph ohne vielfache Kanten, |S| = n ≥ 6, . Konstruiere so dass je zwei Kanten einen nichtleeren Schnitt haben. Zeige: |F| ≤ n−1 2 einen Hypergraphen, f¨ ur den Gleichheit gilt.
⊲ 34 Es sei (S, F ) ein Hypergraph mit |S| = n, |F| = t. Angenommen |F | < n f¨ ur alle F ∈ F , und wann immer u ∈ / F ist, dann gilt d(u) ≥ |F |. Zeige, dass daraus t ≥ n folgt. |F | d(u) > n−|F f¨ ur jedes Paar (u, F ) mit u ∈ /F Hinweis: Zeige zun¨ achst, dass aus t < n, t−d(u) | folgen w¨ urde. ¨ 35 Folgere aus der vorigen Ubung die folgende Aussage: Sei H = (S, F ) ein Hypergraph mit S ∈ / F , in dem je zwei Elemente aus S in genau einer Kante liegen, dann gilt |S| ≤ |F|. Kann Gleichheit gelten ? 36 Sei S eine Menge von n Punkten in der Ebene, die nicht alle auf einer Geraden liegen. ¨ Was folgt f¨ ur die Menge G der durch S bestimmten Geraden? Hinweis: Vorige Ubung.
37 Es sei P eine Ordnung. Ein Filter F ist eine Menge F mit der Eigenschaft x ∈ F, y ≥ x ⇒ y ∈ F , inklusive F = ∅. Berechne die Anzahl der Filter f¨ ur P = B(2) und P = B(3).
⊲ 38 Es sei P eine Ordnung. Zeige, dass es genauso viele Filter in P gibt wie Antiketten.
39 Es sei P eine Ordnung und A die Menge der maximalen Antiketten A (d. h. A∪{x} ist ur jedes x ∈ / A). F¨ ur A, B ∈ A setze A ≤ B, falls es zu jedem x ∈ A keine Antikette mehr f¨ ¨ ein y ∈ B gibt mit x ≤ y. Zeige, dass ≤ auf A einen Verband A≤ definiert. Uberlege, ur P = B(n) aussieht. Hinweis: F¨ ur A, B ∈ A betrachte die maximalen bzw. wie A≤ f¨ minimalen Elemente in A ∪ B. 40 In einem Lotto werden 3 aus n Zahlen gezogen, und ein Tipp besteht aus einer 4Menge. Ein Gewinn wird bei 3 Richtigen ausgezahlt. Wieviele Tipps muss man mindestens abgeben, um einen Gewinn zu garantieren? Konstruiere einen optimalen Tippschein f¨ ur n = 5, 6, 7.
12 12.1
Modulare Arithmetik Rechnen mit Kongruenzen
Kongruenzen geh¨ oren zu den wichtigsten Methoden, die uns zur Behandlung von zahlentheoretischen Fragen zur Verf¨ ugung stehen. Wir setzen eine gewisse Vertrautheit voraus, wollen aber alle wichtigen Begriffe zusammenstellen. Wir studieren in diesem Abschnitt die ganzen Zahlen Z. Der erste Satz der Zahlentheorie, mit dem alles anf¨ angt, ist der Satz von der eindeutigen Primzerlegung. Jede nat¨ urliche Zahl n ≥ 2 kann eindeutig in ein Produkt n = pk11 . . . pkt t , pi Primzahlen, zerlegt werden. Insbesondere folgt daraus: Ist p Primzahl mit p | mn und sind p und m teilerfremd, d. h. p ∤ m, so gilt p | n. Seien x, y ∈ Z und m eine positive ganze Zahl. Wir sagen, x ist kongruent zu y modulo m, mit der Bezeichnung x≡y
(mod m) ,
falls x − y durch m teilbar ist. ¨ Wie man sofort sieht, ist ≡ eine Aquivalenzrelation f¨ ur jedes m, und es gilt x ≡ r (mod m), wobei r der Rest von x bei Division durch m ist. Ist n¨amlich x = qm+r, 0 ≤ r ≤ m−1, so folgt x−r = qm, also x ≡ r (mod m). Jede Zahl x ist also kongruent zu einer der Zahlen 0, 1, . . . , m−1. Da ihrerseits die Zahlen 0, 1, . . . , m−1 paarweise inkongruent sind, so folgt, dass es genau m Kongruenzklassen modulo m gibt. Das Modulo-Rechnen k¨ onnen wir uns zyklisch um einen Kreis der L¨ange m vorstellen: 0 m−1
1 2
i
Um die Kongruenzklasse von x festzustellen, gehen wir in x Einer-Schritten rund um den Kreis, mit Ausgangspunkt 0. Nach jeweils m Schritten sind wir wieder bei 0. Ist x = qm + r, 0 ≤ r ≤ m − 1, so umrunden wir also den Kreis q-mal, und landen schließlich bei r. F¨ ur x ∈ Z bezeichnen wir mit [x] die Kongruenzklasse oder Restklasse mod m. Jede Zahl y ∈ [x], d. h. y ≡ x (mod m), heißt ein Vertreter von [x]. Nehmen wir aus jeder Restklasse genau einen Vertreter, so sprechen wir von einem (vollst¨andigen) Vertretersystem. Wir wissen schon, dass 0, 1, . . . , m − 1 ein Vertretersystem bilden,
236
12
modulare arithmetik
wir nennen es das Standardsystem modulo m. Genauso k¨onnten wir aber auch −3, −2, −1, 0, 1, 2, . . . , m − 4 nehmen, oder irgendwelche anderen m inkongruenten Zahlen. F¨ ur 0 ≤ r ≤ m − 1 ist also [r] die Menge aller ganzen Zahlen mit Rest r bei Division durch m. Zum Beispiel ist f¨ ur m = 2, [0] die Menge der geraden Zahlen und [1] die Menge der ungeraden Zahlen. Sch¨ on, jetzt wissen wir, was Kongruenzen sind, aber wozu sind sie gut? Nun zun¨ achst erleichtern sie, Fragen der Teilbarkeit von Zahlen zu beantworten. Ohne eine Division durchzuf¨ uhren, k¨ onnen wir sofort sagen, dass die Zahl 4173905263 (in Dezimalschreibweise) durch 11 teilbar ist. Den Grund werden wir gleich sehen. Mit den Kongruenzklassen k¨ onnen wir rechnen, indem wir [x] + [y] = [x + y] [x] [y] = [xy] setzen. Die Definition der Summe und des Produktes h¨angt nicht von den Vertretern x, y ab, da aus x ≡ x′ , y ≡ y ′ stets x + y ≡ x′ + y ′ , xy ≡ x′ y ′ folgt (nachpr¨ ufen!). Die Kongruenzklassen bilden somit einen Ring Zm , genannt Restklassenring modulo m, mit dem Nullelement [0] und dem Einselement [1]. F¨ ur m = 5 erhalten wir beispielsweise die folgenden Additions- und Multiplikationstafeln von Z5 : + 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
· 1 2 3 4
1 1 2 3 4
2 2 4 1 3
3 3 1 4 2
4 4 3 2 1
Jetzt k¨ onnen wir unser 11-Teilerproblem m¨ uhelos l¨osen. Sei n = as as−1 . . . a0 s i dezimal geschrieben, also n = a 10 , 0 ≤ ai ≤ 9. Da 10 ≡ −1 (mod 11) i=0 i ist, folgt 102 ≡ (−1)2 = 1 (mod 11), 103 = 102 · 10 ≡ 1 · (−1) = −1 (mod 11), und allgemein 102i ≡ 1 (mod 11), 102i+1 ≡ −1 (mod 11). Also erhalten wir n = si=0 ai 10i ≡ a0 −a1 +a2 −. . . (mod 11). Eine Zahl n ist also genau dann teilbar durch 11, d. h. n ≡ 0 (mod 11), wenn die alternierende Quersumme a0 −a1 +a2 −. . . durch 11 teilbar ist. In unserem Beispiel erhalten wir 3−6+2−5+0−9+3−7+1−4 = −22 ≡ 0 (mod 11), und die Teilbarkeit ist bewiesen. Wann ist Zm ein K¨ orper? Das heißt, wann existiert zu allen [x] = [0] ein multiplikatives Inverses [y] mit [x][y] = [1]? Ist m = m1 m2 eine zusammengesetzte Zahl, so gilt [m1 ][m2 ] = [m] = [0], also kann [m1 ] kein multiplikatives Inverses [y] besitzen, da ansonsten [m2 ] = [1][m2 ] = [y][m1 ][m2 ] = [0] folgen w¨ urde. F¨ ur eine Primzahl p liegt aber tats¨ achlich ein K¨orper vor. Sei n¨amlich 1 ≤ r ≤ p − 1. Betrachten wir alle Vielfachen kr, 0 ≤ k ≤ p − 1. Aus p|kr − k′ r = (k − k′ )r folgt p|k−k′ und somit k = k′ , da p und r teilerfremd sind. Die Zahlen kr, 0 ≤ k ≤ p−1,
12.2
endliche k¨ orper
237
bilden also ebenfalls ein Vertretersystem modulo p, das heißt es gibt genau ein s, 1 ≤ s ≤ p − 1, mit sr ≡ 1 (mod p), was bedeutet, dass [s] ein Inverses zu [r] ist. Pr¨ ufen wir dies f¨ ur m = 5 und r = 2 nach. Die Vielfachen sind 0 · 2 ≡ 0, 1 · 2 ≡ 2, 2 · 2 ≡ 4, 3 · 2 ≡ 1, 4 · 2 ≡ 3 (mod 5), also ist [3] das Inverse zu [2]. Einer der Klassiker der Zahlentheorie ist der Satz von Fermat, der eine wichtige Methode f¨ ur Primzahltests liefert. Sei p eine Primzahl, n relativ prim zu p, dann gilt np−1 ≡ 1 (mod p). Zum Beispiel haben wir 42 ≡ 1 (mod 3), oder 2057642 ≡ 1 (mod 43), d. h. die riesige Zahl 2057642 hat bei Division durch 43 den Rest 1, und wir erhalten das Resultat, ohne zu dividieren (was wir bei der Gr¨oße der Zahl auch gar nicht k¨ onnten). Satz 12.1.
Sei p Primzahl und n relativ prim zu p, dann gilt np−1 ≡ 1 (mod p) .
Beweis. Mit unserer Kongruenzrechnung ist der Beweis in ein paar Zeilen erbracht. Wir betrachten die Reste 1, 2, . . . , p − 1. Wir wissen schon, dass 1 · n, 2 · n, . . . , (p − 1)n wiederum alle Reste = 0 durchlaufen. Also gilt f¨ ur das Produkt u = 1 · 2 · · · (p − 1), u ≡ (1 · n)(2 · n) · · · (p − 1)n ≡ u · np−1 (mod p). Da u ein multiplikatives Inverses v besitzt, folgt 1 ≡ vu ≡ (vu)np−1 ≡ np−1 (mod p), und wir sind fertig. Zum Satz von Fermat gibt es einen sch¨ onen kombinatorischen Beweis, der nochmals auf das zyklische“ Rechnen modulo p hinweist. ” Wir betrachten alle Halsketten mit p Perlen, die jeweils mit einer von n Farben gef¨ arbt werden. Wie viele Muster von Halsketten gibt es? Nun, das kennen wir schon l¨ angst. Der Satz von Polya 4.2 angewandt auf die zyklische Gruppe Cp ergibt als Anzahl 1 1 np − n + n. ϕ(d)np/d = (np + (p − 1)n) = p p p d|p
p
Also ist
n −n p
12.2
Endliche K¨ orper
eine ganze Zahl, und da n und p teilerfremd sind, folgt p|np−1 − 1 .
Wir wissen aus dem vorigen Abschnitt, dass Zp ein K¨orper mit p Elementen ist, wann immer p eine Primzahl ist. In dem letzten Beispiel haben wir gesehen, dass die K¨ orper Zp wesentlich mehr Struktur aufweisen, die f¨ ur kombinatorische Probleme relevant ist. Grund genug zu fragen, ob es noch weitere endliche K¨orper gibt. F¨ ur den Leser, der weniger an Algebra interessiert ist, gen¨ ugt der Hinweis, dass endliche K¨ orper mit q Elementen genau f¨ ur Primzahlpotenzen q = pn existieren, und zwar bis auf Isomorphie genau einer. Der K¨orper mit q = pn Elementen heißt nach dem Entdecker das Galoisfeld GF (q). Insbesondere ist f¨ ur eine Primzahl p, GF (p) = Zp . Sei K irgendein endlicher K¨ orper, dann bezeichnen wir mit K[x] den Ring der Polynome f (x) = a0 + a1 x + a2 x2 + . . . mit Koeffizienten aus K. Polynome
238
12
modulare arithmetik
k¨ onnen wir addieren und multiplizieren, und wir haben das Nullelement f (x) = 0 und das Einselement f (x) = 1. Betrachten wir als Beispiel Z5 [x]. Wir w¨ahlen die Standardvertreter 0, 1, 2, 3, 4 und lassen die Klammern in [i] weg. F¨ ur f (x) = 2 + 3x + x3 , g(x) = 1 + 4x + x2 + 4x3 gilt f (x) + g(x) = 3 + 2x + x2 und f (x)g(x) = 2 + x + 4x2 + 2x3 + x4 + x5 + 4x6 . Zum Beispiel ist der Koeffizient von x3 in f (x)g(x), 2 · 4 + 3 · 1 + 0 · 4 + 1 · 1 ≡ 3 + 3 + 0 + 1 = 7 ≡ 2 (mod 5). Nun machen wir dasselbe wie in Z. Wir nennen zwei Polynome g(x), h(x) kongruent modulo f (x), mit der Bezeichnung g(x) ≡ h(x)
(mod f (x)) ,
falls f (x) ein Teiler von g(x) − h(x) ist, d. h. g(x) − h(x) = q(x)f (x) gilt. V¨ollig ¨ analog zu Z ist ≡ wieder eine Aquivalenzrelation, und es gilt wiederum f¨ ur g(x) ≡ ′ ′ g (x), h(x) ≡ h (x), dass g(x) + h(x) ≡ g ′ (x) + h′ (x) und g(x)h(x) ≡ g ′ (x)h′ (x) (mod f (x)) erf¨ ullt ist. Mit der Definition [g(x)] + [h(x)] = [g(x) + h(x)] [g(x)] [h(x)] = [g(x)h(x)] wird also K[x] mod f (x) ein Ring. Auch in K[x] mod f (x) haben wir ein Standard Vertretersystem. Wir gehen wie in Z vor. Sei g(x) ∈ K[x] gegeben. Mit Polynomdivision erhalten wir g(x) = q(x)f (x) + r(x)
mit Grad r(x) < Grad f (x) .
Es gilt f (x) | g(x) − r(x), d. h. g(x) ≡ r(x) (mod f (x)). Jedes Polynom g(x) ist also kongruent zu seinem Rest modulo f (x), und wegen Grad r(x) < Grad f (x) sind diese Restpolynome r(x) alle inkongruent modulo f (x). Ist Grad f (x) = n, so bilden demnach die Polynome r(x) = a0 + a1 x + . . . + an−1 xn−1 , ai ∈ K, ein vollst¨ andiges Vertretersystem, und das ist unser Standard Vertretersystem. Die Anzahl der Restklassen ist |K|n , da wir die ai unabh¨angig voneinander w¨ahlen k¨ onnen. Die Rolle der Primzahlen in Z u ¨ bernehmen nun die irreduziblen Polynome. Ein Polynom f (x) ∈ K[x] heißt irreduzibel, falls aus f (x) = g(x)h(x) stets Grad g(x) = 0 oder Grad h(x) = 0 folgt, d. h. g(x) oder h(x) Konstanten sind. Im anderen Fall heißt f (x) reduzibel. Zum Beispiel ist x2 + 1 reduzibel u ¨ ber Z5 , da x2 + 1 = (x+2)(x+3) gilt. Man kann andererseits leicht nachpr¨ ufen, dass das Polynom x2 +2 irreduzibel u ortlich kann nun der Beweis u ¨ ber Z5 ist. Wortw¨ ¨ bertragen werden, dass K[x] mod f (x) genau dann ein K¨ orper ist, wenn f (x) irreduzibel ist. Sehen wir uns ein kleines Beispiel an. Wir betrachten K = Z2 . Das Polynom are n¨ amlich x2 + x + 1 = (x + a)(x + b), so x2 + x + 1 ist irreduzibel u ¨ ber Z2 . W¨ 2 2 h¨ atten wir x + x + 1 = x + (a + b)x + ab, also a + b = 1, ab = 1. Aus ab = 1 folgt aber a = b = 1, somit a + b = 0, Widerspruch. Das Standard Vertretersystem ist 0, 1, x, x + 1, und wir erhalten die folgenden Additions- und Multiplikationstafeln des K¨ orpers Z2 [x] mod x2 + x + 1 mit 4 Elementen:
12.3
+ 0 1 x x+1
0 0 1 x x+1
239
lateinische quadrate
1 x 1 x 0 x+1 x+1 0 x 1
· 1 x x+1
x+1 x+1 x 1 0
1 1 x x+1
x x x+1 1
x+1 x+1 1 x
Zum Beispiel ist x(x + 1) = x2 + x ≡ 1 (mod x2 + x + 1), also [x][x + 1] = [1]. Fassen wir unsere Untersuchungen zusammen: Sei K = Zp und f (x) ein irreduzibles Polynom vom Grad n. Dann enth¨ alt der K¨orper Zp [x] mod f (x) genau pn Elemente. Es ist nicht allzu schwer, f¨ ur jedes n die Existenz eines irreduziblen Polynoms vom Grad n u ¨ ber Zp nachzuweisen (ein solches Polynom tats¨achlich zu konstruieren, ist allerdings nicht immer leicht, siehe die angegebene Literatur). Also gibt es zu jeder Primzahlpotenz pn einen endlichen K¨orper mit pn Elementen. Umgekehrt kann man ohne weiteres zeigen, dass nur f¨ ur Primzahlpotenzen q = pn ein endlicher K¨ orper mit q Elementen existiert, und dass es bis auf Isomorphie genau einen K¨ orper GF (q) mit q Elementen gibt. Den Beweis wollen wir uns schenken (siehe die Literatur), und statt dessen ein Beispiel zur Illustration betrachten. ¨ Uber Z3 sind die Polynome f (x) = x2 + x + 2 und g(x) = x2 + 1 irreduzibel. In beiden F¨ allen erhalten wir die Standardvertreter a0 + a1 x, ai ∈ Z3 , die wir einmal modulo f (x) und das andere Mal modulo g(x) betrachten. Der Leser kann sofort nachpr¨ ufen, dass die folgende Abbildung eine Isomorphie von GF (9) ist. 0 1 2 x x+1 x+2 2x 2x + 1 2x + 2
→ → → → → → → → →
0 1 2 x+1 x+2 x 2x + 2 2x 2x + 1 .
Betrachten wir als Beispiel 2x + 2, x + 1 in Z3 [x] mod x2 + x + 2. Das Produkt ist (2x + 2)(x + 1) = 2x2 + 4x + 2 = 2x2 + x + 2 = 2(x2 + x + 2) + (2x + 1), also gilt (2x + 2)(x + 1) ≡ (2x + 1) mod x2 + x + 2. Die korrespondierenden Elemente 2x + 1, x + 2 haben wegen (2x + 1)(x + 2) = 2x2 + 5x + 2 = 2x2 + 2x + 2 = 2(x2 + 1) + 2x als Produkt 2x in Z3 [x] mod x2 + 1, und 2x korrespondiert wieder zu 2x + 1.
12.3
Lateinische Quadrate
In diesem und dem n¨ achsten Abschnitt wollen wir das Modulo-Rechnen und endliche K¨ orper auf einige wichtige kombinatorische Probleme anwenden.
240
12
modulare arithmetik
Angenommen, eine Reifenfirma m¨ ochte 5 Reifentypen A, B, C, D, E auf ihre G¨ ute pr¨ ufen. An 5 aufeinanderfolgenden Tagen sollen 5 Autos mit jeweils einem Reifentyp getestet werden. Ein Versuchsplan wird aufgestellt: HTag Auto H 1 2 3 4 5
1 A B C D E
2 B C D E A
3 C D E A B
4 D E A B C
5 E A B C D
Mit diesem Versuchsplan kombinieren wir also jedes Auto mit jedem Reifentyp. Nun k¨ onnte es sein, dass die 5 Fahrer α, β, γ, δ, ε einen Einfluss auf die Reifeng¨ ute haben. Man wird also versuchen, den Plan so zu gestalten, dass jeder Fahrer mit jedem Auto und jedem Reifentyp genau einmal testet. Wir stellen also einen weiteren Einsatzplan zusammen: HTag Auto H 1 2 3 4 5
1 α ε δ γ β
2 β α ε δ γ
3 γ β α ε δ
4 δ γ β α ε
5 ε δ γ β α
Man kann sofort nachpr¨ ufen, dass tats¨ achlich jedes der 25 Reifen-Fahrer Paare genau einmal vorkommt. Definition. Sei A eine n-Menge. Ein Lateinisches Quadrat der Ordnung n u ¨ ber A ist eine Abbildung L : {1, . . . , n}×{1, . . . , n} → A, so dass L(i, j) = L(i′ , j) impliziert i = i′ , und analog L(i, j) = L(i, j ′ ) impliziert j = j ′ . Ein Lateinisches Quadrat ist also eine n × n-Matrix, in der in jeder Zeile und Spalte jedes Element aus A genau einmal vorkommt. Zwei Lateinische Quadrate L1 , L2 u ¨ ber A heißen orthogonal, falls es zu jedem (a1 , a2 ) ∈ A2 genau ein Paar (i, j) gibt mit L1 (i, j) = a1 , L2 (i, j) = a2 . Offenbar sind die Definitionen unabh¨ angig von der Menge A. Wir k¨onnen wie in unserem Beispiel einmal lateinische Buchstaben verwenden, das andere Mal griechische Buchstaben. Die Begriffe Lateinisches Quadrat oder Orthogonalit¨at bleiben davon unber¨ uhrt. Unser Eingangsbeispiel f¨ uhrt also auf ein Paar orthogonaler Lateinischer Quadrate der Ordnung 5. Nun k¨onnten wir einen weiteren Parameter w¨ ahlen, z. B. Straßenbeschaffenheit oder Wetterbedingungen, und fragen, ob wir weitere Versuchspl¨ ane, d. h. Lateinische Quadrate aufstellen k¨onnen, die jeweils orthogonal zu den anderen sind. Damit kommen wir zum Hauptproblem: Sei N (n) die Maximalzahl paarweiser orthogonaler Lateinischer Quadrate der Ordnung n; wie groß ist N (n)?
12.3
241
lateinische quadrate
Hier kommen nun unsere algebraischen Strukturen ins Spiel. Betrachten wir eine Gruppe mit n Elementen, z. B. Zn mit der Addition als Verkn¨ upfung. Nummerieren wir die Zeilen und Spalten mit 0, 1, . . . , n − 1, so ergibt die Additionstafel ein Lateinisches Quadrat, indem wir L(i, j) = i + j (mod n) setzen, da ja aus i + j ≡ i′ + j (mod n), i ≡ i′ (mod n) folgt, und ebenso aus i + j ≡ i + j ′ (mod n), j ≡ j ′ (mod n). F¨ ur n = 6 erhalten wir z. B. das Lateinische Quadrat 0 1 2 3 4 5
0 0 1 2 3 4 5
1 1 2 3 4 5 0
2 2 3 4 5 0 1
3 3 4 5 0 1 2
4 4 5 0 1 2 3
5 5 0 1 2 3 4
Sei nun q = pm eine Primzahlpotenz. Dann wissen wir, dass es einen endlichen K¨ orper mit q Elementen gibt, GF (q) = {a0 = 0, a1 , a2 , . . . , aq−1 }. Wir nummerieren die Zeilen und Spalten mit a0 , a1 , . . . , aq−1 und definieren f¨ ur h = 1, . . . , q − 1 das Lateinische Quadrat Lh durch Lh (ai , aj ) = ah ai + aj
(i, j = 0, 1, . . . , q − 1) .
urzen Jedes Lh ist ein Lateinisches Quadrat, da aus ah ai + aj = ah a′i + aj durch K¨ ah ai = ah a′i folgt, und wegen ah = 0 damit ai = a′i . Ebenso folgt aus ah ai + aj = ah ai + a′j sofort aj = a′j . Seien nun Lh , Lk zwei dieser Lateinischen Quadrate und (ar , as ) ∈ (GF (q))2 . Das Gleichungssystem ah x + y = ar ak x + y = as ist wegen ah = ak eindeutig in x und y l¨ osbar, also existieren i, j mit Lh (ai , aj ) = ah ai + aj = ar Lk (ai , aj ) = ak ai + aj = as , d. h. Lh und Lk sind orthogonal. Wir haben somit q − 1 paarweise orthogonale Lateinische Quadrate erhalten. F¨ ur q = 5 ergibt dies mit GF (5) = Z5 = {0, 1, 2, 3, 4} L1 (i, j) = i + j
L2 (i, j) = 2i + j
L3 (i, j) = 3i + j
L4 (i, j) = 4i + j
01234 12340 23401 34012 40123
01234 23401 40123 12340 34012
01234 34012 12340 40123 23401
01234 40123 34012 23401 12340
In unserem Reifentestproblem k¨ onnen wir also zumindest zwei weitere Parameter einf¨ uhren, d. h. es gilt N (5) ≥ 4. Geht es noch besser ? Nein, wie der folgende Satz zeigt.
242
12
modulare arithmetik
Satz 12.2. F¨ ur n ≥ 2 gilt N (n) ≤ n − 1, und wir haben N (n) = n − 1 f¨ ur eine Primzahlpotenz n = pm . Beweis. Es seien L1 , . . . , Lt orthogonale Lateinische Quadrate der Ordnung n u ¨ ber A, wobei wir A = {1, . . . , n} annehmen. Wir permutieren die Elemente in L1 so, dass sie in der ersten Zeile in der Reihenfolge 1, 2, . . . , n erscheinen. Ebenso verfahren wir mit den u ¨ brigen Li . Diese Permutationen erhalten die Orthogonalit¨at (klar?). Die neuen Lateinischen Quadrate, die wir wieder mit L1 , . . . , Lt bezeichnen, erf¨ ullen somit Li (1, 1) = 1, Li (1, 2) = 2, . . . , Li (1, n) = n
f¨ ur i = 1, . . . , t .
Nun betrachten wir die Stelle (2, 1). F¨ ur alle i muss Li (2, 1) = 1 gelten, da 1 schon in der ersten Spalte erscheint. Und ferner haben wir wegen der Orthogonalit¨at Li (2, 1) = Lj (2, 1) f¨ ur i = j, da die Paare (h, h), 1 ≤ h ≤ n, ja schon in der ersten Zeile erfasst sind. Somit folgt t ≤ n − 1, und Gleichheit haben wir f¨ ur Primzahlpotenzen schon gesehen. Wie sieht es mit unteren Schranken f¨ ur N (n) aus? Dazu haben wir folgendes Ergebnis. Satz 12.3.
Sei n = n1 n2 , dann gilt N (n1 n2 ) ≥ min (N (n1 ), N (n2 )).
Beweis. Sei k = min(N (n1 ), N (n2 )), und L1 , . . . , Lk orthogonale Lateinische Quadrate der Ordnung n1 u ¨ ber ¨ ber A1 , und L′1 , . . . , L′k solche der Ordnung n2 u A2 , |A1 | = n1 , |A2 | = n2 . Wir setzen A = A1 ×A2 , und definieren L∗h , h = 1, . . . , k, auf A durch L∗h ((i, i′ ), (j, j ′ )) = (Lh (i, j), L′h (i′ , j ′ )) . Man sieht sofort, dass die L∗h Lateinische Quadrate sind. Pr¨ ufen wir die Orthogonalit¨ at nach. Sei ((r, r ′ ), (s, s′ )) ∈ A2 , 1 ≤ h = ℓ ≤ k gegeben. Wegen der Orthogonalit¨ at der Lh gibt es (i, j) ∈ A21 mit Lh (i, j) = r, Lℓ (i, j) = s, und analog ′ ′ 2 (i , j ) ∈ A2 mit L′h (i′ , j ′ ) = r ′ , L′ℓ (i′ , j ′ ) = s′ . Daraus folgt (L∗h ((i, i′ ), (j, j ′ )), L∗ℓ ((i, i′ ), (j, j ′ ))) = ((Lh (i, j), L′h (i′ , j ′ )), (Lℓ (i, j), L′ℓ (i′ , j ′ ))) = ((r, r ′ ), (s, s′ )) . Aus 12.3 k¨ onnen wir sofort eine Folgerung ziehen. Folgerung 12.4. Sei n = pk11 . . . pkt t die Primzerlegung von n, dann gilt N (n) ≥ min (pki i − 1). Insbesondere haben wir N (n) ≥ 2 f¨ ur alle n ≡ 2 (mod 4).
1≤i≤t
Beweis. Die erste Behauptung folgt mit N (pki i ) = pki i − 1 durch mehrfache Anwendung von 12.3. F¨ ur n ≡ 2 (mod 4) ist pki i ≥ 3 f¨ ur alle Primpotenzteiler von n, und wir k¨ onnen das eben bewiesene Resultat anwenden.
12.4
243
kombinatorische designs
F¨ ur die ersten Werte von N (n) erhalten wir aus unseren Ergebnissen folgende Tabelle: n N (n)
2 1
3 2
4 3
5 6 4 ≥1
7 6
8 7
9 8
10 ≥1
11 10
12 ≥2
13 12
14 ≥1
Der erste ungekl¨ arte Fall ist n = 6. Euler, der die Vermutung N (n) = 1 f¨ ur alle n ≡ 2 (mod 4) aufstellte, machte diesen Fall 1782 als ein h¨ ubsches Puzzle publik: 36 Offiziere, je einer aus 6 verschiedenen Regimentern und 6 verschiedenen R¨ angen, sollen in einer 6×6-Formation aufgestellt werden, so dass jede waagerechte und senkrechte Kolonne genau einen Offizier jedes Regimentes und jedes Ranges enth¨ alt. Ist das m¨ oglich? Nat¨ urlich bedeutet dies gerade N (6) ≥ 2. Mit einer außerst m¨ uhseligen Aufz¨ ahlung aller M¨ oglichkeiten wurde u ¨ ¨ ber 100 Jahre sp¨ater gezeigt, dass dies nicht geht, also N (6) = 1 ist. Aber dies ist neben N (2) = 1 der einzige Fall, wo Eulers Vermutung zutrifft. 1960 zeigten Bose, Shrikhande und Parker, dass N (n) ≥ 2 f¨ ur alle n = 2, 6 gilt. Allerdings ist, abgesehen von Primzahlpotenzen, kein einziger Wert von N (n) bekannt. Zum Beispiel weiß man heute N (10) ≥ 2, N (12) ≥ 5, aber man kennt keine 3 orthogonalen Lateinischen Quadrate der Ordnung 10 bzw. keine 6 der Ordnung 12, weiß aber andererseits auch nicht, ob sie nicht doch existieren.
12.4
Kombinatorische Designs
Bl¨ attern wir zu unserem Lotto-Problem am Ende von Abschnitt 11.4 zur¨ uck. Wir hatten uns folgendes Problem gestellt: Existiert zu n = 6m + 1 oder n = 6m + 3 stets eine Menge B von Tripeln aus einer Grundmenge S, |S| = n, so dass jedes Paar von Elementen aus S in genau einem Tripel aus B vorkommt? Wir wollen das Problem allgemein formulieren: Seien die nat¨ urlichen Zahlen v ≥ k ≥ t ≥ 1 und λ ≥ 1 gegeben. Ein t-Design (S, B) mit Parametern v, k, λ besteht aus einer Familie B von Untermengen von S, so dass Folgendes gilt: (i) |S| = v, (ii) |B| = k f¨ ur alle B ∈ B, (iii) jede t-Untermenge von S ist in genau λ Mengen aus B enthalten. Die Mengen aus B heißen die Bl¨ ocke des Designs, wobei die Bl¨ocke nicht unbedingt verschieden sein m¨ ussen. Im Fall λ = 1 nennt man ein t-Design auch ein SteinerSystem St (v, k). Unser Lottoproblem betrifft also die Steiner-Systeme S2 (v, 3). Die F¨ alle k = v, k = v − 1, t = k, t = 1 k¨onnen leicht erledigt werden (siehe ¨ die Ubungen), so dass wir im folgenden stets 2≤t 0 und 0 < I < K, wobei K eine Gr¨ oße ist, die sogenannte Kapazit¨ at des Kanals, die ¨ nur von der Wahrscheinlichkeitsverteilung der fehlerhaften Ubertragung abh¨angt. Dann existiert ein Code mit Informationsrate > I und Fehlerwahrscheinlichkeit des Decodierens < ε. F¨ ur I ≥ K ist eine Fehlerwahrscheinlichkeit < ε nicht mehr gew¨ ahrleistet. Sind wir damit fertig? Leider nein, der Satz von Shannon ist ein reiner Existenzsatz – es gibt solch einen Code (bewiesen wird er mit Wahrscheinlichkeitstheorie) – aber wir wissen im allgemeinen nicht, wie man den Code tats¨achlich konstruiert. Die Suche nach guten Codes bleibt uns also nicht erspart. Wir sind in unserer Diskussion bei folgender Situation angelangt. Gegeben sei ein Alphabet A, u ¨ blicherweise A = {0, 1}, wir nehmen aber allgemein |A| = q ≥ 2 an. Die Nachrichten, die u ¨ ber den Kanal gesendet werden sollen, sind W¨orter w ∈ Ak . Ein Block-Code C der L¨ ange n u ¨ ber dem Alphabet A ist eine Teilmenge C ⊆ An mit n ≥ k. Die W¨ orter aus C sind die Codew¨ orter. Ist A = {0, 1}, so heißt C ein bin¨ arer Code. Der Codierer w¨ ahlt zu jeder Nachricht w ein Codewort x ∈ C. Der Kanal empf¨ angt x und gibt y ∈ An aus, welches aufgrund der St¨orung nicht unbedingt in C liegen muss. Aufgabe des Decodierers ist daher, zu y ein Codewort x′ ∈ C zu w¨ ahlen, und dann x′ zu einer Nachricht w′ ∈ Ak zu decodieren. Wir haben also folgendes Schema: Nachricht
w
Nachricht
w′
Codierung -
Decodierung
Codewort
x∈C
Codewort
x′ ∈ C
? y ∈ An
Kanal
260
13
codierung
Zwei Probleme ergeben sich: Welches Codewort x′ ∈ C soll der Decodierer w¨ahlen, falls er y ∈ An erh¨ alt, und wie codiert und decodiert man effizient? In diesem Abschnitt besprechen wir die erste Frage, und wenden uns im n¨achsten Abschnitt der Praxis des Codierens und Decodierens zu. Der Decodierer geht nach einer Greedy-Methode vor. Er arbeitet nach der Regel, dass wenige“ Fehler wahrscheinlicher sind als viele“ und w¨ahlt zu y ∈ An ein ” ” Codewort x′ ∈ C, welches sich von y an m¨ oglichst wenigen Stellen unterscheidet. Hat er mehrere Codew¨ orter zur Auswahl, so w¨ahlt er eines davon. Insbesondere nimmt er im Fall y ∈ C an, dass y auch tats¨achlich gesendet wurde und setzt x′ = y. Wir werden also in nat¨ urlicher Weise zur Hamming-Distanz von W¨ortern gef¨ uhrt, die wir f¨ ur A = {0, 1} schon in Abschnitt 11.1 besprochen haben. Seien a = (a1 , . . . , an ), b = (b1 , . . . , bn ) ∈ An , dann ist die Hamming-Distanz ∆(a, b) = |{i : ai = bi }|. Wie im bin¨ aren Fall ist ∆ wiederum eine Metrik auf An , erf¨ ullt also insbesondere die Dreiecksungleichung ∆(a, b) ≤ ∆(a, c) + ∆(c, b). Mit Bt (a) = {x ∈ An : ∆(a, x) ≤ t} bezeichnen wir die Menge aller W¨orter mit Abstand ≤ t von a und nennen Bt (a) naheliegenderweise die Kugel um a vom Radius t. Angenommen, wir wissen, dass im Kanal h¨ochstens t Fehler passieren. Das heißt, das ausgegebene Wort y ∈ An unterscheidet sich von x ∈ C in h¨ochstens t Stellen, es gilt also y ∈ Bt (x). Wann korrigiert der Decodierer richtig? Nach der allgemeinen Regel sucht er das n¨ achstgelegene Codewort, und er wird das richtige Wort x genau dann w¨ ahlen, wenn unter allen Codew¨ortern x das eindeutig n¨ achstgelegene ist. Erf¨ ullt der Code C also die Bedingung Bt (a) ∩ Bt (b) = ∅ f¨ ur alle a = b ∈ C, oder gleichbedeutend ∆(a, b) ≥ 2t + 1, so w¨ahlt der Decodierer in jedem Fall das richtige Ausgangswort. Diese Bedingung ist aber auch notwendig. Gilt n¨ amlich y ∈ Bt (x) ∩ Bt (z), und ist ∆(z, y) ≤ ∆(x, y) ≤ t, so w¨ahlt er eventuell das falsche Codewort z. Genauso verfahren wir mit dem Begriff des Entdeckens von t Fehlern. Angenommen wiederum, es passieren h¨ ochstens t Fehler. Wird x in den Kanal eingegeben und y ∈ Bt (x) mit y = x empfangen, dann entdeckt der Decodierer, dass y nicht das eingegebene Wort ist, außer wenn y selber Codewort ist, da er dann ja x′ = y setzt. In Bt (x) darf also außer x kein weiteres Codewort liegen, d. h. es muss Bt (a) ∩ C = {a} f¨ ur alle a ∈ C gelten oder gleichbedeutend ∆(a, b) ≥ t + 1 f¨ ur alle a = b ∈ C. Fassen wir zusammen: Ein Code C ⊆ An heißt t-fehlerkorrigierend, falls ∆(a, b) ≥ 2t + 1 f¨ ur alle a = b ∈ C gilt, und t-fehlerentdeckend, falls ∆(a, b) ≥ t + 1 f¨ ur alle a = b ∈ C gilt. Unsere Anfangsbeispiele k¨ onnen damit nochmals analysiert werden. F¨ ur den Wiederholungscode gilt ∆(a, b) ≥ 3, der Code entdeckt 2 Fehler und korrigiert 1 Fehler. F¨ ur den Parit¨ atscode haben wir ∆(a, b) ≥ 2, der Code entdeckt 1 Fehler, kann ihn aber nicht korrigieren.
13.3
entdecken und korrigieren von fehlern
261
Im Folgenden werden wir uns daher auf folgendes Problem konzentrieren: Sei C ⊆ An , die Distanz von C ist d(C) = min ∆(a, b). a=b Man finde einen Code C ⊆ An , f¨ ur den (i) d(C) m¨ oglichst groß ist (= gute Korrektur) (ii) |C| m¨ oglichst groß ist (= viele Nachrichten). Wiederum sind die beiden Ziele gegenl¨ aufig. Je gr¨oßer der Code C ist, desto kleiner wird nat¨ urlich die Distanz. Wir haben damit folgendes Extremalproblem herausgearbeitet: Gegeben n, d und A. Mit C(n, d; A) bezeichnen wir die Menge aller Codes C ⊆ An mit Distanz ≥ d, also C(n, d; A) = {C ⊆ An : d(C) ≥ d} . Man bestimme M (n, d; A) = max (|C| : C ∈ C(n, d; A)}. Nat¨ urlich spielt das Alphabet A keine Rolle, nur die M¨achtigkeit |A| = q ≥ 2 ist von Bedeutung. Wir k¨ onnen also auch C(n, d; q) und M (n, d; q) schreiben. Eine erste obere Schranke, die sogenannte Hamming-Schranke, folgt sofort aus unserer Er¨ orterung der t-Fehlerkorrektur. Satz 13.1.
Sei d = 2t + 1 ungerade, |A| = q, dann gilt M (n, d; q) ≤
qn . t n i (q − 1) i
i=0
Beweis. Sei C ∈ C(n, 2t + 1; q), dann ist ∆(a, b) ≥ 2t + 1,also Bt (a) ∩ Bt (b) = ∅ f¨ ur a = b ∈ C. Ein beliebiges Wort a ∈ An hat genau ni (q − 1)i W¨orter mit Abstand i, da wir die i Fehlerstellen auf ni Arten w¨ahlen k¨onnen und dann jeweils oglichkeiten f¨ ur den Fehler haben. Somit erhalten wir |Bt (a)| = t nq − 1 M¨ i (q − 1) , und wegen der Disjunktheit der Kugeln gilt i=0 i |
a∈C
t n Bt (a)| = |C| (q − 1)i ≤ |An | = q n . i i=0
Aus diesem Satz ergibt sich sofort ein reizvolles Problem. Ein t-fehlerkorrigierender Code hat die Eigenschaft, dass alle Kugeln Bt (a), a ∈ C, disjunkt sind. Ein beliebiges Wort w ∈ An liegt also in h¨ ochstens einer solchen Kugel. Wenn nun jedes Wort in genau einer Kugel liegt, wenn also die Kugeln Bt (a) den Raum An l¨ uckenlos u ¨ berdecken, so heißt C t-perfekt. Nach Satz 13.1 gilt somit: C ⊆ An ist t-perfekt ⇐⇒ d(C) ≥ 2t + 1 und |C| = q n /
t n i i (q − 1) .
i=0
Sei A = {0, 1}, n = 2t + 1, und C = {00 . . . 0, 11 . . . 1} der bin¨are Wiederholungsn t n−1 n−1 2 code. Es gilt d(C) = n = 2t + 1 und wegen i=0 ni = i=0 auch i = 2
262
13
codierung
|C| = 2 = 2n / ti=0 ni . Der Wiederholungscode ist also t-perfekt f¨ ur jedes t. Nun dieses Beispiel ist nicht gerade aufregend, aber hier ist ein sch¨oneres, und dazu verwenden wir unsere Fano-Ebene. Sei A = {0, 1}, C ⊆ An . Wie u ¨ blich interpretieren wir W¨ orter a = (a1 , . . . , an ) als Untermengen Ua = {i : ai = 1} ⊆ S = {1, . . . , n}. Der Abstand ∆(a, b) entspricht dann der Gr¨oße der symmetrischen Differenz |Ua ⊕ Ub |. Ein Code C ∈ C(n, d; 2) ist also nichts anderes als eine Mengenfamilie U ⊆ B(S) mit |U ⊕ V | ≥ d f¨ ur alle U = V ∈ U. Insbesondere entspricht somit ein t-perfekter Code einer Mengenfamilie U ⊆ B(S), |S| = n, mit |U ⊕ V | ≥ 2t + 1 t n f¨ ur alle U = V ∈ U und |U| = 2n / i . i=0
Wie sollen wir solche t-perfekten“ Mengenfamilien konstruieren – Designs sind ” sicher ein guter Start. Probieren wir n = 7, t = 1. Wir m¨ ussen U ⊆ B(S) finden 27 mit |U ⊕ V | ≥ 3 und |U| = 1+7 = 24 = 16. Wir nehmen ∅, die 7 Tripel der FanoEbene, und dann die 8 Komplemente dieser Mengen, also ist |U| = 16. Man pr¨ uft ¨ sofort nach, dass die Bedingung |U ⊕ V | ≥ 3 f¨ ur alle U = V erf¨ ullt ist. Ubersetzt in 0, 1-W¨ orter erhalten wir den folgenden 1-perfekten Code C ⊆ {0, 1}7 : 1
6
2 3
5
7
4
0000000 1101000 0110100 0011010 0001101 1000110 0100011 1010001
1111111 0010111 1001011 1100101 1110010 0111001 1011100 0101110
Wegen der Komplementierung entstehen die zweiten 8 Codew¨orter durch Austauschen von 0 und 1 aus den ersten 8 W¨ ortern. Im n¨achsten Abschnitt und in den ¨ Ubungen wollen wir n¨ aher auf perfekte Codes eingehen.
13.4
Lineare Codes
Nun wollen wir systematisch Codes konstruieren und auf ihre Korrekturf¨ahigkeit untersuchen. Dazu bietet sich Lineare Algebra an. Es sei K = GF (q) das GaloisFeld mit q Elementen, q Primzahlpotenz, und K n der n-dimensionale Vektorraum u ¨ ber K. Jeder Unterraum C ⊆ K n heißt ein linearer Code u ¨ ber K. Die Dimension k des Unterraumes C heißt die Dimension von C, und C kurz ein (n, k)-Code. Zum Beispiel ist, wie man leicht sieht (und sp¨ ater bewiesen wird), der eben konstruierte Fano-Code ein (7,4)-Code u ¨ ber GF (2). In linearen Codes k¨ onnen wir die Distanz d(C) bequemer ausdr¨ ucken. F¨ ur a ∈ K n nennen wir w(a) = |{i : ai = 0}| das Gewicht von a. Seien a, b ∈ K n . Da ai = bi ⇐⇒ ai − bi = 0 gilt, haben wir ∆(a, b) = w(a − b), und insbesondere ∆(0 , c) = w(c) f¨ ur c ∈ C. In einem Unterraum C ist aber mit a, b ∈ C auch a − b in C. Wir folgern, dass f¨ ur einen linearen Code C
13.4
lineare codes
263
d(C) = min ∆(a, b) = min w(c) 0 =c∈C a=b∈C gilt. Wir m¨ ussen also keine Abst¨ ande berechnen, sondern nur die Gewichte der W¨ orter betrachten. Zu jedem linearen Code C ⊆ K n gibt es einen dualen Code C ⊥ . Sei C ein (n, k)-Code. Aus der Linearen Algebra wissen wir, dass die Menge aller Vektoren a ∈ K n , die zu allen Vektoren aus C senkrecht stehen, einen Unterraum C ⊥ der Dimension n − k bilden, also C ⊥ = {a ∈ K n : a · c = 0 f¨ ur alle c ∈ C} , wobei a · c = a1 c1 + . . . + an cn das u ¨ bliche Produkt von Vektoren bezeichnet. Es gilt ferner (C ⊥ )⊥ = C. Wegen der Linearit¨ at des Produktes gen¨ ugt es, a · g i = 0 f¨ ur eine Basis {g 1 , . . . , g k } nachzupr¨ ufen. Dies ergibt nun zwei n¨ utzliche Beschreibungen eines linearen Codes C. Wir w¨ahlen einmal eine Basis g 1 , . . . , g k von C und bilden die k × n-Matrix G mit den g i als Zeilen. G heißt eineGeneratormatrix von C. Jedes Codewort c ist durch die Koeffizienten wi , c = ki=1 wi g i eindeutig festgelegt, das heißt es gilt c = wG als Vektor-Matrixprodukt. Zum anderen k¨ onnen wir eine Generatormatrix H des dualen Codes C ⊥ nehmen. H ist also eine (n − k) × n-Matrix, und es gilt (1)
c ∈ C ⇐⇒ Hc = 0 .
Jede solche Matrix H heißt eine Kontrollmatrix von C. Der folgende Satz zeigt, wie man einen linearen Code der Distanz d konstruieren kann. Satz 13.2.
Sei C ein (n, k)-Code u ¨ber K, und H eine Kontrollmatrix. Dann gilt d(C) ≥ d ⇐⇒ je d − 1 Spalten in H sind linear unabh¨ angig.
Beweis. Es seien u1 , . . . , un die Spalten von H; die ui sind also Vektoren in K r , r = n − k. Aus (1) sehen wir c ∈ C ⇐⇒ c1 u1 + . . . + cn un = 0 . Angenommen w(c) ≤ d − 1 und ci1 , . . . , ciℓ , ℓ ≤ d − 1, sind die Eintr¨age = 0. Dann haben wir ci1 ui1 + . . . + ciℓ uiℓ = 0 , das heißt die ℓ ≤ d − 1 Spalten ui1 , . . . , uiℓ sind linear abh¨ angig. Sind umgekehrt uj1 , . . . , ujh linear abh¨angig mit h ≤ d − 1, so existiert eine nichttriviale Linearkombination cj1 uj1 + . . . + cjh ujh = 0 , also liegt der Vektor c mit den Koordinaten cji (i = 1, . . . , h) und 0 sonst in C und erf¨ ullt w(c) ≤ d − 1.
264
13
codierung
Beispiel. Mit Satz 13.2 k¨ onnen wir sofort eine Klasse von 1-perfekten Codes konstruieren, die sogenannten Hamming-Codes. Wir nehmen K = GF (q), r ≥ 2. F¨ ur d = 3 m¨ ussen wir Vektoren u1 , . . . , un in K r finden, von denen je zwei linear unabh¨ angig sind. Da jeder Vektor q − 1r Vielfache = 0 erzeugt, gibt es insgesamt q −1 q r −1 q−1 solche Vektoren. Setzen wir n = q−1 , k = n − r, so erhalten wir nach dem Satz einen (n, k)-Code C ⊆ K n , der d(C) ≥ 3 erf¨ ullt, also 1-fehlerkorrigierend ist. Schließlich gilt |C| = q k =
qn = qr 1+
qn qn = , 1 + n(q − 1) q−1 (q − 1)
q r −1
also ist C tats¨ achlich 1-perfekt. F¨ ur q = 2 ergibt diese Konstruktion f¨ ur r = 2 den bin¨ aren Wiederholungscode, und f¨ ur r = 3 den oben besprochenen Fano-Code, womit auch gezeigt ist, dass der Fano-Code ein (7,4)-Code ist. ¨ Ubrigens folgt aus der zweiten Bedingung des Satzes d − 1 ≤ r = n − k, da K r nicht mehr als r lineare unabh¨ angige Vektoren enthalten kann, und es gilt somit die Schranke (2)
d(C) ≤ n − k + 1 f¨ ur einen (n, k)-Code C .
Wir wenden uns nun den anderen beiden Fragen aus dem vorigen Abschnitt zu, wie wir das Codieren der Nachrichten bzw. das Decodieren effektiv bewerkstelligen. F¨ ur lineare Codes bietet sich folgende Vorgehensweise an. C sei ein (n, k)-Code u ¨ ber K = GF (q). Wir w¨ahlen eine Generatormatrix G mit Basis g 1 , . . . , g k . Wir wissen schon, das jeder Vektor c ∈ C als Produkt c = wG mit w ∈ K k geschrieben werden kann. Wir identifizieren nun die Nachrichten mit den q k Vektoren aus K k und codieren mittels φ : w ∈ K k → wG ∈ C . Nat¨ urlich gibt es verschiedene Codierungen φ, entsprechend den verschiedenen Generatormatrizen G. Eine Generatormatrix heißt systematisch, falls G = (Ek , G1 ) ist, Ek ist die k × k-Einheitsmatrix, G1 ist eine (k, n − k)-Matrix. In diesem Fall gilt φw = wG = (w, wG1 ) , d. h. die k Informationssymbole erscheinen in den ersten k Stellen, und die r = n−k Kontrollsymbole sind lineare Funktionen der Informationssymbole. Betrachten wir z. B. den (n, n − 1)-Code u ¨ ber GF (2) mit Generatormatrix ⎛ ⎞ 1 1 ⎜ 1 0 1 ⎟ ⎜ ⎟ G=⎜ .. ⎟ . . . ⎝ . 0 . ⎠ 1 1
n−1 Wir erhalten die Codierung φw = (w1 , . . . , wn−1 , i=1 wi ), also unseren Parit¨atscode. Der duale Code C ⊥ ist ein (n, 1)-Code mit Generatormatrix G = (1, 1, . . . , 1),
13.4
lineare codes
265
und die entsprechende Codierung ist φw = (w, w, . . . , w). Das heißt, C ⊥ ist nichts anderes als der Wiederholungscode. Die Decodierung in den Quellencode erfolgt umgekehrt durch Aufl¨osung eines Gleichungssystems. Haben wir c ∈ C empfangen, so bestimmen wir w aus wG = c. Bei einer systematischen Codierung ist u ¨ berhaupt nichts zu tun: die Nachricht besteht einfach aus den ersten k Symbolen des Codewortes. Zur Kanal-Decodierung verwenden wir die zweite Beschreibung mittels einer Kontrollmatrix H. Besonders einfach ist die Bestimmung einer Kontrollmatrix, wenn der Code durch eine systematische Generatormatrix gegeben ist. In diesem Fall sieht man sofort, dass H = (−GT1 , En−k ) eine Kontrollmatrix ist, wobei GT1 die transponierte Matrix von G1 ist. Zum Beispiel ist H = (1, 1, . . . , 1) u ¨ ber GF (2) die Kontrollmatrix des Parit¨ atscodes, was wegen Hc = 0 ⇐⇒ c1 + . . . + cn = 0 nat¨ urlich auch direkt zu sehen ist. Was ist die Kontrollmatrix des Fano-Codes? Nach Konstruktion des Hamming Codes f¨ ur n = 7, r = 3 m¨ ussen wir alle linear unabh¨angigen Vektoren als Spalten schreiben. Da aber u ¨ ber GF (2) je zwei Vektoren = 0 linear unabh¨angig sind, sind die Spalten gerade alle 23 − 1 = 7 Vektoren = 0 , und wir erhalten ⎞ ⎛ 1 0 0 1 1 0 1 H=⎝ 0 1 0 1 0 1 1 ⎠. 0 0 1 0 1 1 1
Die Kontrollgleichungen f¨ ur ein Codewort c im Fano-Code lauten daher: c1 + c2 +
+ c4 + c5 + c7 = 0 c4 + + c6 + c7 = 0 c3 + c5 + c6 + c7 = 0
Wie decodiert man nun in der Praxis? Angenommen, C korrigiert bis zu t Fehlern. Wird x ∈ C gesendet und y ∈ K n empfangen, so gilt ∆(x, y) ≤ t und ∆(c, y) > t f¨ ur alle c ∈ C, c = x. Wir k¨ onnen in der Liste der Codew¨orter nachschauen, bis wir auf das eindeutige Codewort x stoßen mit ∆(x, y) ≤ t. Ein besseres Verfahren ist das folgende. Es sei H eine r ×n-Kontrollmatrix, r = n−k. F¨ ur a ∈ K n nennen wir s(a) = Ha ∈ K r das Syndrom von a. Die Funktion s ist also eine lineare Abbildung von K n nach K r mit Kern = C, da ja s(a) = 0 ⇐⇒ a ∈ C gilt. Sind also a, b in derselben Restklasse von C, das heißt b = a + c, c ∈ C, so haben wir s(b) = s(a), und umgekehrt folgt aus s(a) = s(b) sofort b − a ∈ C, also b = a + c. Die Idee des Syndroms f¨ uhrt uns zu folgendem Verfahren. Wird x ∈ C gesendet und y = x + e empfangen, so nennen wir e den Fehlervektor. Es gilt s(y) = s(e)
266
13
codierung
und Gewicht w(e) ≤ t. Wir sehen also in der Liste der m¨oglichen Syndrome nach, suchen den eindeutigen Fehlervektor e mit w(e) ≤ t und s(e) = s(y) und decodieren y zu y − e. Besonders einfach wird die Sache f¨ ur 1-fehlerkorrigierende Codes. Hier sind die Fehlervektoren minimalen Gewichts von der Form ↓i
e = (0, . . . , a , . . . , 0) , somit s(e) = a · [i -te Spalte von H].
Das heißt, ist ein empfangener Vektor y fehlerhaft, so entstand der Fehler an der i-ten Stelle genau dann, wenn s(y) ein Vielfaches der i-ten Spalte von H ist. Beispiel. Sehen wir uns die obige Kontrollmatrix H des Fano-Codes an. Angenommen, x = 1 1 1 0 0 0 1 wird gesendet und y = 1 1 0 0 0 0 1 empfangen. Wir berechnen Hy ⎛ ⎞ 1 ⎜ 1 ⎟ ⎞ ⎜ ⎟ ⎛ ⎞ ⎛ ⎜ 0 ⎟ 0 1001101 ⎜ ⎟ ⎝ 0 1 0 1 0 1 1 ⎠ ⎜ 0 ⎟ = ⎝ 0 ⎠, ⎜ ⎟ ⎜ 0 ⎟ 1 0010111 ⎜ ⎟ ⎝ 0 ⎠ 1 also trat der Fehler an der 3. Stelle auf. Da die Summe zweier Spalten in H stets
= 0 ist, so gilt He = 0 f¨ ur alle Fehlervektoren e mit w(e) = 2. Der Decodierer entdeckt also 2 Fehler, kann sie aber im allgemeinen nicht lokalisieren, da z. B. ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ 0 1 1 0 ⎝ 0 ⎠+⎝ 1 ⎠=⎝ 0 ⎠+⎝ 1 ⎠ 0 0 1 1
ist.
Eine weitere wichtige Klasse von Codes sind die Reed-Solomon Codes C, die bei der Fehlerkorrektur in Compact Discs verwendet werden. Sei GF (q) = {0, 1, a1 , . . . , aq−2 } das Galoisfeld zur Primzahlpotenz q. Die Kontrollmatrix H ist die (d − 1) × (q + 1)-Matrix, d ≥ 3, definiert durch ⎛ ⎞ 0 1 1 1 ... 1 ⎜ 0 0 1 a1 aq−2 ⎟ ⎜ ⎟ ⎜ 0 0 1 a21 . . . a2q−2 ⎟ ⎜ ⎟ H = ⎜ .. .. .. ⎟. ⎜ . . . ⎟ ⎜ ⎟ d−3 d−3 ⎝ 0 0 1 a1 . . . aq−2 ⎠ 1 0
1 a1d−2
ad−2 q−2
Man pr¨ uft leicht nach, dass je d − 1 Spalten von H linear unabh¨angig sind (beachte, dass die Spalten 3 bis q + 1 eine Vandermonde-Matrix bilden). Nach Satz
13.5
267
zyklische codes
13.2 bildet C daher einen (q + 1, q + 2 − d)-Code mit d(C) ≥ d. Da aus (2) die Ungleichung d(C) ≤ q + 1 − (q + 2 − d) + 1 = d folgt, gilt sogar genau d(C) = d. Die Informationsrate ist nk = q+2−d q+1 , also nahe 1. Der Leser wird sich vielleicht gefragt haben, warum wir u ¨ berhaupt lineare Codes u ¨ ber GF (q) mit q > 2 betrachten. Schließlich k¨onnen wir jede Nachricht in 0,1W¨ orter codieren, warum beschr¨ anken wir uns also nicht auf GF (2)? Das folgende Beispiel gibt dazu eine sch¨ one Illustration. Betrachten wir K = GF (28 ) und d = 11. Der Reed-Solomon Code C ist dann ein (257, 247)-Code mit d(C) = 11. Wir wissen aus Abschnitt 12.2, dass K ein Vektorraum der Dimension 8 u ¨ ber GF (2) ist, das heißt wir k¨onnen jedes Element a ∈ K als 0,1-Wort der L¨ ange 8 schreiben, und daher jeden Codevektor c = (c1 , . . . , c257 ) ∈ C als 0,1-Wort der L¨ ange 257 · 8 = 2056, (1)
(8)
(1)
(8)
c = (c1 , . . . , c1 , . . . , c257 , . . . c257 ) . Auf diese Weise erhalten wir einen neuen Code C ′ u ¨ ber GF (2) der L¨ange 2056. Nun behaupten wir, dass C ′ bis zu 33 aufeinanderfolgende Fehler korrigieren kann (einen sogenannten burst-error“, der z. B. bei Blitzschlag auftritt). Der Nachweis ” ist leicht: Die 33 Fehler treten in 5 aufeinanderfolgenden 8-er Bl¨ocken auf, und da unser urspr¨ unglicher Code C diese 5 Fehler korrigieren kann, so korrigiert C ′ alle 33 Fehler. Wollte man einen 33-fehlerkorrigierenden Code direkt u ¨ ber GF (2) konstruieren, so erhielte man eine wesentlich schlechtere Informationsrate, wie man z. B. aus der Hamming-Schranke ablesen kann.
13.5
Zyklische Codes
In der Praxis des Decodierens linearer Codes m¨ ussen wir zu allen verschiedenen Syndromen einen Fehlervektor angeben. F¨ ur einen (40,10)-Code u ¨ ber GF (2) sind somit bereits 230 > 109 Syndrome zu speichern. Wir m¨ ussen demnach nach linearen Codes suchen, die wesentlich mehr algebraische Struktur aufweisen. Eine besonders wichtige Klasse sind die zyklischen Codes. Es sei wie u ¨ blich K = GF (q). Wir schreiben Vektoren a ∈ K n in der Form a = (an−1 , an−2 , . . . , a1 , a0 ). n−1 Dies hat den Vorteil, dass wir a mit dem Polynom a(x) = i=0 ai xi identifizieren k¨ onnen. Die Abbildung φ : a → a(x) ist ein Isomorphismus von K n auf den Vektorraum K n [x] aller Polynome vom Grad < n. Definition. Ein Code C ⊆ K n heißt zyklisch, falls C linear ist und mit c = (cn−1 , . . . , c0 ) ∈ C auch ˆ c = (cn−2 , . . . , c0 , cn−1 ) ∈ C ist. Zum Beispiel ist u ¨ ber GF (2) der Wiederholungscode {(0, . . . , 0), (1, . . . , 1)} zyklisch wie auch der Parit¨ atscode, in dem alle Codew¨orter gerades Gewicht haben. Ebenso sehen wir, dass der (7, 4)-Fano Code zyklisch ist. Wie erkennen wir, ob ein linearer Code zyklisch ist? Hier kommt unsere Zuordnung c −→ c(x) ins Spiel.
268
13
codierung
Satz 13.3. Sei C ⊆ K n zyklisch, dim C > 0. Dann existiert ein Polynom g(x) mit h¨ ochstem Koeffizienten 1 und (i) g(x)|xn − 1 (ii) c ∈ C ⇐⇒ g(x)|c(x). g(x) heißt das Generatorpolynom von C. Ist umgekehrt g(x) ein Polynom mit h¨ ochstem Koeffizienten 1 und g(x)|xn − 1, n so bildet C = {c ∈ K : g(x)|c(x)} einen zyklischen Code. Beweis. Es sei g(x) ∈ C(x) das eindeutige Polynom von minimalem Grad und h¨ ochstem Koeffizienten 1. F¨ ur c(x) = cn−1 xn−1 + . . . + c0 ∈ C(x) haben wir n−1 xc(x) = cn−2 x + . . . + c0 x + cn−1 xn , also f¨ ur das verschobene Wort ˆ c (1)
cˆ(x) = xc(x) − cn−1 (xn − 1) .
Hat g(x) Grad r, so folgt, dass xg(x), . . . , xn−1−r g(x) ∈ C(x) ist, und somit jedes Produkt a(x)g(x) mit Grad a(x) ≤ n − 1 − r. Sei c(x) ∈ C(x), dann wissen wir aus dem Divisionsalgorithmus f¨ ur Polynome c(x) = a(x)g(x) + r(x),
Grad r(x) < Grad g(x) .
Da c(x), a(x)g(x) ∈ C(x) sind, so ist auch r(x) ∈ C(x) und wir schließen r(x) = 0 wegen der Minimalit¨ at von g(x), und somit g(x)|c(x). Sei nun c(x) = xn−1−r g(x) ∈ C(x), dann folgt aus (1) cˆ(x) = xn−r g(x) − (xn − 1). Da nun, wie oben gesehen, g(x)|ˆ c(x) gilt, so haben wir g(x)|xn − 1 wie behauptet. Es sei umgekehrt C = {c ∈ K n : g(x)|c(x)}, dann ist C offenbar Unterraum, und mit (1) folgt aus g(x)|c(x), g(x)|xn − 1 sofort g(x)|ˆ c(x), also ˆ c ∈ C. F¨ ur zyklische Codes k¨ onnen wir sehr bequem eine Generatormatrix und eine Kontrollmatrix angeben. Sei g(x) = xr + gr−1 xr−1 + . . . + g0 das Generatorpolynom, dann bildet {g(x), xg(x), . . . , xk−1 g(x)} eine Basis von C(x), k = n − r. Wir erhalten somit die Generatormatrix ⎛ ⎞ ⎞ ⎛ k−1 1 gr−1 . . . g0 x g(x) 0 ... 0 ⎜ k−2 g(x) ⎟ ⎜ 0 1 gr−1 . . . g0 ... 0 ⎟ ⎜ ⎟ ⎟ ⎜ x G=⎜ . ⎟=⎜ ⎟ .. .. ⎝ .. ⎝ ⎠ ⎠ . . g(x) 0 1 gr−1 . . . g0
Die Dimension von C ist also n − Grad g(x).
n
−1 das KontrollpoIst g(x) das Generatorpolynom von C, so nennen wir h(x) = xg(x) k k−1 lynom. Sei h(x) = x +hk−1 x +. . .+h0 , dann folgt durch Koeffizientenvergleich in g(x)h(x) = xn − 1
gi + hk−1 gi+1 + hk−2 gi+2 + . . . + hi gk = 0 (i = 0, 1, . . . , r − 1),
13.5
also ist
⎛
⎜ ⎜ H =⎜ ⎝
269
zyklische codes
0 0 .. .
... ... . . . h0
h0
h1
h0 h1
··· . . . hk−1
... ... . . . hk−1 1
0
hk−1 1 ...
Kontrollmatrix von C.
⎞ 1 0 ⎟ ⎟ ⎟ ⎠ 0
Beispiel. Wollen wir alle zyklischen bin¨ aren Codes der L¨ange 7 bestimmen, so m¨ ussen wir alle Teiler von x7 −1 durchgehen. Die Zerlegung von x7 −1 in irreduzible Faktoren ist (beachte 1 = −1) x7 − 1 = (x + 1)(x3 + x + 1)(x3 + x2 + 1). Zu g(x) = 1 geh¨ ort der Code C = GF (2)7 . F¨ ur g(x) = x + 1 erhalten wir ⎞ ⎛ 1 1 ⎟ ⎜ 1 1 0 ⎟ ⎜ ⎟ . G=⎜ .. ⎟ ⎜ ⎠ ⎝ 0 1 1
das heißt den Parit¨ atscode. F¨ ur g(x) = x3 + x + 1 ist das Kontrollpolynom h(x) = 3 2 4 (x + 1)(x + x + 1) = x + x2 + x + 1, und wir erhalten die Kontrollmatrix ⎞ ⎛ 0 0 1 1 1 0 1 H=⎝ 0 1 1 1 0 1 0 ⎠ 1 1 1 0 1 0 0
und es resultiert der Fano-Code, wie wir schon wissen. Genau so leicht erledigt man die anderen M¨ oglichkeiten.
Die Codierung mittels zyklischer Codes ist besonders einfach. Wir erkl¨aren φ : K k −→ C durch φa = c, wobei c(x) = a(x)g(x) ist. Zur Decodierung wird umgec(x) kehrt c ∈ C −→ a ∈ K k mit a(x) = g(x) gesetzt. Ist das empfangene Wort v(x) nicht durch g(x) teilbar, so liegt ein Fehler vor, v(x) = c(x) + e(x), c(x) ∈ C(x), und e(x) wird mittels des Euklidischen Algorithmus aus v(x)h(x) = c(x)h(x) + e(x)h(x) ≡ e(x)h(x) (mod xn − 1) berechnet. Wie findet man nun gute“ zyklische Codes C, das heißt Codes C mit d(C) ≥ d? ” Aus g(x)|c(x) erkennt man , dass jede Nullstelle α von g(x) auch Nullstelle von c(x) ist. Wir k¨ onnen C also auch durch Angabe der Nullstellen (in einem geeigneten K¨ orper) beschreiben: (2)
c ∈ C ⇐⇒ c(αi ) = 0 i = 1, . . . , r .
270
13
codierung
Ein Beispiel m¨ oge dies erl¨ autern. Es sei K = GF (q) und K ∗ die multiplikative ¨ Gruppe. Wir wissen aus Ubung 12.32, dass β q−1 = 1 f¨ ur alle β ∈ K ∗ gilt, das q−1 heißt die β sind genau die Nullstellen des Polynoms x − 1, und wir k¨onnen (x − β) (3) xq−1 − 1 = β∈K ∗
schreiben. In der Algebra lernt man, dass es in jedem endlichen K¨orper K Elemente α mit ord(α) = q − 1 gibt, sie heißen die primitiven Elemente von K. Mit anderen Worten: K ∗ = {1, α, α2 , . . . , αq−2 }. Es sei nun α ein primitives Element und g(x) = (x − 1)(x − α)(x − α2 ) . . . (x − αd−2 ). Laut (3) ist g(x) ein Teiler von xq−1 − 1, und wir erhalten mit g(x) als Generatorpolynom einen zyklischen Code C der L¨ange q − 1. Sehen wir uns (2) an, so erkennen wir ⇐⇒ c(αi ) = 0 (i = 0, . . . , d − 2)
c = (cq−2 , . . . , c0 ) ∈ C
⇐⇒ Also ist
⎛
⎜ ⎜ H =⎜ ⎝
n−1 j=0
cj αij = 0 (i = 0, . . . , d − 2).
1
1
αq−2 .. .
αq−3 .. .
... 1 1 .. .
α(q−2)(d−2)
α(q−3)(d−2)
... 1
⎞ ⎟ ⎟ ⎟ ⎠
eine Kontrollmatrix f¨ ur C. Diese Matrix sollte uns bekannt vorkommen – es ist (abgesehen von den ersten beiden Spalten) genau die Kontrollmatrix der ReedSolomon Codes. Wir haben also d(C) ≥ d, und alle Reed-Solomon Codes sind zyklisch.
¨ Ubungen zu Kapitel 13 1 Es seien die ersten 100 Zahlen {0, 1, . . . , 99} gegeben. Die u asen¨bliche dezimale Repr¨ tation ist kein Pr¨ afix-Code. Bestimme einen optimalen bin¨ aren Quellencode C unter der Annahme, dass alle Zahlen gleichwahrscheinlich sind. Wie groß ist L(C)? ⊲ 2 Gibt es einen Pr¨ afix-Code u ortern der L¨ angen 1, 3, 3, 3, ¨ber {0, 1} mit sechs Codew¨ 3, 3? Dieselbe Frage f¨ ur die L¨ angen 2, 3, 3, 3, 3, 3. 3 F¨ ur jedes n konstruiere man einen Pr¨ afix-Code u ortern der ¨ber {0, 1} mit Codew¨ L¨ angen 1, 2, . . . , n. Zeige, dass genau eine Ziffer in jedem solchen Code u ussig ist. ¨berfl¨ Wo befindet sie sich?
¨bungen u
271
4 Bestimme L(C) f¨ ur einen Pr¨ afix-Code u ¨ber {0, 1} mit den Wahrscheinlichkeiten 1 (27, 9, 9, 9, 3, 3, 3, 1). 64 ⊲ 5 Konstruiere einen Code C ⊆ {0, 1}6 mit |C| = 5, der einen Fehler korrigiert. Geht es auch mit C ⊆ {0, 1}5 , |C| = 5?
6 Zeige, dass f¨ ur einen 2-fehlerkorrigierenden Code C ⊆ {0, 1}8 gilt |C| ≤ 4. Gibt es einen solchen Code?
⊲ 7 Es sei M (n, d) = M (n, d; 2). Zeige: a. M (n, 2d − 1) = M (n + 1, 2d). b. M (n, d) ≤ 2M (n − 1, d). 8 Ein Code C ⊆ GF (3)6 ist durch die ⎛ 2 H=⎝ 1 0
Kontrollmatrix 0 2 2
1 0 2
1 0 0
0 1 0
⎞ 0 0 ⎠ 1
gegeben. Bestimme eine Generatormatrix G und codiere die Nachrichten 102, 101, 210, 122. 9 Betrachte den bin¨ aren Code C gegeben durch die Kontrollmatrix ⎛ ⎞ 1 1 0 0 1 0 0 H = ⎝ 0 0 1 1 0 1 0 ⎠. 1 1 1 1 0 0 1
Ist C 1-fehlerkorrigierend? Stelle eine Liste der Syndrome auf und decodiere die folgenden W¨ orter: 0110111, 0111000, 1101011, 1111111. ⊲ 10 Es sei C der Fano-Code. Angenommen, jedes Symbol wird mit Wahrscheinlichkeit p falsch u ¨bertragen. Was ist die Wahrscheinlichkeit, dass ein empfangenes Wort korrekt decodiert wird? 11 Sei C ∈ C(n, 2t; 2). Dann existiert ein weiterer Code C ′ ∈ C(n, 2t; 2), in dem alle Codew¨ orter gerades Gewicht haben. 12 Zeige, dass in einem bin¨ aren linearen Code entweder alle Codew¨ orter gerades Gewicht haben oder die H¨ alfte gerades Gewicht und die andere H¨ alfte ungerades Gewicht. 13 Sei q Primzahlpotenz und 1 + n(q − 1)|q n . Zeige, dass 1 + n(q − 1) = q r ist.
14 Beweise ausf¨ uhrlich, dass in der Kontrollmatrix der Reed–Solomon Codes je d − 1 Spalten linear unabh¨ angig sind. ⊲ 15 Zeige, dass der lineare Code u ¨ber GF (3) mit Generatormatrix 0112 1011 1-perfekt ist. 16 Seien C1 , C2 zwei zyklische Codes u ¨ber GF (q) mit Generatorpolynomen g1 (x), g2 (x). Zeige: C1 ⊆ C2 ⇐⇒ g2 (x)|g1 (x).
⊲ 17 Sei C ein bin¨ arer zyklischer Code, der ein Codewort ungeraden Gewichts enth¨ alt. Dann ist (1, 1, . . . , 1) ∈ C.
272
13
codierung
18 Eine Quelle sendet 10 Signale aus, von denen zwei mit Wahrscheinlichkeit 0, 14 und acht mit Wahrscheinlichkeit 0, 09 auftreten. Bestimme L(C) u ¨ber dem Alphabet {0, 1, 2} bzw. {0, 1, 2, 3}.
⊲ 19 Angenommen, eine Quelle sendet n Signale mit einer gewissen Verteilung (p1 , . . . , pn ). Zeige, dass die L¨ angen ℓ1 , . . . , ℓn der Codew¨ orter in einem optimalen Code u ¨ber {0, 1} n2 +n−2 stets n erf¨ ullen, und dass Gleichheit f¨ ur gewisse Verteilungen gilt. Hini=1 ℓi ≤ 2 weis: Analysiere den Huffman-Algorithmus. ¨ 20 Zeige analog zur vorigen Ubung, dass stets n i=1 ℓi ≥ n lg n gilt. Kann hier Gleichheit gelten?
⊲ 21 Sei κ : X → A∗ eine Quellencodierung. Wir erweitern κ zu κ∗ : X ∗ → A∗ mittels κ∗ (x1 x2 . . . xk ) = κ(x1 )κ(x2 ) . . . κ(xk ). Der Code C = κ(X) heißt eindeutig decodierbar, uckt: Aus v 1 . . . v s = w 1 . . . w t mit v i , w j ∈ C folgt falls κ∗ injektiv ist. Anders ausgedr¨ s = t und v i = w i f¨ ur alle i. Zeige die Verallgemeinerung der Kraftschen Ungleichung 9.2: −ℓ(w i ) ≤ 1. Hinweis: Ist |A| = q, C = {w 1 , . . . , w n } eindeutig decodierbar, so gilt n i=1 q ange ℓ. Betrachte die Anzahl N (k, ℓ) der Codew¨ orter w i1 . . . w ik ∈ C k mit Gesamtl¨
22 Es sei A = {1, . . . , n} und orthogonale Lateinische Quadrate L1 ,. . . , Lt gegeben. Konstruiere den folgenden Code C ⊆ At+2 . Das Codewort cij ist cij = i, j, L1 (i, j), . . . , Lt (i, j) , also |C| = n2 . Zeige, dass t + 1 die minimale Distanz ist. ⊲ 23 Die Hamming-Schranke besagt M (n, 2t + 1; q) ≤ q n / ti=0 ni (q − 1)i . Sei q Prim2t−1 n−1 zahlpotenz. Zeige umgekehrt, dass aus (q − 1)i < q n−k die Existenz eines i=0 i linearen (n, k)-Codes C u ber GF (q) mit d(C) ≥ 2t + 1 folgt. Hinweis: Benutze Satz 13.2 ¨ angig und konstruiere sukzessive Vektoren aus GF (q)n−k , von denen je 2t linear unabh¨ sind. 24 Es sei D = St (v, k) ein Steiner-System. Zeige, dass die Bl¨ ocke (geschrieben als 0, 1Inzidenzvektoren) einen Code C mit |C| = b und d(C) ≥ 2(k − t + 1) ergeben.
⊲ 25 Ein bin¨ arer linearer Code C heißt selbst-dual, falls C = C ⊥ ist. Angenommen der selbst-duale Code C hat eine Basis g 1 , . . . , g k mit w(g i ) ≡ 0 (mod 4) f¨ ur alle i. Zeige, dass dann w(c) ≡ 0 (mod 4) f¨ ur alle c ∈ C gilt.
26 Sei Hr der Hamming-Code mit Parametern n = 2r − 1, k = 2r − 1 − r, d = 3, und addiere eine Parity-Check-Spalte am Ende (so dass alle Codew¨ orter gerade vieˆ r . Zeige: a. Die Codew¨ orter in Hr vom Gele 1’en enthalten). Der neue Code sei H wicht 3, aufgefasst als Inzidenzvektoren der Mengen der 1’en, bilden ein Steiner-System ˆ r vom Gewicht 4 ein Steiner-System S3 (2r , 4). orter in H S2 (2r − 1, 3), b. die Codew¨
27 Berechne die Anzahl der Codew¨ orter in Hr vom Gewicht 3 und die Anzahl der Coˆ r vom Gewicht 4 aus der vorigen Ubung. ¨ dew¨ orter in H M 2 ⊲ 28 Sei C ∈ C(n, d; 2), |C| = M . Zeige: 2 d ≤ i,j ∆(ci , cj ) ≤ nM , wobei die Sum4 auft. Hinweis: Betrachte die M × n-Matrix mit den mation u ¨ ber alle Paare ci , cj ∈ C l¨ Codew¨ ortern als Zeilen. ¨ 29 Folgere aus der vorigen Ubung mit M (n, d) = M (n, d; 2): a. M (n, d) ≤ 2⌊ d ⌋, d 2d−n
d gerade, 2d > n, b. M (2d, d) ≤ 4d, c. M (n, d) ≤ 2⌊ 2d+1−n ⌋, d ungerade, 2d + 1 > n, d. M (2d + 1, d) ≤ 4d + 4.
⊲ 30 Gegeben k und d ≥ 2. N (k, d; q) bezeichne das kleinste n, so dass ein linearer (n, k)Code u ¨ber GF (q) existiert. Zum Beispiel besagt (2) in Abschnitt 13.4: N (k, d; q) ≥ d + k − 1. Das folgende Ergebnis verbessert dies. Zeige: N (k, d; q) ≥ d + N (k − 1, ⌈ dq ⌉; q) und
¨bungen u
273
d ⌉. Hinweis: Betrachte eine Generatormatrix G folgere N (k, d; q) ≥ d + ⌈ dq ⌉ + . . . + ⌈ qk−1 mit erster Zeile (c1 , . . . , cd , 0, . . . , 0), ci = 0.
31 Bestimme die gr¨ oßtm¨ ogliche Dimension k eines bin¨ aren Codes C der L¨ ange n mit d(C) = 1, 2 und 3. ¨ ⊲ 32 Die n¨ achsten Ubungen behandeln allgemein perfekte Codes. Es sei C ein t-perfekter n ˆ Code, C ⊆ {0, 1} . C entstehe aus C durch Hinzuf¨ ugen einer Parity-Check-Spalte. Zeige: Die Codew¨ orter in C vom Gewicht 2t + 1 bilden ein Steiner-System St+1 (n, 2t + 1) und ˆ vom Gewicht 2t + 2 ein Steiner-System St+2 (n + 1, 2t + 2). Sei die Codew¨ orter aus C n orter vom Gewicht 2t + 1 in C. Zeige h2t+1 2t+1 = t+1 . h2t+1 die Anzahl der Codew¨ t+1 Hinweis: Betrachte die Kugeln Bt (a) mit a ∈ C. ¨ 33 Folgere aus der vorigen Ubung, dass n−i aus der Existenz eines t-perfekten Codes C ⊆ ) f¨ ur i = 0, . . . , t + 1, insbesondere also n + 1 ≡ 0 ≡ 0 (mod 2t+1−i {0, 1}n folgt t+1−i t+1−i (mod t + 1). ⊲ 34 F¨ ur 2-perfekte Codes C ⊆ {0, 1}n gilt laut Satz 13.1, |C|(1 + n + n2 ) = 2n , also 2 r+1 2 − 2 f¨ ur ein r. Zeige, dass aus dieser Gleichung (2n + 1) = 2r+3 − 7 folgt. n +n=2 osungen Aus der Zahlentheorie weiß man, dass die Gleichung x2 + 7 = 2m genau die L¨ x = 1, 3, 5, 11 und 181 besitzt. Diskutiere diese F¨ alle und zeige, dass es bis auf den linearen Wiederholungscode keine weiteren 2-perfekten Codes gibt. 35 Zeige, dass es keinen 1-perfekten Code C mit n = 7, q = 6 gibt. Hinweis: Zeige, dass jedes 5-Tupel (a1 , . . . , a5 ) ∈ A5 , |A| = 6, genau einmal in einem Codewort vorkommt, und dass daraus die Existenz zweier orthogonaler Lateinischer Quadrate der Ordnung 6 resultieren w¨ urde. ⊲ 36 Eine weitere interessante Klasse von Codes wird durch Hadamard-Matrizen erzeugt. Eine Hadamard-Matrix der Ordnung n ist eine n × n-Matrix mit ±1-Eintr¨ agen, f¨ ur die HH T = nEn gilt (En = Einheitsmatrix). Zeige: a. Falls eine Hadamard-Matrix der Ordnung n existiert, so ist n = 1, 2 oder n ≡ 0 (mod 4). b. Ist H Hadamard-Matrix, n Hn so eine auch H T . c. Ist Hn eine Hadamard-Matrix der Ordnung n, so ist H2n = H Hn −Hn k solche der Ordnung 2n. d. Folgere, dass Hadamard-Matrizen f¨ ur alle n = 2 existieren. 37 Eine Hadamard-Matrix mit lauter 1’en in der ersten Zeile und ersten Spalte heißt normalisiert. Zeige, dass die Existenz einer normalisierten Hadamard-Matrix der Ordnung n = 4t ≥ 8 ¨ aquivalent ist zur Existenz eines Blockplans mit Parametern v = b = 4t − 1, k = r = 2t − 1, λ = t − 1. Hinweis: Ersetze die −1’en durch 0’en und entferne die erste Zeile und Spalte. ⊲ 38 Sei H eine normalisierte Hadamard-Matrix der Ordnung n ≥ 4. Konstruiere daraus Codes A, B, C mit A ⊆ {0, 1}n−1 , |A| = n, d(A) = n2 ; B ⊆ {0, 1}n−1 , |B| = 2n, ur n = 8 aus? d(B) = n2 − 1; C ⊆ {0, 1}n , |C| = 2n, d(C) = n2 . Wie sehen B und C f¨ 39 Es seien C1 , C2 fehlerkorrigierende Codes der L¨ ange n u ¨ber {0, 1}, |C1 | = m1 , |C2 | = m2 , d(C1 ) = d1 , d(C2 ) = d2 . Der Code C3 = C1 ∗ C2 ist definiert durch C3 = {(u, u + ange 2n mit |C3 | = m1 m2 . Zeige v) : u ∈ C1 , v ∈ C2 }. C3 ist also ein Code der L¨ d(C3 ) = min(2d1 , d2 ).
⊲ 40 Zu jedem m ∈ N und 0 ≤ r ≤ m definieren wir den Code C(r, m) u ¨ber {0, 1} der L¨ ange 2m rekursiv. Es ist C(0, m) = {0 , 1}, C(m, m) = Menge aller 0, 1-W¨ orter der L¨ ange 2m , und C(r + 1, m + 1) = C(r + 1, m) ∗ C(r, m), wobei ∗ wie in der vorigen ¨ Ubung definiert ist. Beispiel: m = 1, C(0, 1) = {00, 11}, C(1, 2) = C(1, 1) ∗ C(0, 1) = {0000, 0011, 1010, 1001, 0101, 0110, 1111, 1100}. Die Codes C(r, m) heißen Reed-Muller
274
13
codierung
, d(C(r, m)) = 2m−r . Der Code C(1, 5) Codes. Beweise: |C(r, m)| = 2a mit a = ri=0 m i wurde von der NASA bei ihren Raumfahrten verwendet. 41 Das Kroneckerprodukt AB zweier Matrizen ist ⎞ ⎛ a11 B a12 B . . . ⎟ ⎜ .. ⎠. ⎝ . am1 B . . .
¨ Zeige, dass der Reed-Muller-Code C(1, m) gleich dem Hadamard-Code C aus Ubung 38 ist, wobei die Hadamard-Matrix H gleich dem m-fachen Koneckerprodukt von 11 −11 ist.
⊲ 42 Sei C ein bin¨ ange n = 7. Die notwendige Bedingung arer 3-perfekter Code der L¨ lautet: 1 + n + n2 + n3 = 2r . Zeige, dass abgesehen vom Wiederholungscode (n = 7, r = 6) nur n = 23 mit r = 11 m¨ oglich ist. Hinweis: Schreibe die Bedingung in der Form oglichen Teiler von n + 1. (n + 1)(n2 − n + 6) = 3.2r+1 und diskutiere die m¨ ¨ 43 Die n¨ achsten beiden Ubungen zeigen, dass f¨ ur n = 23 tats¨ achlich ein 3-perfekter bin¨ arer Code existiert, der sogenannte Golay-Code G23 . Sei Ik
der Ikosaeder-Graph, A die Adjazenzmatrix von Ik, und B die 12 × 12-Matrix, die aus A durch 0 ←→ 1 entsteht. Zeige: G = (E12 , B) ist Generatormatrix eines selbst-dualen Codes G24 , dessen Codew¨ orter alle Gewicht ≡ 0 (mod 4) haben. Hinweis: Zeige aus den Eigenschaften von Ik, dass je zwei Zeilen von B aufeinander senkrecht stehen (¨ uber ¨ GF (2)) und verwende Ubung 25. ⊲ 44 Zeige, dass f¨ ur alle 0 = c ∈ G24 , w(c) ≥ 8 gilt. Folgere, dass der Code G23 , der ¨ durch Streichung einer Koordinate entsteht, 3-perfekt ist. Ubrigens gibt es abgesehen vom Wiederholungscode keine t-perfekten Codes f¨ ur t ≥ 4. 45 Konstruiere aus G23 und G24 Steiner-Systeme S4 (23, 7) und S5 (24, 8). 46 Zeige, dass der duale Code eines zyklischen Codes wieder zyklisch ist.
14 14.1
Kryptographie Kryptosysteme
Wir wenden uns nun dem zweiten Aspekt der Kanalcodierung zu – Geheimhaltung von Nachrichten. Man codiere (oder verschl¨ ussele) einen Text T in der Form c(T ). Zu c gibt es eine Abbildung d, die wir wiederum Decodierung nennen, so dass d(c(T )) = T gilt. C = c(T ) heißt das Kryptogramm (oder Geheimtext). Unsere Aufgabe besteht darin, das Kryptogramm so zu entwerfen, dass es von niemandem (außer dem Empf¨ anger) entschl¨ usselt werden kann. Der Fehleraspekt spielt hier keine Rolle, wir nehmen an, dass eine Sendung stets fehlerfrei beim Empf¨anger ankommt. In der Praxis ist c eine Abbildung, die von einer Anzahl Parametern k, den Schl¨ usseln (keys) abh¨ angt. Formal ist also ein Kryptosystem ein Tripel (T , C, K), T = Menge der Texte, C = Kryptogramme, K = Schl¨ usselmenge zusammen mit zwei Abbildungen c : T × K −→ C, d : C × K −→ T , welche f¨ ur jedes Paar (T, k) d(c(T, k), k) = T erf¨ ullen. Wir haben somit folgende Situation:
T
-
Codierung c
Schl¨ ussel @ @ R @ @ c(T ) -
O
O O O6
Decodierung d
T -
Angreifer
Geheime Codes hat es zu allen Zeiten gegeben – ihre Bedeutung f¨ ur den milit¨ arischen Nachrichtenverkehr oder allgemein f¨ ur die Datensicherheit liegt auf der Hand. Eine der ¨ altesten Verschl¨ usselungen wird traditionell Caesar zugeschrieben. Jeder Buchstabe des Textes wird um eine Stelle weiterger¨ uckt (mod 26). Wir k¨onnen aber auch um 4 oder allgemein k Stellen weiterr¨ ucken oder eine Kombination verwenden. Die Schl¨ usselmenge K ist in diesem Fall also {0, 1, . . . , 25}.
276
14
kryptographie
Verwenden wir beispielsweise abwechselnd die Schl¨ ussel 1 und 4, so wird aus T
= KOMME
MORGEN ZURUECK
das Kryptogramm c(T ) =
LSNQF QPVHIO DVVVIDO .
Man kann sich unschwer weitere Varianten dieser Methode ausdenken: Permuta¨ tionen der Buchstaben oder andere Substitutionen, mehr dar¨ uber in den Ubungen. Eine schon etwas ausgefeiltere Methode benutzt Matrizen. Wir repr¨asentieren die Buchstaben A–Z als die Zahlen 0–25, und den Zwischenraum, Komma und Punkt als 26, 27, 28. Nun rechnen wir modulo der Primzahl p = 29. Eine andere M¨oglichkeit benutzt 0–9 f¨ ur die gew¨ ohnlichen Ziffern, 10 f¨ ur den Zwischenraum und 11–36 f¨ ur die Buchstaben, und wir arbeiten mod 37. Es ist g¨ unstig, eine Primzahl p als Gesamtzahl der Symbole zu nehmen, da das Rechnen in Zp ja besonders einfach ist. Nun zerlegen wir den Text T in Bl¨ ocke x1 , . . . , xk der L¨ange n, w¨ahlen eine invertierbare Matrix A (¨ uber Zp ) und verschl¨ usseln x in c(x) = Ax. Die Decodierung erfolgt mit Hilfe der inversen Matrix y → d(y) = A−1 y. Mit dem 29-Alphabet und Blockl¨ ange n = 3 sei z. B. ⎞ ⎛ 2 0 21 A = ⎝ 5 4 1 ⎠. 3 3 7 Die Nachricht KOMME MORGEN wird geschrieben als
10 14 12 | 12 4 26 | 12 14 17 | 6 4 13 und aus ⎞ ⎞ ⎛ ⎞ ⎛ 11 19 4 24 10 12 12 6 2 0 21 ⎝ 5 4 1 ⎠ ⎝ 14 4 14 4 ⎠ = ⎝ 2 15 17 1 ⎠ 11 27 23 5 12 26 17 13 3 3 7 ⎛
entsteht das Kryptogramm
11 2 11 | 19 15 27 | 4 17 23 | 24 1 5
= L C L T P, E R X Y B F .
Alle diese Verschl¨ usselungen werden uns nicht sehr sicher vorkommen (und sie sind es auch nicht), aber was heißt Sicherheit“? Gibt es insbesondere ein System mit ” perfekter Sicherheit?
14.1
kryptosysteme
277
Dazu m¨ ussen wir uns zun¨ achst in die Rolle des Angreifers versetzen und m¨oglichst realistische Annahmen treffen. Der Angreifer weiß wie die Codierung c funktioniert und verf¨ ugt außerdem u ¨ ber weitere Informationen, wie etwa Buchstabenh¨aufigkeit oder worum es sich inhaltlich bei bei dem Text handeln k¨onnte. Was ihm fehlt, ist die Kenntnis der Schl¨ ussel. Drei m¨ ogliche Attacken (mit ansteigender Gef¨ahrlichkeit) kann man sich vorstellen: A. Der Angreifer kennt nur das Kryptogramm c(T ) und will daraus auf den Text schließen. B. Eine realistischere Variante besagt, dass der Angreifer einen l¨angeren Text T zusammen mit dem zugeh¨ origen Kryptogramm c(T ) kennt. Daraus will er die Schl¨ ussel ermitteln. C. Noch brisanter wird es, wenn vom Angreifer angenommen wird, dass er eine Anzahl von Paaren (T, c(T )) seiner Wahl in die H¨ande bekommt. Betrachten wir die Substitionsmethode, in der der Schl¨ ussel eine Permutation π der 26 Buchstaben ist, also aus X wird πX. Mit Variante C) hat der Gegener leichtes Spiel, er muss nur ein St¨ uck Text T mit c(T ) vergleichen, in dem alle Buchstaben vorkommen. Mit B) sieht es indes anders aus. Falls der Angreifer nur die sinnlose Nachricht A A . . . A samt Kryptogramm πA πA . . . πA abf¨angt, so wird ihm das nichts n¨ utzen, auch wenn der Text noch so lang ist. Aber nat¨ urlich wird er auch hier (und ebenso bei Variante A) aufgrund der Buchstabenh¨aufigkeiten das System knacken k¨ onnen. Hier spielen also Wahrscheinlichkeiten eine Rolle und dies f¨ uhrt geradewegs zur Frage, was perfekte Sicherheit bedeutet. Es sei das Kryptosystem (T , C, K) gegeben, wobei T = {T1 , T2 , . . . , Tn } endlich ist. Wir setzen voraus, dass die Wahrscheinlichkeiten pi = p(Ti ) existieren, dass Ti gesendet worden ist, wobei wir stets pi > 0 annehmen. Ferner sei p(kj ) die Wahrscheinlichkeit, dass der Schl¨ ussel kj benutzt wurde. Die folgende Definition, die auf Shannon zur¨ uckgeht, ist intuitiv plausibel. Definition. C∈C
Das System (T , C, K) hat perfekte Sicherheit, falls f¨ ur alle T ∈ T ,
(1)
p(T |C) = p(T )
gilt, wobei p(T |C) die bedingte Wahrscheinlichkeit ist. Mit anderen Worten: Die Kenntnis des Kryptogramms C sagt absolut nichts dar¨ uber aus, welcher Text T gesendet wurde. Aus p(C|T ) =
p(T |C)p(C) p(C ∧ T ) = p(T ) p(T )
folgt sofort die ¨ aquivalente Bedingung (2)
p(C|T ) = p(C) f¨ ur alle T ∈ T , C ∈ C .
278
14
kryptographie
Perfekte Sicherheit ist nat¨ urlich erstrebenswert, aber gibt es u ¨ berhaupt solche Systeme? Das klassische Beispiel, das one-time pad, geht auf Vernam zur¨ uck. Es funktioniert folgendermaßen. Wir nehmen das u ¨ bliche 26-Alphabet A − Z dargestellt als 0−25, und betrachten einen Text T = x1 x2 . . . xn . Um T zu verschl¨ usseln, erzeugen wir eine zuf¨ allige Folge z = z1 z2 . . . zn aus {0, 1, . . . , 25}, wobei jede Zahl 1 unabh¨ angig und mit Wahrscheinlichkeit 26 gezogen wird, z ist der Schl¨ ussel. Das Kryptogramm C wird nun definiert durch C = c(T, z) = y1 y2 . . . yn mit yi = xi + zi (mod 26) f¨ ur alle i. Die Decodierung ist dann d(yi ) = yi − zi . Offenbar sind alle 26n Kryptogramme C gleichwahrscheinlich, also p(C) = 261n , und ebenso gilt p(C|T ) = 261n , da ja jeder einzelne Buchstabe yi in C mit Wahr1 scheinlichkeit 26 aus xi erzeugt wird. Also gew¨ahrleistet das one-time pad perfekte Sicherheit. Da wir jedesmal eine neue Schl¨ usselfolge bilden, erkl¨art sich der Name one-time pad. So beruhigend dieses Verfahren ist, es hat enorme Nachteile. Der Schl¨ ussel ist genau so lang wie der Text, und außerdem muss der gesamte Schl¨ ussel vorher dem Empf¨ anger u ¨ bermittelt werden, was neue Unsicherheit mit sich bringt. Und auch auf der mathematischen Seite gibt es einen schwerwiegenden Einwand: Niemand weiß, wie man solche Zufallsfolgen tats¨ achlich erzeugt. Man wird sich auf sogenannte Pseudo-Zufallsfolgen beschr¨ anken m¨ ussen, die ann¨ahernd die gew¨ unschten Eigenschaften aufweisen, und es ist nicht klar, ob ein solches System ¨ahnliche Sicherheit garantiert. Zu dem faszinierenden Gebiet der Pseudo-Zufallsgeneratoren sei auf die Literatur verwiesen. Trotz all dieser Vorbehalte wurde das one-time pad angeblich f¨ ur die Kommunikation Washington-Moskau u ¨ ber das Rote Telefon verwendet.
14.2
Lineare Schieberegister
Wir wollen uns nun ein Beispiel eines solchen Zahlengenerators ansehen, das die Querverbindungen zwischen Diskreter Mathematik und Algebra auf sch¨onste illustriert. Wir arbeiten u orper K = GF (q). Ein lineares Schiebe¨ ber dem endlichen K¨ register ist eine Folge von n Registern R1 , . . . , Rn zusammen mit n Elementen c1 , . . . , cn aus K. Die Figur zeigt die Funktion des Schieberegisters: R1 -
xn−1
R2 -
HH HH c1 j HH
xn−2
Rn ...
-
A UA c2 cn A ci xn−i
x0
14.2
279
lineare schieberegister
Das heißt, sind die Register anf¨ anglich mit x(0) = (xn−1 (0), . . . , x0 (0)) belegt, so ist nach Ausf¨ uhrung des Schieberegisters der neue Vektor x(1) = (
n
ci xn−i (0), xn−1 (0), . . . , x1 (0)) ,
i=1
und allgemein haben wir (1)
x(t + 1) = (
n
ci xn−i (t), xn−1 (t), . . . , x1 (t)) .
i=1
Wir setzen immer cn = 0 voraus, da ansonsten das letzte Register u ussig ist. ¨ berfl¨ Warum wir die Indizes xn−1 , . . . , x0 von links nach rechts w¨ahlen, wird sofort klar werden. Starten wir mit einem beliebigen Input-Vektor s = (sn−1 , . . . , s0 ), so ergibt eine einmalige Anwendung ein neues Element sn im ersten Register, die anderen werden verschoben, dann erhalten wir ein neues Element sn+1 in R1 , usf. Das Schieberegister, bestimmt durch c1 , . . . , cn , determiniert zusammen mit dem InputVektor s also die Registerfolge (s0 , s1 , s2 , . . .), und das ist die Folge, die uns interessiert. Nun, das sollte uns bekannt vorkommen. Ein lineares Schieberegister mit n Registern ist nicht anderes als eine Rekursion der L¨ange n mit den konstanten Koeffizienten c1 , . . . , cn , die wir in Kapitel 3 ausf¨ uhrlich diskutiert haben. Nach Definition (1) gilt ja (2)
si+n = c1 si+n−1 + c2 si+n−2 + . . . + cn si
(i ≥ 0)
und jetzt ist klar, warum wir die Indizes so gew¨ahlt haben. Gleichung (2) entspricht der Rekursionsgleichung A1) in Satz 3.1. Bringen wir alles auf eine Seite, so erhalten wir das Polynom f (x) = xn − c1 xn−1 − . . . − cn , das dem reflektierten Polynom q R (x) in Satz 3.1 entspricht. f (x) heißt das charakteristische Polynom des Schieberegisters. Die Bedingung cn = 0 bedeutet also f (0) = 0. Verwenden wir die ¨ Aquivalenz von A1) und A2) in Satz 3.1 (die nat¨ urlich auch f¨ ur endliche K¨orper richtig ist), so erhalten wir: Ist S(x) = k≥0 sk xk die erzeugende Funktion der Registerfolge (sk ), so gilt (3)
S(x) =
k≥0
s k xk =
g(x) , f (x)
Grad g < n,
¨ wobei g(x) durch die Input-Folge s = (sn−1 , . . . , s0 ) bestimmt ist. Aus der Aquivalenz von A1) und A2) folgt auch die Umkehrung: Zu jedem Polynom g(x) mit Grad g < n ist S(x) = fg(x) (x) die erzeugende Funktion einer Registerfolge, und zu jedem der q n m¨ oglichen Input-Vektoren geh¨ ort genau ein Polynom g(x).
280
14
kryptographie
Sch¨ on, das ist also nichts Neues, aber f¨ ur endliche K¨orper tritt nun ein weiteres Ph¨ anomen hinzu: Alle Registerfolgen (sk ) sind periodisch! Das sieht man auf folgende Weise. Es sei A die n × n Matrix u ¨ ber K ⎛ ⎞ c1 c2 . . . cn ⎜ ⎟ ⎜ 1 0 ... 0 ⎟ ⎜ ⎟ ⎜ . .. ⎟ , A = ⎜ .. 1 . ⎟ ⎜ ⎟ ⎜ .. . . ⎟ .. ⎝ . . . ⎠ 0
...
1
0
dann ist ein Schieberegistertakt durch x −→ Ax beschrieben. A ist eine invertible Matrix, da det A = (−1)n−1 cn = 0 ist. Ist der Input-Vektor s = 0 , so erhalten wir nat¨ urlich die Nullfolge. Wir setzen im Folgenden also stets s = 0 voraus. Die Aktion des Schieberegisters ergibt somit die Vektoren s, As, A2 s, . . . , Ai s, . . . Nun gibt es in K n q n − 1 Vektoren = 0 , also muss es fr¨ uher oder sp¨ater ein Paar i < j geben mit Ai s = Aj s, d. h. At s = s mit t = j − i. Die Folge der Vektoren ist somit von der Form s, As, . . . , At−1 s, s, As, . . . , sie wiederholt sich periodisch nach jeweils t Schritten. Und dasselbe gilt dann nat¨ urlich auch f¨ ur die Registerfolge (sk ): sk+t = sk
(k ≥ 0) mit t ≤ q n − 1 .
Fassen wir zusammen: Zu jedem Input-Vektor s ist die Registerfolge (s0 , s1 , s2 , . . .) periodisch. Hat (sk ) die Periode t, dann ist auch jedes Vielfache von t eine Periode. Was uns interessiert, ist daher die kleinste Periode p, die wir mit per(s) bezeichnen. Diese kleinste Periode kann durchaus von s abh¨angen, wie das folgende Beispiel zeigt. Es sei K = GF (2), n = 4, c1 = c2 = c3 = 0, c4 = 1. Dann erhalten wir f¨ ur die Input-Vektoren (1, 1, 1, 1), (1, 0, 1, 0), (1, 1, 1, 0): 0001
0001
0001
1111 ....... 1111
1010 0101 ....... 1010
1110 0111 1011 1101 ....... 1110
per = 1 per = 2
per = 4
14.2
lineare schieberegister
281
Probiert man alle anderen Vektoren aus, so stellt man fest, dass die Periodenl¨ange immer h¨ ochstens 4 ist, w¨ ahrend maximal ja 24 − 1 = 15 m¨oglich w¨are. Welche Schieberegister haben nun die maximal m¨ ogliche Periode per = q n − 1? Nun, eines n i n ist klar: Falls A s durch alle q − 1 Vektoren = 0 l¨auft, bevor Aq s = s wieder erscheint, so muss dies auch f¨ ur alle anderen Inputs gelten – sie durchlaufen ja denselben Zyklus. Beispiel. Sei wieder K = GF (2) und die zwei Schieberegister gegeben durch (c1 , c2 , c3 , c4 ) = (1, 0, 0, 1) bzw. (1, 0, 1, 1). Mit dem Input (1, 0, 0, 0) erhalten wir 1001
1011
1 1 1 1 0
1000 1100 1110 0111 0011 0001 ....... 1000
0 1 1 1 1
0 0 1 1 1
0 0 0 1 1
.. . 0001 ........ 1000 per = 15
per = 6
Im ersten Fall ergibt sich das Maximum per = 24 − 1, im zweiten Fall kann dies f¨ ur keinen Input-Vektor auftreten. Warum dies so ist, k¨onnen wir leicht mit erzeugenden Funktoren beantworten. ur die erzeugende Funktion S(x) = Hat diekFolge (sk ) Periode t, so bedeutet dies f¨ sk x ersichtlich k≥0
S(x) = (s0 + s1 x + . . . + st−1 xt−1 )(1 + xt + x2t + . . .), also (4)
S(x) =
s(x) , 1 − xt
Grad s(x) < t ,
s(x) und umgekehrt hat die durch S(x) = 1−x t bestimmte Folge Periode t. Mit dieser ¨ einfachen Uberlegung k¨ onnen wir sofort einen wichtigen Satz der Algebra herleiten.
Satz 14.1. Sei f (x) ∈ K[x] ein Polynom vom Grad n, f (0) = 0, dann gibt es ein t ≤ q n − 1 mit f (x)|xt − 1. Gilt umgekehrt f (x)|xt − 1, so hat das durch f (x) bestimmte Schieberegister Periode t f¨ ur jeden Input-Vektor s.
282
14
kryptographie
1 Beweis. Sei S(x) = f (x) , dann wissen wir, dass die Folge (sk ) eine gewisse Periode t hat. Nach (4) gilt somit
(5)
S(x) =
s(x) 1 = f (x) 1 − xt
das heißt, f (x)(−s(x)) = xt − 1 also f (x)|xt − 1. Ist umgekehrt f (x)h(x) = xt − 1, so erhalten wir f¨ ur einen beliebigen InputVektor s g(x) g(x)h(x) S(x) = = mit Grad (gh) < t, f (x) xt − 1 also hat (sk ) Periode t nach (4).
¨ Ahnlich zur Periode per(s) definieren wir den Exponenten von f als exp(f ) = min(t : f (x)|xt − 1). Der Satz besagt somit (6)
per(s) ≤ exp(f ) ≤ q n − 1 f¨ ur alle s ∈ K n 0 ,
n = Grad f .
Noch etwas ist sofort ersichtlich. Ist f ein irreduzibles Polynom u ¨ ber GF (q) (also nicht weiter zerlegbar) und p = per(s), so haben wir laut (4) und (5) S(x) =
g(x) s(x) = f (x) 1 − xp
also f (x)s(x) = g(x)(1 − xp ). Da f irreduzibel it, muss f (x) entweder g(x) oder xp − 1 teilen, und dies kann wegen Grad g < n nur xp − 1 sein. Somit erhalten wir Folgerung 14.2. Ist f (x) ein irreduzibles Polynom, so gilt exp(f ) = per(s) f¨ ur alle s ∈ K n 0 . Das letzte Resultat kann benutzt werden, um zu zeigen, dass ein Polynom f (x) nicht irreduzibel ist. Man braucht nur zwei Input-Vektoren mit verschiedenen Perioden zu finden. Sei z. B. K = GF (2), f (x) = x4 + x2 + 1, also c1 = c3 = 1, c2 = c4 = 0 (in GF (2) ist 1 = −1). Wir berechnen 0101
0101
0001 1000 0100 1010 0101 0010 ....... 0001
0110 1011 1101 ....... 0110
per = 6
per = 3
14.2
lineare schieberegister
283
also ist x4 + x2 + 1 nicht irreduzibel, es gilt x4 + x2 + 1 = (x2 + x + 1)2 . Aus x6 + 1 = (x4 + x2 + 1)(x2 + 1) sehen wir mit (6) per(s) ≤ 6 = exp(f ) f¨ ur alle s. Nun k¨ onnen wir unser Hauptergebnis m¨ uhelos beweisen. Satz 14.3. Sei ein Schieberegister R u ¨ber GF (q) mit charakteristischem Polynom f (x) gegeben. Dann gilt: R hat maximale Periode q n − 1 ⇐⇒ f (x) ist irreduzibel mit exp(f ) = q n − 1. Beweis. Die Implikation ⇐= kennen wir schon. Ist umgekehrt per = q n −1, so gilt jedenfalls exp(f ) = q n − 1 wegen (6). W¨ are f (x) = h1 (x)h2 (x) mit Grad hi (x) = ni < n, so betrachten wir S(x) =
1 h1 (x) = . f (x) h2 (x)
(x) erzeugte Folge (sk ) hat Periode per = q n − 1, andererseits Die von S(x) = hf1(x) sehen wir aus S(x) = h21(x) und (6), dass dieselbe Folge eine Periode ≤ q n2 − 1 < q n − 1 hat, Widerspruch.
Bemerkung. In der Algebra lernt man, dass es immer irreduzible Polynome f (x) mit exp(f ) = q n − 1 gibt (sie heißen primitive Polynome) und dass ihre Anzahl n ur jedes gleich ϕ(q n−1) ist, wobei ϕ die Eulersche ϕ-Funktion ist. Folglich existieren f¨ n Schieberegister mit maximaler Periode q n − 1. Zum Beispiel gibt es f¨ ur q = 2, n = 3 genau ϕ(7) amlich x3 + x + 1 und x3 + x2 + 1. 3 = 2 primitive Polynome, n¨ Werfen wir noch einen Blick auf die Verwendung von Schieberegisterfolgen als one-time pads. Sei T = t0 t1 t2 . . . eine Folge mit ti = GF (q) und s0 s1 s2 . . . eic ne Registerfolge. Wir verschl¨ usseln wie gewohnt ti −→ ti + si und decodieren d yi −→ yi − si . Wie sicher ist dieses System? Der Angreifer hat unter Annahme C) ein Textst¨ uck und das korrespondierende Kryptogramm seiner Wahl zur Verf¨ ugung und m¨ ochte daraus die Schl¨ ussel c1 , . . . , cn ermitteln. W¨ahlt er 2n aufeinanderfolgende Symbole sk , . . . , sk+2n−1 (die er wegen si = yi − ti kennt), so erh¨alt er c1 , . . . , cn durch Aufl¨ osen des linearen Gleichungssystems sk+n = c1 sk+n−1 sk+(n+1) = c1 sk+n .. .
+ . . . + cn sk + . . . + cn sk+1
sk+(2n−1) = c1 sk+(2n−2) + . . . + cn sk+n−1 , und das System ist geknackt. Lineare Schieberegister sind also nicht besonders sicher, aber sie k¨onnen verwendet werden, um auf elegante Weise zyklische Codes zu erzeugen. Es sei wie zuvor K = GF (q) und
284
14
kryptographie
⎛
c1 ⎜ 1 ⎜ A=⎜ ⎜ ⎝ 0
...
cn 0 .. .
1 ..
.
1
0
⎞ ⎟ ⎟ ⎟ ⎟ ⎠
die Matrix des Registers, und s ein Input-Vektor = 0 . Es sei nun p = per(s) die Maximalperiode, und s, As, . . . , Ap−1 s die Folge der Vektoren. Der Code C ⊆ K p sei durch die Kontrollmatrix H = (Ap−1 s, Ap−2 s, . . . , As, s) gegeben, das heißt a = (ap−1 , . . . , a0 ) ∈ C ⇐⇒
p−1
ai (Ai s) = 0 .
i=0
Multiplizieren wir diese Gleichung mit A, so erhalten wir ap−2 (Ap−1 s) + . . . + a0 (As) + ap−1 s = 0 , also (ap−2 , . . . , a0 , ap−1 ) ∈ C, und C ist zyklisch. Beispiel. Nehmen wir ein Register u ¨ ber GF (2) mit r Registern und maximaler Periode 2r − 1. Dann enth¨ alt H alle 2r − 1 Vektoren = 0 als Spalten, und es resultiert unser wohlbekannter bin¨ arer perfekter Hamming Code aus Abschnitt 13.4. Und damit ist auch bewiesen, dass alle diese Codes zyklisch sind.
14.3
¨ Offentliche Schl¨ usselsysteme
Wir haben im ersten Abschnitt Kryptosysteme und perfekte Sicherheit diskutiert und bemerkt, dass niemand weiß, wie dies in der Praxis realisiert werden soll. Wir werden also etwas bescheidener sicher“ auf schwer zu knacken“ ab¨andern. Dazu ” ” bedienen wir uns der Begriffe leicht“ und schwer“ aus unserer Diskussion u ¨ ber ” ” die Komplexit¨ at algorithmischer Probleme in Abschnitt 8.5. Unsere Aufgabe besteht ja darin, eine Codierung c zu finden, so dass aus der Kenntnis des Kryptogrammes c(T ) nicht auf den Text geschlossen werden kann. Solche Abbildungen werden heute u ¨ blicherweise Einweg-Funktionen f genannt. Unsere Bedingungen an f lauten daher: (A) Die Berechnung von f (T ) aus T soll leicht sein, das heißt in polynomialer Zeit m¨ oglich sein. Mit anderen Worten, f ist in der Klasse P . (B) Die Berechnung von f −1 (C) aus C soll schwer sein. Das heißt, wir verlangen, dass kein polynomialer Algorithmus von f bekannt ist. Bedingung (B) ist genau unsere Sicherheitsanforderung, dass ein unbefugter Dritter das Kryptogramm nicht knacken kann, und (A) ist eine Forderung an die Effizienz – wir wollen die Nachricht ja schnell an den Empf¨anger senden. Nat¨ urlich
14.3
¨ ffentliche schl¨ o usselsysteme
285
soll es dem Empf¨ anger, aber nur ihm, m¨ oglich sein, das Kryptogramm effizient zu entschl¨ usseln. Wir werden also zu (A) und (B) noch eine dritte Bedingung hinzuf¨ ugen. Wie man das macht, werden wir in K¨ urze sehen. Einer der ersten Vorschl¨ age f¨ ur eine Einwegfunktion war der diskrete Logarithmus. Wir w¨ ahlen eine große Primzahl p. Nach dem Satz von Fermat aus Abschnitt 12.1 wissen wir, dass xp−1 ≡ 1 (mod p) f¨ ur alle x = 1, . . . , p − 1 gilt. Sei nun a ∈ {1, . . . , p − 1}. Falls die Zahlen a, a2 , . . . , ap−1 alle inkongruent ¨ modulo p sind, so nennen wir a eine Primitivwurzel modulo p. In Ubung 27 wird gezeigt, dass jede Primzahl p Primitivwurzeln besitzt, und ihre Gesamtzahl gleich der Anzahl der zu p − 1 relativ primen Zahlen ≤ p − 1 ist. Zum Beispiel hat p = 11 die Primitivwurzeln 2, 6, 7, 8, und wir erhalten beispielsweise f¨ ur 7 die Folge der Potenzen 7i 71 ≡ 7, 72 ≡ 5, 73 ≡ 2, 74 ≡ 3, 75 ≡ 10, 76 ≡ 4, 77 ≡ 6, 78 ≡ 9, 79 ≡ 8, 710 ≡ 1. Wir k¨ onnen nun den diskreten Logarithmus definieren. Zur Primzahl p mit der Primitivwurzel a erkl¨ aren wir die Exponentialfunktion mod p y ≡ ax (mod p). Die Zahl x (1 ≤ x ≤ p − 1) heißt dann der diskrete Logarithmus von y modulo p (zur Basis a). Wir behaupten nun, dass f (x) = ax eine Einwegfunktion ist. Bedingung (A) ist sofort nachzupr¨ ufen. Wollen wir z. B. a39 berechnen, so setzen wir a39 = a32 ·a4 ·a2 ·a k und die einzelnen Potenzen a2 erhalten wir durch sukzessive Quadrierung, z. B. a32 = ((((a2 )2 )2 )2 )2 . Die Gesamtzahl der Multiplikationen ist also sicher durch ¨ 2⌈lg p⌉ beschr¨ ankt (siehe Ubung 5.10), also ist f ∈ P . Beachte, dass die Reduktion der einzelnen Multiplikationen mod p mittels des Euklidischen Algorithmus erfolgt, also ebenfalls polynomial ist. Gegenw¨ artig ist kein polynomialer Algorithmus zur Berechnung diskreter Logarithmen bekannt, und es wird allgemein angenommen, dass die Komplexit¨at dieses Problems gleich jener der Faktorisierung von Zahlen ist. In der Praxis h¨ angt die Codierung, wie wir wissen, von einer Anzahl von Schl¨ usseln k ab. Das Kryptogramm ist von der Form c(T, k). Die Schl¨ ussel stellen aber ihrerseits ein Problem dar, wie wir in mehreren Beispielen gesehen haben: sie sind ein Sicherheitsrisiko und sie verlangsamen den Informationsaustausch. Zur Behandlung dieser Probleme wurde 1976 von Diffie und Hellman die folgende Methode ¨ – genannt Offentliches-Schl¨ ussel-System (englisch Public-key cryptosystem) – vorgeschlagen. Die Idee ist bestechend einfach: Jeder Benutzer i hat einen ¨ offentlichen Schl¨ ussel ki und einen geheimen Schl¨ ussel gi . Der ¨offentliche Schl¨ ussel ist
286
14
kryptographie
allgemein zug¨ anglich, wie auch die verwendete Codierung c und Decodierung d. F¨ ur jeden Text T soll f¨ ur alle i gelten (1) d c(T, ki ), gi = T . Will nun der Teilnehmer j eine Nachricht T an i schicken, so verwendet er den Schl¨ ussel ki von i, sendet C = c(T, ki ),
und der Benutzer i decodiert mittels (1). Um die Effizienz und Sicherheit zu gew¨ ahrleisten, muss das System also folgende Bedingungen erf¨ ullen: (A) Aus T und ki ist die Berechnung von C = c(T, ki ) leicht durchzuf¨ uhren. (B) Gegeben das Kryptogramm C, dann ist die Decodierung d(C) ohne die Kenntnis von gi schwer. (C) Gegeben das Kryptogramm C und der Schl¨ ussel gi , dann ist die Berechnung von d(C, gi ) leicht. Die Bedingungen (A) und (B) besagen, dass die Codierung eine Einwegfunktion ist. Eine Einwegfunktion, die zus¨ atzlich auch (C) erf¨ ullt (also eine effiziente Invertierung bei Kenntnis des geheimen Schl¨ ussels erm¨oglicht) heißt eine Trapdoor Funktion. Wir wollen nun das ber¨ uhmteste Trapdoor System besprechen, das sogenannte RSA-System, genannt nach den Entdeckern Rivest, Shamir und Adleman. Wiederum ist das Modulo-Rechnen der Schl¨ ussel zum Erfolg. Die Codierung bzw. Decodierung funktioniert folgendermaßen: 1. Ein Benutzer w¨ ahlt zwei große Primzahlen p und q und ein Paar von Zahlen k, g, 1 ≤ k, g ≤ (p−1)(q−1), relativ prim zu (p−1)(q−1) mit kg ≡ 1 (mod (p− 1)(q − 1)). 2. Der Benutzer gibt als ¨ offentlichen Schl¨ ussel das Produkt n = pq und k bekannt. 3. Ein Text T wird als Zahl in {0, . . . , n − 1} dargestellt; falls T zu groß ist, wird er in Bl¨ ocke zerlegt. 4. Die Codierung erfolgt mittels C ≡ Tk
(mod n),
die Decodierung mittels des geheimen Schl¨ ussels g durch D ≡ Cg
(mod n).
Bevor wir die Bedingungen (A), (B), (C) nachpr¨ ufen, wollen wir uns ein sehr kleines Beispiel aus der Arbeit von Rivest, Shamir und Adleman ansehen. Es sei p = 47, q = 59, n = 47 · 59 = 2773, (p − 1)(q − 1) = 2668. Wir w¨ahlen g = 157 (Primzahl) und k = 17 mit 17 · 157 ≡ 1 (mod 2668). Wollen wir einen Text senden, so setzen wir z. B. Zwischenraum = 00, A = 01, B = 02, . . . , Z = 26. Wir f¨ ugen nun jeweils zwei Buchstaben zu einem 4-Block zusammen. Zum Beispiel wird aus
14.3
¨ ffentliche schl¨ o usselsysteme
287
KOMME MORGEN ZURUECK der Text 1115 1313 0500 1315 1807 0514 0026 2118 2105 0311 . Wegen n = 2773 sind alle 4-Bl¨ ocke Zahlen < n. Die einzelnen Bl¨ocke T werden nun gem¨ aß T 17 (mod 2773) verschl¨ usselt, und wir erhalten als Kryptogramm 1379 2395 1655 0422 0482 1643 1445 0848 0747 2676. Wir wollen nun zeigen, dass das RSA-Sytem eine Trapdoor-Funktion darstellt. Die Exponentiation T k (mod n) haben wir schon als polynomial erkannt. F¨ ur g relativ prim zu (p − 1)(q − 1) k¨ onnen wir irgendeine Primzahl g > max(p, q) nehmen, und k dann mit dem Euklidischen Algorithmus berechnen. Also ist Bedingung (A) erf¨ ullt, und ebenso (C), da die Decodierung ebenfalls einer Exponentiation entspricht. Bevor wir Bedingung (B) diskutieren, m¨ ussen wir noch zeigen, dass d c(T ) = T ist, d. h. dass aus C ≡ Tk
(mod n)
T ≡ Cg
(mod n)
stets folgt. Mit anderen Worten, wir wollen T kg ≡ T
(mod n)
zeigen. Falls T ≡ 0 (mod p) ist, so gilt nat¨ urlich T kg ≡ T (mod p). Sei also T relativ prim zu p. Nach dem Satz von Fermat haben wir T p−1 ≡ 1 (mod p). Wegen kg ≡ 1 mod (p − 1)(q − 1) gilt kg = t(p − 1)(q − 1) + 1 f¨ ur ein t ∈ N und somit T kg = T t(p−1)(q−1) T = (T p−1 )t(q−1) T ≡ T (mod p).
Analog schließen wir T kg ≡ T (mod q). Die beiden Kongruenzen bedeuten p|T kg − T, q|T kg − T , also folgt pq|T kg − T oder T kg ≡ T (mod n) wie gew¨ unscht. Nun zur Bedingung (B). Die Zahlen n, k sind ¨offentlich. Wenn jemand n faktorisieren kann, so erh¨ alt er aus n = pq sofort (p − 1)(q − 1) und damit g aus kg ≡ 1 mod (p − 1)(q − 1) . Kann man g berechnen, ohne p, q zu kennen? Aus der Kenntnis von (p − 1)(q − 1) und n = pq k¨onnen wir sofort p und q ermitteln, also n faktorisieren. Es gilt n¨ amlich p + q = pq − (p − 1)(q − 1) + 1, (p − q)2 = (p + q)2 − 4pq , und aus p + q und p − q erhalten wir unmittelbar p und q.
288
14
kryptographie
Es l¨ auft also alles darauf hinaus, ob man große Zahlen effizient faktorisieren kann – und ein solcher Algorithmus ist gegenw¨ artig nicht bekannt. Nat¨ urlich k¨onnte man sagen, dass C ≡ T k (mod n) eigentlich das Problem des k-ten Wurzelziehens modulo n betrifft, also zun¨ achst nichts mit Faktorisieren zu tun hat. Rivest, Shamir und Adleman vermuten aber, dass jede effiziente Methode, ihr System zu knacken, einen Algorithmus zur Faktorisierung von Zahlen implizieren w¨ urde. Diese Vermutung ist unbewiesen, so dass wir resumierend nur sagen k¨onnen: Bei unserem jetzigen Kenntnisstand ist das RSA-System sicher. Noch ein wichtiges Problem kann mit dem RSA-System gel¨ost werden. Wie erkennt der Empf¨ anger i, ob die Nachricht von j stammt? Dazu verwenden wir Codierungen c und Decodierungen d, die zus¨ atzlich zu d c(T ) = T auch c d(T ) = T erf¨ ullen. Das RSA-System gen¨ ugt nat¨ urlich dieser Bedingung. Will nun i nachpr¨ ufen, ob j wirklich der Absender ist, so w¨ ahlt er ein zuf¨alliges Wort x und schickt u = c(x, kj ) an j. Dieser sendet nun seine uck an i, und ”Unterschrift“ d(u, gj ) zur¨ der Empf¨ anger pr¨ uft, ob c d(u, gj ), kj tats¨ achlich u ist. Wenn ja, kann er wegen der Eigenschaft (B) sicher sein, dass die Nachricht tats¨achlich von j stammt.
14.4
Zero-Knowledge-Protokolle
Die Kryptographie, wie wir sie bisher besprochen haben, besch¨aftigt sich mit Fragen der Datensicherheit und der Problematik des Schl¨ usselaustauschs. In unserem Internet-Zeitalter ist aber nicht nur das Geheimhalten von Daten wichtig, sondern schon die Art und Weise, wie die Kommunikation zwischen zwei Parteien vor sich geht. Wir nennen eine solche Kommunikation ein Protokoll. Ein besonders interessantes Protokoll verlangt folgendes. Eine Person P (prover) m¨ ochte jemanden anderen V (verifier) davon u ¨ berzeugen, dass er eine Information (oder wie wir auch sagen, ein Geheimnis) besitzt, ohne diese Information mitzuteilen. Ja mehr noch, V (oder irgendein unbefugter Lauscher) soll nicht imstande sein, auch nur einen Teil des Geheimnisses aus den Daten des Protokolls zu rekonstruieren. Ein Beispiel: In Authentifikationssystemen weist P seine Identit¨at u ¨ blicherweise dadurch nach, dass er die pr¨ ufende Instanz V u ¨ berzeugen muss, ein Geheimnis zu besitzen. Dies kann ein Passwort sein oder die Geheimnummer einer Kreditkarte. V vergleicht nun das Passwort mit einem anfangs festgelegten Vergleichspasswort und ¨ kann so die Ubereinstimmung feststellen. Das Risiko ist klar: Das Protokoll kann von einem Angreifer abgefangen werden, oder aber V selber kann es missbrauchen. Wie soll man da vorgehen? Bevor wir ein Beispiel ansehen, wollen wir die Anforderungen an ein solches ZeroKnowledge-Protokoll pr¨ azisieren. Es wird zwischen P und V ein Protokoll angefertigt, und am Ende akzeptiert V , dass P das Geheimnis besitzt, oder er verwirft. Die Regeln, nach denen V akzeptiert oder verwirft (wie auch die Modalit¨ aten des Protokolls), werden in beiderseitigem Einverst¨andnis vorher festgelegt. Das Protokoll soll nun die folgenden Bedingungen erf¨ ullen:
14.4
zero-knowledge-protokolle
289
(A) Durchf¨ uhrbarkeit: Falls P das Geheimnis besitzt, so akzeptiert V mit beliebig hoher Wahrscheinlichkeit (nahe 1). (B) Korrektheit: Falls P die Information nicht hat (P schwindelt), dann akzeptiert V nur mit beliebig kleiner Wahrscheinlichkeit (nahe 0). (C) Zero-Knowledge: V erf¨ ahrt durch das Protokoll nichts u ¨ ber das Geheimnis (er ist so klug wie zuvor). Zus¨ atzlich soll das Protokoll effizient sein, also in polynomialer Zeit ablaufen. Das folgende am¨ usante Beispiel wird diese Begriffe sofort klarmachen. Sehen wir uns den folgenden Lageplan an: magische T¨ ur
links
rechts Vorraum Eingangst¨ ur
P behauptet gegen¨ uber V , die geheime Code-Kombination der magischen T¨ ur zu kennen. Das Protokoll l¨ auft nun folgendermaßen ab: 1. P betritt den Vorraum und schließt die Außent¨ ur. Dann entscheidet er sich per M¨ unzwurf f¨ ur die linke oder rechte T¨ ur, geht hinein und schließt die T¨ ur hinter sich. 2. Nun betritt V den Vorraum, entscheidet sich zuf¨allig f¨ ur eine der beiden T¨ uren und gibt dies P durch Zuruf bekannt. 3. Befindet sich P hinter der richtigen T¨ ur, so kann er einfach heraustreten, andernfalls muss P den geheimen Code kennen und kommt wieder durch die richtige T¨ ur heraus. Dieses Verfahren wird n-mal wiederholt, und wenn P jedesmal durch die richtige T¨ ur heraustritt, so ist V u ¨ berzeugt und akzeptiert, ansonsten verwirft er. Pr¨ ufen wir die Bedingungen nach. Kennt P die Kombination, so akzeptiert V mit Wahrscheinlichkeit 1. Bedingung (B) betrift die M¨oglichkeit, dass P den Code nicht kennt, aber trotzdem immer bei der richtigen T¨ ur herauskommt, und die Wahrscheinlichkeit daf¨ ur ist 21n , also beliebig klein. Die Zero-Knowledge-Eigenschaft ist offenkundig erf¨ ullt. Nun aber zum richtigen Leben. Das bekannteste und in der Praxis am h¨aufigsten eingesetzte Zero-Knowledge-Protokoll wurde von Fiat und Shamir 1985 vorgeschlagen. Und wieder steckt Modulo-Rechnen dahinter.
290
14
kryptographie
Rufen wir uns die ben¨ otigten Begriffe in Erinnerung. Zn ist der Ring der Reste modulo n. Wir nennen r einen primen Rest, falls ggT(r, n) = 1 ist. Die primen Reste bilden mit der Multiplikation eine Gruppe, die prime Restklassengruppe Z∗n . F¨ ur n = 14 erhalten wir beispielsweise Z∗14 = {1, 3, 5, 9, 11, 13}, und es ist klar, dass mit r auch n − r primer Rest ist. Ein Element r ∈ Z∗n heißt quadratischer Rest, falls in Z∗n die Gleichung r ≡ x2 (mod n) l¨osbar ist. Nat¨ urlich ist mit r ≡ x2 2 ∗ auch r ≡ (−x) (mod n). In Z14 sind daher die quadratischen Reste (±1)2 = 1, (±3)2 = 9, (±5)2 = 11. Ist n = p eine Primzahl, so hat jede Gleichung x2 ≡ r (mod p) h¨ ochstens zwei L¨ osungen (Zp ist ein K¨orper!), aber f¨ ur zusammengesetztes n k¨ onnen durchaus mehr L¨ osungen resultieren. Zum Beispiel ist in Z8 jeder der primen Reste 1, 3, 5, 7 L¨ osung von x2 ≡ 1 (mod 8). Die Sicherheit des Fiat–Shamir-Protokolls beruht auf der Annahme, dass es (im Sinne der Komplexit¨ atstheorie) schwierig ist, Quadratwurzeln in der Gruppe Z∗n f¨ ur großes n zu berechnen. Nun verfahren wir wie folgt. P (oder ein vertrauensw¨ urdiges Trust-Center) w¨ ahlt zwei große Primzahlen p und q und bildet n = pq. Als n¨ achstes wird s ∈ Z∗n gew¨ ahlt und v ≡ s2 (mod n). Die Zahlen n und v werden V bekanntgegeben, p, q und s bleiben geheim. P weist nun seine Identit¨at gegen¨ uber V nach, indem er behauptet, eine Quadratwurzel von v zu kennen. Dies f¨ uhrt zu folgendem Protokoll: 1. 2. 3. 4.
P V P V
w¨ ahlt zuf¨ allig r ∈ Z∗n und schickt x ≡ r 2 (mod n) zu V . w¨ ahlt zuf¨ allig ein Bit b ∈ {0, 1} und sendet dieses an P . schickt y ≡ rsb zur¨ uck an V . pr¨ uft nach, ob y 2 ≡ xv b (mod n) erf¨ ullt ist.
Dieser Austausch wird n-mal wiederholt, und wenn jedesmal y 2 ≡ xv b (mod n) gilt, so akzeptiert V , ansonsten verwirft er. Bedingung (A) ist sicherlich erf¨ ullt. Kennt P keine Quadratwurzel von v (P schwindelt), so kann P h¨ ochstens auf eine der beiden M¨oglichkeiten b = 0 oder b = 1 ullt, so w¨are ( yy01 )2 ≡ v eine richtig antworten. Denn w¨ are y02 ≡ x und y12 ≡ xv erf¨ Quadratwurzel von v, die aber P nicht kennt. P kann also h¨ochstens mit Wahrscheinlichkeit 12 richtig antworten. Man kann sich leicht u ¨ berlegen, dass P immer ¨ 29). Nach n Wiederholungen ist die mit Wahrscheinlichkeit 12 richtig liegt (Ubung Betrugswahrscheinlichkeit also 21n . Und zur Zero-Knowledge Eigenschaft brauchen wir nur zu bemerken, dass V aus y 2 ≡ xv b nur die Information bekommt, dass x ein quadratischer Rest ist, da r zuf¨ allig gew¨ahlt wurde – aber das weiß er ja ohnehin.
¨bungen u
291
¨ Ubungen zu Kapitel 14 ⊲ 1 Warum ist die Permutationsmethode X → πX wahrscheinlich sicherer als das Caesar System X → X + i? 2 Ein affines Kryptosystem mit Blockl¨ ange n besteht aus einer invertierbaren Matrix A usselung erfolgt durch c(x) = Ax + b. Wie und einem festen Vektor b ∈ K n . Die Verschl¨ viel Text T zusammen mit c(T ) ben¨ otigt der Angreifer unter Bedingung C) in Abschnitt 1, um den Code zu knacken? ⊲ 3 Der Text wird in Bl¨ ocke der L¨ ange n zerlegt, und die Verschl¨ usselung ist c(x) = πx+b, wobei π eine Permutation der Koordinaten ist und b ∈ K n ein fester Vektor. Zeige, dass dieses System ein affines Kryptosystem ist. 4 Eine affine Caesar Verschl¨ usselung ist von der Form c : Zn → Zn , c(x) ≡ ax + b (mod n) mit 0 < a, b < n. Zeige, dass c genau dann eine Bijektion ist, wenn a und n relativ prim sind. Wie viele verschiedene solche Systeme gibt es daher? 5 Die folgende Nachricht sei mit einem affinen Caesar-System auf 26 Buchstaben verschl¨ usselt. Man entschl¨ ussele VBEDXSXIXKPXS . ⊲ 6 Sei per(s) Minimalperiode eines Schieberegisters mit Input s. Zeige: t ist Periode ⇐⇒ per(s)|t. 7 Bestimme alle irreduziblen Polynome u ¨ber GF (2) bis Grad 5. Welche davon sind primitiv? ⊲ 8 Die Folgen (ak ) und (bk ) seien periodisch mit Minimalperioden r bzw. s. Ist die Summenfolge (ak + bk ) periodisch? Und wenn ja, was kann man u ¨ber die Minimalperiode sagen? 9 Angenommen, a ist nicht Primitivwurzel von p. Zeige, dass dann y ≡ ax (mod p) nicht notwendig eine eindeutige L¨ osung in x bei gegebenem y hat (oder auch gar keine L¨ osung). 10 Sei a Primitivwurzel von p. Zeige, dass f¨ ur den diskreten Logarithmus gilt: log a (xy) = loga x + loga y (mod p − 1).
11 Sei n = pq, p und q Primzahlen. Wie viele L¨ osungen kann eine Gleichung x2 ≡ s (mod n) in Z∗n haben?
⊲ 12 Es sei (T , C, K) ein Kryptosystem mit perfekter Sicherheit. Zeige, dass |K| ≥ |T | gelten muss. 13 Sei (T , C, K) gegeben mit |T | = |C| = |K|. Zeige, dass genau dann perfekte Sicherheit garantiert ist, wenn es zu jedem Paar (T, C) genau einen Schl¨ ussel k gibt mit c(T, k) = C, und alle Schl¨ ussel gleich wahrscheinlich sind. 14 Wie viele invertierbare n × n-Matrizen u ¨ber GF (q) gibt es?
⊲ 15 Ein Schieberegister u ¨ber GF (2) mit n Registern habe maximale Periode 2n − 1, mit Registerfolge (sk ). Zeige, dass jeder Abschnitt von 2n − 1 aufeinanderfolgenden Symbolen alt. 2n−1 Einsen und 2n−1 − 1 Nullen enth¨
292
14
kryptographie
¨ 16 Sei ein Register wie in der vorigen Ubung gegeben mit Input-Vektor s0 = . . . = sn−2 = 0, sn−1 = 1. Wir ordnen s0 , . . . , s2n −1 im Uhrzeigersinn im Kreis. Zeige, dass die 2n W¨ orter von n aufeinanderfolgenden Symbolen jedes 0,1-Wort der L¨ ange n genau einmal ergeben. Solche Kreis-Arrangements heißen de Bruijn-W¨ orter. = (E, K) sei folgender ge⊲ 17 Wir konstruieren de Bruijn-W¨ orter mittels Graphen. G n−1 und a1 a2 . . . an−1 → b1 b2 . . . bn−1 falls a2 = b1 , a3 = richteter Graph: E = {0, 1} ur n = 3 ist 10 → 00, 10 → 01, 11 → 10, 11 → 11. b2 , . . . , an−1 = bn−2 . Beispiel: F¨ ein de Bruijn-Wort. Zeige: Jede Ecke hat In-Grad 2 und Aus-Grad 2. Konstruiere aus G ist Eulersch. Hinweis: G 18 Zeige, dass die Koeffizienten c1 , . . . , cn eines Schieberegisters nicht notwendig aus 2n onnen, wenn die si nicht aufeinander folgen. Registerzahlen si gefunden werden k¨ ⊲ 19 Die Rekursion sn+5 = sn+1 + sn sei gegeben u ¨ber GF (2). Zeige, dass (sk ) durch ein lineares Schieberegister realisiert werden kann, und dass die m¨ oglichen Minimalperioden 1, 3, 7, 21 sind. 20 Seien f1 (x), f2 (x) charakteristische Polynome zweier Schieberegister R1 , R2 . Zeige: Jede Registerfolge (sk ) von R1 ist auch eine solche von R2 genau dann, wenn f1 (x)|f2 (x) gilt. ¨ ⊲ 21 Zeige, dass alle perfekten Hamming-Codes u ¨ber GF (q) zyklisch sind. Hinweis: Uberlege, was Ai s = λs bedeutet, A = Matrix des Registers. 22 Wir verwenden das RSA-System. Der Empf¨ anger gibt als ¨ offentlichen Schl¨ ussel k = 43, n = 77 bekannt. Eine Nachricht M wird als C = 5 zum Empf¨ anger gesandt und abgefangen. Was ist M ? ⊲ 23 Das folgende Public-key-System wurde von Elgamal vorgeschlagen. Alle Benutzer kennen dieselbe große Primzahl p und eine Primitivwurzel a. Benutzer j w¨ ahlt eine allig, das ist sein geheimer Schl¨ ussel. Als o ussel nat¨ urliche Zahl xj zuf¨ ¨ffentlichen Schl¨ ochte zu j eine Nachricht gibt er yj ≡ axj (mod p) bekannt. Angenommen, Benutzer i m¨ M, 1 ≤ M ≤ p − 1, senden. Er geht folgendermaßen vor: (1) Er w¨ ahlt zuf¨ allig eine Zahl k mit 1 ≤ k ≤ p − 1, (2) Er berechnet K = yjk (mod p), (3) Er sendet das Paar (C1 , C2 ) mit C1 ≡ ak (mod p), C2 ≡ K · M (mod p). Zeige, dass dieses System die Anforderungen eines Public-key-Systems erf¨ ullt. 24 Zeige, dass ein polynomialer Algorithmus zur Berechnung des diskreten Logarithmus das Elgamal-System brechen w¨ urde. ⊲ 25 Wir nehmen im Elgamal System p = 71 mit der Primitivwurzel 7. Angenommen ahlt den Schl¨ ussel k = 2. Wie sieht das Kryptogramm von yj = 3 und Benutzer i w¨ M = 30 aus? Angenommen, unter Benutzung eines neuen Schl¨ ussels k′ wird M = 30 als (2, C2 ) gesandt. Was ist C2 ? 26 Zeige, dass die Verschl¨ usselung einer Nachricht im Elgamal-System etwa 2 log p Multiplikationen modulo p erfordert. zyklisch ist und dass es genau ϕ(p − 1) ⊲ 27 Sei p Primzahl. Zeige, dass die Gruppe Z∗p ϕ(d) = p − 1. erzeugende Elemente gibt. Hinweis: Verwende d|p−1
28 Berechne die Anzahl der quadratischen Reste in Z∗n , n = 2k (k ≥ 3). Hinweis: Beur r < n4 . trachte r und n2 − r f¨
¨bungen u
293
29 Zeige, dass im Fiat-Shamir-Protokoll ein Schwindler P stets erreichen kann, dass eine der beiden Gleichungen y02 ≡ x oder y12 ≡ xv (mod n) richtig ist.
30 Eine ber¨ uhmte ungel¨ oste Komplexit¨ atsfrage ist das Graphenisomorphieproblem GI. Gegeben G1 = (E1 , K1 ), G2 = (E2 , K2 ), sind G1 und G2 isomorph? Das Problem ist in N P , aber man kennt keinen polynomialen Algorithmus. Auf der vermuteten Schwierigkeit von GI beruht das folgende Protokoll. P behauptet, einen Isomorphismus ϕ : E1 → E2 zu kennen. 1. P w¨ ahlt zuf¨ allig und gleichverteilt eine Permutation π von E1 und schickt den Graphen H = πG1 an V . 2. V w¨ ahlt zuf¨ allig i ∈ {1, 2} und schickt i an P mit der Aufforderung, einen Isomorphismus von Gi mit H anzugeben. 3. P setzt ρ = π (falls i = 1) bzw. ρ = π ◦ ϕ−1 (falls i = 2) und sendet ρ an V . 4. V verifiziert, ob ρ : Gi → H Isomorphismus ist. Dies wird n-mal wiederholt. Ist jedesmal ρ ein Isomorphismus, so akzeptiert V , ansonsten verwirft er. Zeige, dass dies ein Zero-Knowledge-Protokoll ist.
15
Lineare Optimierung
Dieses letzte Kapitel geht etwas u uhrung in die Dis¨ ber den Rahmen einer Einf¨ krete Mathematik hinaus. Es geht tiefer in die zugrundeliegende mathematische Struktur und ist daher in der notwendigerweise knappen Darstellung theoretischer als die bisherigen Kapitel. Lineare Optimierung ist aber heute ein derart wichtiges Gebiet mit einer un¨ ubersehbaren F¨ ulle von Anwendungen, vor allem f¨ ur diskrete Probleme (aber nicht nur dort), dass die wesentlichen Ideen und Methoden jedem diskreten“ Mathematiker gel¨ aufig sein sollten. Im folgenden werden nur die ” grundlegenden Resultate vorgestellt, f¨ ur ein weiterf¨ uhrendes Studium sei auf die Literatur verwiesen.
15.1
Beispiele und Definitionen
In Abschnitt 8.2 haben wir Job-Zuordnungsprobleme mit Eignungskoeffizienten (wij ) auf folgende Form gebracht: Gegeben die Matrix (wij ), gesucht ist (xij ) mit xij = 0 oder 1, so dass n n wij xij = min i=1 j=1
ist, unter den Nebenbedingungen n
xij = 1 f¨ ur alle i,
n
xij = 1 f¨ ur alle j.
i=1
j=1
Das Rucksackproblem hat eine ganz ¨ ahnliche Gestalt. Gegeben wi , gi . Gesucht ist xi , 1 ≤ i ≤ n, mit xi = 1 oder 0 (xi = 1 bedeutet, dass der Gegenstand i eingepackt wird, xi = 0 heißt, er wird nicht eingepackt), so dass n
wi xi = max
i=1
ist, unter der Nebenbedingung n i=1
gi xi ≤ G .
Auch das Angebot-Nachfrage-Problem in Abschnitt 8.3 war von dieser Form. Und die Ungleichungen in der Behandlung von Fl¨ ussen in Netzwerken sehen ganz ¨ahnlich aus. Nat¨ urlich kann auch das Traveling-Salesman-Problem auf diese Gestalt gebracht werden. Wie man solche Probleme allgemein behandelt, ist Inhalt dieses Kapitels.
296
15
lineare optimierung
Zuerst ein paar Begriffe: Wir betrachten m × n-Matrizen A u ¨ ber R. Alle unsere ¨ Uberlegungen gelten aber auch f¨ ur Q. Die Menge aller m × n-Matrizen ist Rm×n , und wir bezeichnen Vektoren mit a, b, c, . . . . Sind a, b ∈ Rn , dann setzen wir wie gewohnt a ≤ b, falls ai ≤ bi f¨ ur alle Koordinaten gilt. Vektoren a sind grunds¨ atzlich Spaltenvektoren, Zeilenvektoren bezeichnen wir mit aT , wie auch AT die transponierte Matrix von A bezeichnet. Insbesondere bedeutet a ≥ 0 , dass alle Koordinaten ai ≥ 0 sind. Definition. Gegeben A ∈ Rm×n , b ∈ Rm , c ∈ Rn . Ein Standardprogramm besteht in der Aufgabe, x ∈ Rn zu finden, so dass (1) (2)
Ax ≤ b, x ≥ 0 cT x = max
Standard-Maximum-Programm
(1) (2)
Ax ≥ b , x ≥ 0 cT x = min .
Standard-Minimum-Programm
oder
Ein x∗ ∈ Rn , welches (1) erf¨ ullt, heißt zul¨ assige L¨ osung. Erf¨ ullt x∗ zus¨atzlich ∗ T ∗ (2), so heißt x optimale L¨ osung, und c x der Wert des linearen Programms; cTx heißt die Zielfunktion des Programms. Beispiel. Ein Obstbauer stellt zwei S¨ afte S1 , S2 her. Neben dem Konzentrat, Zucker und Wasser verwendet er zwei Zus¨ atze Z1 , Z2 . Unter Ber¨ ucksichtigung der Vorr¨ ate will er einen Produktionsplan aufstellen, der ihm einen maximalen Gewinn garantiert. Daraus ergibt sich folgendes Programm Anteil
S1
S2
Konzentrat Zucker Wasser Z1 Z2
0,4 0,2 0,25 0,15 0
0,25 0,3 0,15 0 0,3
Gewinn pro Liter
7
3
Vorrat 30 25 100 10 20
Nebenbedingungen R1 R2 R3 R4 R5 Q:
: : : : :
0, 4x1 0, 2x1 0, 25x1 0, 15x1
+ 0, 25x2 + 0, 3x2 + 0, 15x2 0, 3x2
7x1
+ 3x2
≤ 30 ≤ 25 ≤ 100 ≤ 10 ≤ 20
= max
Wir erhalten also ein Standard-Maximum-Programm mit den Nebenbedingungen R1 , . . . , R5 und der Zielfunktion Q. Die folgende Figur zeigt die gemometrische Struktur des linearen Programms. Der schraffierte Teil ist der Bereich der zul¨assigen L¨ osungen. Die Funktion Q(x1 , x2 ) beschreibt mit Q(x1 , x2 ) = m eine Familie ' von parallelen Geraden, und der eindeutige maximale Wert wird in der Ecke x ' = (66.6, 13.3), und angenommen. Das lineare Programm hat daher die L¨osung x
15.2
297
dualit¨ at
der optimale Gewinn ist 506.6. x2
R5 R
2
R1
Q=m
~ x R4
x1
Aus unserem Beispiel ergeben sich die grundlegenden Fragen der linearen Optimierung: 1. Gegeben ein Standardprogramm. Wann existiert eine zul¨assige L¨osung? Wann existiert eine optimale L¨ osung? 2. Wie sieht die Menge der zul¨ assigen L¨ osungen aus? Wie sieht die Menge der optimalen L¨ osungen aus? 3. Wie berechnet man eine zul¨ assige L¨ osung? Wie berechnet man eine optimale L¨ osung?
15.2
Dualit¨ at
Eine f¨ ur Theorie und Praxis gleichermaßen fundamentale Tatsache ist, dass zu jedem Standardprogramm ein eindeutiges duales Standardprogramm geh¨ort. Definition.
Sei (I)
Ax ≤ b, x ≥ 0 cT x = max
ein Standard-Maximum-Programm. (I) heißt das primale Programm. Das Standard-Minimum-Programm (I∗ )
AT y ≥ c, y ≥ 0 bT y = min
heißt das zu (I) duale Programm. Ist umgekehrt (I∗ ) gegeben, so heißt (I∗ ) das primale Programm und (I) das duale Programm. Offensichtlich gilt (I∗∗ ) =(I).
298
15
lineare optimierung
Satz 15.1. Seien die Programme (I) und (I∗ ) gegeben, und x eine zul¨ assige L¨ osung von (I), y zul¨ assige L¨ osung von (I∗ ). Dann gilt cTx ≤ y TAx ≤ bT y . Beweis. Wegen x ≥ 0 , y ≥ 0 haben wir cT x ≤ (y TA)x = y T (Ax) ≤ y T b = bT y . Als unmittelbare Folgerung erhalten wir: Satz 15.2. Seien x, y zul¨ assige L¨ osungen von (I) bzw. (I∗ ). Gilt cT x = bT y, so ist x optimale L¨ osung von (I) und y optimale L¨ osung von (I∗ ). Beispiel. Betrachten wir das gew¨ ohnliche Matching-Problem auf einem bipartiten Graphen G = (S + T, K) ohne isolierten Ecken. A bezeichne die n × qInzidenzmatrix der Ecken und Kanten, die Vektoren b = 1 ∈ Rn und c = 1 ∈ Rq haben lauter 1’en als Koordinaten. Fassen wir x ∈ Rq , xi = 1 oder 0, wie u ¨ blich als charakteristischen Vektor einer Kantenmenge X auf, so bedeutet Ax ≤ 1, dass X mit jeder Ecke h¨ ochstens einmal inzidiert, also ein Matching ist. Interpretieren wir y ∈ Rn , yi = 1 oder 0, als Eckenmenge Y , so bedingt AT y ≥ 1, dass jede Kante mit mindestens einer Ecke aus Y inzidiert, also Y ein Tr¨ ager ist. Die Zielfunktionen sind 1T x = |X|, 1T y = |Y |. Aus 15.1 erhalten wir also unsere wohlbekannte Ungleichung max (|X| : X Matching ) ≤ min(|Y | : Y Tr¨ager). Der Hauptsatz der linearen Optimierung, den wir in Abschnitt 3 beweisen, besteht in der Umkehrung von 15.2. Falls (I) und (I∗ ) zul¨assige L¨osungen besitzen, so haben sie auch optimale L¨ osungen, und es gilt Wert (I) = Wert (I∗ ). In unserem Matching-Problem sind x = 0 und y = 1 offenbar zul¨assige L¨osun', y ' . Folgt daraus gen von Ax ≤ 1 bzw. AT y ≥ 1, also gibt es optimale L¨osungen x unser Satz 8.3: max(|M | : M Matching) = min(|D| : D Tr¨ager)? Nein, nicht unmittelbar, denn charakteristische Vektoren sind ja ganzzahlig 0 oder 1, aber f¨ ur ', y ' k¨ die optimalen L¨ osungen x onnen wir zun¨achst nur sagen, dass die Koordinaten rationale Zahlen zwischen 0 und 1 sind. Die Frage, wann ganzzahlige optimale L¨ osungen existieren, ist von fundamentaler Bedeutung – wir werden darauf im letzten Abschnitt zur¨ uckkommen. Im Matching-Fall gibt es sie (wie wir sehen werden) tats¨ achlich immer, und Satz 8.3 ist daher ein Spezialfall des Hauptsatzes u ¨ ber lineare Optimierung. Um die Frage zu beantworten, wann ein gegebenes Programm eine zul¨assige L¨osung besitzt, untersuchen wir ganz allgemein Systeme von Gleichungen und Ungleichungen. Die folgenden drei Aussagen sind sogenannte Alternativs¨atze“. Das ” entweder–oder“ ist stets ausschließend gemeint. Die Bedeutung liegt darin, dass ”
15.2
299
dualit¨ at
wir eine positive Bedingung daf¨ ur aufstellen, dass ein gewisses System nicht l¨osbar ¨ ist. F¨ ur die folgenden Uberlegungen bezeichnen a1 , . . . , an die Spaltenvektoren T T der Matrix A, a1 , . . . , am die Zeilenvektoren, r(A) den Rang der Matrix, und &b1 , . . . , bk ' den von den Vektoren b1 , . . . , bk aufgespannten Unterraum. Satz 15.3.
Genau eine der beiden M¨ oglichkeiten trifft zu:
(A)
Ax = b ist l¨ osbar
(B)
AT y = 0 , bT y = −1 ist l¨ osbar.
Beweis. W¨ aren (A) und (B) zugleich l¨ osbar mit x, y, dann h¨atten wir 0 = xT AT y = (Ax)T y = bT y = −1, was nicht geht. Angenommen, (A) ist nicht l¨ osbar. Dann gilt also b ∈ / &a1 , . . . , an '. Ist r(A) der Rang von A, so haben wir r(A | b) = r(A) + 1. F¨ ur die Matrix A b A′ = 0 T −1 gilt demnach r(A′ ) = r(A) + 1 = r(A | b), also ist die letzte Zeile (0 T | − 1) linear ′ abh¨ angig von den ersten m m Zeilen von A . Es existieren daher y1 , . . . , ym mit m T T und i=1 yi bi = −1, d. h. y = (y1 , . . . , ym ) ist L¨osung von (B). i=1 yi ai = 0 Geometrisch ist 15.3 unmittelbar klar. Liegt b nicht im Unterraum U = &a1 , . . . , an ', so existiert ein Vektor y, der auf U senkrecht steht und mit b einen stumpfen Winkel bildet.
y a3 a2
a4 a1
b Der folgende Satz (oft Lemma von Farkas genannt) ist das grundlegende Ergebnis, aus dem sich alle weiteren ableiten. Satz 15.4. (A) (B)
Genau eine der beiden M¨ oglichkeiten trifft zu: Ax = b, x ≥ 0
T
T
A y ≥ 0, b y < 0
ist l¨ osbar ist l¨ osbar .
300
15
lineare optimierung
Beweis. W¨ are x eine L¨ osung von (A) und y eine von (B), so h¨atten wir den Widerspruch 0 ≤ xT AT y = (Ax)T y = bT y < 0. Angenommen, (A) ist nicht l¨ osbar. Falls Ax = b schon nicht l¨ osbar ist, so w¨aren wir fertig mit dem vorangegangenen Satz 15.3. Wir nehmen also an, dass Ax = b l¨osbar ist, aber keine nichtnegative L¨ osung besitzt. Wir f¨ uhren nun Induktion nach n. F¨ ur n = 1 haben wir x1 a1 = b, und wir nehmen an, dass x1 < 0 L¨osung ist. Mit y = −b erhalten T T wir a1 y = − bx1 b > 0 und bT y = −bT b < 0, also ist y L¨osung von (B). Die Behauptung sei richtig f¨ ur alle k ≤ n − 1. Falls (A) keine nichtnegative L¨osung i hat, so auch n−1 x a = b nicht. Nach Induktionsvoraussetzung existiert also v i=1 i T iT mit a v ≥ 0 (i = 1, . . . , n − 1), bT v < 0. Ist auch an v ≥ 0, so sind wir fertig. T Wir nehmen also an v < 0 an, und setzen T
Ist nun
T
ai = (ai v)an − (an v)ai T b = (bT v)an − (an v)b.
(∗) n−1 i=1
(i = 1, . . . , n − 1)
xi ai = b mit xi ≥ 0 (i = 1, . . . , n − 1) l¨osbar, so gilt −
1 anT v
(
n−1 i=1
iT
T
n
xi (a v) − b v)a +
n−1
xi ai = b,
i=1
wobei alle Koeffizienten der ai (i = 1, . . . , n) nichtnegativ im Widerspruch n−1 sind, zur Annahme, dass (A) nicht l¨ osbar ist. Also ist i=1 xi ai = b, xi ≥ 0 (i = 1, . . . , n − 1) nicht l¨ osbar, und es existiert nach Induktionsannahme w ∈ Rm mit T T ai w ≥ 0 (i = 1, . . . , n − 1), b w < 0. Dann ist aber T
T
y = (an w)v − (an v)w eine L¨ osung von (B), denn es gilt nach (∗) T
T
T
T
T
T
ai y = (an w)(ai v) − (an v)(ai w) = ai w ≥ 0 T
an y = 0
(i = 1, . . . , n − 1)
und T
T
T
bT y = (an w)(bT v) − (an v)(bT w) = b w < 0. Der n¨ achste Satz u osungen von Systemen von Ungleichungen ¨ ber nichtnegative L¨ ist der entscheidende Schritt zum Beweis des Hauptsatzes im n¨achsten Abschnitt. Satz 15.5.
Genau eine der beiden M¨ oglichkeiten trifft zu:
(A) (B)
T
Ax ≤ b, x ≥ 0
T
ist l¨ osbar ,
A y ≥ 0 , y ≥ 0, b y < 0
ist l¨ osbar .
15.2
dualit¨ at
301
Beweis. Sind x, y L¨ osungen von (A) bzw. (B), so haben wir 0 ≤ xT AT y = T T (Ax) y ≤ b y < 0, was nicht geht. Angenommen, (A) hat keine L¨osung. Dies ist offenbar gleichbedeutend damit, dass Ax + z = b, x ≥ 0 , z ≥ 0 , keine L¨osung besitzt. Mit B = (A | Em ), Em = Einheitsmatrix, heißt dies, dass Bw = b, w ≥ 0 , keine L¨ osung hat. Aufgrund von 15.4 existiert demnach y ∈ Rm mit AT y ≥ 0 , Em y = y ≥ 0 und bT y < 0. Beispiel. Betrachten wir das folgende Transportproblem. Gegeben sind m Fabriken F1 , . . . , Fm , in denen eine bestimmte Ware hergestellt wird, und n M¨arkte M1 , . . . , Mn , in denen die Ware ben¨ otigt wird. Im Jahr werden pi Einheiten in der Fabrik Fi produziert, und qj Einheiten im Markt Mj ben¨otigt. Wir wollen einen Frachtplan (xij ) aufstellen, der xij Einheiten von Fi nach Mj transportiert, so dass alle M¨ arkte befriedigt werden. Wann ist dies m¨oglich? Unsere Ungleichungen sind n
j=1 m i=1
xij ≤ pi
(i = 1, . . . , m)
xij ≥ qj
(j = 1, . . . , n)
xij ≥ 0 .
m n Eine notwendige Bedingung ist offenbar i=1 pi ≥ j=1 qj . Mit Satz 15.5 k¨onnen wir sofort zeigen, dass die Bedingung umgekehrt auch hinreicht. Zuerst m¨ ussen wir unsere Ungleichungen in die Form Ax ≤ b, x ≥ 0 , bringen: n j=1
xij ≤ pi ,
m i=1
−xij ≤ −qj .
Schreiben wir (xij ) zeilenweise als x = (x11 , . . . , x1n , x21 , . . . , x2n , . . . , xm1 , . . . , xmn ), so ist A eine ((m + n) × mn)-Matrix, b ein (m + n)-Vektor mit Ax ≤ b: ⎛ ⎞ ⎞⎫ ⎛ p1 1 ... 1 ⎪ ⎪ ⎜ p2 ⎟ ⎟⎪ ⎜ 1 ... 1 0 ⎜ ⎟ ⎟⎬ ⎜ ⎜ .. ⎟ ⎟ ⎜ m .. ⎜ ⎟ ⎟⎪ ⎜ . . 0 ⎟ ⎟⎪ ⎜ ⎭ , b=⎜ ⎜ pm ⎟ . ⎟⎪ 1 . . . 1 A=⎜ ⎜ ⎟ ⎟⎫ ⎜ ⎟⎬ ⎜ −q1 ⎟ ⎜ −1 −1 −1 ⎟ ⎟ ⎜ ⎜ ⎟ n ⎜ . ⎟ ⎜ .. . ⎠ ⎝ ⎝ . . ⎠ ⎭ −qn −1 . . . −1 . . . . . . −1 Ist nun Ax ≤ b, x ≥ 0 nicht l¨ osbar, so existiert nach 15.5 y ∈ Rm+n , y = ′ ′ T (y1 , . . . , ym , y1 , . . . , yn ) mit A y ≥ 0 , y ≥ 0 , bT y < 0. Dies bedeutet yi − yj′ ≥ 0
und
m i=1
pi yi −
f¨ ur alle i, j n j=1
qj yj′ < 0 .
302
15
lineare optimierung
Setzen wir y' = min yi , y'′ = max yj′ , so haben wir y' ≥ y'′ ≥ 0, und somit y'(
also tats¨ achlich
15.3
m
i=1
m
i=1
pi −
n
qj )
j=1
≤ y' ≤
pi