Diskrete Strukturen Skript zur Vorlesung

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