Diskrete Mathematik für Informatiker

Werbung
Diskrete Mathematik für Informatiker
Skript zur Vorlesung von Hans Mielke
basierend auf dem Skript von Klaus Kriegel
Sommer 2000
(Stand: 10.7.2000)
Inhaltsverzeichnis
0 Grundlagen
ii
0.1
Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ii
0.2
Mengen, Relationen, Abbildungen . . . . . . . . . . . . . . . . . . .
ii
1 Algebra
1
1.1
Kongruenzen und Kryptographie . . . . . . . . . . . . . . . . . . . .
1
1.2
Gruppen und Permutationen . . . . . . . . . . . . . . . . . . . . . .
6
1.3
Ringe und Körper . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
1.4
Polynome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
1.5
Rückblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2 Kombinatorik
23
2.1
Das Pascalsche Dreieck . . . . . . . . . . . . . . . . . . . . . . . . . .
23
2.2
Partitionen und erzeugende Funktionen . . . . . . . . . . . . . . . .
28
2.3
Das Schubfachprinzip und Inklusion–Exklusion . . . . . . . . . . . .
34
2.4
Rückblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
3 Graphentheorie
38
3.1
Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
3.2
Bäume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
3.3
Matchings in bipartiten Graphen . . . . . . . . . . . . . . . . . . . .
45
3.4
Datenkompression . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
ii
Diskrete Mathe für Informatiker, Sommer 2000
0
Grundlagen
0.1
Literatur
In unserer Bibliothek findet man Bücher über Diskrete Mathematik in den Rubriken
B.3.0 und XG.2.0. Es folgt eine kleine Auswahl, ein paar Bücher stelle ich in den
Handapparat.
Elementare Bücher:
G.Berendt, Mathematik für Informatiker. BI 1994
K.Rosen, Discrete Mathematics and its Applications. McGraw-Hill 1991
J.K.Truss, Discrete Mathematics for Computer Scientists. Addison-Wesley 1991
Weitere Bücher:
M.Aigner, Diskrete Mathematik. Vieweg 1993
N.Biggs, Discrete Mathematics. Clarendon Press, Oxford 1989
D.E.Knuth, The Art of Computer Programming, Band 1: Fundamental Algorithms. Addison-Wesley 1973
Zum Thema Kryptographie ist ganz besonders zu empfehlen:
A.Beutelspacher, Geheimsprachen. Beck, München 1997
0.2
Mengen, Relationen, Abbildungen
Mengen, Abbildungen und Relationen sind wichtige Grundbegriffe in der Mathematik. Jeder dieser Begriffe lässt sich durch jeden anderen definieren. In der Regel
geht man von Mengen aus und definiert damit Abbildungen und Relationen, weil
Menge“ das elementarste der drei Konzepte ist. Man könnte aber genausogut mit
”
einem der anderen beiden Begriffe beginnen.
Mengen
Jeder hat eine Vorstellung von einer Menge“. Beispiel: Die Menge der Studieren”
den an der FU, die Teilmenge der Informatikstudentinnen. Die Vorstellung präzise
zu machen ist schwierig, weil unvorhergesehenes passieren kann, wenn man naiv“
”
mit Mengen umgeht. Beispiel: Der Barbier von Sevilla (siehe die Aufgaben). Die
Schwierigkeiten spielen in dieser Vorlesung keine Rolle, man sollte aber davon wissen.
Wir schreiben a ∈ A, wenn a ein Element der Menge A ist. Wir schreiben A ⊆ B,
wenn A eine Teilmenge von B ist, d.h. wenn jedes Element aus A auch in B ist.
Wichtige Regeln beim Umgang mit Mengen sind:
• Man kann eine Menge durch Aufzählen der Elemente oder durch eine Regel
definieren. Beispiel: A = {1, 2, 3} = {z ∈ ZZ : 0 < z < 4}.
• Eine Menge enthält jedes Element nur einmal: a ∈ A oder a 6∈ A.
• Eine Menge ist durch ihre Elemente bestimmt, d.h. zwei Mengen A und B
sind genau dann gleich, wenn sie die gleichen Elemente haben.
• Es gibt also genau eine leere Menge ∅ = { }, die keine Elemente enthält.
• Zwei Mengen A und B sind genau dann gleich, wenn A ⊆ B und B ⊆ A.
Diese Regel ist wichtig: So zeigt man Mengengleichheit.
Grundlagen
iii
• Die Anzahl der Elemente in einer Menge A, die Mächtigkeit von A, wird mit
|A| bezeichnet (manchmal auch #A).
• A ∪ B = {x : x ∈ A oder x ∈ B} ist die Vereinigungsmenge von A und B,
A ∩ B = {x : x ∈ A und x ∈ B} ist die Schnittmenge von A und B,
A × B = {(a, b) : a ∈ A, b ∈ B} ist das kartesische Produkt von A und B.
• Die Potenzmenge P(A) einer Menge A ist die Menge aller Teilmengen von A.
Beispiel: P({1, 2}) = {∅, {1}, {2}, {1, 2}}.
Relationen
Eine (binäre) Relation ist eine Beziehung zwischen Dingen. Beispiel: Zwei Menschen können verwandt sein oder nicht. Ein Auto kann länger sein als ein anderes
oder nicht. Zwei Mengen können identisch sein oder nicht. Um eine Relation auszudrücken, wählen wir ein Zeichen, z.B. ρ, und schreiben a ρ b, wenn a zu b in Relation
steht, und a ρ| b, wenn a nicht zu b in Relation steht.
Ausgehend von Mengen kann man Relationen so definieren:
0.2.1 Definition Seien A und B Mengen. Dann ist eine binäre Relation ρ eine
Teilmenge des kartesischen Produkts der beiden Mengen, ρ ⊆ A × B.
Die andere Richtung ist noch leichter. Betrachtet man Relationen als Grundbegriff,
so kann man Mengen einfach durch die Ist-Element-von“-Relation definieren: ∈ ist
”
eine binäre Relation! In diesem Sinn ist Menge“ elementarer als Relation“.
”
”
Es gibt zwei besonders häufige Typen von Relationen: Ordnungsrelationen und
Äquivalenzrelationen. Äquivalenzrelationen sind deshalb so wichtig, weil man oft
nur an bestimmten Eigenschaften der untersuchten Objekte interessiert ist. Unterscheiden sich zwei Objekte nicht (bezüglich der Eigenschaften, die man gerade
untersucht), so sagt man, sie sind äquivalent.
0.2.2 Definition (Äquivalenzrelation) Eine Relation ρ ⊆ A × A heißt Äquivalenzrelation, wenn sie die folgenden drei Eigenschaften erfüllt:
• a ρ a für alle a ∈ A (ρ ist reflexiv)
• Wenn a ρ b, dann auch b ρ a (ρ ist symmetrisch)
• Wenn a ρ b und b ρ c ist, dann ist auch a ρ c (ρ ist transitiv)
Eine Äquivalenzrelation teilt die Menge A, auf der sie definiert ist, in Teilmengen
zueinander äquivalenter Elemente ein, die Äquivalenzklassen. Zwei verschiedene
Äquivalenzklassen sind disjunkt (d.h. die Schnittmenge ist leer), und alle Äquivalenzklassen zusammen überdecken die Grundmenge.
Abbildungen
Eine Abbildung oder Funktion stellen wir uns als eine black box“ vor, in die
”
wir etwas hineinstecken und dafür etwas neues herausbekommen. Beispiel: x 7→ x2
ergibt das Quadrat einer Zahl, A 7→ |A| die Mächtigkeit einer Menge und x 7→
|x| den Betrag einer Zahl. Bei einer Funktion ist es wichtig zu wissen, was man
hineinstecken darf und aus welchem Bereich das Ergebnis ist. Wir schreiben
f :X→Y
x 7→ f (x)
iv
Diskrete Mathe für Informatiker, Sommer 2000
um anzuzeigen, dass die Funktion f Eingaben aus√der Menge X akzeptiert √
und die
Ausgabe f (x) ∈ Y ist. Beispiel: f : ZZ → IR, n 7→ n und g : IR → IR, x 7→ x sind
verschiedene Funktionen.
Abbildungen kann man auch nacheinander anwenden: Sind f : X → Y und g :
Y 0 → Z zwei Funktionen und Y ⊆ Y 0 , so kann man die Funktionswerte f (x) als
Eingaben für g benutzen. g ◦ f : X → Z heißt die Hintereinanderausführung von f
und g, und g ◦ f (x) = g(f (x)).
Wichtige Eigenschaften: surjektiv, injektiv, bijektiv.
Aufgaben
1. Ist A eine endliche Menge, |A| = n, wie groß ist dann |P(A)|?
2. Der (einzige) Barbier in Sevilla rasiert alle Männer der Stadt, die sich nicht
selbst rasieren. Es scheint nichts dagegen zu sprechen die Menge M aller
Männer, die der Barbier rasiert, zu bilden:
M = {x : x ist männlicher Einwohner von Sevilla, den der Barbier rasiert}.
Frage: Ist der Barbier ein Element von M ?
3. Wie könnte man Mengen definieren, wenn man Funktion“ als Grundbegriff
”
voraussetzt?
Zahlen
IN = {1, 2, 3, . . .}, ZZ = {. . . , −3, −2, −1, 0, 1, 2, 3, . . .}, Q
I = {z/n : z ∈ ZZ, n ∈ IN},
IR, Primzahlen, Teilbarkeit, ggT, kgV. Binärsystem, Oktalsystem, . . .
0.2.3 Satz (Eindeutige Primfaktorzerlegung) Jede Zahl z ∈ ZZ lässt sich als
Produkt von Primfaktoren schreiben, und diese Zerlegung ist bis auf die Reihenfolge
der Faktoren eindeutig.
Griechische Buchstaben: α
λ
π
ρ
σ
ϕ
Alpha
Lambda
Pi
Rho
Sigma
Phi
Algebra: Kongruenzen und Kryptographie
1
1
Algebra
In der Algebra geht es um das Rechnen mit Zahlen und Verallgemeinerungen von
Zahlen.
1.1
Kongruenzen und Kryptographie
Kongruenzen
Es ist 19 Uhr. Wieviel Uhr ist es 9 Stunden später? Im täglichen Leben rechnen
wir ständig zyklisch“, besonders offensichtlich in der Zeitrechnung. In Mythen alter
”
Völker gibt es die Vorstellung, dass die Zeit zyklisch ist. Unsere Vorstellung ist eher
die einer linear voranschreitenden Zeit (zumindest zwischen einem Urknall und dem
nächsten).
Eine der Methoden, einen Zeitpunkt anzugeben, ist die Angabe der Millisekunden, die seit einem bestimmten Referenz-Zeitpunkt vergangen sind; z.B. seit dem
1.1.1970 00:00:00 GMT (so in java.util.Date). Zu welchen Millisekundenwerten gehört die Uhrzeit 13:21:00?
Wir untersuchen nun das Verhältnis zwischen zyklischem und nicht zyklischem
Zählen. Wir erinnern uns an die folgende Tatsache:
1.1.1 Satz (Teilen mit Rest) Seien a ∈ ZZ, m ∈ IN. Dann existieren eindeutig
bestimmte ganze Zahlen q und r mit 0 ≤ r < m, so dass a = qm + r.
Das ist wirklich nichts besonderes: 20 durch 7 ist 2, Rest 6. Oder: 20 = 2 · 7 + 6.
1.1.2 Definition Sind a, q, r ∈ ZZ, m ∈ IN mit 0 ≤ r < m und a = qm + r, dann
wird r der Rest von a modulo m genannt und mit a mod m bezeichnet.
In Pascal und Modula-2 gibt es die reservierten Worte DIV und MOD, in C/C++ und Java dürfen
auch ganzzahlige Variable mit / dividiert werden, den Rest erhält man mit %. Bei der Benutzung
ist zu beachten, dass nicht jede Sprache, nicht jeder Compiler garantiert, dass der Rest zwischen
0 und m − 1 liegt. Beispiel: −7%3 kann −1 oder 2 sein.
1.1.3 Definition Zwei ganze Zahlen a und b, die den gleichen Rest bezüglich m
haben, werden kongruent modulo m genannt. Man schreibt a ≡ b (mod m).
1.1.4 Lemma Für a, b ∈ ZZ gilt genau dann a ≡ b (mod m), wenn m|a − b.
Beweis. Wir schreiben a = q1 m + r1 und b = q2 m + r2 mit 0 ≤ r1 , r2 < m. Das
Lemma sagt nun: r1 = r2 ⇐⇒ m|(q1 − q2 )m + (r1 − r2 ). Die Richtung ⇒“ ist
”
völlig klar, die andere Richtung gilt, weil |r1 − r2 | < m ist (Warum?).
Zwei Tage, deren Nummern bei Division durch 7 den gleichen Rest lassen, fallen auf
den gleichen Wochentag, sie verhalten sich also in gewisser Hinsicht gleich. Genauer
gesagt:
1.1.5 Satz Die Relation ≡ (mod m) ist eine Äquivalenzrelation und die Zahlen
{0, 1, . . . , m − 1} bilden ein Repräsentantensystem für die Äquivalenzklassen, die
man auch Restklassen nennt. Wir schreiben [r] für {i · m + r : i ∈ ZZ}. Außerdem
gilt: Sind a ≡ a0 und b ≡ b0 , dann sind auch −a ≡ −a0 , a + b ≡ a0 + b0 sowie
a · b ≡ a0 · b0 (mod m).
2
Diskrete Mathe für Informatiker, Sommer 2000
Beweis. Drei Aussagen sind nachzuprüfen:
1. ≡ ist Äquivalenzrelation:
(a) Reflexivität: a ≡ a (mod m).
(b) Symmetrie: Wenn a ≡ b (mod m), dann b ≡ a (mod m).
(c) Transitivität: Wenn a ≡ b (mod m) und b ≡ c (mod m), dann a ≡ c
(mod m).
2. {0, 1, . . . , m − 1} ist Repräsentantensystem, d.h. jede andere Zahl ist zu einer
Zahl aus {0, 1, . . . , m − 1} kongruent, aber keine zwei davon untereinander.
3. Sind a ≡ a0 und b ≡ b0 , dann sind auch −a ≡ −a0 , a + b ≡ a0 + b0 sowie
a · b ≡ a0 · b0 (mod m). Übung!
1.1.6 Lemma (Elferprobe) Eine Zahl a ∈ ZZ ist genau dann durch 11 teilbar,
wenn die alternierende Quersumme (im Dezimalsystem) durch 11 teilbar ist.
Beweis.
P Seien a0 , a1 , . . . , an die Ziffern in der dezimalen Repräsentation von a, also
a = ai 10i . Es gilt
X
X
a≡
ai 10i ≡
ai (−1)i (mod 11)
also 11|a ⇐⇒
P
ai (−1)i ≡ 0 (mod 11).
1.1.7 Lemma (Euklidischer1 Algorithmus2 ) Seien a, b ∈ IN mit a > b und sei
r = a mod b. Ist r = 0, dann gilt b|a und ggT(a, b) = b. Ist r 6= 0, dann gilt
ggT(a, b) = ggT(b, r). Mit anderen Worten: Der folgende Algorithmus berechnet
den größten gemeinsamen Teiler.
Input: a, b ∈ IN
Beispiel: ggT(252, 198) = 18.
Output: ggT(a, b)
while( b != 0 ) {
252 = 1 · 198 + 54
r = a % b;
198 = 3 · 54 + 36
a = b;
54 = 1 · 36 + 18
b = r;
}
36 = 2 · 18.
return a;
1.1.8 Satz Sind a, b ∈ IN, dann existieren s, t ∈ ZZ mit ggT(a, b) = sa + tb.
An Stelle eines Beweises zeigen wir am obigen Beispiel, wie man die Zahlen s und
t durch Umkehrung“ des Euklidischen Algorithmus berechnen kann:
”
18 = 54 −1 · 36
36 = 198−3 · 54
54 = 252−1 · 198
1 Eukleides
von Alexandria (ca. 300 v.Chr.) ist hauptsächlich für seine Bücher über Geometrie
bekannt, in denen erstmalig ein Axiomensystem eingeführt wird.
2 Abu ’Abdallah Muhammad ibn Musa al-Huwarismi al-Magusi, gewöhnlich Alchwarizmi genannt (ca. 780–850) war der Bibliothekar des Kalifen Almamun. Von seinem Namen ist das Wort
Algorithmus abgeleitet.
Algebra: Kongruenzen und Kryptographie
3
Durch schrittweise Substitution erhalten wir:
18 = 54 − 1 · 36 = 54 − 1 · (198 − 3 · 54) = 4 · 54 − 1 · 198 =
= 4 · (252 − 1 · 198) − 1 · 198 = 4 · 252 − 5 · 198
Der korrekte“ Beweis geht genauso, ist nur umständlicher aufzuschreiben.
”
1.1.9 Satz Sind m und a zwei positive, teilerfremde Zahlen (d.h. ggT(a, m) = 1),
dann gibt es genau ein b ∈ {0, 1, . . . , m − 1}, so dass ab ≡ 1 (mod m).
Beweis. Nach Satz 1.1.8 existieren s, t ∈ ZZ mit sa + tm = 1. Setzt man b = s
mod m, so erhält man modulo m: ab ≡ ba + 0 ≡ sa + tm ≡ 1.
Zur Eindeutigkeit: Sei ab ≡ ac (mod m) und 0 ≤ b ≤ c ≤ m−1. Dann ist (c−b)a ≡ 0
(mod m), und da m und a teilerfremd sind, muss m ein Teiler von c − b sein. Wegen
0 ≤ c − b < m folgt dann c = b.
1.1.10 Folgerung Sei p eine Primzahl und a ∈ {1, 2, . . . , p − 1}, dann hat a ein
eindeutig bestimmtes Inverses modulo p, d.h. es gibt genau ein b ∈ {1, 2, . . . , p − 1},
so dass ab ≡ 1 (mod p).
1.1.11 Satz (Chinesischer Restsatz) Seien m1 , m2 , . . . , mn paarweise teilerfremde, positive Zahlen und m = m1 · m2 · · · mn . Dann gibt es für beliebig gewählte
a1 , . . . , an genau eine Zahl x mit 0 ≤ x < m, die alle Kongruenzen x ≡ ai (mod mi )
simultan erfüllt:
x ≡ a1 (mod m1 )
x ≡ a2 (mod m2 )
..
.
x ≡ an (mod mn )
Beweis. Definiert man Mk = m/mk für k = 1, 2, . . . , n, dann ist ggT(Mk , mk ) = 1,
und folglich gibt es Zahlen yk mit Mk yk ≡ 1 (mod mk ). Wir setzen x = a1 M1 y1 +
a2 M2 y2 + . . . + an Mn yn mod m und überprüfen, ob es die obigen Kongruenzen
erfüllt. Zuerst stellen wir fest, dass für k 6= j stets mj ein Teiler von Mk ist, d.h.
Mk ≡ 0 (mod mj ). Daraus folgt für alle k
x ≡ 0 + . . . + 0 + ak Mk yk + 0 + . . . + 0 ≡ ak · 1 ≡ ak
(mod mk )
Zum Beweis der Eindeutigkeit nimmt man an, dass es zwei Lösungen 0 ≤ x ≤ y < m
gibt. Dann sind mit Lemma 1.1.4 alle mk Teiler von y − x. Nach Voraussetzung
(paarweise teilerfremd) ist auch m Teiler von y − x, und folglich ist y = x.
Der Chinesiche Restsatz wird z.B. für exakte Arithmetik angewendet: In vielen Algorithmen ist
es erforderlich, auch mit sehr großen Zahlen (die weit über den Integerbereich der Rechner liegen)
exakt zu rechnen (Fließkomma-Arithmetik zu ungenau). Ein Ausweg besteht darin, große Zahlen
durch mehrere Integerzahlen darzustellen. Die Multiplikation zweier aus n Integers zusammengesetzter Zahlen erfordert dann quadratischen Aufwand. Bei Nutzung des Chinesischen Restsatzes
ist der Aufwand für eine einzelne Multiplikation nur linear (nur die Reste müssen multipiziert
werden). Allerdings ist es aufwändig, aus der Resterepräsentation das Ergebnis explizit zu berechnen. So kommt diese Methode vor allem dann zur Anwendung, wenn ein Algorithmus viele
Zwischenergebnisse produziert, deren explizite Darstellung nicht benötigt wird.
1.1.12 Satz (Kleiner Satz von Fermat) Ist p eine Primzahl und a eine Zahl
mit ggT(a, p) = 1, dann ist ap−1 ≡ 1 (mod p).
4
Diskrete Mathe für Informatiker, Sommer 2000
Beweis. Nicht schwer mit unseren jetzigen Kenntnissen, aber trickreich: Setze u =
(1 · a) · (2 · a) · (3 · a) · · · ((p − 1) · a) mod p. Einerseits wissen wir, dass u zum Produkt
1 · 2 · 3 · · · (p − 1) kongruent sein muss, weil die Zahlen k · a alle verschiedenen Reste
modulo p annehmen (siehe auch die Aufgaben). Andererseits erhalten wir durch
Umsortieren u ≡ 1 · 2 · 3 · · · (p − 1) · ap−1 (mod p), also u ≡ u · ap−1 (mod p). Nach
Folgerung 1.1.10 gibt es eine Zahl v mit v · u ≡ 1 (mod p). Nun ist
1 ≡ v · u ≡ v · u · ap−1 ≡ ap−1
(mod p)
Aufgaben
1. Zu welchen Millisekundenwerten gehört die Uhrzeit 13:21:00 (ohne Berücksichtigung von Schaltsekunden)?
2. Bestimme ggT(462, 2793) und ggT(463, 121) mit dem Euklidischen Algorithmus. Warum ist es beim Euklidischen Algorithmus egal, ob a > b oder a ≤ b
ist?
3. Die Europäische Zentralbank hat beschlossen, dass es nur 190- und 161-Euro
Scheine und keine Münzen geben wird. Wie wird man dann (ohne Kreditkarte)
eine Tafel Schokolade zu einem Euro bezahlen? Wie würde man die Schokolade
bezahlen, wenn sich die EZB doch noch für Scheine zu 190 und 209 Euro
entscheidet?
4. Die Europäische Zentralbank hat beschlossen, dass es nur 3- und 5-Euro
Münzen geben wird. Kann man mit diesen Münzen jeden vollen Eurobetrag
bezahlen? Warum hat sich die EZB nicht für Münzen zu 6 und 15 Euro entschieden?
5. Zeige: Für a, b ∈ ZZ ist ggT(a, b) · kgV(a, b) = a · b.
6. Überlege dir, wie exakte Arithmetik mithilfe des Chinesischen Restsatzes funktioniert.
7. Gilt die Aussage aus Satz 1.1.9 auch, wenn a oder m negativ ist?
8. Formuliere und beweise die Neunerprobe!
9. Finde eine Zahl x, die das folgende System von Kongruenzen simultan erfüllt:
x≡0
x≡1
x≡0
(mod 2)
(mod 3)
(mod 5)
In welchem Sinne ist die Lösung eindeutig? Hinweis: Benutze für die Eindeu”
tigkeit“ den Chinesischen Restsatz.
Kryptographie
Nachrichten so zu verschlüsseln, dass sie kein Unbefugter versteht, ist nicht nur der
Traum von kleinen Jungs und von Spionen. Zum spannenden Thema Kryptographie empfehle ich das Buch Geheimsprachen von Albrecht Beutelspacher. Unser
Modell ist das folgende: Eine Nachricht besteht aus einer Zahl m, die der Sender X
dem Empfänger Y so mitteilen will, dass kein Lauscher sie versteht. Dazu wendet
X eine Funktion f auf m an und sendet c = f (m). Y kennt eine Funktion g mit der
Eigenschaft g(c) = g(f (m)) = m und kann also die Nachricht lesen.
Algebra: Kongruenzen und Kryptographie
5
Eine der Schwierigkeiten von verschlüsselter Kommunikation ist die Tatsache, dass
man vor dem Senden der Nachricht eine Verschlüsselungsmethode (d.h. Funktionen
f und g) verabreden muss, damit die Empfängerin die Nachricht versteht. Um
zu vermeiden, einen Schlüssel sicher übergeben zu müssen, haben sich Diffie und
Hellman 1976 die Frage gestellt, ob es wohl möglich ist, dass sich zwei Personen
öffentlich unterhalten und hinterher ein Geheimnis teilen, das niemand sonst kennt,
auch nicht, wenn er das Gespräch mitgehört hat. Ich staune immer wieder über den
Mut, eine so absurde Frage ernsthaft zu untersuchen. Das spektakuläre Ergebnis ist:
Ja, es ist möglich. Und man kann das gemeinsame Geheimnis dazu nutzen, geheime
Nachrichten auszutauschen.
Im folgenden sind die geheimen Zahlen fett gesetzt. Der öffentliche Schlüsselaustausch geht so: X
und Y einigen sich auf eine Primzahl p und eine natürliche Zahl n < p. X wählt geheim a und teilt
Y (und jedem, der es wissen will) die Zahl b = na mod p mit. Y wählt geheim g und veröffentlicht
h = ng mod p. Das Ergebnis ist: X und Y kennen beide die Zahl s = na·g mod p, aber sonst
kennt niemand s!
Wieso kennt niemand sonst s? Die Zahlen p, n, b und h sind öffentlich, man muss doch nur die
Gleichungen b = na mod p und h = ng mod p nach a und g auflösen, dann kennt man s = na·g
mod p. Das Auflösen dieser Gleichungen ist aber aufwändig, zu aufwändig, um es in vertretbarer
Zeit zu bewerkstelligen. Was nützt es, wenn wir den Schlüssel in 100 Jahren kennen, jetzt wollen
wir ihn wissen! Man sagt, Potenzieren modulo p ist eine Einwegfunktion. Nochmal: s ist natürlich
eindeutig bestimmt, und es ist theoretisch ganz einfach, s zu berechnen. Nur in der Praxis gibt es
ein Problem. Vergleiche dazu Aufgabe 3.
Das gemeinsame Geheimnis s kann auch zum Austausch geheimer Botschaften benutzt werden.
Will X die Nachricht m mitteilen, so sendet er c = m · s mod p. Wie entschlüsselt Y?
1976 überlegten sich Rivest, Shamir und Adleman, dass die Verschlüsselungsfunktion f eigentlich nicht geheim zu sein braucht; essenziell ist natürlich, dass kein
unbefugter die Entschlüsselungsfunktion g kennt. Lange ging man davon aus, dass
deshalb auch f geheim sein muss. Die RSA-Codes von Rivest, Shamir und Adleman sind so genannte Public-Key Verfahren. Eine Person Y wählt sich zwei
Funktionen f und g mit der Eigenschaft f (g(x)) = x und g(f (x)) = x für alle x.
Y macht f öffentlich bekannt. Jeder kann nun an Y geheime Nachrichten senden,
die nur Y versteht. Die Sicherheit steht und fällt damit, dass es schwierig ist, die
Umkehrfunktion g von f zu bestimmen, dass f eine Einwegfunktion ist. Es gibt
inzwischen verschiedene Varianten von Public Key Systemen, wir sehen uns den
original RSA Algorithmus einmal genau an.
Y wählt sich zwei verschiedene große Primzahlen p und q und bildet ihr Produkt n =
p·q. Die Primzahlen müssen so gewählt sein, dass ihr Produkt n nicht faktorisierbar
ist. Als notwendige Bedingung wird heute empfohlen, p und q jeweils als 512-Bit
Zahl zu wählen. (Der Faktorisierungsweltrekord liegt bei 512 Bit, d.h. bei Zahlen,
die aus zwei Primfaktoren von je 256 Bit zusammengesetzt sind.) Weiter wählt Y
eine natürliche Zahl e, die teilerfremd zu j = (p − 1) · (q − 1) ist und berechnet – z.B.
mit dem Euklidischen Algorithmus – eine natürliche Zahl d mit d · e ≡ 1 (mod j),
d.h. de = 1 + k(p − 1)(q − 1) für ein k ∈ ZZ. Nun macht Y die Zahl e bekannt und
merkt sich d und n. Verschlüsseln geht so: c = f (m) = me mod n. Entschlüsseln
geht so: g(c) = cd mod n.
Funktioniert das? Behauptung: cd ≡ m (mod n). Mit dem kleinen Fermat (Satz
1.1.12) folgt mp−1 ≡ 1 (mod p) und mq−1 ≡ 1 (mod q). Daraus ergibt sich:
cd ≡ (me )d ≡ mde ≡ m · (mp−1 )k(q−1) ≡ m · 1 ≡ m (mod p)
cd ≡ (me )d ≡ mde ≡ m · (mq−1 )k(p−1) ≡ m · 1 ≡ m (mod q)
Die Behauptung folgt nun aus dem Chinesischen Restsatz und der Tatsache dass
ggT(p, q) = 1.
Die Sicherheit des Verfahrens beruht darauf, dass bisher keine effizienten (Poly-
6
Diskrete Mathe für Informatiker, Sommer 2000
nomialzeit) Algorithmen für die Primzahlzerlegung bekannt sind, jedenfalls nicht
öffentlich – was Geheimdienste können, weiß unsereins ja nicht. Aber es wird eifrig an so genannten Quantencomputern geforscht, für die die Faktorisierung großer
Zahlen ein leichtes sein wird. Sobald es die gibt, ist RSA nicht mehr sicher.
Aufgaben
1. Zeige, dass die Zahlen a, 2a, 3a,. . . , (p − 1)a alle verschiedene Reste modulo
p haben, wenn p eine Primzahl und a 6≡ 0 (mod p) ist.
2. Wie entschlüsselt Y, wenn X mit c = m · s mod p verschlüsselt?
3. Angenommen, ein Computer mit 1 GHz Taktfrequenz läuft seit 10 Milliarden
Jahren – so etwa wird das Alter des Universums geschätzt. Wie viele Taktzyklen sind seitdem abgelaufen? Wie viele Ziffern benötigt diese Zahl in binärer
Schreibweise? 512-Bit Zahlen sind also wirklich groß!
4. Es gibt ein beweisbar sicheres Verschlüsselungsverfahren (benutzt beim Ro”
ten Telefon“): Nimm an, dass sich X und Y treffen und eine lange zufällige Folge (z1 , z2 , . . .) und eine Zahl p > 1 vereinbaren. Zu einem späteren Zeitpunkt
kann X dann die Nachricht (m1 , m2 , . . . , mn ) verschlüsseln durch (m1 + z1
mod p, . . . , mn + zn mod p). Es ist klar, dass Y die Nachricht lesen kann.
Beweise, dass niemand, der die zufällige Folge nicht kennt, die Nachricht entschlüsseln kann. (D.h. die Sicherheit beruht u.a. darauf, dass sich X und Y
persönlich treffen.)
5. Ein weiterer interessanter Aspekt von Public-Key Verfahren ist, dass damit
auch elektronische Unterschriften möglich sind. Wie könnte das funktionieren?
6. Im Text wurde etwas verschwiegen: Für die Sicherheit der hier vorgestellten
Verfahren ist auch wichtig, dass nicht einzelne Buchstaben verschlüsselt werden, sondern ganze Blöcke von Buchstaben (Wortlänge 100 passt bequem,
wenn p und q 512-Bit Zahlen sind). Wieso ist das wichtig?
7. Ein Alphabet A ist eine Menge von Zeichen (z.B. {a, b, c, . . . , z}, {0, 1}) und
ein Wort ist eine abbrechende Folge von Zeichen aus dem Alphabet (z.B.
’hans’, ’10010’). Wenn |A| = n ist, wie viele Worte der Länge k gibt es dann?
Beispiel: Ist A = {x, y, z} und k = 2, dann gibt es die Worte ’xx’, ’xy’, ’xz’,
’yx’, ’yy’, ’yz’, ’zx’,’zy’, ’zz’. Und wie viele Worte der Länge ≤ k gibt es? Man
hat natürlich die Freiheit, das leere Wort der Länge 0 mitzuzählen oder auch
nicht. Bitte zähle es mit. Begründe deine Antworten!
1.2
Gruppen und Permutationen
Gruppen
In diesem und dem nächsten Abschnitt nehmen wir uns eine Menge mit einer, später
mit zwei Rechenoperationen und verlangen, dass einige wenige Regeln (Axiome)
erfüllt sind. Wir untersuchen, was aus den Axiomen folgt. Das ist natürlich eine
immer wiederkehrende Aufgabe: Gegeben ein paar Regeln, was kann man ableiten?
Gegeben ein paar CPU-Instruktionen, was kann man damit anfangen? Gegeben
Zirkel und Lineal, was kann man konstruieren?
Sei also G eine nichtleere Menge und ⊕ so etwas wie eine Addition. Die folgenden
Bedingungen können für G und ⊕ erfüllt sein oder auch nicht:
(G0) ⊕ ist eine binäre Operation auf G, d.h. ⊕ : G × G → G. Für ⊕(a, b) darf
man auch a ⊕ b schreiben.
Algebra: Gruppen und Permutationen
7
(G1) ⊕ ist assoziativ: ∀a, b, c ∈ G : (a ⊕ b) ⊕ c = a ⊕ (b ⊕ c)
(G2) In G existiert ein neutrales Element e: ∃e ∈ G ∀a ∈ G : e ⊕ a = a = a ⊕ e
(G3) Jedes Element in G besitzt ein Inverses: ∀a ∈ G ∃ā : a ⊕ ā = e = ā ⊕ a
(G4) ⊕ ist kommutativ: ∀a, b ∈ G : a ⊕ b = b ⊕ a.
1.2.1 Definition (Gruppe) Eine Gruppe ist eine nichtleere Menge G zusammen
mit einer Funktion ⊕, die die Axiome (G0) bis (G3) erfüllt. Erfüllt (G, ⊕) auch (G4),
so nennt man die Gruppe abelsch3 oder kommutativ.
Sind nur (G0) und (G1) erfüllt, so heißt (G, ⊕) eine Halbgruppe. Ist auch (G2)
erfüllt, so heißt (G, ⊕) Monoid. Wenn klar ist, was ⊕ ist, schreibt man nur G statt
(G, ⊕).
Bemerkung: Meistens schreibt man + oder · für die Gruppenoperation. Man sagt dann, dass
man die Gruppe additiv oder multiplikativ schreibt, und konsequenterweise schreibt man das
neutrale Element e als 0 oder 1 (daher Wahl des Buchstaben e wie Einselement) und das zu a inverse
Element ā als −a oder a−1 . Bei multiplikativer Schreibweise wird oft auf das Operationssymbol
verzichtet, also ab für a · b. Wegen der Assoziativität können wir in der Regel auf Klammern
verzichten.
Die Methode, einer Struktur einen Namen zu geben, wenn sie ein paar Bedingungen
(Axiome) genügt, heißt axiomatische Methode. Ihre Stärke liegt darin, dass alles,
was wir über die neue Struktur beweisen, für alle möglichen Beispiele gilt. Und
an Beispielen für Gruppen mangelt es nicht:
1.2.2 Beispiel
• (ZZ, +), (Q,
I +) und (IR, +) sind abelsche Gruppen mit dem
neutralen Element 0. Das zu a inverse Element ist ā = −a.
• Seien Q
I ∗ und IR∗ die Mengen der rationalen bzw. reellen Zahlen ohne Null,
dann sind (Q
I ∗ , ·) und (IR∗ , ·) abelsche Gruppen mit dem neutralen Element 1
und Inversen ā = 1/a.
• Sei m ∈ ZZ, m > 1 und ZZm = {[0], [1], . . . , [m − 1]} die Menge der Restklassen
modulo m. Nach Satz 1.1.5 ist die Abbildung +m , definiert durch [a] +m [b] =
[a + b], wohldefiniert. (ZZm , +m ) ist eine abelsche Gruppe mit dem neutralen
Element [0] und mit Inversen [a] = [m − a] für alle a.
• Mit Abb(M, M ) bezeichnet man die Menge aller Abbildungen von M nach
M . (Abb(M, M ), ◦) ist ein Monoid mit dem neutralen Element idM .
• Sei M eine endliche Menge und SM die Menge aller bijektiven Abbildungen
von M auf M . Dann ist (SM , ◦) eine Gruppe mit neutralem Element idM .
• Sei Σ ein endliches Alphabet und Σ∗ die Menge aller Wörter (d.h. beliebige
Strings) über Σ, dann bildet Σ∗ mit der Konkatenation (d.h. Aneinanderfügen
von Wörtern) eine Halbgruppe. Da nach allgemeiner Vereinbarung auch das
leere Wort zu Σ∗ gehört, ist diese Halbgruppe ein Monoid.
• (ZZ, ·) ist ein Monoid.
• (IN, +) ist Halbgruppe, aber nicht Monoid.
• Die Menge der Deckabbildungen eines n-Ecks, eines Würfels,. . .
3 Niels
Henrik Abel, 1802–1829
8
Diskrete Mathe für Informatiker, Sommer 2000
1.2.3 Lemma
1. In einer Halbgruppe (H, ⊕) gibt es höchstens ein neutrales
Element e. (Also ist das neutrale Element einer Gruppe eindeutig.)
2. In einem Monoid (M, ⊕) hat jedes Element a ∈ M höchstens ein Inverses.
(D.h. in einer Gruppe sind die Inversen eindeutig.)
3. In einer Gruppe (G, ⊕) ist für alle a, b ∈ G das Inverse (a ⊕ b) = b̄ ⊕ ā.
4. In einer Gruppe (G, ⊕) kann man von links und von rechts kürzen“, d.h.
”
∀a, b, c ∈ G : (a ⊕ b = a ⊕ c ⇒ b = c) und ∀a, b, c ∈ G : (b ⊕ a = c ⊕ a ⇒ b = c)
5. In einer Halbgruppe (H, ⊕) gilt das allgemeine Assoziativgesetz: Seien
a1 , . . . , an ∈ H (n ≥ 1). Dann liefert jede sinnvolle Beklammerung von a1 ⊕
· · · ⊕ an denselben Wert.
Beweis.
1. Angenommen, e1 und e2 sind beides neutrale Elemente. Dann ist e1 = e1 ⊕ e2 ,
weil e2 neutral ist, und e1 ⊕ e2 = e2 , weil auch e1 neutral ist. Also ist e1 =
e1 ⊕ e2 = e2 .
2. Angenommen, a hat zwei Inverse x und y. Dann ist x = x ⊕ (a ⊕ y) =
(x ⊕ a) ⊕ y = y.
3. Testen wir einfach, ob die Verknüpfung das neutrale Element ergibt: (a ⊕ b) ⊕
(b̄ ⊕ ā) = a ⊕ (b ⊕ b̄) ⊕ ā = a ⊕ ā = e.
4. Übung!
5. Zeige mit Induktion über n, dass die Menge Pn aller Werte unter den verschiedenen Beklammerungen von a1 ⊕ · · · ⊕ an genau ein Element enthält.
Zwei Fragen liegen nahe: Kann eine Gruppe in einer anderen enthalten sein? Und
gibt es Gruppen, die zwar zunächst verschieden aussehen, aber doch im Prinzip
gleich? Aus der Untersuchung dieser Fragen ergibt sich eine Verallgemeinerung der
Kongruenzrechnung.
1.2.4 Definition Sei (G, ⊕) eine Gruppe. Eine Teilmenge U von G heißt Untergruppe von G, wenn (U, ⊕) eine Gruppe ist. (Ebenso Unterhalbgruppe, Untermonoid.)
Bemerkung: Diese Definition ist nicht ganz exakt: Genaugenommen kann (U, ⊕) gar keine Gruppe
sein (außer wenn U = G), weil wir bei der Definition einer Gruppe verlangt haben, dass die
Gruppenoperation genau auf der Grundmenge definiert ist. Richtig“ geht es so: Definiere zuerst
”
die Einschränkung ⊕U : U × U → U durch u1 ⊕U u2 = u1 ⊕ u2 für u1 , u2 ∈ U . Dann kann man
ganz korrekt sagen, U ist Untergruppe von (G, ⊕), wenn (U, ⊕U ) eine Gruppe ist.
⊕ und ⊕U unterscheiden sich in nichts als in ihrem Definitionsbereich; aber es ist ein wirklicher
Unterschied, ob die Funktion als Argument alle Elemente aus G akzeptiert oder nur solche aus U .
1.2.5 Lemma Ist G eine Gruppe und U eine Untergruppe, so ist das neutrale
Element e in U . Außerdem ist mit jedem Element a ∈ U auch das Inverse ā in U .
Das folgende Lemma ist wichtig, weil es ein handliches Kriterium zum Test auf die
Eigenschaft Untergruppe zu sein zur Verfügung stellt.
Algebra: Gruppen und Permutationen
9
1.2.6 Lemma (Untergruppenkriterium) Sei (G, ⊕) eine Gruppe. Eine nicht
leere Untermenge U von G ist genau dann eine Untergruppe von (G, ⊕), wenn
∀a, b ∈ U : ā ⊕ b ∈ U
1.2.7 Beispiel
• Für jede Gruppe G sind G und {e} Untergruppen.
• Sei m ∈ IN, dann bildet die Menge mZZ = {x ∈ ZZ : m|x} aller durch m
teilbaren Zahlen eine Untergruppe von (ZZ, +).
• ZZ und Q
I sind Untergruppen von (IR, +).
• Q
I ∗ ist Untergruppe von (IR∗ , ·).
• Q
I + und IR+ sind Untergruppen von (IR∗ , ·).
1.2.8 Definition Sei U eine Untergruppe der Gruppe (G, ⊕). Für jedes Gruppenelement a wird die Menge a⊕U = {a⊕u : u ∈ U } Linksnebenklasse von a bezüglich
U genannt (analog Rechtsnebenklasse).
1.2.9 Beispiel
• Wir betrachten die Untergruppe U = 5ZZ der Gruppe G =
(ZZ, +). Die Nebenklassen 2 + U = {. . . , −8, −3, 2, 7, 12, . . .} und 7 + U sind
gleich. Es gibt genau 5 voneinander verschiedene Nebenklassen, nämlich die
Äquivalenzklassen der Relation ≡ (mod 5).
• In der Untergruppe U = IR+ der Gruppe G = (IR∗ , ·) gibt es genau zwei voneinander verschiedene Nebenklassen, die Menge der positiven und die Menge
der negativen Zahlen.
• In der Untergruppe U = ZZ der Gruppe G = (Q,
I +) gibt es eine bijektive
Abbildung zwischen der Menge der voneinander verschiedenen Nebenklassen
und der Menge der rationalen Zahlen im Intervall [0, 1).
Wir überlegen uns nun, dass die Relation Ist in der gleichen Nebenklasse wie“ alias
”
∼U eine Äquivalenzrelation ist.
1.2.10 Lemma (vgl. Lemma 1.1.4)
a ∈ b ⊕ U ⇐⇒ b̄ ⊕ a ∈ U
Beweis. Es ist doch a ∈ b ⊕ U , wenn es ein u ∈ U gibt mit a = b ⊕ u. Das ist
äquivalent zu b̄ ⊕ a = u ∈ U .
1.2.11 Satz Sei U eine Untergruppe der Gruppe G. Verschiedene Nebenklassen
von U sind disjunkt.
Beweis. Zeige die Kontraposition: Sind a ⊕ U und b ⊕ U nicht disjunkt, so sind sie
gleich. Das geht ganz einfach mit dem vorigen Lemma.
Also ist ∼U eine Äquivalenzrelation. Im Allgemeinen ist ∼U aber keine Kongruenzrelation, d.h. aus a ∼U b und a0 ∼U b0 folgt nicht zwangsläufig aa0 ∼U bb0 (so wie
es bei ≡ der Fall war). Das liegt einfach daran, dass i.a. a ⊕ U 6= b ⊕ U gilt.
1.2.12 Definition Eine Untergruppe N einer Gruppe G heißt Normalteiler, wenn
für alle a ∈ G die Linksnebenklasse mit der Rechtsnebenklasse übereinstimmt, d.h.
wenn a ⊕ N = N ⊕ a.
10
Diskrete Mathe für Informatiker, Sommer 2000
In einer abelschen Gruppe ist jede Untergruppe ein Normalteiler, aber es gibt auch
Normalteiler in nicht kommutativen Gruppen. Z.B. ist An normal in Sn .
1.2.13 Satz Sei N ein Normalteiler einer Gruppe G.
1. Die Relation ∼N ist Kongruenzrelation, d.h. für alle a, b ∈ G gilt:
(a ∼N b ∧ a0 ∼N b0 ) ⇒ a ⊕ a0 ∼N b ⊕ b0 .
2. Die Menge der Nebenklassen bildet eine Gruppe mit der wie folgt definierten
binären Operation : (a ⊕ N ) (b ⊕ N ) = (a ⊕ b) ⊕ N .
1.2.14 Definition Die im vorangehenden Satz definierte Gruppe der Nebenklassen
wird Faktorgruppe genannt und mit G/N bezeichnet.
Was nun folgt dient dazu Gruppen miteinander zu vergleichen. Die Worte sind aus
dem Griechischen abgeleitet: Morphe4 heißt Gestalt, homoios5 heißt ähnlich und
isos6 heißt gleich.
1.2.15 Definition Seien (G, ⊕) und (G0 , ·) Gruppen. Eine Abbildung ϕ : G → G0
wird Gruppenhomomorphismus genannt, falls ∀a, b ∈ G : ϕ(a ⊕ b) = ϕ(a) · ϕ(b).
Die Menge Ker ϕ = {a ∈ G : ϕ(a) = e0 } wird Kern des Homomorphismus und die
Menge Im ϕ = {a0 ∈ G0 : (∃a ∈ G : ϕ(a) = a0 )} wird Bild des Homomorphismus
genannt. Ein Homomorphismus wird Isomorphismus genannt, falls die Abbildung
auch bijektiv ist. Wenn es zwischen zwei Gruppen G und G0 einen Isomorphismus
gibt, dann heißen die Gruppen isomorph und man schreibt G1 ∼
= G2 .
1.2.16 Beispiel
1. Die Abbildung von (ZZ, +) nach (ZZ, +), die jeder Zahl x ∈ ZZ
die Zahl 5x zuordnet, ist ein Homomorphismus mit Bild 5ZZ und Kern {0}.
Sieht man sie als Abbildung von (ZZ, +) nach (5ZZ, +) an, so ist sie sogar ein
Isomorphismus.
2. Die Gruppe der Drehbewegungen eines n-ecks ist isomorph zu ZZn .
1.2.17 Lemma Ein Homomorphismus bildet neutrale Elemente aufeinander ab
und ebenso inverse: Ist ϕ : G −→ G0 ein Homomorphismus, so ist ϕ(e) = e0 und
∀a ∈ G : ϕ(ā) = ϕ(a).
1.2.18 Satz (Homomorphiesatz) Sei ϕ : G −→ G0 ein Homomorphismus, dann
ist Im ϕ eine Untergruppe von G0 und Ker ϕ ein Normalteiler von G. Die Gruppe
Im ϕ ist isomorph zur Faktorgruppe G/Ker ϕ. Ferner ist jeder Normalteiler N von
G Kern eines Homomorphismus (der jedem a ∈ G die Nebenklasse aN ∈ G/N
zuordnet).
1.2.19 Beispiel Wir betrachten die Gruppe (ZZ, +) (siehe Abbildung 1. Die Abbildung f : ZZ → ZZ, die jeder Zahl x den Rest f (x) = x mod 5 zuordnet, ist ein Homomorphismus mit Im f = {0, 1, 2, 3, 4} und Ker f = 5ZZ = {. . . , −10, −5, 0, 5, 10, . . .}.
Die Gruppe (ZZ5 , +5 ) ist isomorph zur Faktorgruppe ZZ/5ZZ (jedem Rest wird seine
Restklasse zugeordnet).
4 Vergleiche
amorph, Metamorphose.
Homöopathie, homosexuell.
6 Vergleiche Isomer.
5 Vergleiche
Algebra: Gruppen und Permutationen
11
Abbildung 1: Beispiel zum Homomorphiesatz
1.2.20 Definition Die Mächtigkeit |G| einer Gruppe (G, ⊕) wird als ihre Ordnung bezeichnet. Die Ordnung einer Gruppe ist also eine natürliche Zahl oder ∞.
Der Index |G : U | einer Untergruppe U ist definiert als die Anzahl der voneinander verschiedenen Linksnebenklassen (ist also auch eine natürliche Zahl oder ∞).
Die Schreibweise kommt daher, dass die Mächtigkeit |G/N | der Faktorgruppe G/N
gleich |G : N | ist.
1.2.21 Satz (Lagrange) Ist G eine endliche Gruppe und U eine Untergruppe von
G, dann gilt |G| = |G : U | · |U |.
Beweis. Je zwei verschiedene Äquivalenzklassen besitzen die gleiche Mächtigkeit. Wenn wir in einer endlichen Gruppe mit einem Element a starten und a, a2 , a3 , . . .
bilden, dann erhalten wir irgendwann das neutrale Element e (und im nächsten
Schritt wieder a). Beweis: Weil es nur endlich viele Gruppenelemente gibt, muss
in der Folge a, a2 , a3 , . . . ein Glied mehrfach vorkommen, z.B. ai = aj mit i < j.
Wegen der Gruppenregeln haben wir sofort aj−i = e (durch Multiplikation mit dem
Inversen (ai )−1 = (a−1 )i ). Vergleiche das mit dem kleinen Fermat (Satz 1.1.12)!
1.2.22 Definition Sei a ∈ G ein Element einer Gruppe. Die kleinste Zahl k mit
der Eigenschaft ak = e heißt der Index von a.
Aufgaben
1. Sei p eine Primzahl, ZZ∗p = {1, . . . , p − 1} und ·p die Multiplikation modulo
p, d.h. a ·p b = (a · b) mod p. Zeige, dass (ZZ∗p , ·p ) eine abelsche Gruppe ist.
Welches ist das neutrale Element?
2. Beweise die Kürzungsregeln“ für Gruppen: In einer Gruppe (G, ⊕) kann man
”
von links und von rechts kürzen“, d.h.
”
∀a, b, c ∈ G : (a ⊕ b = a ⊕ c ⇒ b = c) und ∀a, b, c ∈ G : (b ⊕ a = c ⊕ a ⇒ b = c)
3. Sei M eine endliche Menge, S(M ) die Menge aller bijektiven Abbildungen
von M auf M und bezeichne ◦ die Komposition von Abbildungen. Dann ist
(S(M ), ◦) eine Gruppe mit der identischen Abbildung idM als neutralem Element. S(M ) ist genau dann abelsch, wenn M nicht mehr als 2 Elemente hat.
4. Zeige: (IN, −) ist keine Halbgruppe, (IN, ∗) mit a ∗ b = ab auch nicht.
5. Zeige: Die Potenzmenge einer Menge ist eine Gruppe bezüglich Vereinigung
und bezüglich Schnitt.
12
Diskrete Mathe für Informatiker, Sommer 2000
6. Weise mithilfe von Lemma 1.2.10 nach, dass die Relation ∼U die Axiome für
Äquivalenzrelationen erfüllt.
Permutationen
Du hast 10 Briefe (Bewerbungen, Liebesbriefe) geschrieben und auch schon 10 Umschläge adressiert. Ein Windstoß wirbelt die Briefe durcheinander, ohne dass du
es bemerkst. Wie wahrscheinlich ist es, dass du keinen der Briefe in den richtigen
Umschlag steckst?
So eine Vertauschung heißt Permutation. Auf die Wahrscheinlichkeitsfrage kommen wir im Kapitel über Kombinatorik zurück.
1.2.23 Beispiel Die Permutationen der drei Buchstaben a, b und c sind abc, acb,
bac, bca, cab, cba.
1.2.24 Definition Sei M eine endliche Menge. Eine bijektive Abbildung von M in
sich selbst heißt Permutation von M . Wir schreiben SM für die Menge aller Permutationen von M . Im Spezialfall M = {1, 2, . . . , n} schreiben wir Sn statt S{1,2,...,n} .
Sn heißt die symmetrische Gruppe vom Grad n.
1.2.25 Lemma (Sn , ◦), die symmetrische Gruppe vom Grad n, ist eine Gruppe.
Dabe steht ◦ für die Komposition, d.h. die Hintereinanderausführung von Abbildungen. (D.h. der Name symmetrische Gruppe ist gerechtfertigt.)
Es ist anschaulich klar, dass die Struktur der Permutationsgruppe SM nur von
der Mächtigkeit der Menge M abhängt, mit anderen Worten: SM ist genau dann
isomorph zu Sn , wenn |M | = n ist (siehe Übung). Die übliche Darstellung einer
Permutation ϕ : M → M ist in einem Schema der Form
1
2
3
...
n−1
n
ϕ(1) ϕ(2) ϕ(3) . . . ϕ(n − 1) ϕ(n)
wo in der ersten Zeile die Elemente
Bilder bezüglich der Abbildung ϕ
dann so aus:
1
σ=
5
aus M und in der zweiten Zeile die zugehörigen
stehen. Die Permutation in Abbildung 2 sieht
2 3
2 7
4 5
3 1
6 7
4 6
Beachte, dass die Komposition von Abbildungen von rechts nach links ausgeführt
wird! Das ist eine Konvention und kommt daher, dass man sich die Regel (α◦β)(x) =
α(β(x)) wünscht.
Abbildung 2: Eine Permutation σ
Algebra: Gruppen und Permutationen
13
Die Inverse zu einer gegebenen Permutation erhält man durch Vertauschung der
beiden Zeilen und anschließendes Sortieren nach der (neuen) ersten Zeile, also
1
5
2
2
3
7
4
3
5
1
6
4
−1 7
1 2
=
6
5 2
3 4
4 6
5
1
6
7
7
3
1.2.26 Satz |Sn | = n!.
Beweis. Für π(1) gibt es n Möglichkeiten; für π(2) gibt es n − 1 Möglichkeiten,
weil π(2) 6= π(1) ist; für π(3) gibt es n −Q
2 Möglichkeiten, weil π(3) 6= π(1) und
n
π(3) 6= π(2) ist; . . . Also gibt es insgesamt i=1 i = n! Möglichkeiten für π.
1.2.27 Definition Eine Permutation π heißt k-Zyklus, wenn es eine Teilmenge
I = {i1 , i2 , . . . , ik } ⊆ {1, 2, . . . , n} gibt, die durch π zyklisch abgebildet wird, d.h.
π(i1 ) = i2 , π(i2 ) = i3 , . . . , π(ik−1 ) = ik , π(ik ) = i1
und alle anderen Elemente durch π fest gelassen werden, d.h. ∀j 6∈ I : π(j) = j.
Dieser Zyklus wird kurz als (i1 , i2 , . . . , ik ) geschrieben. Ein 2-Zyklus heißt Transposition.
Die Darstellung eines Zyklus ist nicht eindeutig, da jedes Element aus I an den
Anfang gestellt werden kann: (1, 2, 3) = (2, 3, 1) = (3, 1, 2). Deshalb ist es üblich, das
kleinste Element aus I an den Anfang zu stellen. Die Permutation in Abbildung 2
besteht z.B. aus drei Zyklen: σ = (1, 5) ◦ (2) ◦ (3, 7, 6, 4). Zyklen der Länge 1, d.h.
Elemente i mit i = π(i), heißen Fixpunkte. In der Zyklenschreibweise kann man
Fixpunkte weglassen. Wir schreiben kurz σ = (1, 5)(3, 7, 6, 4). Für die identischen
Abbildung schreibt man manchmal auch einen leeren Zyklus“ ( ).
”
1.2.28 Satz
1. Jede Permutation π ist ein Produkt disjunkter Zyklen.
2. Jeder Zyklus ist ein Produkt von Transpositionen.
Beweis.
1. Wir sehen uns das Diagramm von π an, wie in Abbildung 2. In jedem Punkt,
der kein Fixpunkt ist, beginnt ein Pfeil und endet ein Pfeil. Wenn wir bei
irgendeinem Punkt i beginnen und entlang der Pfeile laufen, dann müssen
wir früher oder später bei einem Punkt vorbeikommen, den wir schon besucht
haben, weil es insgesamt nur endlich viele Punkte gibt. Weil aus jeder Ecke
nur ein Pfeil herausführt, wiederholt sich der Weg ab jetzt immer wieder: Ein
Kreis.
Behauptung: Wir kommen auch bei unserer Ausgangsecke i wieder vorbei. Beweis: Weil in jede Ecke
nur ein Pfeil hinein führt, kann man den Weg umkehren. Einerseits muss man so wieder zu i kommen,
andererseits bleibt man in dem Kreis. Also liegt i in
diesem Kreis“, und wir haben einen Zyklus gefun- So kanns nicht aussehen.
”
den.
Wenn wir nun bei einem Element anfangen, das noch in keinem Zyklus untergebracht ist, dann finden wir den nächsten Zyklus. Das geht so lange, bis
alle Elemente ihren Zyklus“ gefunden haben. Frage: Wieso sind die Zyklen
”
disjunkt? Mit anderen Worten: Wieso kann es keine zwei Zyklen einer Permutation geben, die ein Element gemeinsam haben?
14
Diskrete Mathe für Informatiker, Sommer 2000
2. (i1 , i2 , . . . , ik ) = (i1 , i2 ) ◦ (i2 , i3 ) ◦ . . . ◦ (ik−1 , ik ).
1.2.29 Beispiel
1 2 3 4 5
5 2 7 3 1
6
4
7
= (1, 5) ◦ (2) ◦ (3, 7, 6, 4) = (1, 5) ◦ (3, 7) ◦ (7, 6) ◦ (6, 4)
6
Die Aufspaltung einer Permutation in Zyklen ist (bis auf die Reihenfolge) eindeutig, die Zerlegung in Transpositionen jedoch nicht (Beispiel: (123) = (23)(12) =
(13)(23)). Aber für jede Permutation π ∈ Sn gilt, dass die Anzahl der Transpositionen entweder in jeder Darstellung gerade oder in jeder Darstellung ungerade ist
(das beweisen wir aber nicht). Deshalb können wir definieren:
1.2.30 Definition Ist π ∈ Sn Produkt von k Transpositionen, so heißt sgn π =
(−1)k das Vorzeichen von π.
1.2.31 Lemma Für alle Permutationen π, σ ∈ Sn gilt: sgn σ ◦ π = sgn σ · sgn π,
d.h. die Abbildung sgn ist ein Homomorphismus von (Sn , ◦) in ({−1, 1}, ·).
1.2.32 Lemma Das Vorzeichen eines k-Zyklus π ist sgn π = (−1)k−1 .
Beweis. (a1 , a2 , . . . , ak ) = (a1 , ak ) ◦ (a1 , ak−1 ) ◦ · · · ◦ (a1 , a2 ).
Es gibt mehrere Charakterisierungen des Vorzeichens, z.B. auch
1.2.33 Lemma Für alle Permutationen π ∈ Sn gilt: sgn π =
Q
1≤i<j≤n
j−i
π(j)−π(i)
Beweis. Nenne ein Paar {i, j} eine Inversion von π, wenn i < j und π(j) < π(i).
Bezeichne mit f (π) die Anzahl der Inversionen von π, dann ist zu zeigen, dass das
Vorzeichen von π gleich sgn π = (−1)f (π) ist. Setze den Beweis fort!
1.2.34 Definition Eine Permutation heißt gerade (bzw. ungerade) Permutation,
wenn ihr Vorzeichen 1 (bzw. −1) ist. Die von den geraden Permutationen gebildete
Untergruppe der Gruppe Sn wird alternierende Gruppe genannt und mit An
bezeichnet.
1.2.35 Satz |An | = n!/2.
Beweis. Wir setzen unsere Kenntnisse aus der Gruppentheorie ein: An ist der Kern
des Homomorphismus sgn, also ist nach dem Homomorphiesatz die Faktorgruppe
Sn /An isomorph zum Bild von sgn, d.h. zur Gruppe ({−1, 1}, ·). Da die Ordnung
der Faktorgruppe G/H gerade der Index |G : H| ist, erhalten wir |Sn : An | =
|{−1, 1}| = 2. Nun liefert der Satz von Lagrange die Ordnung von An :
|An | =
|Sn |
n!
= .
|Sn : An |
2
Algebra: Gruppen und Permutationen
15
Der folgende Satz unterstreicht die Bedeutung von Permutationsgruppen.
1.2.36 Satz Jede Gruppe (G, ·) ist isomorph zu einer Untergruppe der Permutationsgruppe (SG , ◦).
Beweis. Wir müssen für jedes Element g ∈ G eine Permutation πg : G → G finden,
so dass die Homomorphismusregel ∀g, h ∈ G : πg·h = πg ◦ πh gilt und – nicht
zu vergessen – so dass keine zwei verschiedenen Gruppenelemente g und h auf die
gleiche Permutation πg = πh abgebildet werden. Das gelingt, wenn man πg als
diejenige Permutation definiert, die a ∈ G auf πg (a) = g · a abbildet.
1.2.37 Beispiel (ZZ4 , +) ist eine Gruppe mit 4 Elementen, also ist sie isomorph zu
einer Untergruppe der S4 . Natürlich gehören dabei die neutralen Elemente zusammen. Nach der Konstruktion im Beweis gehört zur 1 die Permutation
0
1
2
3
0 1 2 3
=
= (0123),
1+0 1+1 1+2 1+3
1 2 3 0
0 1 2 3
0 1 2 3
zur 2 die
= (02)(13) und zur 3 die
= (0321).
2 3 0 1
3 0 1 2
Wir überlegen uns noch, wie man alle Permutationen aufzählen kann. Der Kürze
halber schreiben wir bei Permutationen nur die zweite Zeile hin – in der ersten
steht ja doch immer das gleiche. Um Verwechslungen mit der Zyklenschreibweise
vorzubeugen, lassen wir aber die Klammern weg. Die Methode, die einem zuerst
einfällt, ist wahrscheinlich Rekursion: Wenn wir schon wissen, wie man die Permutationen von 3 Elementen aufzählt, dann erhalten wir die Permutationen von
a, b, c, d, indem wir zuerst an a alle Permutationen von b, c, d anhängen, dann an b
alle Permutationen von a, c, d, dann an c die von a, b, d und schließlich an d die von
a, b, c. Außerdem braucht man noch einen Anfang“ für die Rekursion: Ist M = ∅,
”
dann gibt es genau eine Permutation, nämlich die leere“ Permutation.
”
Der Nachteil der Rekursion ist allerdings, dass man nicht mittendrin anfangen kann
(z.B. wenn das Programm abgestürzt ist). Da wäre es praktischer, eine vollständige
Ordnung auf den Permutationen zu haben und eine Methode, zu einer Permutation
die nächste zu berechnen. Zuerst definieren wir die lexikographische Ordnung
auf den Permutationen: Die Reihenfolge ist so, wie die zweiten Zeilen im Lexikon
aufgeführt wären. Formal: Wir sagen, α = a1 a2 . . . an ist lexikographisch kleiner als
β = b1 b2 . . . bn , wenn für das kleinste i mit ai 6= bi gilt ai < bi . Für n = 3 erhalten
wir z.B. die Liste 123, 132, 213, 231, 312, 321. Der folgende Algorithmus findet zu
α = a1 a2 . . . an die Nachfolgerpermutation:
1. Suche den größten Index r mit ar < ar+1 . Wenn kein solches r existiert, ist
α = n . . . 21 die letzte Permutation.
2. Suche den Index s > r mit as > ar > as+1 .
3. β = a1 . . . ar−1 as an . . . as+1 ar as−1 . . . ar+1 ist die Nachfolgerpermutation.
Schließlich kann man auch die Permutationen durchnummerieren und sich einen
Algorithmus wünschen, der bei Bedarf die k-te Permutation erzeugt.
Aufgaben
1. Zeige: SM ist genau dann isomorph zu Sn , wenn |M | = n ist.
16
Diskrete Mathe für Informatiker, Sommer 2000
2. Sei π =
1
5
2
6
3
7
4
3
1. Bestimme π −1 .
1 2
2. Berechne
2 4
5 6
2 1
7 8
8 9
9
4
3
6
5
1
7
5
4
8
6
3
8
7
9
◦ π.
9
3. Schreibe π in Zyklendarstellung.
4. Schreibe π als Produkt von Transpositionen. Was ist sgn π?
3. Zeige: Die Permutation σ = π1 ◦ · · · ◦ πl sei ein Produkt von l Zyklen der
Längen k1 , k2 , . . . , kl . Bestimme sgn σ.
4. Die Gruppe (ZZ2 × ZZ2 , +2 ) heißt Kleinsche Vierergruppe. Sie hat die Elemente (0, 0), (0, 1), (1, 0) und (1, 1), addiert wird komponentenweise modulo 2. (Bevor du weiter
liest: Welches ist das neutrale Element?) Visualisieren kann
man sie als modulo-2-Quadrat, wie hier rechts im Bild.
(0, 1)
(1, 1)
s
s
@
@
s @s
(0, 0)
(1, 0)
Bestimme eine Untergruppe der S4 , die isomorph zur Kleinschen Vierergruppe
ist. Hinweis: Jedes Element muss zu sich selbst invers sein.
5. Zu je zwei Transpositionen τ1 , τ2 ∈ Sn gibt es eine Permutation π ∈ Sn mit
τ2 = π −1 ◦ τ1 ◦ π.
Ist π eindeutig bestimmt?
6. Zeige, dass sich jedes Element α ∈ An aus der alternierenden Gruppe als
Produkt von Zyklen der Länge 3 darstellen lässt.
Q
j−i
7. Beweise: sgn π = 1≤i<j≤n π(j)−π(i)
(vgl. Lemma 1.2.33).
8. Schreibe in einer Programmiersprache deiner Wahl ein Programm, das Permutationen handhaben kann: Eingabe, Ausgabe, Anwenden, Multiplikation
(d.h. Hintereinanderausführung), Aufzählen und was dir sonst noch einfällt.
(Die Benutzung von Permutations-Bibliotheksfunktionen gilt nicht!)
Vorschlag: Man könnte z.B. in Java oder C++ eine Klasse entwerfen und dabei
die Besonderheiten der gewählten Sprache auszunutzen. In Java sollte man
vielleicht das Aufzählen über das Interface java.util.Enumeration realisieren,
in C++ kann man die Multiplikation mit Operator Overloading ausstatten.
1.3
Ringe und Körper
Wir haben Gruppen als Verallgemeinerung der ganzen Zahlen eingeführt. In einer
Gruppe gibt es jedoch nur eine Verknüpfung, etwa (ZZ, +). In ZZ haben wir aber
Addition und Multiplikation.
1.3.1 Definition (Ring und Körper) Eine Menge R mit zwei binären Operationen ⊕ und heißt Ring, wenn
(R0) ⊕ und sind binäre Operationen auf R,
(R1) (R, ⊕) ist eine abelsche Gruppe,
(R2) (R, ) ist eine Halbgruppe,
(R3) Es gelten die Distributivgesetze a (b ⊕ c) = (a b) ⊕ (a c)
und (a ⊕ b) c = (a c) ⊕ (b c) für alle a, b, c ∈ R.
Algebra: Ringe und Körper
17
Gilt zusätzlich
(K1) (R∗ , ) ist eine kommutative Gruppe,
so nennen wir R einen Körper.
Um Klammern zu sparen vereinbaren wir, dass die Multiplikation stärker bindet als
die Addition. (Wir sparen sogar Malpunkte ein: ab steht für a b.) Das neutrale
Element der Addition bezeichnen wir mit 0 und das neutrale Element der Multiplikation – wenn es existiert – mit 1. Das bezüglich inverse zu a bezeichnen wir mit
a−1 , das bezüglich ⊕ inverse mit −a.
1.3.2 Beispiel (Ringe und Körper)
• (IR, +, ·) und (Q,
I +, ·) sind Körper.
• (ZZ, +, ·) ist ein Ring.
• Ist p eine Primzahl, dann ist (ZZp , +p , ·p ) ein Körper. Er wird mit GF(p)
bezeichnet, für Galoisfeld der Ordnung p. Auf englisch heißen Körper field.
• Sei (R, +, ·) ein Ring und RR die Menge aller Funktionen von R nach R.
Durch punktweise Definition der Addition und Multiplikation von Funktionen
f, g ∈ RR , d.h.:(f ⊕ g)(x) = f (x) + g(x) und (f g)(x) = f (x) · g(x), erhält
RR die Stuktur eines Rings, der Funktionenring genannt wird.
1.3.3 Lemma In einem Ring gilt 0 a = 0 = a 0 und (−a) b = −(a b) =
a (−b).
Beweis. Übung. Hinweis: 0 = 0 + 0.
Ein Körper ist ein Ring mit einer stärkeren Bedingung an die Multiplikation. Diese
macht den Umgang mit Körpern angenehmer als den mit Ringen. Z.B. können wir
in Körpern stets ohne Rest dividieren. Aber es gibt Ringe, in denen es nicht einmal
Division mit Rest gibt. Auch die von den reellen Zahlen gewohnte Regel: Wenn
”
a b = 0, dann ist a = 0 oder b = 0“ gilt in Ringen im allgemeinen nicht. In
manchen Ringen gilt sie, z.B. in IR. In ZZ6 nicht, weil [2] · [3] = [0]. Diese Eigenschaft
ist manchmal wichtig, deshalb hat sie einen Namen:
1.3.4 Definition Ein Ring, in dem die Regel a b = 0 ⇒ (a = 0 ∨ b = 0) gilt,
heißt nullteilerfrei. Ein kommutativer, nullteilerfreier Ring mit mindestens zwei
Elementen heißt Integritätsbereich.
1.3.5 Beispiel
1. (ZZ, +, ·) ist nullteilerfrei, aber kein Körper.
2. Sei m = ab eine natürliche Zahl, die keine Primzahl ist, dann ist (ZZm , +m , ·m )
ein kommutativer Ring mit Eins, aber nicht nullteilerfrei.
1.3.6 Lemma Jeder Körper ist nullteilerfrei.
Beweis. Übung!
Bemerkung: Es gibt zwei Eigenschaften, die einen Ring hässlich“ machen können: Wenn er nicht
”
nullteilerfrei ist und wenn die zweite Verknüpfung nicht kommutativ ist. Mit anderen Worten: Ein
Integritätsbereich (R, +, ·) ist ein hübscher Ring“, er kann zu einem Körper (seinem Quotien”
tenkörper) erweitert werden (ganz analog wie man den Ring der ganzen Zahlen ZZ zum Körper
der rationalen Zahlen Q
I erweitert).
1. Wir betrachten die Menge aller geordneten Paare (a, b) ∈ R × R mit b 6= 0 und schreiben
sie formal als Brüche ab .
18
Diskrete Mathe für Informatiker, Sommer 2000
2. Zwei Brüche ab und dc werden als gleich angesehen, wenn ad = bc (d.h. diese Bedingung
definiert eine Äquivalenzrelation ∼
= zwischen Brüchen und man arbeitet mit den Äquivalenzklassen ( ab )∼
= weiter).
3. Man definiert Addition und Multiplikation von Brüchen wie folgt:
a
c
ad + bc
+ =
b
d
bd
und
a c
ac
· =
b d
bd
Nun muss man noch nachrechnen, dass das Ergebnis nicht davon abhängt, mit welchem
Vertreter einer Äquivalenzklasse man rechnet.
4. Es bleibt zu zeigen, dass die Äquivalenzklassen der Brüche einen Körper bilden (das neutrale
a −1
b ∼
Element der Multiplikation ist ( 11 )∼
= , inverse Elemente sind durch ( b )∼
= = ( a )= definiert).
Eine der ewigen mathematischen Wahrheiten ist, dass 1 + 1 = 2 ist. In GF(2) gilt
aber 1 + 1 = 0.
1.3.7 Definition Sei K ein Körper. Falls es eine natürliche Zahl n gibt, für die
1 + 1 + · · · + 1 gilt, heißt die kleinste solche Zahl die Charakteristik von K und
|
{z
}
n mal
wird mit char K bezeichnet. Gibt es kein solches n, so definiert man char K = 0.
1.3.8 Satz Die Charakteristik eines Körpers ist stets 0 oder eine Primzahl.
Beweis. Angenommen, char K = pq mit p, q 6= 1 und p, q ∈ IN. Dann wäre
0 = 1 + ··· + 1 = 1 + ··· + 1 · 1 + ··· + 1
| {z }
| {z } | {z }
pq Summanden
p Summanden q Summanden
also K nicht nullteilerfrei, ein Widerspruch.
Jede Primzahl kommt auch als Charakteristik eines Körpers vor. Die Körper ZZp ,
die in den Anwendungen eine immer wichtigere Rolle spielen, haben die Charakteristik p. Obwohl IR und ZZp sehr verschieden sind, gelten alle Aussagen, die aus den
Körperaxiomen folgen, für IR und ZZp .
1.3.9 Definition Eine Teilmenge K 0 eines Körpers (K, +, ·) heißt Unterkörper,
wenn (K 0 , +, ·) ein Körper ist. Analog ist ein Unterring definiert.
1.3.10 Definition (Ringhomomorphismus) Seien (R, ⊕, ) und (S, +, ·) Ringe. Eine Abbildung f : R → S heißt (Ring)-Homomorphismus, falls für alle
x, y ∈ R
f (x ⊕ y) = f (x) + f (y) und f (x y) = f (x) · f (y)
gilt. Ein bijektiver Homomorphismus heißt Isomorphismus.
Auch für Ringe und Körper gilt der Homomorphiesatz (siehe Satz 1.2.18): Wenn
wir einen Homomorphismus f : R → R0 von einem Ring in einen anderen haben,
dann ergibt sich die gleiche Struktur, wenn wir in R die Elemente mit gleichem
Funktionswert zusammenfassen, wie wenn wir die Menge der Funktionswerte in R0
betrachten.
1.3.11 Beispiel Die Abbildung [ ] : ZZ → ZZm , die jeder Zahl a ihre Restklasse [a]
modulo m zuordnet, ist ein Ringhomomorphismus. Die Elferprobe (Lemma 1.1.6)
funktioniert genau deshalb!
Algebra: Polynome
19
Aufgaben
1. Zeige, dass in einem Ring 0a = 0 = a0 und (−a)b = −(ab) = a(−b)
gilt.
√
2. Beweise, dass {x + y 2 : x, y ∈ Q}
I ein Körper ist.
3. Beweise: Ist K 0 ein Unterkörper von K, so ist 0 ∈ K 0 und 1 ∈ K 0 .
4. Zeige, dass jeder Körper nullteilerfrei ist.
1.4
Polynome
Polynome sind Ausdrücke der Form an xn + an−1 xn−1 + . . . + a1 x + a0 . Mathematisch ist diese Definition“ unbefriedigend, weil nicht klar ist, was x eigentlich
”
ist. Wir lösen das Problem so: Wir lassen die x’e einfach weg, schreiben nur noch
die Koeffizienten (an , an−1 , . . . , a1 , a0 ) hin. Will man ein Polynom im Computer
repräsentieren, dann wird man genau das tun: Nämlich die Koeffizienten in einem
Array (oder einer Liste) speichern.
1.4.1 Definition (Polynome) Sei (K, +, ·) ein Körper und K (IN) die Menge der
abbrechenden Folgen über K. Wir definieren eine Addition ⊕ : K → K kompo”
nentenweise“ durch
(p0 , . . . , pn , 0, . . .) ⊕ (q0 , . . . , qm , 0, . . .) = (p0 + q0 , . . . , pn + qn , 0, . . .)
(wobei n ≥ m annehmen) und eine Multiplikation : K (IN) → K (IN) durch
n+m
X
(p0 , . . . , pn , 0, . . .) · (q0 , . . . , qm , 0, . . .) i =
(pi q0 + pi−1 q1 + . . . + p0 qi )
i=0
Dann ist (K (IN) , ⊕, ) ein Ring (Beweis?), der Polynomring über K, und wird mit
K[x] bezeichnet.
Natürlich werden wir nicht p = (3, 7, 0, 5, 0, . . .) schreiben, sondern p(x) = 5x3 +
7x + 3 (dann ist die Multiplikation auch ganz natürlich). Die Zahlen vor den xi
heißen Koeffizienten des Polynoms, in dem Beispiel ist 5 der Koeffizient von x3 .
Die größte Zahl i mit pi 6= 0 wird Grad des Polynoms genannt und mit grad(p)
bezeichnet (sind alle pi = 0, dann ist p(x) das Nullpolynom und sein Grad wird als
−∞ definiert). Ein Polynom heißt normiert, wenn der höchste Koeffizient 1 ist.
1.4.2 Lemma Seien p, q ∈ K[x] zwei Polynome. Dann sind
grad(p + q) ≤ max(grad(p), grad(q)) und grad(p · q) = grad(p) + grad(q)
Bei einem Polynom fällt einem als erstes ein, dass man etwas einsetzen“ könnte. Ein
”
Polynom ist aber nach unserer Definition einfach eine Folge, was heißt da einsetzen?
1.4.3 Definition Zu jedem Polynom p ∈PK[x] assoziieren wir eine Polynomabbildung pf : K → K, die durch pf : s 7→ pi si für alle s ∈ K definiert ist.
Es ist wichtig, zwischen Polynomen als formalen Gebilden (wie im Rechner repräsentiert) und Polynomfunktionen zu unterscheiden. Warum? Weil zwei verschiedene Polynome unter Umständen zu einer gemeinsamen Polynomfunktion gehören
können.
20
Diskrete Mathe für Informatiker, Sommer 2000
1.4.4 Beispiel Das Polynom x2 + x über ZZ2 ist nicht das Nullpolynom, aber die
Polynomabbildung x 7→ x2 + x ist die Nullfunktion.
1.4.5 Lemma Die Abbildung ·f , die jedem Polynom seine Polynomabbildung zuordnet, ist ein Homomorphismus. Bei Polynomen über Q
I oder IR sogar ein Isomorphismus, d.h. die Unterscheidung zwischen Polynomen und Polynomfunktionen ist
in diesem Fall nur formal.
Im Weiteren werden wir einige Gemeinsamkeiten des Polynomrings K[x] über einem
Körper K mit dem Ring ZZ der ganzen Zahlen herausarbeiten: Beide sind nullteilerfrei (Übung), es gibt eine Division mit Rest und man kann den Euklidischen
Algorithmus zur Berechnung des größten gemeinsamen Teilers benutzen.
1.4.6 Satz (Divisionsalgorithmus) Seien p(x), q(x) ∈ K[x]\{0}, dann existieren
eindeutig bestimmte Polynome s(x), r(x) ∈ K[x], so dass p(x) = s(x) · q(x) + r(x)
und grad(r) < grad(q).
Beweis. Sei grad(p) = n, grad(q) = m und a = pn , b = qm die führenden Koeffizienten. Ist n < m, dann ist die Behauptung trivialerweise erfüllt (s(x) = 0, r(x) =
p(x)). Ist n ≥ m, dann sei c = ab−1 und p0 (x) = p(x)−cxn−m q(x). Offensichtlich ist
grad(p0 ) < grad(p). Wir beweisen die Behauptung mit Induktion nach der Differenz
δ = n − m.
Ist δ = 0, dann erfüllen s(x) = c und r(x) = p0 (x) die Behauptung.
Ist δ > 0, dann existieren nach Induktionsvorraussetzung Polynome s0 (x) und r0 (x),
so dass p0 (x) = s0 (x) · q(x) + r0 (x) und [r0 ] < [q]. Man überprüft leicht, dass nun für
s(x) = cxn−m + s0 (x) und r(x) = r0 (x) die Behauptung des Satzes erfüllt ist.
1.4.7 Beispiel p(x) = 6x4 + 2x3 − 4x2 + 3x + 5, q(x) = 2x2 + 1 ∈ IR[x].
p(x) = 3x2 (2x2 + 1)+ p0 (x) wobei p0 (x) = 2x3 − 7x2 + 3x + 5
p0 (x) = 2x(2x2 + 1)+ p00 (x) wobei p00 (x) = −7x2 + x + 5
p00 (x) = − 72 (2x2 + 1)+ r(x)
wobei
r(x) = x + 17
2
Daraus ergibt sich: p(x) = (3x2 + 2x − 27 )(2x2 + 1) + x +
17
2 .
Basierend auf dem Divisionsalgorithmus kann nun auch für Polynome der Euklidische Algorithmus (siehe Seite 2) zur Berechnung des größten gemeinsamen Teilers
angewendet werden (ein gemeinsamer Teiler p(x) ist ggT(q(x), q 0 (x)), falls jeder
andere gemeinsamer Teiler von q(x) und q 0 (x) auch Teiler von p(x) ist). Um ein
eindeutiges Ergebnis zu erhalten, kann man zusätzlich fordern, dass der ggT normiert ist.
1.4.8 Definition a ∈ K heißt Nullstelle des Polynoms p(x), falls pf (a) = 0.
1.4.9 Lemma
1. a ∈ K ist genau dann Nullstelle von p(x), wenn ein q(x) ∈
K[x] existiert, so dass p(x) = q(x) · (x − a).
2. Ist p nicht das Nullpolynom, so hat p höchstens grad p viele verschiedene
Nullstellen.
Beweis.
1. Die Richtung ⇐ ist klar. Nach Satz 1.4.6 gibt es s, r ∈ K[x] mit p(x) =
s(x)·(x−a)+r(x). Weil a Nullstelle ist, gilt 0 = f (a) = s(a)(a−a)+r(a), also
r(a) = 0. Dass r das Nullpolynom ist, folgt nun aus grad r < grad(x − a) = 1.
Algebra: Polynome
21
2. Vollständige Induktion.
1.4.10 Definition a ∈ K heißt k-fache Nullstelle des Polynoms p(x), falls q(x) ∈
K[x] existiert, so dass p(x) = q(x) · (x − a)k und q(a) 6= 0.
Wir kommen nun einem Analogon zu den Primzahlen. Das Einselement in K[x] ist
das Polynom p1 (x) = 1 (1 ∈ K). Ein Polynom p(x) ∈ K[x] hat genau dann ein
multiplikatives Inverses, wenn grad p = 0, d.h. p(x) = a ∈ K \ {0}. Die invertierbaren Polynome werden Einheiten von K[x] genannt. Ein Polynom p(x) heißt Teiler
von q(x), wenn ein p0 (x) existiert, so dass q(x) = p(x) · p0 (x). Sind dabei weder p(x)
noch p0 (x) Einheiten, dann nennt man sie echte Teiler. Hat ein Polynom p(x) mit
grad p ≥ 1 keinen echten Teiler, dann wird es irreduzibel genannt.
1.4.11 Lemma Jedes Polynom vom Grad 1 ist irreduziblel. Über IR hat jedes irreduzible Polynom Grad höchstens 2.
1.4.12 Satz Sei p(x) ∈ K[x], dann gibt es eine eindeutige Zerlegung
p(x) = a · p0 (x) · p00 (x) · · · p(k) (x)
wobei a ∈ K und p0 (x), . . . , p(k) (x) irreduzible, normierte Polynome aus K[x] sind.
Leider gibt es zur Berechnung dieser Zerlegung keine zufriedenstellende algorithmische Lösung (ebenso wie bei der Primfaktorzerlegung in ZZ!). Immerhin haben wir
den Divisionsalgorithmus.
Pn
Zur effizienten Auswertung eines Polynoms p(x) = i=0 pi xi an einer Stelle a gibt
es die Horner–Regel:
p(a) = p0 + a(p1 + a(p2 + a(. . . (pn−1 + apn )) . . .)))
Aufgaben
1. Zeige, dass die Abbildung ·f , die jedem Polynom seine Polynomabbildung
zuordnet, ein Homomorphismus ist.
2. Zeige, dass der Polynomring K[x] über einem Körper K nullteilerfrei ist.
3. Berechne ggT(x4 − 2x2 + 1, x4 + 4x3 + 6x2 + 4x + 1).
22
Diskrete Mathe für Informatiker, Sommer 2000
1.5
Rückblick
Wie behält man den Überblick über den behandelten Stoff? Natürlich muss man sich
nicht jedes Detail merken, aber die wichtigen Dinge sollte man im Kopf behalten.
Was aber ist wichtig? Es folgt eine Liste mit den Sätzen und Konzepten, die ich
für die wichtigsten halte, und zwar wichtig in dem Sinn, dass man sie früher oder
später wirklich braucht.
Eine ziemlich gute Faustregel ist: Alles, was einen Namen hat, ist wichtig. (Euklidischer Algorithmus, Chinesischer Restsatz, Gruppen, . . . )
1. Kongruenzen
• Mit Kongruenzen rechnen können
• Kongruenzrealation, Äquivalenzrelationen
• Euklidischer Algorithmus
• Satz 1.1.9 und ganz besonders die Folgerung daraus
• Aussage des Chinesischen Restsatzes
• Idee der Public Key Kryptographie
2. Gruppen
• Gruppenaxiome, Sinn von Axiomensystemen
• Beispiele von Gruppen, besonders ZZm und ZZp
• Definition Untergruppe und Untergruppenkriterium
• Idee und Definition von Homomorphismus, Isomorphismus
• Kern und Bild eines Homomorphismus
• Permutationen, Zyklen, Vorzeichen
3. Körper
• Beispiele von Körpern und Ringen, besonders ZZm und ZZp
• Beispiele nicht nullteilerfreier Ringe
4. Polynome
• Unterschied Polynom und Polynomfunktion
• Nullstellen
• Euklidischer Algorithmus (Polynomdivision)
Kombinatorik: Das Pascalsche Dreieck
2
23
Kombinatorik
Diskrete Mathematik beschäftigt sich vor allem mit endlichen Mengen. Schon im
Kapitel über Algebra haben wir den endlichen Fall immer besonders betont. In diesem Kapitel wird es hauptsächlich um Fragen vom Typ: Auf wie viele Arten kann
”
man . . .“ gehen, was im Extremfall heißen kann: Kann man . . . überhaupt?“ Um
”
vernünftig über solche Fragen reden zu können, bilden wir die Menge der Objekte,
die uns interessieren, und fragen nach ihrer Mächtigkeit.
Weil die Kombinatorik von den Fragestellungen etwas anders ist als der Rest der
Mathematik – ein untrügliches Zeichen dafür ist, dass man viele kombinatorische
Problemstellungen auch Nichtmathematikern erklären kann – haben sich einige spezielle Regeln herausgebildet, die alle ganz klar sind, sobald man sie einmal gesehen
hat, auf die man aber erst einmal kommen muss. Um dieses Kapitel nicht mit einer
Liste dieser Regeln zu beginnen, behandeln wir sie dann, wenn wir sie brauchen. Es
handelt sich um die Gleichheitsregel 2.1.4, die Summenregel 2.1.5, die Produktregel 2.1.6, die Regel vom zweifachen Abzählen 3.1.7, das Schubfachprinzip 2.3.2 und
das Prinzip der Inklusion–Exklusion 2.3.1.
2.1
Das Pascalsche Dreieck
1
1
1
1
1
1
1
1
1
8
6
15
1
4
10
20
35
56
1
3
10
21
28
..
.
3
5
7
2
4
6
1
5
15
35
70
..
.
1
1
6
21
56
1
7
28
1
8
1
..
.
Dieses Zahlenschema heißt das Pascalsche7 Dreieck. Man erhält es, indem man
ganz oben eine 1 hinschreibt und immer in die Mitte unter zwei Zahlen deren
Summe. Zahlen außerhalb des Dereiecks zählen als Null, auch wenn wir sie nicht
hinschreiben. Dieses Dreieck hat viele bemerkenswerte Eigenschaften. Die äußeren
Zahlen sind alle 1, in der nächsten Diagonalen stehen 1, 2, 3, 4, 5, . . . , es hat eine
Symmetrieachse. Wenn man alle Zahlen in einer Zeile aufsummiert, erhält man eine Potenz von 2, und wenn man abwechselnd + und − rechnet, dann erhält man
0 (außer ganz oben). Einige dieser Eigenschaften mögen offensichtlich sein, andere
sind es sicherlich nicht.
Um das Dreieck mathematisch behandeln zu können gehen wir so vor:
7 Blaise Pascal (1623–1662) war ein mathematisches Wunderkind“: Sein Vater wollte ihn von
”
der Mathematik fernhalten, doch das Genie ließ sich nicht beirren. Sein mathematisches Leben war
fruchtbar, aber kurz; seine Schwester berichtet: Als er noch keine 24 Jahre alt war, sandte ihm
die göttliche Vorsehung einen Anlass, der ihn nötigte fromme Bücher zu lesen; und Gott erleuchtete ihn durch diese heilige Lektüre dermaßen, dass er vollkommen einsah, dass die christliche
Religion uns verpflichtet nur für Gott zu leben und kein anderes Ziel zu haben als nur ihn; und
diese Wahrheit erschien ihm so einleuchtend, so notwendig und so nützlich, dass sie allen seinen
Forschungen ein Ende machte.
24
Diskrete Mathe für Informatiker, Sommer 2000
1. Wir schreiben
k
n
0
1
2
3
4
0
1
1
1
1
1
1
2
3
4
1
2
3
4
1
3
6
1
4
1
2. Benennen der Einträge: Wir können nun die einzelnen Einträge des Dreiecks
mit Hilfe
der Zeilennummer n und Spaltennummer k identifizieren. Wir schreiben nk . Zum Beispiel ist 42 = 6. Die Einträge im Pascalschen Dreieck heißen
Binomialkoeffizienten.
3. Beschreiben der Einträge: Ganz oben steht eine 1, also 00 = 1. Einträge
außerhalb“ des Dreiecks sind Null, also nk = 0 wenn n < 0, k < 0 oder
”
k > n. Weiter ist jeder
Summe
von zwei Einträgen in der Zeile
Eintrag
die
n−1
darüber, nämlich nk = n−1
+
.
Es
ist
wirklich bemerkenswert, dass
k
k−1
diese Gleichung das ganze Dreieck eindeutig bestimmt.
Eine Beschreibung dieser Art, wo man sich auf schon vorher berechnete Werte
bezieht, heißt Rekursion. Das einfachste Beispiel einer Rekursion ist die Definition
der Fakultät: Die Regeln 0! = 1 und (n + 1)! = (n + 1) · n! erlauben uns, n! für jede
Zahl n auszurechnen, z.B. ist 4! = 4·3! = 4·3·2! = 4·3·2·1! = 4·3·2·1·0! = 4·3·2·1·1.
Rekursive Definitionen sind oft sehr naheliegend und einfach, aber
es kann mühsam
sein, sie im konkreten Fall anzuwenden. Was zum Beispiel ist 56
9 ? Zum Glück gibt
es eine Abkürzung.
n!
2.1.1 Lemma Für n > 0 und 0 ≤ k ≤ n ist nk = k!(n−k)!
.
Beweis. Wenn man eine Rekursion für einen Beweis ausnutzt, redet man vom Prinzip der vollständigen Induktion. Damit man nicht durcheinanderkommt, ist es
hilfreich, ein festes Schema einzuhalten.
Induktionsanfang
Wenn n = 0 ist, dann muss k = 0 sein und die Aussage ist
1
richtig: 00 = 1 = 1·1
.
Induktionsvoraussetzung Wir
an, die Aussage stimmt für ein bestimm nehmen
`!
für 0 ≤ k ≤ `.
tes n, z.B. für `. Also k` = k!(`−k)!
Induktionsbehauptung Für n = ` + 1 stimmt die Aussage auch, also `+1
=
k
(`+1)!
k!(`+1−k)! für 0 ≤ k ≤ ` + 1.
Induktionsbeweis Falls k = 0 oder k = ` + 1 ist, ist `+1
= 1 =
k
behauptet. Und wenn 0 < k < ` + 1, dann ist
`+1
`
`
=
+
k
k
k−1
`!
`!
=
+
k!(` − k)! (k − 1)!(` − k + 1)!
(` + 1 − k)`! + k`!
=
k!(` + 1 − k)!
(` + 1)!
=
k!(` + 1 − k)!
(`+1)!
(`+1)! ,
wie
Die erste Umformung beruht auf der definierenden Gleichung, die zweite auf
der Induktionsvoraussetzung, und der Rest ist simples Umformen.
Kombinatorik: Das Pascalsche Dreieck
25
Induktionsschluss Die Aussage gilt für alle n ≥ 0.
Induktionsbeweise sind sozusagen rekursive Algorithmen zur Erzeugung von Beweisen. Wenn man die zu beweisende Aussage An für eine bestimmte Zahl n zeigen
will, z.B. für n = 5, dann erhält man A0 ⇒ A1 , A1 ⇒ A2 , A2 ⇒ A3 , A3 ⇒ A4 und
A4 ⇒ A5 . Insgesamt kann man schließen A0 ⇒ A1 ⇒ A2 ⇒ A3 ⇒ A4 ⇒ A5 , und
weil A0 wahr ist (Induktionsanfang), ist also auch A5 wahr.
2.1.2 Lemma
1.
n X
n
k=0
2.
n
X
k=0
3.
(
1
k n
(−1)
=
k
0
m X
n
n=0
k
=
k
= 2n
wenn n = 0
sonst
m+1
k+1
Beweis. Vollständige Induktion. Am Ende dieses Abschnitts können wir diese Formeln auch eleganter beweisen.
Wir kommen nun zu einem Thema, das auf den ersten Blick nichts mit dem Pascalschen Dreieck zu tun hat. Wir sind auf einer Party mit 18 Gästen und es gibt
Champagner. Wenn keiner der Gäste weiß, dass man mit Champagner nicht anstößt:
Wie oft klingen die Gläser?
Weil wir ja Mathematiker sind, machen wir es gleich abstrakt: Gegeben eine Menge M mit n Elementen (die Gäste). Wie viele k-elementige Teilmengen (kurz kMengen) hat M ? Nennen wir diese Zahl t(n, k). Im Beispiel suchen wir die 2elementigen Teilmengen, weil ja immer zwei Menschen zu einem Anstoßen gehören.
Nun, wir stellen eine Liste mit den ersten Werten auf:
k
n
0
1
2
3
4
0
1
1
1
1
1
1
2
3
4
1
2
3
4
1
3
6
1
4
1
Man denkt sofort: Das ist doch das Pascalsche Dreieck! Wir haben also eine Vermutung, und die wollen wir auch gleich beweisen.
2.1.3 Satz Die Anzahl der k-Teilmengen einer n-Menge M ist
n
k
.
Beweis. Variante 1: t(n, k) erfüllt die Pascal–Rekursion.
Der Anfang geht so: n = 0, es gibt nur eine nullelementige Menge, nämlich die leere
Menge. Und die hat nur eine Teilmenge, nämlich sich selbst. Also ist t(0, 0) = 1 und
t(0, k) = 0 für k 6= 0.
Wenn n > 0 ist, dann gibt es ein Element a ∈ M . Die k-Teilmengen von M können
nun a enthalten oder auch nicht. Von denen, die a enthalten, gibt es t(n − 1, k − 1)
viele; und von denen, die a nicht enthalten, gibt es t(n − 1, k) viele. Also ist t(n, k) =
t(n − 1, k − 1) + t(n − 1, k).
n!
Variante 2: t(n, k) = k!(n−k)!
Wir stellen uns vor, dass wir sukzessive k Elemente aus M auswählen. Für das
26
Diskrete Mathe für Informatiker, Sommer 2000
erste Element gibt es n Möglichkeiten, für das zweite n − 1, für das dritte n − 2,
usf. Für das letzte auszuwählende Element, das k-te, gibt es dann noch n − k + 1
Möglichkeiten. Als Zwischenergebnis halten wir fest: Die Anzahl der Möglichkeiten,
sukzessive k Elemente aus M auszuwählen, ist
n(n − 1)(n − 2) · · · (n − k + 1) =
n!
(n − k)!
Beispiel: n = 4, M = {a, b, c, d}, k = 2. Dann gibt es die 12 Möglichkeiten ab, ac,
ad, ba, bc, bd, ca, cb, cd, da, db, dc. Einige von diesen 12 Möglichkeiten liefern aber
die gleichen 2-Teilmengen von M . Genauer: Wir erhalten jede k-Teilmenge auf k!
Arten, denn die k Elemente können in unserer Auswahlprozedur in jeder möglichen
n!
, also
Reihenfolge (Permutation) vorkommen. Deshalb ist k! · t(n, k) = (n−k)!
t(n, k) =
der Binomialkoeffizient
n
k
.
n!
k!(n − k)!
n!
Übrigens: Der Ausdruck n(n−1)(n−2)···(n−k+1)
eignet sich besser als k!(n−k)!
, wenn
k!
n
man k ausrechnen will. Warum? Wie kann man die Symmetrie ausnutzen um
noch effizienter zu werden?
Im vorangegangenen Beweis haben wir ein paar bemerkenswerte Regeln ganz selbstverständlich benutzt. Wir machen uns diese Regeln bewusst, damit wir genauer
verstehen, was wir tun, und damit wir die Regeln auch in Situationen anwenden
können, in denen sie vielleicht nicht ganz so offensichtlich sind.
2.1.4 Gleichheitsregel Wenn zwischen zwei Mengen S und T eine bijektive Abbildung existiert, dann ist |S| = |T |
Die Gleichheitsregel haben wir in der ersten Variante des Beweises benutzt, als wir
festgestellt haben, dass die Anzahl der k-Teilmengen von M gleich der Anzahl der
(k − 1)-Teilmengen von M \ {a} ist.
2.1.5 Summenregel Ist S die Vereinigung von k paarweise disjunkten, endlichen
Mengen S1 , S2 , . . . , St , dann ist |S| = |S1 | + |S2 | + . . . + |St |.
Die Summenregel haben wir auch benutzt: Sei S die Menge aller k-Teilmengen von
M , S1 die Menge der k-Teilmengen von M , die a enthalten, und S2 die der kTeilmengen von M , die a nicht enthalten. Dann ist S = S1 ∪ S2 und S1 ∩ S2 = ∅
und folglich |S| = |S1 | + |S2 |.
2.1.6 Produktregel Ist S das kartesische8 Produkt S1 × S2 zweier endlicher Mengen S1 und S2 , dann gilt |S| = |S1 | · |S2 |. (Analog für mehr als zwei Mengen Si .)
Das kartesische Produkt ist eine Datenstruktur, die in vielen Programmiersprachen
eine Entsprechung hat: In Modula heißt sie record, in C struct, in C++ und
8 Das kartesische Produkt von zwei Mengen S und S ist die Menge aller Paare, wo das erste
1
2
Element aus S1 und das zweite aus S2 kommt. (Das kann man auf beliebig viele Mengen verallgemeinern.) Der Name kartesisch“ hat eine Geschichte: René Descartes, Philosoph und Mathema”
tiker des 17. Jahrhunderts, hat den systematischen Gebrauch von Koordinaten in der Geometrie
eingeführt. Koordinaten im k-dimensionalen Raum sind natürlich k-Tupel (in der Ebene: Paare,
im dreidimensionalen: Tripel) von Zahlen. Und weil es damals üblich war, seinen Namen zu latinisieren, gab sich Descartes den Namen Cartesius. Ihm zu Ehren spricht man von kartesischen
Koordinaten, und vom kartesischen Produkt.
Kombinatorik: Das Pascalsche Dreieck
27
Java class. Ein array ist fast das gleiche, nur dass alle Einträge vom gleichen Typ
sein müssen, d.h. die Si sind alle gleich. (Allerdings kann ein array keine eigenen
Funktionen mitbringen.)
Die Produktregel haben wir gleich in einer Variation benutzt: Wenn man ein Objekt in k Schritten konstruiert, und im i-ten Schritt hat man die Wahl zwischen
si Möglichkeiten, dann kann man das Objekt insgesamt auf s1 · s2 · · · sk Arten
konstruieren. Man kann sich diese Regel sehr schön mit einem Baumdiagramm veranschaulichen. Das folgende Diagramm veranschaulicht die Konstruktion der sechs
Permutationen von {a, b, c}.
∅
| a
b
c
/ \ / \
/ \
b c a c a b
| | | | | |
c b c a b a
1. Schritt
2. Schritt
3. Schritt
Der folgende Satz erklärt, warum die Binomialkoeffizienten so heißen.
2.1.7 Satz (Binomialsatz) Sind x und y beliebige Zahlen (mit ein wenig Umsicht
kann man Elemente eines kommutativen Rings zulassen) und ist n ∈ IN, so ist
n X
n k n−k
(x + y)n =
x y
k
k=0
Daher der Name: Die Binomialkoeffizienten sind also die Koeffizienten, wenn man
einen binomischen Ausdruck ausrechnet.
Beweis. Man kann diesen Satz mit vollständiger Induktion beweisen. Viel instruktiver ist aber folgender Beweis: Wenn man
(x + y)n = (x + y) · (x + y) · · · (x + y)
|
{z
}
n mal
mittels des Distributivgesetzes ausmultipliziert, dann erhält man eine Summe, in
der jeder Summand ein Produkt von n Faktoren x und y ist. Weil wir voraussetzen,
dass auch das Kommutativgesetz der Multiplikation gilt, können wir alle Terme mit
gleich vielen x-en zusammenfassen, d.h. es ist schon klar, dass
(x + y)n =
n
X
f (n, k)xk y n−k
k=0
ist. Zur Bestimmung von f (n, k) überlegen wir uns, dass der Term xk y n−k immer
dann zustande kommt, wenn wir aus k der Faktoren (x + y) den
Summanden x
wählen und aus den übrigen Faktoren das y. Also ist f (n, k) = nk und der Satz ist
bewiesen.
Mit diesem Satz können wir die ersten beiden Teile von Lemma 2.1.2 ganz einfach
n
n
P
P
n
n
einsehen:
(−1)n nk = (1 − 1)n . Noch instruktiver sind
k = (1 + 1) und
k=0
k=0
aber die folgenden Beweise der drei Formeln:
Pn
n
n
1.
k=0 k zählt alle Teilmengen einer n-elementigen Menge: 0 die leere Menge, n1 die Teilmengen, die nur ein Element enthalten, usw. (vgl. die Summenregel!) Insgesamt besitzt eine n-elementige Menge aber genau 2n Teilmengen,
28
Diskrete Mathe für Informatiker, Sommer 2000
das folgt aus der Produktregel: Jedes Element kann in der Teilmenge drin sein
oder nicht, also gibt es 2 · 2 · · · 2 Möglichkeiten, eine Teilmenge auszuwählen.
Pn
k n
2.
k=0 (−1) k ist die Anzahl der geraden Teilmengen einer n-elementigen
Menge minus die Anzahl der ungeraden Teilmengen. Die Formel behauptet
also, dass jede nichtleere Menge gleich viele gerade wie ungerade Teilmengen
besitzt. Wieso stimmt das?
3. Die Summe beschreibt folgende Situation: Gegeben Mengen M0 , M1 , M2 , . . . ,
Mm . Wir suchen uns eine der Mengen Mi aus und wählen aus ihr k Elemente.
Die Verbindung zur rechten Seite, wo (k + 1)-Teilmengen gezählt werden,
erhalten wir, indem wir i + 1 zu den Elementen dazunehmen. Dass das eine
Bijektion beschreibt, muss noch gezeigt werden!
Aufgaben
1. Berechne
16
4
und
8
2. Berechne (x − 1) .
17
12
.
3. Beim Lotto 6 aus 49“ werden 6 Zahlen zwischen 1 und 49 zufällig gezogen. Ein
”
Tipp besteht ebenfalls aus 6 Zahlen in diesem Bereich. Wie viele verschiedene
Tipps sind möglich? Berechne mit Hilfe der Formel
Wahrscheinlichkeit =
günstige Fälle
mögliche Fälle
die Wahrscheinlichkeit für 6 Richtige und die für 5 Richtige, wenn man einen
Tipp abgibt.
4. Andrea, Birgit, Caroline und Denise spielen ein Tischtennis–Doppel. Die Mannschaften werden ausgelost. Wie groß ist die Wahrscheinlichkeit, dass Andrea
und Birgit zusammen spielen?
p
5. Zeige: Wenn p eine Primzahl ist, dann ist
durch p teilbar, außer wenn
k
k = 0 oder k = p.
2.2
Partitionen und erzeugende Funktionen
Gegeben ein Objekt, auf wie viele Arten lässt es sich aus kleineren Objekten der
gleichen Sorte zusammensetzen? Wir untersuchen diese Frage für Mengen und für
Zahlen.
Mengenpartitionen
2.2.1 Definition Eine k-Partition einer Menge M ist eine Zerlegung von M in k
disjunkte Teilmengen Mi mit M = M1 ∪ M2 ∪ . . . ∪ Mk und Mi ∩ Mj = ∅ für i 6= j.
Beiepiel: Eine Partition von S = {1, 2, 3, 4, 5, 6} ist z.B. S1 = {1, 4}, S2 = {2, 3, 6},
S3 = {5}. Partitionen entsprechen genau den Äquivalenzrelationen.
2.2.2 Satz Die Anzahl Sn,k der Partitionen einer n-Menge in k Teile erfüllt die
Rekursion
Sn,1 = 1, Sn,n = 1
Sn,k = Sn−1,k−1 + kSn−1,k (2 ≤ k ≤ n − 1)
Die Zahlen Sn,k heißen Stirling Zahlen (der zweiten Art).
Kombinatorik: Partitionen und erzeugende Funktionen
29
Beweis. Skizze: Die Bedingung 2 ≤ k ≤ n−1 impliziert, dass n > 2 ist, also M 6= ∅.
Sei a ∈ M . Der Summand Sn−1,k−1 zählt die Partitionen von M , wo {a} eine der
Teilmengen ist. Der Summand kSn−1,k zählt die Partitionen, wo a nicht in einer
Teilmenge für sich allein steckt.
Die Stirling Zahlen schreibt man
alkoeffizienten:
k
n
1
2
3
4
5
bequem in genau so eine Tabelle wie die Binomi1
1
1
1
1
1
2
3
4
5
1
3
7
15
1
6
25
1
10 1
Zahlpartitionen und erzeugende Funktionen
Für Zahlen heißt unsere Fragestellung: Auf wie viele Arten kann man eine Zahl n
als Summe schreiben? Wir müssen dazu sagen, ob 2 + 3 und 3 + 2 als verschiedene
Darstellungen zählen sollen oder nicht.
2.2.3 Definition Eine k-Partition einer Zahl n ∈ IN ist eine Zerlegung von n in
k Summanden n = n1 + · · · + nk mit ni ∈ IN, ni > 0. Wenn es auf die Reihenfolge der Summanden ankommen soll (2 + 3 und 3 + 2 gelten als verschieden), dann
sprechen wir von geordneten, ansonsten von ungeordneten Zahlpartitionen. Die
Anzahl aller ungeordneten Partitionen von n (mit beliebiger Anzahl von Summanden) bezeichnen wir mit zn .
Geordnete Zahlpartitionen lassen sich relativ leicht in den Griff bekommen.
2.2.4 Lemma Die Anzahl der geordneten k-Partitionen von n ist
n−1
k−1
.
Beweis. Wir konstruieren eine Bijektion von der Menge S der geordneten k-Zahlpartitionen auf die Menge T der (k − 1)-Untermengen von {1, 2, . . . , n − 1} durch:
n = n1 + n2 + . . . + nk
7→
{n1 , n1 + n2 , . . . , n1 + n2 + . . . nk−1 }
(d.h. wir schreiben statt der Summanden die Zwischensummen auf, z.B. 2 + 4 + 1 7→
{2, 6}; die k-te Summe ist immer n, deshalb schreibt man sie nicht mit auf.) Die
Bijektivität dieser Abbildung kann durch die Konstruktion der Umkehrabbildung
leicht nachgewiesen werden, und die Behauptung folgt nun aus der Gleichheitsregel.
Für die Untersuchung ungeordneter Zahlpartitionen brauchen wir als Hilfsmittel erzeugende Funktionen. In Abschnitt 1.4 haben wir gesehen, dass Polynome abbrechende Zahlenfolgen sind, die man addieren und multiplizieren darf (Polynomring).
Wir erweitern dieses Konzept und lassen auch Polynome mit unendlichem Grad“
”
zu:
2.2.5 Definition Ein Objekt der Form a0 +a1 x+a2 x2 +a3 x3 +· · ·+ai xi +· · · heißt
(formale) Potenzreihe und ist zunächst einmal nichts anderes als eine unendliche
Folge (a0 , a1 , . . .). Formale Potenzreihen können addiert und multipliziert werden
wie Polynome.
30
Diskrete Mathe für Informatiker, Sommer 2000
Das Wort formal“ soll darauf hinweisen, dass man nicht unbedingt etwas einsetzen
”
kann für x. Ein Beispiel: Sei P (x) = 1 + x + x2 + x3 + · · · . Setzt man z.B. 1 ein,
so erhält man P (1) = 1 + 1 + 1 + · · · = ∞, also keine Zahl. Mit größeren Zahlen
kommt natürlich auch ∞ heraus. Alle Zahlen x mit |x| < 1 kann man einsetzen: Es
1
ergibt sich dann P (x) = 1−x
, z.B. P ( 21 ) = 2. Das ist eine wichtige Reihe aus der
Analysis, die Harmonische Reihe. Aber wie gesagt, wir wollen nichts einsetzen,
wir sind nicht an Funktionswerten interessiert, sondern nur an den Koeffizienten
der Potenzreihe. Wir lassen uns aber von obiger Formel inspirieren und berechnen
(1 − x) · (1 + x + x2 + x3 + · · · ) =
1 + x + x2 + x3 + x4 + · · ·
− x − x2 − x3 − x4 − · · ·
=1
1
Wir schreiben deshalb (1 + x + x2 + x3 + · · · ) = 1−x
. Das ist ein Punkt, an dem sich
Mathematikstudenten sehr unwohl fühlen: Darf ich das? Wenn ich (1 + x + x2 + · · · )
als Funktion ansehe, dann stimmt die Gleichheit nur eingeschränkt (nämlich für
1
|x| < 1). Wenn ich aber formal rechne, dann habe ich das Problem, dass 1−x
keine Potenzreihe ist. Uns soll das aber nicht weiter stören, es funktioniert alles
wunderbar. Wir können sogar allgemeiner schreiben:
1
1 + xk + x2k + x3k + x4k + · · · =
1 − xk
Wir sehen uns nun
1
1
1
1
Z(x) =
·
·
·
···
1 − x 1 − x2 1 − x3 1 − x4
genauer an. Frage: Was ist der Koeffizient von xn in Z? Die Antwort ist überraschend, es sei denn man hat die Überschrift dieses Abschnitts gelesen:
2.2.6 Satz Der Koeffizient von xn in Z ist gleich der Anzahl zn der ungeordneten
Partitionen der Zahl n.
Beweis. Um das einzusehen, schreiben wir
Z(x) = (1 + x + x2 + · · · ) · (1 + x2 + x4 + · · · ) · (1 + x3 + x6 + · · · ) · · ·
Wenn wir dieses Produkt ausmultiplizieren, dann wählen wir aus der ersten Klammer einen Term xm1 , aus der zweiten x2m2 , aus der dritten x3m3 , usw., und wir
multiplizieren alle diese Terme miteinander. Diese Wahl trägt genau dann zum Koeffizienten vor xn bei, wenn m1 + 2m2 + 3m3 + · · · = n ist. Also zählt der Koeffizient
von xn , auf wie viele Arten man n in der Form m1 + 2m2 + 3m3 + · · · schreiben
kann. Das ist aber eine Codierung für die Zahlpartition, in der n als Summe von
m1 Einsen, m2 Zweien, m3 Dreien usw. geschrieben wird:
n = 1 + ···1+2 + ···2+3 + ···3+···
| {z } | {z } | {z }
m1 viele
m2 viele
m3 viele
Also ist der Koeffizient von xn in Z gleich der Anzahl der Partitionen der Zahl n.
Ein Beispiel soll diesen abstrakten Beweis etwas anschaulicher machen. z4 = 5
kommt so zustande:
m1 m2 m3 m4
x4 =
Partition
4
0
0
0
1
1 · 1 · 1 ·x4 · · ·
3+1
1
0
1
0
x · 1 ·x3 · 1 · · ·
2+2
0
2
0
0
1 ·x2·2 · 1 · 1 · · ·
2·1 1·2
2+1+1
2
1
0
0 x ·x · 1 · 1 · · ·
1+1+1+1 4
0
0
0 x4·1 · 1 · 1 · 1 · · ·
Man erhält so Z(x) = 1 + x + 2x2 + 3x3 + 5x4 + 7x5 + · · · und kann z.B. z5 = 7
ablesen.
Kombinatorik: Partitionen und erzeugende Funktionen
31
Was können wir mit diesem Satz anfangen? Zuerst einmal ist er natürlich sehr
elegant, weil er zwei Dinge miteinander verknüpft, die auf den ersten Blick nichts
miteinander zu tun haben. Praktisch ist das, weil man über Potenzreihen viel weiß,
das ist ein klassisches Gebiet der Mathematik. Es gibt zwar keine geschlossene
Formel für die Zahlen zn , aber mit diesem Satz in der Tasche könnten wir zu einem
Analytiker gehen, der uns hilft, auch für relativ große Zahlen n das zugehörige zn
zu berechnen. Und außerdem kann man durch eine leichte Abwandlung das folgende
erstaunliche Resultat erhalten:
2.2.7 Satz Die Anzahl un der Partitionen von n in lauter ungerade Summanden
ist gleich der Anzahl vn der Partitionen von n in lauter verschiedene Summanden.
Beispiel: v7 = 5, denn 7 = 6 + 1 = 5 + 2 = 4 + 3 = 4 + 2 + 1.
u7 = 5, denn 7 = 5 + 1 + 1 = 3 + 3 + 1 = 3 + 1 + 1 + 1 + 1 = 1 + 1 + 1 + 1 + 1 + 1 + 1.
Die Beweismethode
wird folgende sein: Wir definieren die formalen Potenzreihen
P∞
U (x) = i=0 ui xi und analog V (x) und zeigen U (x) = V (x). Die Potenzreihen U
und V heißen erzeugende Funktionen:
2.2.8 Definition Sei (a0 , a1 , a2 , a3 , . . .) eine Zahlenfolge. Die erzeugende Funktion der ai ist die formale Potenzreihe
A(x) =
∞
X
ai xi
i=0
Beweis. (Satz 2.2.7) Sei U (x) =
ist
P∞
i=0
ui xi die erzeugende Funktion der ui . Dann
U (x) = (1 + x + x2 + · · · ) · (1 + x3 + x6 + · · · ) · (1 + x5 + x10 + · · · ) · · ·
Die Begründung ist analog zu der im vorangegangenen Beweis und eine Übung.
P∞
Sei V (x) = i=0 vi xi die erzeugende Funktion der vi . Dann ist
V (x) = (1 + x) · (1 + x2 ) · (1 + x3 ) · · ·
Die Begründung ist analog zu der im vorangegangenen Beweis und geht so: Wenn
man das Produkt ausmultipliziert, dann wählt man aus jedem Faktor (1 + xk ) einen
der beiden Summanden, 1 oder xk . Die Wahl von 1 bedeutet (mit der Schreibweise
aus dem Beweis von Satz 2.2.6) mk = 0, die Wahl von xk bedeutet mk = 1.
Wir zählen also gerade die Partitionen, wo die mk alle 0 oder 1 sind, wo also alle
Summanden verschieden sind.
Nun zur Gleichheit: Wir wissen schon, dass wir schreiben können:
U (x) =
1
1
1
·
·
···
1 − x 1 − x3 1 − x5
Nun benutzen wir zum Umformen von V (x) die altbekannte Formel 1 + xk =
Wir erhalten damit
V (x) =
1−x2k
.
1−xk
1 − x2 1 − x4 1 − x6 1 − x8 1 − x10
·
·
·
·
···
1 − x 1 − x2 1 − x3 1 − x4 1 − x5
Wir sehen, dass wir alle Terme im Zähler wegkürzen können und im Nenner nur die
mit ungeradem Exponenten übrig bleiben. Also ist U (x) = V (x).
32
Diskrete Mathe für Informatiker, Sommer 2000
Erzeugende Funktionen sind also eine Methode um Zahlenfolgen besser zu verstehen. Die Idee ist, unendlich viele Glieder in einem Objekt zu codieren.
Zum Abschluss dieses theoretischen Abschnitts machen wir noch was anschauliches.
2.2.9 Definition Das Ferrers-Diagramm einer (ungeordneten) Zahlpartition n =
a1 + a2 + · · · + ak ist das Diagramm mit a1 Punkten in der ersten Zeile, a2 Punkten
in der zweiten, . . . und ak Punkten in der k-ten Zeile.
• •
Beispiel: 7 = 4 + 2 + 1 hat das Ferrers-Diagramm • •
•
• •
Auch mit diesem einfachen Konzept kann man interessante Ergebnisse beweisen.
2.2.10 Satz Die Anzahl der Partitionen von n mit größtem Summanden r ist gleich
der Anzahl der Partitionen von n mit genau r Summanden.
Beweis. Wir definieren eine Bijektion zwischen den Ferrers-Diagrammen für die
eine Sorte Partitionen (größter Summand ist r) und den Ferrers-Diagrammen für
die andere Sorte Partitionen (genau r Summanden). Die Bijektion ist einfach die
Spiegelung an der Diagonalen. Wir sehen uns als Beispiel den Fall n = 7 und
r = 4 an: Diagramme, die übereinander stehen, gehen durch Spiegelung auseinander
hervor.
• • • •
• • • •
• • • •
• • •
• •
•
•
•
•
7=4+3
7=4+2+1
7=4+1+1+1
• •
• •
• •
•
7=2+2+2+1
• • •
• • • •
• •
•
•
•
•
•
7=3+2+1+1 7=4+1+1+1
Das folgende Ergebnis ist recht amüsant, und der Beweis ist noch unterhaltsamer:
Wir sehen uns die Partitionen an, bei denen sich bei Spiegelung an der Diagonalen
(wie im Beweis oben) nichts ändert.
2.2.11 Satz Die Anzahl der Partitionen einer Zahl n, wo das zugehörige FerrersDiagramm symmetrisch zur Diagonalen ist (es heißt dann selbst–konjugiert), ist
gleich der Anzahl der Partitionen von n, wo alle Summanden ungerade und alle
verschieden sind.
Der Beweis ist eine Übung; einen entscheidenden Hinweis gibt die folgende Skizze:
Kombinatorik: Partitionen und erzeugende Funktionen
33
Funktionen zählen
Eine allgemeine Zählaufgabe ist die folgende: Seien N und R zwei Mengen, wie viele
Abbildungen f : N → R gibt es? Wir stellen uns die Situation so vor: Die Elemente
aus N sind Kugeln, die Elemente von R sind Schubladen. Auf wie viele Arten kann
man die Kugeln in die Schubladen verteilen? Diese Zählaufgabe ist so allgemein,
weil es viele Varianten gibt.
Die Frage im vorigen Absatz ist nicht eindeutig gestellt: Sind die Kugeln unterscheidbar (etwa bunte Murmeln) oder nicht (wie z.B. Elektronen)? Sind die Schubladen
unterscheidbar (die Sitze in der Oper sind nummeriert) oder nicht (wie im Kino)?
Stellen wir zusätzliche Bedingungen an die Funktion f , etwa dass sie bijektiv sein
soll? Wir sehen uns einige Fälle an. Im Rest des Abschnitts ist |N | = n und |R| = r.
Seien zunächst die Elemente aus N und aus R alle unterscheidbar. Die Anzahl der
Abbildungen von N nach R ist rn : Für jedes Element aus N gibt es r Möglichkeiten
für den Funktionswert. Die Produktregel liefert das Ergebnis.
Die bijektiven Abbildungen (d.h. in jeder Schublade liegt genau ein Element
aus N ) entsprechen gerade den Permutationen. Es gibt entweder gar keine, wenn
nämlich n 6= k ist, oder n! viele.
Wir verlangen nun, dass f injektiv ist; in unserem Bild mit den Schubladen heißt
das, dass in keiner Schublade mehr als eine Kugel liegt. Ist n > r, dann gibt es
natürlich keine injektive Abbildung N → R. Ist n ≤ r, dann ist die gesuchte Anzahl
rn = r(r−1)(r−2) · · · (r−n+1). Begründung wie bei den Permutationen: Wenn wir
die Elemente aus N verteilen, dann sind beim ersten Element noch alle r Schubladen
frei, beim zweiten noch r − 1, . . .
Die surjektiven Abbildungen sind die, wo keine Schublade leer bleibt. Wenn wir die
Schubladen für einen Moment als nicht unterscheidbar ansehen, dann entsprechen
die surjektiven Abbildungen von N auf R den r-Partitionen von N , davon gibt es
Sn,r Stück. Wollen wir die Schubladen unterscheiden, dann ist das Ergebnis r!Sn,r .
Die folgende Tabelle gewinnt zwar keinen Preis für besonderen Charme, gibt aber
einen vollständigen Überblick über alle Fälle.
N unterscheidbar
R unterscheidbar
N nicht untersch.
R unterscheidbar
N unterscheidbar
R nicht untersch.
N nicht untersch.
R nicht untersch.
beliebig
injektiv
surjektiv
bijektiv
rn
rn
r!Sn,r
0 oder n!
r
n
n−1
r−1
0 oder 1
n+r−1
r−1
r
P
k=1
r
P
Sn,k
0 oder 1
Sn,r
0 oder 1
Pn,k
0 oder 1
Pn,r
0 oder 1
k=1
Noch ein paar Erläuterungen: Sind Kugeln und Schubfächer nicht unterscheidbar,
dann korrespondieren surjektive Verteilungen zu r-Zahlpartitionen von n; alle Verteilungen können mit der Summenregel über die Klassifizierung nach Anzahl der
belegten Fächer abgezählt werden.
Sind nur die Fächer unterscheidbar, aber nicht die Kugeln, dann korrespondieren
die surjektiven Verteilungen zu geordneten r-Zahlpartitionen von n. Die injektiven
Verteilungen sind durch die Auswahl der n belegten Fächer aus der r-Menge aller
Fächer vollständig charakterisiert. Eine beliebige Abbildung ist durch eine geordnete Summenzerlegung der Form n = n1 + . . . + nr mit ni ∈ ZZ+ charakterisiert. Um
daraus eine r-Zahlpartition im Sinne der Definition zu machen (Zusatzbedingung
34
Diskrete Mathe für Informatiker, Sommer 2000
ni ≥ 1) addiert man zu jedem Summanden eine 1. Damit erhalten wir eine Bijektion auf die Menge der geordneten r-Zahlpartitionen von (n + r). Diese Menge hat
n+r−1
Elemente.
r−1
Aufgaben
1. Beweise direkt (ohne Hilfe der Rekursion)
n−1
Sn,2 = 2
− 1,
Sn,n−1
n
=
2
2. Wie viele Worte der Länge 11 kann man mit den Buchstaben MISSISSIPPI
bilden?
3. Es sei un die Anzahl der Partitionen der Zahl n in lauter ungerade Summanden. Erkläre, dass die erzeugende Funktion U (x) = u0 +u1 x+u2 x2 +u3 x3 +· · ·
sich schreiben lässt als
U (x) =
1
(1 − x)(1 − x3 )(1 − x5 )(1 − x7 ) · · ·
4. Es seien n und r natürliche Zahlen. Beweise mit Hilfe eines Ferrers Diagramms:
Die Anzahl der Partitionen von n mit höchstens r Summanden ist gleich der
Anzahl der Partitionen von n + r mit genau r Summanden.
5. Die Anzahl der Partitionen einer Zahl n, wo das zugehörige Ferrers-Diagramm
symmetrisch zur Diagonalen ist, ist gleich der Anzahl der Partitionen von
n, wo alle Summanden ungerade und alle verschieden sind. Hinweis: Eine
instruktive Skizze befindet sich hinter Satz 2.2.11.
6. Bezeichne die Anzahl der ungeordneten k-Zahlpartitionen der Zahl n mit Pn,k .
Leite folgende Rekursion her: Pn,1 = P n, n = 1 und Pn,k = Pn−k,1 + Pn−k,2 +
Pn−k,3 + . . . + Pn−k,k .
2.3
Das Schubfachprinzip und Inklusion–Exklusion
Inklusion–Exklusion
n Männer haben an der Garderobe ihre Zylinder abgegeben. Bei der Rückgabe
ist die Garderobenfrau nicht ganz bei der Sache und gibt die Zylinder nach dem
Zufallsprinzip zurück. Mit welcher Wahrscheinlichkeit bekommt keiner der Herren
den richtigen Zylinder zurück?
Wir modellieren das Problem so: Jeder Herr hat eine Nummer (z.B. die Garderobenmarke) und sein Zylinder bekommt die gleiche Nummer. Jede Möglichkeit der
Ausgabe der Zylinder entspricht einer Permutation π der Nummern: Herr i erhält
den Hut π(i). Gefragt ist nach der Anzahl der Dérangements, der Permutationen ohne Fixpunkt. (Ein Fixpunkt ist ein i mit π(i) = i, also ein
Snglücklicher, der
seinen eigenen Zylinder zurück bekommt.) Die Anzahl ist n! − | i=1 Fi |, wobei Fi
die Menge der Permutationen ist, die i als Fixpunkt haben. Wie berechnen wir die
Mächtigkeit der Vereinigung?
Die Summenregel macht nur Aussagen über disjunkte Vereinigungen von Mengen.
Will man diese Einschränkung aufheben, so müssen auch die Durchschnitte der zu
vereinigenden Mengen mit berücksichtigt werden. Für nicht disjunkte Mengen A
und B muss man die Regel wie folgt anpassen:
Kombinatorik: Schubfachprinzip und Inklusion–Exklusion
35
|A ∪ B| = |A| + |B| − |A ∩ B|
Die rechte Seite dieser Formel kann wie folgt interpretiert werden: Alle Elemente,
die nur in A oder nur in B liegen, werden einfach gezählt. Alle Elemente aus A ∩ B
werden erst doppelt gezählt und dann einmal abgezogen. Auf analoge Weise kann
man die folgende Formel für die Vereinigung von drei Mengen herleiten:
|A ∪ B ∪ C| = |A| + |B| + |C| − (|A ∩ B| + |A ∩ C| + |B ∩ C|) + |A ∩ B ∩ C|.
Wie es weiter geht, kann man sich denken, für vier Mengen A1 , A2 , A3 und A4 ist
X
X
X
|A1 ∪ A2 ∪ A3 ∪ A4 | =
|Ai | −
|Ai ∩ Aj | +
|Ai ∩ Aj ∩ Ak | − |A1 ∩ A2 ∩ A3 ∩ A4 |
und für noch mehr Mengen ist das größte Problem, wie man es übersichtlich aufschreibt. Wir fragen nach |A1 ∪ . . . ∪ An |. Der Trick,
der die Notation erträglich
T
hält, ist folgender: Wir führen die Schreibweise
Ai ein, wobei I ⊆ {1, 2, . . . , n}
i∈I
eine Indexmenge ist.
2.3.1 Prinzip der Inklusion–Exklusion
[
\ X
n
Aj =
(−1)|I|+1 Ai j=1 I⊆{1,...,n}
i∈I
I6=∅
Beweis. Zum Beweis dieser Formel prüfen wir für jedes Element x ∈
dass sein Beitrag zur rechten Seite der Gleichung 1 ist.
Sn
j=1
Aj nach,
Sei also x ein beliebiges Element aus der Vereinigung, d.h., dass x in einem oder
mehreren der Ai vorkommt. Wir nehmen o.B.d.A.9 an, dass x in den ersten k der
Ai enthalten ist und in den übrigen nicht (x ∈ A1 , A2 , . . . , Ak , x 6∈ Ak+1
T , . . . ,An ).
Das Element x trägt immer dann etwas zum Summanden (−1)|I|+1 i∈I Ai bei,
wenn x in dem Schnitt vorkommt, wenn x also in allen Ai (i ∈ I) enthalten ist. In
diesem Fall ist der Beitrag (−1)|I|+1 .
Nun kommt x aber genau dann in allen Ai mit i ∈ I vor, wenn I ⊆ {1, . . . , k}. Der
Beitrag von x ist
X
I⊆{1,...,k}
I6=∅
|I|+1
(−1)
=
k
X
j=1
X
I⊆{1,...,k}
|I|=j
j+1
(−1)
=−
k X
k
j=1
j
(−1)j
Diese Summe kennen wir aus Lemma 2.1.2 (oder allgemeiner aus dem Binomialsatz 2.1.7): Weil k >0 ist (sonst käme 
x in der Vereinigung ja gar nicht vor), ist
k
X k
das Ergebnis
−
(−1)j − 1 = 1.
j
j=0
Beispiel: Man bestimme die Anzahl der Primzahlen, die ≤ 100 sind.
Für ein beliebiges r ∈ IR sei brc = max{z ∈ ZZ : z ≤
r} (r abgerundet) und dre = min{z ∈ ZZ :
z ≥ r} (r aufgerundet). Für beliebige a, b ∈ ZZ ist ab die Anzahl der Zahlen aus {1, 2, . . . , a}, die
durch b teilbar
sind. Denn wenn a = k · b + r mit r < b, dann sind b, 2b, 3b, . . . , kb durch b teilbar,
und k = ab .
9 O.B.d.A. steht für ohne Beschränkung der Allgemeinheit“. In diesem Fall heißt das: Natürlich
”
könnte x ∈ A2 und A7 sein und in den übrigen Ai nicht. Aber dann nummerieren wir die Ai einfach
um, und nichts wesentliches ändert sich.
36
Diskrete Mathe für Informatiker, Sommer 2000
√
Wir erstellen eine Liste der Primzahlen zwischen 1 und 10 (allgemein zwischen 1 und n): 2, 3, 5, 7.
Es ist klar, dass jede Nicht-Primzahl zwischen 2 und 100 durch mindestens eine dieser Primzahlen
teilbar sein muss. Sei A die Menge der durch 2 teilbaren Zahlen zwischen 3 = 2 + 1 und 100
und B, C, D die analog definierten Mengen für die Teiler 3, 5, 7. Dann ist die Menge der NichtPrimzahlen zwischen 2 und 100 die Vereinigung der Mengen A, B, C und D. Wir kennen die
Anzahlen: |A| = b100/2c − 1, |B| = b100/3c − 1 usw. Außerdem ist A ∩ B die Menge der durch
6 = 2 · 3 teilbaren Zahlen, also |A ∩ B| = b100/6c, |A ∩ B ∩ C| = b100/(2 · 3 · 5)c usw. Durch das
Prinzip der Inklusion–Exklusion erhält man:
= 99
= 99
−
−
+
−
= 99
−
−
Anzahl der Primzahlen in {2, 3, . . . , 100}
|A ∪ B ∪ C ∪ D|
(b100/2c − 1 + b100/3c − 1 + b100/5c − 1 + b100/7c − 1)
(b100/(2 · 3)c + b100/(2 · 5)c + b100/(2 · 7)c
+b100/(3 · 5)c + b100/(3 · 7)c + b100/(5 · 7)c)
(b100/(2 · 3 · 5)c + b100/(2 · 3 · 7)c + b100/(2 · 5 · 7)c
+b100/(3 · 5 · 7)c) + b100/(2 · 3 · 5 · 7)c
(49 + 32 + 19 + 13) + (16 + 10 + 7 + 6 + 4 + 2)
(3 + 2 + 1 + 0) − 0
= 25
Zur Probe: Es handelt sich dabei um die Zahlen 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43,
47, 53, 59, 61, 67, 71, 73, 79, 83, 89 und 97.
Wir kommen nun auf das Garderobenproblem (und die Dérangementzahlen) zurück.
Wir haben oben Fi als die Menge der Permutationen mit Fixpunkt
Sn i (d.h. π(i) = i)
definiert und festgestellt, dass die gesuchte Anzahl gleich n! − | i=1 Fi | ist. Anwendung des Prinzips der Inklusion–Exklusion ergibt
n
[
\ X
|I|+1 n! − Fi = n! −
(−1)
Fi I⊆{1,...,n}
i=1
i∈I
I6=∅
In der Schnittmenge auf der rechten Seite sind all die Permutationen enthalten,
die bei allen i ∈ I Fixpunkte haben. Die Werte für die Elemente aus I sind also
festgelegt, die übrigen n − |I| Elemente können frei gewählt werden:
= n! +
n X
n
= n! +
n
X
n!
j=1
j=1
j
j!
(−1)j (n − j)!
(−1)j


n
j
X
(−1) 
= n! 
j!
j=1
Die letzte Summe konvergiert10 gegen e−1 = 0.367879, und zwar recht schnell. Die
Wahrscheinlichkeit, dass alle Herren den falschen Hut bekommen ist also etwa ein
Drittel.
Das Schubfachprinzip
Das so genannte Schubfachprinzip, in der englischsprachigen Literatur auch als Taubenschlagprinzip bezeichnet, geht auf den Mathematiker G. L. Dirichlet zurück:
2.3.2 Schubfachprinzip Verteilt man n Gegenstände in k Schubfächer und ist
n > k, dann gibt es mindestens ein Schubfach, in dem mindestens 2 Gegenstände
liegen.
10 Das heißt: Je größer n ist, um so genauer ist die Näherung, und die Näherung wird beliebig
genau, wenn nur n groß genug ist.
Kombinatorik
37
Auf den ersten Blick scheint dieses Prinzip nur triviale Schlussfolgerungen zuzulassen, wie: in jeder Gruppe von 366 Menschen gibt es mindestens zwei, die den glei”
chen Geburtstag haben“. Wie die folgenden eleganten Anwendungen zeigen, trügt
der Schein.
2.3.3 Satz In jeder n + 1 elementigen Untermenge M von {1, 2, . . . , 2n} gibt es
zwei Zahlen a und b, so dass a Teiler von b ist.
Beweis. Sei M = {a1 , a2 , . . . , an+1 }. Jedes Element dieser Menge hat eine eindeutige
Produktzerlegung der Form ai = 2ki qi wobei qi eine ungerade Zahl ist. Da die
Anzahl der ungeraden Zahlen zwischen 1 und 2n gleich n ist, müssen mindesten
zwei Elemente aus M bei der Zerlegung die gleiche ungerade Zahl liefern, und es ist
klar, dass dann die kleinere von beiden ein Teiler der größeren ist.
2.3.4 Satz (Erdős/Szekeres) Jede Folge von n2 +1 verschiedenen Zahlen enthält
eine monoton wachsende oder monoton fallende Unterfolge der Länge n + 1.
Beweis. Ist die Folge a1 , a2 , . . . , an2 +1 gegeben, dann hat eine Unterfolge der Länge
m die Form ai1 , ai2 , . . . , aim wobei 1 ≤ i1 < i2 < . . . < im ≤ n2 + 1 gelten muss. Die
Unterfolge ist monoton wachsend (fallend) wenn auch ai1 < ai2 < . . . < aim (>)
gilt.
Angenommen die gegebene Folge hat keine monoton wachsende oder monoton fallende Unterfolge der Länge n + 1, dann ordnen wir jedem k = 1, 2, . . . , n2 + 1 ein
Paar (wk , fk ) zu, wobei wk (fk ) die maximale Länge einer monoton wachsenden
(fallenden) Unterfolge ist, die mit ak beginnt. Da nur n2 Paare möglich sind, muss
mindestens ein Paar mehrfach auftreten, d.h. es gibt Zahlen 1 ≤ s < t ≤ n2 + 1, so
dass ws = wt und fs = ft . Das ist aber bereits ein Widerspruch, denn ist as < at ,
dann könnte jede mit at beginnende monoton wachsende Unterfolge von vorn durch
as verlängert werden, also wäre ws > wt . Analog folgt aus as > at auch fs > ft
und as = at ist nach Voraussetzung nicht möglich.
2.3.5 Verallgemeinertes Schubfachprinzip Verteilt man n Gegenstände
in k
Schubfächer, dann gibt es mindestens ein Schubfach, in dem mindestens nk Gegenstände liegen.
Beispiel: In jeder Gruppe von 100 Menschen gibt es mindestens 9, die das gleiche
Sternzeichen haben.
2.4
Rückblick
Auch am Ende dieses Kapitels will ich wieder zusammenfassen, was ganz besonders
wichtig ist. Das ist in diesem Kapitel schwieriger, Das heißt nicht, dass unwichtig
ist, was hier nicht auftaucht; es soll heißen: Wer das nicht weiß, wird es sicher eher
früher als später bereuen.
• Pascalsches Dreieck und Binomialkoeffizienten, Binomialsatz
• Rekursionen und vollständige Induktion
• Bijektive Abbildungen
• Elementare Abzählprobleme verstehen
• Summen-, Produkt- und Gleichheitsregel
• Inklusion-Exklusion für zwei, drei und vier Mengen
38
Diskrete Mathe für Informatiker, Sommer 2000
3
Graphentheorie
Graphen sind gut: Sie sind anschaulich und vielseitig anwendbar. Wir reden hier
nicht vom Graph einer Funktion, für uns ist ein Graph so etwas:
Es gibt Punkte (Ecken) und es gibt Linien (Kanten) zwischen einigen dieser Punkte. Anfangs war die Graphentheorie ein Teil der Geometrie, man hat Zeichnungen
von Graphen untersucht. Das Leben wird aber leichter, wenn man Graphen kombinatorisch definiert. Die Zeichnungen bleiben einem zur Veranschaulichung, aber
man braucht nicht geometrisch zu argumentieren. Graphen sind so vielseitig, weil
die Idee so einfach ist: Es gibt eine endliche Menge von Objekten (die Ecken), und
zwei Ecken sind entweder verbunden oder nicht. In fast jeder Situation ist es möglich
und sinnvoll einen Graphen zu definieren.
Graphen finden bei der Modellierung und algorithmischen Lösung vieler praktischer
Probleme Anwendung (z.B. Straßen-, Flug- und Telefonnetze – Darstellung von
Molekülen – Entwurf von Mikrochips), sie sind aber auch innerhalb der Informatik
interessant (ganz besonders Bäume).
3.1
Grundlagen
Es gibt verschiedene Varianten von Graphen. Wir müssen ein paar Entscheidungen treffen: Sollen
die Kanten eine Richtung haben oder nicht? Soll es gestattet sein, dass zwei Kanten parallel
verlaufen, d.h. gleiche Anfangs- und Endecke haben? (Zwei Fluggesellschaften, die die gleiche
Route fliegen.) Darf eine Kante an der gleichen Ecke beginnen und enden? (Jemand, der ein
Telefongespräch mit sich selbst führt.) Wir sehen uns die formale Definition für ungerichtete,
einfache, schlingenlose Graphen an.
3.1.1 Definition Ein Graph besteht aus einer endlichen Menge V , den Ecken
(engl. vertex, Plural vertices), und einer Menge E ⊆ V2 11 von zweielementigen
Teilmengen von V , den Kanten (engl. edge).
3.1.2 Beispiel Im Graph oben ist die Eckenmenge V = {1, 2, 3, 4, 5} und die Kantenmenge ist E = {{1, 2}, {2, 3}, {3, 4}, {4, 5}, {1, 5}, {2, 5}, {3, 5}, {2, 4}}.
3.1.3 Beispiel
• Im vollständigen Graphen Kn der Ordnung n sind je zwei Ecken durch ene
Kante verbunden.
• Mit Pn bezeichnen wir den Weg auf n Ecken. Die Länge des Weges ist die
Anzahl n − 1 der Kanten.
11 Die
Schreibweise ist praktisch, weil V 2 =
|V |
2
ist.
Graphentheorie: Grundlagen
39
• Mit Cn (n ≥ 3) bezeichnet man den Kreis der Länge n.
• Mit Kn,m (n, m ≥ 0) bezeichnet man den vollständigen bipartiten Graphen, dessen Eckenmenge V die disjunkte Vereinigung von zwei Mengen A
und B mit |A| = n, |B| = m ist und dessen Kantenmenge aus allen Paaren
{a, b} mit a ∈ A, b ∈ B besteht.
• Mit Qn (n ≥ 1) bezeichnet man den n-dimensionalen Würfelgraphen mit
Eckenmenge {0, 1}n (Menge aller {0, 1}-Worte der Länge n), wobei zwei Worte
genau dann adjazent sind, wenn sie sich an genau einer Stelle unterscheiden.
(Ohne Abbildung)
Sei V = {1, 2, 3}, sei G1 der Graph mit Eckenmenge V und Kantenmenge E1 =
{{1, 2}, {2, 3}} und sei G2 der Graph mit Eckenmenge V und Kantenmenge E2 =
{1, 2}, {1, 3}}. Die Graphen sehen gleich aus (bitte zeichnen!), sind aber nach unserer Definition verschieden, weil ja E1 6= E2 ist. Bei Gruppen und bei Ringen hatten
wir schon einmal ein ähnliches Problem: Wir haben zwei Objekte, die formal verschieden sind, die wir aber nicht als verschieden ansehen wollen.
3.1.4 Definition Seien G = (V, E) und G0 = (V 0 , E 0 ) zwei Graphen. Eine Abbildung ϕ : V → V 0 heißt (Graphen-)Isomorphismus, wenn für je zwei Ecken
u, v ∈ V gilt:
{u, v} ∈ E ⇐⇒ {ϕ(u), ϕ(v)} ∈ E 0
Wenn es einen Isomorphismus zwischen G und G0 gibt, dann heißen G und G0
isomorph.
Dieses Konzept haben wir in den Beispielen oben schon benutzt: Die Graphen Kn ,
Cn , Pn , Kn,m , Qn sind bis auf Isomorphie eindeutig.
Die bildliche Darstellung von Graphen ist sehr anschaulich für den Menschen. Für
die Darstellung im Computer ist es natürlich vorteilhaft, sich enger an die Definition
zu halten: Man muss Buch darüber führen, welche Ecken durch Kanten verbunden
sind und welche nicht. Wir sehen uns verschiedene Möglichkeiten an, unser Beispielgraph ist immer noch der von oben. Zuvor noch eine Sprechweise: Ist e = {u, v}
eine Kante von G, dann nennt man die Ecken u und v zueinander adjazent oder
benachbart und man nennt sie inzident zu e.
• Darstellung als Adjazenzmatrix: Wir schreiben die Information über die
Adjazenz der Ecken in eine Matrix, der Eintrag in Zeile i und Spalte j gibt
Auskunft, ob die Ecken i und j verbunden sind:


0 1 0 0 1
1 0 1 1 1


0 1 0 1 1


0 1 1 0 1
1 1 1 1 0
• Darstellung als Inzidenzmatrix: Wir schreiben eine Matrix mit der Information über die Inzidenz von Ecken und Kanten. Der Eintrag in Zeile i und
Spalte j gibt Auskunft, ob die Ecke i eines der Enden der Kante j ist.


1 1 0 0 0 0 0 0
1 0 1 1 0 0 1 0


0 0 0 1 1 0 0 1


0 0 1 0 0 1 1 0
0 1 1 0 0 1 0 1
40
Diskrete Mathe für Informatiker, Sommer 2000
• Darstellung als Adjazenzliste oder als Inzidenzliste: Die gleiche Information etwas anders aufgeschrieben; bei Graphen mit wenigen Kanten kompakter.
Adjazenzliste: (1: 2,5); (2: 1,3,4,5); (3: 2,4,5); (4: 2,3,5); (5: 1,2,3,4);
Inzidenzliste: (1: a,b); (2: a,c,d,g); (3: d,e,h); (4: c,f,g); (5: b,c,f,h).
Alle diese Versionen lassen sich leicht für gerichtete Graphen oder für Graphen mit
Mehrfachkanten abwandeln.
3.1.5 Definition Die Menge N (v) = {u ∈ V : {u, v} ∈ E} der zu einer Ecke v
benachbarten Ecken heißt die Nachbarschaft von v. Die Anzahl der Nachbarn einer
Ecke v heißt der Grad der Ecke: d(v) = |N (v)|. Der Grad einer Ecke ist also die
Zahl der zu ihr inzidenten Kanten.
3.1.6 Satz Für jeden Graphen G = (V, E) gilt
X
d(v) = 2|E|
v∈V
Beweis. Dies ist ein einfacher, aber effektiver Trick: Wir zählen die Einsen in der
Inzidenzmatrix auf zwei verschiedene Arten.
1. Zuerst zeilenweise: Jede Zeile gehört zu einer Ecke v, und jede 1 in der Zeile
gehört zu einem Nachbarn von v. Die Anzahl der Einsen in einer Zeile ist also
der
P Grad der zugehörigen Ecke, und die Gesamtzahl der Einsen ist die Summe
d(v) aller Eckengrade.
2. Jetzt spaltenweise: Jede Spalte gehört zu einer Kante e, und jede 1 in der Spalte gehört zu einer inzidenten Ecke, also zu einem Ende der Kante. Weil jede
Kante zwei Enden hat, stehen in jeder Spalte zwei Einsen, und die Gesamtzahl
der Einsen ist zwei mal die Anzahl der Spalten, also 2|E|.
Also ist die Anzahl der Einsen gleich
P
d(v) = 2|E|.
3.1.7 Prinzip des zweifachen Abzählens Der im Beweis von Satz 3.1.6 benutzte
Trick ist so schön und so praktisch, dass er einen eigenen Namen hat: Prinzip des
zweifachen Abzählens. Die Essenz ist, dass man geschickt eine Matrix A = (aij )
definiert, und dann die Summe aller Einträge der Matrix auf zwei Arten berechnet,
einmal zeilenweise und einmal spaltenweise. Es ist klar, dass in beiden Fällen das
gleiche herauskommen muss:
n X
m
X
i=1 j=1
aij =
m X
n
X
aij
j=1 i=1
3.1.8 Folgerung (aus Satz 3.1.6) Die Gradsumme ist immer eine gerade Zahl.
Die Anzahl der Ecken mit ungeradem Grad ist in jedem Graphen gerade.
3.1.9 Definition Das Komplement eines Graphen G = (V, E) ist der Graph G =
(V, V2 \ E).
3.1.10 Definition Man nennt G0 = (V 0 , E 0 ) einen Untergraph
von G = (V, E),
wenn V 0 ⊆ V und E 0 ⊆ E gilt. Ist außerdem E 0 = E ∩ V2 , so wird G0 als induzierter Untergraph von G bezeichnet.
Graphentheorie: Bäume
41
3.1.11 Definition Man sagt, dass v von u erreichbar ist, falls ein Weg v1 , v2 , . . . , vk
mit v1 = u und vk = v in G existiert. Die Länge eines kürzesten Weges zwischen
zwei Ecken nennt man ihren Abstand in G.
3.1.12 Lemma Erreichbarkeit in einem Graphen ist eine Äquivalenzrelation.
3.1.13 Definition Die Äquivalenzklassen der Erreichbarkeitsrelation nennt man
(Zusammenhangs-)Komponenten. Ein Graph heißt zusammenhängend, wenn er
genau eine Komponente hat.
In einer Zeichnung ist alles klar: Zwei Ecken gehören zur selben Komponente, wenn
man sie durch einen geschlossenen Kantenzug verbinden kann.
3.2
Bäume
Für den Informatiker sind Bäume ein sehr wichtiges Werkzeug. Dabei stellt die Tatsache, dass sich eine Reihe praktischer Problemstellungen auf die Konstruktion von
aufspannenden Bäumen (bzw. Wäldern) zurückführen lassen, nur einen Teilaspekt
des gesamten Anwendungsspektrums dar. In der theoretischen Informatik dienen
sogenannte Entscheidungsbäume als Modell für Berechnungen. Schließlich spielen
Bäume als Datenstruktur für Such- und Sortierprozesse eine wichtige Rolle.
3.2.1 Definition Ein Graph G heißt ein Baum, wenn er zusammenhängend ist
und keine Kreise enthält. Ein Graph, dessen Komponenten jeweils Bäume sind,
heißt Wald. Ein Graph ist also genau dann ein Wald, wenn er keine Kreise enthält.
3.2.2 Satz Ist T = (V, E) ein Baum, dann gilt:
1. Zwischen je zwei Ecken x, y gibt es genau einen Weg.
2. Entfernt man irgendeine Kante aus T , dann erhält man einen Graph mit zwei
Komponenten, die beide Bäume sind.
3. |E| = |V | − 1
Beweis.
1. Seien x, y ∈ V . Ein Baum ist nach Definition zusammenhängend, also gibt es
(mindestens) einen Weg zwischen x und y. Wir zeigen indirekt (d.h. mit einem
Widerspruchsbeweis), dass dieser Weg eindeutig ist. Angenommen, es gäbe
zwei Wege von x nach y, etwa x = v0 , v1 , . . . , vr = y und x = u0 , u1 , . . . , us =
y. Dann sei i der kleinste Index mit ui+1 6= vi+1 (der existiert, weil die Wege ja nach Annahme verschieden sind). Weil sich die beiden Wege spätestens bei y wieder treffen, können wir auch j definieren als kleinsten Index
mit den Eigenschaften j > i und vj = uk für irgendein k. Dann ist aber
vi , vi+1 , . . . , vj , uk−1 , . . . , ui+1 , vi ein Kreis in T , Widerspruch. Also kann es
nur einen Weg zwischen x und y geben.
2. Sei {u, v} eine Kante von T und sei S = (V, E \ {u, v}) der Graph, der durch
Löschen der Kante {u, v} aus T entsteht. Anschaulich ist klar, dass S zwei
Komponenten hat: Sei V1 ⊆ V die Menge aller Ecken x in T , für die der
eindeutige Weg zur Ecke v über die Ecke u führt. Setze den Beweis fort!
3. Vollständige Induktion über die Zahl der Ecken. Benutze Eigenschaft 2!
42
Diskrete Mathe für Informatiker, Sommer 2000
Oft hat man in einem Baum eine spezielle Ecke, bei Entscheidungsbäumen ist es
der Zustand, wo noch keine Entscheidung getroffen ist; bei Stammbäumen ist es
Adam (oder vielleicht Eva?).
3.2.3 Definition Eine spezielle Ecke in einem Baum heißt Wurzel, in der Zeichnung zeichnet man sie nach oben“. Ein Baum mit Wurzel wird oft Wurzelbaum
”
genannt.
3.2.4 Beispiel Die dicke Ecke ist die Wurzel. Im Bild rechts ist der Baum an der
Wurzel aufgehängt“.
”
Man sieht, dass die Ecken in Schichten oder Leveln zusammengefasst werden
können, nach ihrem Abstand zur Wurzel. In Level 0 ist allein die Wurzel, die Nummer des letzten nicht leeren Levels heißt die Höhe des Baums (hier 3). Ecken ohne
Nachfolger heißen Blätter, die anderen Ecken heißen innere Ecken. Es gibt in
diesem Zusammenhang viele Begriffe, die wir hier nicht erwähnen, bei denen sofort
klar ist, was sie bedeuten, z.B. Nachfolger, Kinder, Eltern.
Man ist an Bäumen interessiert, die viele Blätter haben, aber eine geringe Höhe,
und wo jede Ecke wenige Kinder hat. Das sind natürlich gegensätzliche Ziele, der
folgende Satz sagt, was man höchstens erreichen kann.
3.2.5 Satz Ein Wurzelbaum mit ` Blättern, in dem jede innere Ecke höchstens k
Nachfolger hat, hat Höhe mindestens logk `.
Beweis. Weil h ≥ logk ` ⇐⇒ k h ≥ ` ist, ist die folgende Aussage äquivalent: Ein
Wurzelbaum mit Höhe höchstens h, in dem jede innere Ecke höchstens k Nachfolger
hat, hat höchstens k h Blätter. Diese Aussage ist anschaulich recht klar, weil sich mit
jeder zusätzlichen Schicht die Anzahl der Ecken nur ver-k-fachen kann. Das Problem
an dieser Argumentation ist, dass sie nur in dem Spezielfall funktioniert, wo wir
alle Blätter in der letzten Schicht haben. Ein formal korrekter Beweis geht z.B. mit
vollständiger Induktion über die Höhe h: Entfernt man die Wurzel, so erhält man
≤ k Unterbäume mit kleinerer Höhe. . .
Wie stellt man fest, ob ein Graph zusammenhängend ist? Hingucken“ ist keine
”
Lösung, denn erstens ist es bei Graphen mit vielen Ecken gar nicht leicht zu sehen, ob
sie zusammenhängend sind oder nicht; der zweite Grund ist vielleicht noch wichtiger:
Der Computer kann nicht einfach hinschauen, wir brauchen ein Verfahren, das sich
mit Adjazenzlisten (oder einer anderen kombinatorischen Darstellung) begnügt.
3.2.6 Definition Sei G = (V, E) ein zusammenhängender Graph. Ein aufspannender Baum von G ist ein Untergraph mit gleicher Eckenmenge, der ein Baum
ist.
Es gibt zwei Verfahren, die Breitensuche (BFS - Breadth-first search) und die Tiefensuche (DFS - Depth-first search), die für einen gegebenen zusammenhängenden
Graphen G = (V, E) und eine gegebene Ecke w ∈ V einen aufspannenden Baum
von G mit Wurzel w konstruieren. Beide Verfahren durchsuchen G beginnend bei w
Graphentheorie: Bäume
43
und liefern für jedes v 6= w den Nachbarn von v, der als erster auf dem eindeutigen
Baumweg von v zur Wurzel auftritt (den Vorgänger von v).
Bei der Tiefensuche läuft man durch den Graphen wie ein aufgeregtes Kind: Es
startet bei der Wurzel w und immer, wenn es eine neue Ecke entdeckt, läuft es
weiter. Wenn von einer Ecke aus keine bisher unbesuchte Ecke zu sehen ist, dann
geht es entlang der Kanten, die es schon kennt, in Richtung Wurzel zurück, an jeder
Ecke prüfend, ob von hier vielleicht noch Neuland zu entdecken ist.
3.2.7 Beispiel Sei G durch die folgende Nachbarschaftslisten gegeben:
a
b
d
h
b c
a b
c d
d g
e
d e f
a b g
b
c
g
c
f
h
h
a
g
Wenn wir mit a als Wurzel starten, erhalten wir
Ecke
Nummer
Vorgänger
a b c
1 2 3
− a b
d
4
c
e f
8 6
b g
g
5
c
h
7
g
3.2.8 Satz (DFS) Der Tiefensuche-Algorithmus konstruiert einen aufspannenden
Baum der Komponente von G, die w enthält.
Input: Ein Graph G, eine Ecke w (Wurzel)
Output: Die Liste mit den Vorgängern
stack = (w);
Vorgänger(w) = undefiniert
while( stack 6= ∅ ) {
x = top(stack)
if( x ist adjazent zu einer noch unbesuchten Ecke y ) {
lege y oben auf den stack
gib y die nächste Nummer
Vorgänger(y) = x
}
else entferne x vom stack
}
Die Breitensuche sieht systematischer aus: Wir stehen an der Wurzel, sehen uns
um und machen schon einmal eine Liste aller Ecken, die wir sehen. Dann gehen
wir zur ersten Ecke auf der Liste und schreiben alle Ecken dazu, die wir noch nicht
gesehen haben, und dann gehen wir zur nächsten Ecke in der Liste, und so weiter,
bis wir alles abgearbeitet haben.
3.2.9 Beispiel In unserem Beispiel von oben liefert BFS den folgenden Baum:
Ecke
Nummer
Nachbar
a b c d
1 2 5 3
− a b a
e f
6 8
b g
g h
7 4
h a
44
Diskrete Mathe für Informatiker, Sommer 2000
Bei näherem Hinsehen ist der Unterschied zwischen BFS und DFS gering: Die beiden
Algorithmen unterscheiden sich nur durch die für den Speicher verwendete Datenstruktur, durch die festgelegt wird, von welcher bereits erreichten Ecke u die Suche
fortgesetzt wird: Eine Queue Q (Warteschlange, Prinzip: first in first out) bei BFS
und ein Stack (Kellerspeicher, Stapelprinzip: last in first out) bei DFS.
Dieser feine Unterschied bewirkt, dass die erzeugten aufspannenden Bäume unterschiedliche Eigenschaften haben: Im BFS-Baum hat jede Ecke den gleichen Abstand
zur Wurzel wie im ursprünglichen Graphen G. Dagegen werden beim DFS in der
Regel sehr lange Wege erzeugt.
Beide Algorithmen können auch zur Erzeugung eines aufspanneden Waldes von
unzusammenhängenden Graphen verwendet werden. Einzige Änderung: hat man
einen aufspannenden Baum für eine Komponente erzeugt, so wählt man, falls noch
vorhanden, eine neue Ecke als Wurzel für eine weitere Komponente und startet neu.
In vielen Fällen werden die Kanten eines Graphen G = (V, E) mit positiven Zahlen gewichtet,
d.h. zusätzlich ist eine Kostenfunktion w : E −→ IR+ gegeben. Nun besteht die Aufgabe darin,
einen aufspannenden Baum (bzw. Wald) zu bestimmen, so dass das Gesamtgewicht der Kanten
des Baums (Waldes) minimal ist (Minimum Spanning Tree – MST).
Der nachfolgend beschriebene Algorithmus von Kruskal löst dieses Problem: Man ordnet die Kanten nach aufsteigendem Gewicht in einer Liste L, die dynamisch verwaltet wird. Der Aufbau des
Baumes T erfolgt beginnend vom Graphen (V, ∅), indem Schritt für Schritt neue Kanten aufgenommen werden. Dazu wird die erste Kante e aus der aktuellen Liste L (also eine mit minimalem
Gewicht) gestrichen und getestet, ob durch Hinzunahme von e zu den bereits in T aufgenommenen
Kanten ein Kreis entsteht. Bei negativer Antwort wird auch e aufgenommen, sonst nicht.
Man kann leicht beweisen, dass am Ende (wenn L leer ist) T ein aufspannender Wald mit minimalem Gewichts ist.
Zur effektiven Implementierung dieser Methode werden sogenannte union-find-Datenstrukturen eingesetzt.
Aufgaben
1.
1. Zeichne alle nicht isomorphen Graphen auf 4 Ecken,
2. zeichne alle nicht isomorphen Bäume auf 5 Ecken.
2. Drei Häuser A, B, C sollen an das Gas-, Wasser- und Elektrizitätswerk (G,
W, E) angeschlossen werden. Schreibe die Adjazenzliste (oder die Adjazenzmatrix) für den Graphen, der dieses Problem modelliert, auf und zeichne den
Graphen. Kannst du ihn so zeichnen, dass sich keine Leitungen (d.h. Kanten)
kreuzen?
3. Zeige, dass die folgenden beiden Graphen nicht isomorph sind:
4. Zeige, dass Erreichbarkeit in einem Graphen eine Äquivalenzrelation ist.
5. Der folgende Graph
heißt Petersen-Graph: Sei S = {1, 2, 3, 4, 5}. Die Eckenmenge ist V = S2 , besteht also aus allen zweielementigen Teilmengen von S.
Zwei Ecken u, v ∈ V sind durch eine Kante verbunden, wenn u ∩ v = ∅ ist.
1. Bestimme |V |, |E| und die Grade aller Ecken.
2. Zeichne den Petersen Graphen. (Es gibt mehrere hübsche Darstellungen;
Kreuzungen von Kanten kann man nicht vermeiden.)
Graphentheorie: Matchings
45
6. Bestimme mit dem DFS-Algorithmus die Anzahl der Komponenten des Graphen, der durch folgende Adjazenzliste gegeben ist:
0
2
5
7
3.3
1
3
8
2
0
5
13
3
Matchings in bipartiten Graphen
Gegeben sei eine Menge S von Personen und eine Menge T von Jobs. Ein Graph G =
(V, E) wird bipartit genannt, wenn er Untergraph eines vollständigen, bipartiten
Graphen ist. Etwas anschaulicher kann man formulieren, dass ein Graph genau
dann bipartit ist, wenn man die Ecken so mit zwei Farben einfärben kann, dass
keine gleichfarbigen Ecken benachbart sind.
3.4
Datenkompression
So also sieht ein Skript aus, das nicht rechtzeitig fertig geschrieben wurde. Ein
bedauernswertes Exemplar! Zwar fehlen nur ein oder zwei Seiten, diese jedoch schon
lange – und vielleicht auf immer.
Herunterladen