Top Banner
Diskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science Technische Universit¨ at M¨ unchen 2018/10/12
165

Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Dec 25, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Diskrete StrukturenGraphen

c©Javier Esparza und Michael Luttenberger

Chair for Foundations of Software Reliability and Theoretical Computer ScienceTechnische Universitat Munchen

2018/10/12

Page 2: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

1 Graphen

Einfuhrung: Graphen in der Informatik

Digraphen, ungerichtete und einfache Graphen

Baume

Euler- und Hamiltonkreise

Planare Graphen und Knotenfarbungen

Matchings

Adjanzenzmatrix eines Graphen

Page 3: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Einfuhrung: Graphen in der Informatik

Page 4: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Graphen in der Informatik 4

• Verkehrsnetze:

Wegfindung/Navigation, billigste/schnellste/umweltfreundlichste Verbindung,alternative Routen bei Stau/Blockaden, . . .

. Bsp.: MVV Netz

[Quelle]

Page 5: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Graphen in der Informatik 5

• Computergraphik:

Meshes, Subdivision, verdeckte Flachen, konvexe Hullen, Kollisionserkennung,. . .

. Bsp.: Stanford Bunny:

[Quelle]

Page 6: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Graphen in der Informatik 6

• Simulation und Numerik:

Lineare Gleichungssystem, Finite Elemente, Finite Volumen, . . .

. Bsp.: Luftstrom um Flugzeugflugel,

[Quelle]

Page 7: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Graphen in der Informatik 7

• Internet/Netzwerke:

Webranking (Page Rank), Analyse sozialer Netze (Cliquen), Ausfallsicherheit,Routing von Nachrichten, . . .

. Bsp.: Linkstruktur Google vs. Stanford

[Quelle][Quelle]

Page 8: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Graphen in der Informatik 8

• Erdos-Zahl:

[Quelle]

Page 9: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Graphen in der Informatik 9

• Chemie:

Strukturformeln (Elektronen, Valenz, Keil, Skelett), Isomerie, . . .

. Bsp.: Klassifikation von Isomerien

[Quelle]

Page 10: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Graphen in der Informatik 10

• Syntax von Termen/Formeln, Schaltkreise:

. Bsp.: A ∩ (B ∪A) und a • (−(b+ a)) als Syntaxbaume und als”Schaltkreise“

(Subtermsharing)

A •

B A

a −

+

b a

A B

a b

+

Page 11: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Graphen in der Informatik 11

• Programmiersprachen:

Syntax, Semantik, Compiler, Programmanalyse, Clone, Refactoring, UML, . . .

. Bsp.: Syntax (abstrakter Syntaxbaum)

def gcd(a,b):while b != 0:if a > b:a = a - b

elseb = b - a

return a

[Quelle]

Page 12: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Graphen in der Informatik 12

• Programmiersprachen:

Syntax, Semantik, Compiler, Programmanalyse, Clone, Refactoring, UML, . . .

. Bsp.: Kontrollfluss

def gcd(a,b):while b != 0:if a > b:a = a - b

elseb = b - a

return a

en

b 6= 0?

a > b?

a := a− bb := b− a

ex

b 6= 0

b = 0

a > ba ≤ b

Page 13: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Graphen in der Informatik 13

• Programmiersprachen:

Syntax, Semantik, Compiler, Programmanalyse, Clone, Refactoring, UML, . . .

. Bsp.: Semantik (Programmzustand: (pc,a,b) )

1def gcd(a,b):2while b != 0:3if a > b:4a = a - b5else6b = b - a7return a

(1, 0, 0)

(2, 0, 0)

(7, 0, 0)

(1, 2, 3)

(2, 2, 3)

(2, 2, 3)

(6, 2, 3)

(2, 2, 1)

(1, 2, 5)

(2, 2, 5)

(3, 2, 5)

(6, 2, 5)

(1,−1,−2)

(2,−1,−2)

(3,−1,−2)

(4,−1,−2)

(2,−1,−3)

. . .

Page 14: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

1 Graphen

Einfuhrung: Graphen in der Informatik

Digraphen, ungerichtete und einfache Graphen

Digraphen

Ungerichtete und einfache Graphen

Wichtige Klassen von einfachen Graphen

Gradfolge

Realisierbarkeit von Gradfolgen

Baume

Euler- und Hamiltonkreise

Planare Graphen und Knotenfarbungen

Matchings

Adjanzenzmatrix eines Graphen

Page 15: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Digraphen, ungerichtete und einfache Graphen

Page 16: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Digraphen, ungerichtete und einfache Graphen

Digraphen

Page 17: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Digraphen 17

• Ein gerichteter Graph (kurz: Digraph) G = (V,E) besteht aus

• einer Menge V – genannt Knotenmenge, Elemente von V entsprechendKnoten von G.

• einer binaren Relation E ⊆ V × V – genannt Kantenrelation/-menge,Elemente von E entsprechend Kanten von G.

. Ein Digraph G ist endlich, falls V endlich; ansonsten ist G nichtendlich/unendlich.

. Ein Digraph G ist bipartit, falls V = A ∪B mit A ∩B = ∅ (kurz: V = A ]B)und E ⊆ A×B ∪B ×A (nur Kanten zwischen A und B).

1

2

a

b

alternativ 1

2

a

b

Page 18: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Digraphen: Pfade 18

. Eine Folge v0, v1, . . . , vl von Knoten vi ∈ V heißt Pfad (Weg), falls(vi−1, vi) ∈ E fur jedes i ∈ [l] gilt, d.h. wenn je zwei aufeinanderfolgendeKnoten durch eine Kante aus E verbunden sind.

• Die Lange eines Pfades v0, v1, . . . , vl ist l, d.h. die Anzahl der Kanten(”Schritte“), von v0 bis vl.

. Ein Pfad heißt einfach, falls kein Knoten mehrmals in dem Pfad vorkommt(”besucht“ wird).

. Fakt: In einem endlichen Digraphen hat ein einfacher Pfad maximal Lange|V | − 1.

1

2

a

b

alternativ

1

2

a

b

Page 19: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Digraphen: Zusammenhang 19

• Formal: Sei G = (V,E) ein Digraph.

• G ist zusammenhangend, falls u(E ∪ E−1)∗v fur alle u, v ∈ V gilt.

• G ist stark zusammenhangend, falls sowohl uE∗v als auch vE∗u fur alleu, v ∈ V gilt.

• U ⊆ V ist eine (starke) Zusammenhangskomponente, falls G[U ] (stark)zusammenhangend.

• U ist eine maximale (starke) Zusammenhangskomponente, falls es kein U ′ mitU ( U ′ ⊆ V und G[U ′] selbst (starke) Zusammenhangskomponente gibt.

. Beispiele:

1

2

3

4

1

2

3

4

1

2

3

4

Page 20: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Digraphen: Kreise 20

• Ein Kreis (Zyklus) ist ein Pfad v0, v1, . . . , vl mit v0 = vl; ein Kreis ist einfach,falls alle Knoten v0, . . . , vl−1 paarweise verschieden sind (also|{v0, v1, . . . , vl}| = l); m.a.W. falls der Kreis nicht selbst einen kleinerenKreis enthalt.

. Eine”Selbstkante“ (u, u) ∈ E (Kreis der Lange 0) bezeichnet man als

Schleife/Schlinge.

• Ein Digraph ohne Kreise heißt azyklisch (kreisfrei).

• DAG kurz fur directed acyclic graph.

• Z.B. ist das Hasse-Diagramm einer partiellen Ordnung ein DAG.

• Falls uEv, dann heißt u Vorganger von v und v Nachfolger von u:

• Nachfolger von u: uE = {v ∈ V | uEv}

• Vorganger von v: Ev = {u ∈ V | uEv}

Page 21: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Digraphen: Teilgraphen 21

• Fur U ⊆ V schreibt man G[U ] fur (U,E ∩ (U × U)) (von U induzierterTeilgraph).

. Beispiel: U = {a, 2, b}

1

2

a

b 2

a

b

. Ein Digraph H = (VH , EH) ist ein Teilgraph von G = (VG, EG), fallsVH ⊆ VG und EH ⊆ EG.

Page 22: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Digraphen: Isomorphie 22

• Zwei Digraphen G,H sind isomorph (”strukturgleich”), kurz G ∼= H, falls es

eine Bijektion (”Knotenumbenennung”) β : VG → VH gibt, die die Kanten

respektiert/erhalt, d.h. uEGv gdw β(u)EHβ(v)

. Beispiel: β(1) = 5, β(2) = 3, β(a) = 7, β(b) = 2

1

2

a

b

5

3

7 2

. ∼= ist Aquivalenzrelation.

. Anwendungen: Bildererkennung, Copy&Paste-Code finden (Refactoring)u.v.a.Reine textbasierte Suche reicht i.A. nicht, da Variablenbezeichner u.U.abgeandert oder neu berechnet wurden.

Page 23: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Digraphen: Darstellung 23

• Haufig ist man nicht an den konkreten Knotenobjekten/bezeichnerninteressiert und lasst diese in der graphischen Darstellung einfach weg.

. Beispiel:

statt

1

2

a

b

fur V = {1, 2, a, b} und E = {(1, 2), (1, b), (2, a), (2, b), (a, 1), (b, 2), (b, b)}

Page 24: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Digraphen, ungerichtete und einfache Graphen

Ungerichtete und einfache Graphen

Page 25: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Ungerichtete und einfache Graphen 25

• Ein Digraph G = (V,E) ist ungerichtet, falls E symmetrisch ist.

• Ein Digraph ist ein einfacher Graph, falls er ungerichtet ist und keineSchleifen besitzt, also E symmetrisch und irreflexiv ist.

• Statt (u, v), (v, u) ∈ E ⊆ V × V nur noch {u, v} ∈ E ⊆(V2

).

.(V2

):={{u, v} ⊆ V | u 6= v

}Menge aller 2-elementiger Teilmengen.

• Statt Vorganger und Nachfolger nur NachbarschaftΓ(u) = {v ∈ V | {u, v} ∈ E}; Knotengrad deg(u) := |Γ(u)|.

• Man stellt {u, v} ∈(V2

)als ungerichtete (

”kopflose“) Kante dar, z.B:

statt

fur G = (V,E) mit V = {1, 2, a, b} undE = {{1, 2}, {1, a}, {1, b}, {2, a}, {2, b}}

Page 26: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Ungerichtete und einfache Graphen 26

• Die Definition von Kreis wird fur ungerichtete Graphen abgeandert:

. Triviale Kreise u, v, u werden ausgeschlossen.

. Ein Pfad u0, u1, . . . , ul mit u0 = ul und {u0, . . . , ul} = l ist ein Kreis ineinem ungerichteten Graph, falls

∣∣{ui, ui+1 (mod l), ui+2 (mod l)}∣∣ = 3 fur alle

i ∈ [l].

Page 27: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Ausblick: weitere Graphklassen 27

• Ausblick:

• Multigraph: wie Digraph nur Kantenrelation wird zur Multimenge vonKnotenpaaren

d.h. auch mehr als eine Kante von u nach v.

• Hypergraph: wie ungerichteter Graph nur mit E ⊆ P(V )

d.h. eine (Hyper-)Kante e = {v1, . . . , vk} ∈ E verbindet mehrere Knotengleichzeitig.

• Knotenbeschrifteter Digraph: Digraph (V,E) zzgl. Knotenbeschriftungl : V → Σ∗.

• Kantenbeschrifteter Digraph:

• Im Weiteren Fokus auf einfache Graphen.

Page 28: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Digraphen, ungerichtete und einfache Graphen

Wichtige Klassen von einfachen Graphen

Page 29: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Spezielle (einfache) Graphen 29

• Vollstandiger Graph Kn :=(

[n],([n]2

))K1 K2 K3 K4 K5

• Kreisgraph Cn := ([n], {{i, (i mod n) + 1} | i ∈ [n]})

C1 C2 C3 C4 C5

• Pfadgraph Pn := ([n], {{i, i+ 1} | i ∈ [n− 1]})

P1 P2 P3 P4 P5

Page 30: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Spezielle (einfache) Graphen 30

• Bipartiter Graph Km,n := ([m+ n], {{i, j} | i ∈ [m], j ∈ [m+ n] \ [m]})(m ≤ n)

K1,1 K1,2 K2,2 K2,3 K3,3

• Gittergraph Mm,n := ([m]× [n], {{(i, j), (k, l)} | |i− k|+ |j − l| = 1})(m ≤ n)

M1,2 M2,2 M2,3 M3,3 M3,4

Page 31: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Spezielle (einfache) Graphen 31

• Hyperwurfel der Dimension n

Qn := ({0, 1}n, {{u, v} |∑n

i=1 |ui − vi| = 1}) mit Q0 := ({ε}, ∅)

Q0 Q1 Q2 Q3

Q4:

Page 32: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Spezielle (einfache) Graphen 32

• Hyperwurfel der Dimension n

Qn := ({0, 1}n, {{u, v} |∑n

i=1 |ui − vi| = 1}) mit Q0 := ({ε}, ∅)

Q0 Q1 Q2 Q3

Q4:

Page 33: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Spezielle (einfache) Graphen 33

• Perfekter Binarbaum der Hohe h

Bh := ([2]≤h, {{u, ux} | u ∈ [2]<h, x ∈ [2]})

B0 B1 B2 B3

. Anmerkung: je nach Literatur auch als”vollstandiger Binarbaum” bezeichnet.

• Ein Knoten u mit deg(u) ≤ 1 wird als Blatt bezeichnet, alle anderen Knotenals innere Knoten.

Page 34: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Perfekte Binarbaume 34

• Behauptung. Fur alle h ∈ N0: Bh hat 2h Blatter.

. Wie konnen wir zeigen, dass es tatsachlich fur ALLE h ∈ N0 gilt?

• Induktionsprinzip:

Beschreibe, wie man prinzipiell fur jedes konkrete h ∈ N0 schrittweise einenBeweis erhalten kann.

. In unserem Fall:

• Induktionsbasis: Zeige, dass B0 genau 20 = 1 Blatter hat im Fall h = 0.

• Induktionsschritt: Wahle ein beliebiges, aber dann festes h ∈ N0.

Nimm an, dass fur dieses h bereits gezeigt wurde, dass Bh gerade 2h Blatterhat (das ist die Induktionsannahme).

Zeige hiermit, dass auch Bh+1 genau 2h+1 Blatter besitzt.

. Der Induktionsschritt erlaubt es den Beweis fur h = 0 auf h = 1, dann vonh = 1 auf h = 2, dann von h = 2 auf h = 3 und so schließlich auf jedesh ∈ N0 zu erweitern.

Page 35: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Perfekte Binarbaume 34

• Behauptung. Fur alle h ∈ N0: Bh hat 2h Blatter.

. Wie konnen wir zeigen, dass es tatsachlich fur ALLE h ∈ N0 gilt?

• Allgemeines Schema eines Induktionsbeweises:

. Zu beweisende Aussage der Form”Fur alle n ∈ N0 gilt die Behauptung P“.

. Induktionsbeweis:

• Induktionsbasis: P gilt fur n = 0.

. Beweis des Induktionsbasis: · · ·• Induktionsschritt: Sei n ∈ N0 beliebig fixiert.

• Induktionsannahme: P gilt fur n.

• Induktionsbehauptung: P gilt fur n+ 1.

. Beweis der Induktionsbehauptung: · · · (darf die Induktionsannahme verwenden.)

Page 36: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Perfekte Binarbaume 35

• Lemma: Fur alle h ∈ N0: Bh hat 2h Blatter.

. Beweis:

• Induktionsbasis: B0 hat 20 Blatter.

. Beweis des Induktionsbasis: B0 besteht aus genau einem Knoten/Blatt nachDefinition.

• Induktionsschritt: Sei h ∈ N0 beliebig fixiert.

• Induktionsannahme: Bh hat 2h Blatter.

• Induktionsbehauptung: Bh+1 hat 2h+1 Blatter.

• Beweis der Induktionsbehauptung:

. Bh+1 hat zwei Blatter v1 und v2 fur jedes Blatt v von Bh.

. Damit hat Bh+1 doppelt so viele Blatter wie Bh.

. Aus der Induktionsannahme folgt: Bh+1 hat 2 • 2h = 2h+1 Blatter.

Page 37: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Perfekte Binarbaume 36

• Lemma: Fur alle h ∈ N0: Bh hat 2h+1 − 1 Knoten.

. Beweis:

• Induktionsbasis: B0 hat 21 − 1 Knoten.

. Beweis des Induktionsbasis: Offensichtlich, B0 hat einen Knoten.

• Induktionsschritt: Sei h ∈ N0 beliebig fixiert.

• Induktionsannahme: Bh hat 2h+1 − 1 Knoten.

• Induktionsbehauptung: Bh+1 hat 2(h+1)+1 − 1 = 2h+2 − 1 Knoten.

• Beweis der Induktionsbehauptung:

. Anzahl der Knoten von Bh+1

= Anzahl der Knoten von Bh + Anzahl der Blatter von Bh+1.

. Aus der Induktionsannahme und aus dem letzten Lemma folgt:Anzahl der Knoten von Bh+1

=(2h+1 − 1

)+ 2h+1 = 2 • 2h+1 − 1 = 2h+2 − 1.

Page 38: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Noch zwei Induktionsbeweise 37

• Lemma: Jeder (endliche einfache) zushgd. Graph mit n Knoten hatmindestens n− 1 Kanten.

. Beweis mittels Induktion nach n:

• Induktionsbasis: n = 1. Es gibt nur einen Graphen mit n = 1. Er ist zushgd.und hat 0 Kanten.

• Induktionsschritt: Sei n ∈ N beliebig fixiert.

• Induktionsbehauptung: Jeder zushgd. Graph mit n+ 1 Knoten hat mindestensn Kanten.

• Induktionsannahme: Jeder zushgd. Graph mit m < n+ 1 Knoten hatmindestens m− 1 Kanten.

• Induktionsbeweis: Sei G = (V,E) ein zushgd. Graph mit |V | = n+ 1 Knoten.Fixiere einen beliebigen Knoten u ∈ V und betrachte G′ = G[V − {u}].

Beachte: Im ersten Induktionsbeweis hat uns die Annahme gereicht, dass wir

”Bh hat 2h+1 − 1“ fur das fixiert h bereits bewiesen haben, um damit

”Bh+1

hat 2h+2 − 1“ zu beweisen.

Da G fur n+ 1 ≥ 2 nach Entfernen von {u} in mehrere, strikt kleinere, zushgd.Graphen Gi = (Vi, Ei) mit |Vi| < |V | = n+ 1 zerfallt, nehmen wir an, dass dieAussage fur alle Graphen mit < n+ 1 Knoten bereits bewiesen ist.

Page 39: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Noch zwei Induktionsbeweise 38

• Lemma: Jeder (endliche einfache) zushgd. Graph mit n Knoten hatmindestens n− 1 Kanten.

. Beweis mittels Induktion nach n:

• Induktionsbeweis (Fort.):Die max. Zshgskomponenten von G′ seien G1, . . . , Gr. Es gilt:

1 ≤ r ≤ deg(u) |V | = 1 +∑i∈[r]

|Vi| |E| = deg(u) +∑i∈[r]

|Ei|

Fur jede Komponente Gi = (Vi, Ei) gilt |Vi| ≤ n und damit nachInduktionsannahme |Ei| ≥ |Vi| − 1. Damit:

|E| = deg(u) +∑i∈[r] |Ei|

≥ deg(u) +∑i∈[r](|Vi| − 1)

= |V | − 1− r + deg(u)≥ |V | − 1= n

Page 40: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Noch zwei Induktionsbeweise 39

• Lemma: Jeder (endliche einfache) zshgd. Graph mit n ≥ 3 Knoten undmindestens n Kanten besitzt einen Kreis.

. Beweis:

Beweis mittels Induktion nach der Anzahl der Knoten n ≥ 3:

• Induktionsbasis: Fur n = 3 gibt es nur den C3.

• Induktionsschritt: Sei n ≥ 3 beliebig fixiert.

• Induktionsbehauptung: Jeder zshgd. Graph mit n+ 1 Knoten und mindestensn+ 1 Kanten besitzt einen Kreis.

• Induktionsannahme: Fur alle m ≤ n gilt: Jeder zshgd. Graph mit m Knoten undmindestens m Kanten besitzt einen Kreis.

• Induktionsbeweis: Sei G ein zusammenhangender Graph mit n+ 1 ≥ 4 Knotenund m ≥ n+ 1 Kanten. Fixiere eine beliebige Kante {u, v} ∈ E. Sei G′ derGraph, der aus G entsteht, wenn wir {u, v} entfernen.

Page 41: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Noch zwei Induktionsbeweise 40

• Lemma: Jeder (endliche einfache) zshgd. Graph mit n ≥ 3 Knoten undmindestens n Kanten besitzt einen Kreis.

. Beweis:

. Induktionsbeweis (Fort.):

Ist G′ noch zshgd., dann gibt es einen Pfad von u nach v in G′, derzusammen mit {u, v} einen Kreis in G ergibt.

Ist G′ nicht mehr zusammenhangend, dann besteht G′ aus genau zweimaximalen Zshgskomponenten Gu, Gv. Wir zeigen durch Widerspruch, dassGu oder Gv (oder beide) einen Kreis besitzt.

Seien nu, nv die Anzahl der Knoten und mu,mv die Anzahl der Kanten vonGu und Gv. Es gilt

n+ 1 = nu + nv m = mu +mv + 1

Wenn sowohl Gu wie auch Gw kreisfrei sind, dann gilt nachInduktionsannahme mu < nu und mv < nv. Es folgtm = mu +mv + 1 < nu + nv = n+ 1, in Widerspruch zur Annahmem ≥ n+ 1.

Page 42: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Digraphen, ungerichtete und einfache Graphen

Gradfolge

Page 43: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Gradfolge 42

• Jedem (einfachen) Graphen G = (V,E) konnen wir seine Gradfolge zuordnen:

(deg(v1), deg(v2), . . . , deg(vn)) fur V = {v1, v2, . . . , vn}

. Ohne Einschrankung durfen wir die Knoten so umbenennen, dass dieGradfolge aufsteigend sortiert ist.

• Zwei nicht isomorphe Graphen konnen diesselbe Gradfolge besitzen:

Page 44: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Gradfolge 43

• Anhand der Gradfolge lasst sich aber manchmal schnell erkennen, dass einGraph – bzw. sogar jeder Graph mit dieser Gradfolge – eine gewisseEigenschaft (nicht) besitzt, ohne dass man hierzu die eigentliche Strukturanalysieren muss.

. (Sehr einfaches) Beispiel: Ein Graph mit Gradfolge (0, 2, 2, 2, 2) kann nichtzusammenhangend sein.

. (Einfaches) Beispiel: Ein Graph mit Gradfolge (1, 1, 1, 1) kann nichtzusammenhangend sein.

. Beispiel: Was gilt fur den Zusammenhang eines Graphens mit Gradfolge(1, 1, 2, 2, 2) bzw. (1, 1, 1, 1, 2, 2, 2) bzw. (1, 2, 3, 4, 5)?

Page 45: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Gradfolge 44

. Lemma (”Hand-shaking Theorem”) Fur jeden einfachen Graphen G = (V,E)

gilt:

2 |E| =∑i∈[n]

deg(vi)

. Beweis: Jede Kante {u, v} ∈ E wird in der Summe sowohl durch deg(u) alsauch durch deg(v) gezahlt.

. Konsequenzen:

• Ein einfacher Graph kann zu gegebenem (d1, d2, . . . , dn) hochstens dannexistieren, falls

∑i∈[n] di gerade ist.

• Ein einfacher Graph muss eine gerade Anzahl an Knoten von ungeradem Gradbesitzen.

• Ein einfacher Graph mit |V | > 12

∑i∈[n] di + 1 kann nicht zushg. sein.

Beweis: Dann gilt |V | > |E|+ 1 und der Graph hat nicht genug Kanten.

. Damit gibt es gar keinen Graphen mit Gradfolge (1, 2, 3, 4, 5) und(1, 1, 1, 1, 2, 2, 2) kann nicht zusammenhangend sein.

Page 46: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Digraphen, ungerichtete und einfache Graphen

Realisierbarkeit von Gradfolgen

Page 47: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Realisierbarkeit von Gradfolgen 46

• Welche Tupeln von Zahlen sind die Gradfolge eines Graphen?

• Lemma: Es gibt einen einfachen Graphen mit n Knoten und Gradfolge(d1, . . . , dn) gdw. es einen einfachen Graphen mit n− 1 Knoten undGradfolge sort(d1, . . . , dn−dn−1, dn−dn − 1, . . . , dn−1 − 1) gibt.Dabei bezeichnet sort(t) den Tupel, den man aus t erhalt, in dem man dieKomponenten von t aufsteigend sortiert.

. Informell: Die neue Gradfolge wird aus (d1, . . . , dn) gewonnen in dem man(a) dn entfernt, (b) die letzten dn Komponenten um 1 verkleinert und (c)aufsteigend sortiert.

. Beispiel: (1, 1, 2, 3, 4, 4, 5) ist realisierbargdw. (0, 1, 1, 2, 3, 3) ist realisierbargdw. (0, 0, 1, 1, 2) ist realisierbargdw. (0, 0, 0, 0) ist realisierbar.

Page 48: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Realisierbarkeit von Gradfolgen 47

• Welche Tupel von Zahlen sind die Gradfolge eines Graphen?

• Lemma: Es gibt einen einfachen Graphen mit n Knoten und Gradfolge(d1, . . . , dn) gdw. es einen einfachen Graphen mit n− 1 Knoten undGradfolge sort(d1, . . . , dn−dn−1, dn−dn

− 1, . . . , dn−1 − 1) gibt.

• Beweisidee:

(⇒): Ist in G der Knoten mit maximalem Grad dn genau mit Knoten derGrade dn−1, dn−2, . . . , dn−dn verbunden, dann erhalt man durch Entfernendieses Knotens einen Graphen G′ mit der (unsortierten) Gradfolge(d1, . . . , dn−dn−1, dn−dn − 1, . . . , dn−1 − 1).

. Beispiel:

Page 49: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Realisierbarkeit von Gradfolgen 47

• Welche Tupel von Zahlen sind die Gradfolge eines Graphen?

• Lemma: Es gibt einen einfachen Graphen mit n Knoten und Gradfolge(d1, . . . , dn) gdw. es einen einfachen Graphen mit n− 1 Knoten undGradfolge sort(d1, . . . , dn−dn−1, dn−dn

− 1, . . . , dn−1 − 1) gibt.

• Beweisidee:

Ist in G der Knoten mit maximalem Grad dn nicht genau mit Knoten derGrade dn−1, dn−2, . . . , dn−dn verbunden, dann tauscht man Nachbarn solange aus, bis dies der Fall ist.

Und entfernt dann erst den Knoten mit maximalen Grad.

. Beispiel:

Page 50: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Realisierbarkeit von Gradfolgen 47

• Welche Tupel von Zahlen sind die Gradfolge eines Graphen?

• Lemma: Es gibt einen einfachen Graphen mit n Knoten und Gradfolge(d1, . . . , dn) gdw. es einen einfachen Graphen mit n− 1 Knoten undGradfolge sort(d1, . . . , dn−dn−1, dn−dn

− 1, . . . , dn−1 − 1) gibt.

• Beweisidee:

Ist in G der Knoten mit maximalem Grad dn nicht genau mit Knoten derGrade dn−1, dn−2, . . . , dn−dn verbunden, dann tauscht man Nachbarn solange aus, bis dies der Fall ist.

Und entfernt dann erst den Knoten mit maximalen Grad.

. Idee:”Grun” soll neuer Nachbar von

”Blau” werden, ohne dass sich die

Knotengrade andern.

Page 51: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Realisierbarkeit von Gradfolgen 47

• Welche Tupel von Zahlen sind die Gradfolge eines Graphen?

• Lemma: Es gibt einen einfachen Graphen mit n Knoten und Gradfolge(d1, . . . , dn) gdw. es einen einfachen Graphen mit n− 1 Knoten undGradfolge sort(d1, . . . , dn−dn−1, dn−dn

− 1, . . . , dn−1 − 1) gibt.

• Beweisidee:

Ist in G der Knoten mit maximalem Grad dn nicht genau mit Knoten derGrade dn−1, dn−2, . . . , dn−dn verbunden, dann tauscht man Nachbarn solange aus, bis dies der Fall ist.

Und entfernt dann erst den Knoten mit maximalen Grad.

. Beispiel: Vertauschen von Nachbarn.

Page 52: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Realisierbarkeit von Gradfolgen 47

• Welche Tupel von Zahlen sind die Gradfolge eines Graphen?

• Lemma: Es gibt einen einfachen Graphen mit n Knoten und Gradfolge(d1, . . . , dn) gdw. es einen einfachen Graphen mit n− 1 Knoten undGradfolge sort(d1, . . . , dn−dn−1, dn−dn

− 1, . . . , dn−1 − 1) gibt.

• Beweisidee:

Ist in G der Knoten mit maximalem Grad dn nicht genau mit Knoten derGrade dn−1, dn−2, . . . , dn−dn verbunden, dann tauscht man Nachbarn solange aus, bis dies der Fall ist.

Und entfernt dann erst den Knoten mit maximalen Grad.

. Beispiel: Vertauschen von Nachbarn.

Page 53: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Realisierbarkeit von Gradfolgen 47

• Welche Tupel von Zahlen sind die Gradfolge eines Graphen?

• Lemma: Es gibt einen einfachen Graphen mit n Knoten und Gradfolge(d1, . . . , dn) gdw. es einen einfachen Graphen mit n− 1 Knoten undGradfolge sort(d1, . . . , dn−dn−1, dn−dn

− 1, . . . , dn−1 − 1) gibt.

• Beweisidee:

Ist in G der Knoten mit maximalem Grad dn nicht genau mit Knoten derGrade dn−1, dn−2, . . . , dn−dn verbunden, dann tauscht man Nachbarn solange aus, bis dies der Fall ist.

Und entfernt dann erst den Knoten mit maximalen Grad.

. Beispiel: Vertauschen von Nachbarn.

Page 54: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Realisierbarkeit von Gradfolgen 47

• Welche Tupel von Zahlen sind die Gradfolge eines Graphen?

• Lemma: Es gibt einen einfachen Graphen mit n Knoten und Gradfolge(d1, . . . , dn) gdw. es einen einfachen Graphen mit n− 1 Knoten undGradfolge sort(d1, . . . , dn−dn−1, dn−dn

− 1, . . . , dn−1 − 1) gibt.

• Beweisidee:

(⇐): Hat man andererseits einen einfachen Graphen G′ zu der unsortiertenGradfolge (d1, . . . , dn−dn−1, dn−dn − 1, . . . , dn−1 − 1) bereits gefunden, dannfugt man einfach einen neuen Knoten hinzu und verbindet diesen mit Knotender Grade dn−dn − 1, . . . , dn−1 − 1.

. Beispiel:

Page 55: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Realisierbarkeit von Gradfolgen 48

• Algorithmus von Havel-Hakimi:

• Eingabe : Aufsteigend sortierte Gradfolge (d1, d2, . . . , dn).

• Falls d1 < 0: Abbruch, es existiert kein entsprechender Graph.

• Falls dn = 0: Gib ([n], ∅) zuruck.

• Sonst:

Setze (d′1, . . . , d′n−1) := (d1, . . . , dn−dn−1, dn−dn − 1, . . . , dn−1 − 1).

Bestimme eine Permutation π : [n− 1]→ [n− 1], so dass (d′π(1), . . . , d′π(n−1))

wieder aufsteigend sortiert ist.

Bestimme rekursiv, soweit moglich, einen Graphen G′ = ([n− 1], E′) zu(d′π(1), . . . , d

′π(n−1)).

Gib G = ([n], E) mit

E = {{π−1(u), π−1(v)} | (u, v) ∈ E′} ∪ {{n, n− dn}, . . . , {n, n− 1}}

zuruck.

Page 56: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

• Beispiel: Gegeben (1, 1, 2, 3, 4, 4, 5).

. 1. Phase: top-down Reduktion der Gradfolge

• (1, 1, 2, 3, 4, 4, 5) fuhrt auf (1, 0, 1, 2, 3, 3) bzw. (0, 1, 1, 2, 3, 3)

• (0, 1, 1, 2, 3, 3) fuhrt auf (0, 1, 0, 1, 2) bzw. (0, 0, 1, 1, 2)

• (0, 0, 1, 1, 2) fuhrt auf (0, 0, 0, 0)

. 2. Phase: bottom-up Konstruktion

• Graph zu (0, 0, 0, 0)

• Graph zu (0, 0, 1, 1, 2)

• Graph zu (0, 1, 1, 2, 3, 3)

• Graph zu (1, 1, 2, 3, 4, 4, 5)

Page 57: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

1 Graphen

Einfuhrung: Graphen in der Informatik

Digraphen, ungerichtete und einfache Graphen

Baume

Grundlagen

Wurzelbaume

Euler- und Hamiltonkreise

Planare Graphen und Knotenfarbungen

Matchings

Adjanzenzmatrix eines Graphen

Page 58: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Baume

Page 59: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Baume

Grundlagen

Page 60: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Baume 53

• Allgemeine Definition:

Ein einfacher Graph G = (V,E), der sowohl zusammenhangend als auchkreisfrei ist, wird als Baum bezeichnet.

Ein Knoten u ∈ V mit deg(u) = 1 wird als Blatt bezeichnet, alle anderenKnoten als innere Knoten.

Page 61: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Baume 54

• Beispiel: Bis auf Isomorphie alle Baume mit hochstens 5 Knoten:

• Ein Graph, dessen maximale Zusammenhangskomponenten Baume sind, wirdals Wald bezeichnet.

Page 62: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eigenschaften von Baumen 55

• Lemma: Ist G = (V,E) ein Baum, dann gilt |E| = |V | − 1.

. Beweis:

Wir wissen bereits:

• Jeder einfache Graph G = (V,E) mit |E| ≥ |V | enthalt einen Kreis.

• Jeder zushgd. einfache Graph G = (V,E) besitzt aber mindestens|E| ≥ |V | − 1 Kanten.

Ist also G ein Baum, muss |V | − 1 ≤ |E| < |V | gelten.

Page 63: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eigenschaften von Baumen 56

• Lemma: Jeder Baum G = (V,E) mit |V | ≥ 2 hat (min.) zwei Blatter.

. Beweis mittels Induktion nach n = |V | ≥ 2

• Induktionsbasis: Fur n = 2 ist die Behauptung korrekt.

• Induktionsschritt: Sei n ≥ 2 beliebig fixiert.

• Induktionsbehauptung: Jeder Baum mit n+ 1 Knoten hat zwei Blatter.

• Induktionsannahme: Jeder Baum mit m ≤ n Knoten hat zwei Blatter.

• Induktionsbeweis: Sei G = (V,E) ein Baum mit n+ 1 ≥ 3 Knoten.

. Wir behaupten: Es gibt einen Knoten u ∈ V mit deg(u) = 1.Beweis: Da G zshg. haben alle Knoten Grad 1 oder hoher. Wenn alle KNotenmindestens Grad 2 haben dann ist G nicht kreisfrei.

. Sei w ∈ V der einzige Nachbar von u. Entfernen von u und {u,w} liefert einenGraphen G′ mit n Knoten und n− 1 Kanten. G′ ist immer noch kreisfrei, danur eine Kante entfernt wurde; G′ ist noch zshgd., da jeder einfache Pfad vonw nach v ∈ V − {u} nicht {u,w} verwenden kann.

. Nach Induktionsannahme hat also G′ mindestens zwei Blatter. Hochstens einesdavon kann w sein. Sei v 6= w Blatt von G′. Dann sind w und v Blatter von G.

Page 64: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eigenschaften von Baumen 57

• Definition: Sei G = (V,E) ein (einfacher) Graph.

Einen Teilgraph T = (V,E′) mit E′ ⊆ E, der selbst ein Baum ist, nennt manSpannbaum von G.

• Wir hatten uns bereits uberlegt, dass jeder zusammenhangende Graphmindestens |V | − 1 Kanten hat.

. Weiterhin wissen wir, dass jeder zusammenhangende Graph mit genau|V | − 1 Kanten ein Baum ist.

. Jeder zusammenhangende Graph sollte daher einen Spannbaum besitzen: manentfernt einfach jede Kante, die nicht fur den Zusammenhang notwendig ist.

Page 65: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eigenschaften von Baumen 58

• Lemma: Jeder zusammenhangende Graph G = (V,E) hat (mindestens) einenSpannbaum.

. Beweis mittels Induktion nach k := |E| ∈ N0.

Erinnerung: Ein zushg. Graph mit k Kanten hat 1 ≤ n ≤ k + 1 Knoten.

• IBasis: Fur k = 0 ist die Behauptung korrekt.

• ISchritt: Sei k ≥ 0 beliebig fixiert.

• IBehauptung: Jeder zushgd. Graph mit k + 1 Kanten hat einen Spannbaum.

• IAnnahme: Jeder zushgd. Graph mit ≤ k Kanten hat einen Spannbaum.

• IBeweis: Sei G = (V,E) ein zushgd. Graph mit k + 1 Kanten.

Fixiere eine bel. Kante {u,w} ∈ E. Sei G′ = (V,E′) der Graph, der durchEntfernen von {u,w} aus G entsteht.

Page 66: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eigenschaften von Baumen 58

• Lemma: Jeder zusammenhangende Graph G = (V,E) hat (mindestens) einenSpannbaum.

. Beweis mittels Induktion nach k := |E| ∈ N0.

Erinnerung: Ein zushg. Graph mit k Kanten hat 1 ≤ n ≤ k + 1 Knoten.

• IBasis: Fur k = 0 ist die Behauptung korrekt.

• ISchritt: Sei k ≥ 0 beliebig fixiert.

• IBehauptung: Jeder zushgd. Graph mit k + 1 Kanten hat einen Spannbaum.

• IAnnahme: Jeder zushgd. Graph mit ≤ k Kanten hat einen Spannbaum.

• IBeweis: Sei G = (V,E) ein zushgd. Graph mit k + 1 Kanten.

Nach Induktionsannahme finden wir fur jede der maximal 2 maximalenZushgsk. von G′ einen Spannbaum Ti = (Vi, Ei).

Page 67: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eigenschaften von Baumen 58

• Lemma: Jeder zusammenhangende Graph G = (V,E) hat (mindestens) einenSpannbaum.

. Beweis mittels Induktion nach k := |E| ∈ N0.

Erinnerung: Ein zushg. Graph mit k Kanten hat 1 ≤ n ≤ k + 1 Knoten.

• IBasis: Fur k = 0 ist die Behauptung korrekt.

• ISchritt: Sei k ≥ 0 beliebig fixiert.

• IBehauptung: Jeder zushgd. Graph mit k + 1 Kanten hat einen Spannbaum.

• IAnnahme: Jeder zushgd. Graph mit ≤ k Kanten hat einen Spannbaum.

• IBeweis: Sei G = (V,E) ein zushgd. Graph mit k + 1 Kanten.

Gibt es nur eine maximale Zushgsk., dann ist T1 auch ein Spannbaum von G.

Page 68: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eigenschaften von Baumen 58

• Lemma: Jeder zusammenhangende Graph G = (V,E) hat (mindestens) einenSpannbaum.

. Beweis mittels Induktion nach k := |E| ∈ N0.

Erinnerung: Ein zushg. Graph mit k Kanten hat 1 ≤ n ≤ k + 1 Knoten.

• IBasis: Fur k = 0 ist die Behauptung korrekt.

• ISchritt: Sei k ≥ 0 beliebig fixiert.

• IBehauptung: Jeder zushgd. Graph mit k + 1 Kanten hat einen Spannbaum.

• IAnnahme: Jeder zushgd. Graph mit ≤ k Kanten hat einen Spannbaum.

• IBeweis: Sei G = (V,E) ein zushgd. Graph mit k + 1 Kanten.

Ansonsten ist T = (V,E1 ] E2 ] {{u,w}}) ein Spannbaum von ganz G: durchHinzufugen von {u,w} kann kein Kreis geschlossen werden, sonsten warenT1, T2 schon davor verbunden gewesen und G′ damit zushgd.

Page 69: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eigenschaften von Baumen 59

• Lemma: Sei G = (V,E) ein einfacher Graph. Folgende Aussagen sindaquivalent:

(1) G ist ein Baum.

(2) G ist zushgd. mit |V | = |E|+ 1.

(3) G ist kreisfrei mit |V | = |E|+ 1.

(4) Zwei beliebige Knoten u, v sind durch genau einen einfachen Pfad in Gverbunden.

. Beweis:”Wenn (1), dann auch (2) und (3)”

• Wir wissen bereits, dass jeder Baum |V | = |E|+ 1 erfullt.

Nach Def. ist jeder Baum auch kreisfrei und zushgd. Damit folgen (2) und (3)aus (1).

Page 70: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eigenschaften von Baumen 59

• Lemma: Sei G = (V,E) ein einfacher Graph. Folgende Aussagen sindaquivalent:

(1) G ist ein Baum.

(2) G ist zushgd. mit |V | = |E|+ 1.

(3) G ist kreisfrei mit |V | = |E|+ 1.

(4) Zwei beliebige Knoten u, v sind durch genau einen einfachen Pfad in Gverbunden.

. Beweis:”Wenn (2), dann auch (3)”

• Wir wissen auch, dass

(i) jeder zushgd. Graph mindestens |E| ≥ |V | − 1 Kanten besitzt;

(ii) aber auch jeder zushgd. Graph mit |E| ≥ |V | einen Kreis enthalt.

Damit hat erfullt jeder Graph, der (2) erfullt, immer auch (3).

Page 71: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eigenschaften von Baumen 59

• Lemma: Sei G = (V,E) ein einfacher Graph. Folgende Aussagen sindaquivalent:

(1) G ist ein Baum.

(2) G ist zushgd. mit |V | = |E|+ 1.

(3) G ist kreisfrei mit |V | = |E|+ 1.

(4) Zwei beliebige Knoten u, v sind durch genau einen einfachen Pfad in Gverbunden.

. Beweis:”Wenn (3), dann auch (2)”

• Sei G kreisfrei mit |V | = |E|+ 1.

Seien G1, . . . , Gl die maximalen Zushgsk. von G; da G kreisfrei, ist auch jedesGi = (Vi, Ei) kreisfrei.

Weiterhin sind die Gi zushgd., also Baume mit |Vi| = |Ei|+ 1. Daher:

|V | =∑i∈[l]

|Vi| =∑i∈[l]

(|Ei|+ 1) = |E|+ l

Aus |V | = |E|+ 1 und |V | = |E|+ l folgt l = 1, d.h. G ist bereis zushgd. Alsofolgt (2) auch aus (3).

Page 72: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eigenschaften von Baumen 59

• Lemma: Sei G = (V,E) ein einfacher Graph. Folgende Aussagen sindaquivalent:

(1) G ist ein Baum.

(2) G ist zushgd. mit |V | = |E|+ 1.

(3) G ist kreisfrei mit |V | = |E|+ 1.

(4) Zwei beliebige Knoten u, v sind durch genau einen einfachen Pfad in Gverbunden.

. Beweis:”(1) gdw. (4)”

• Sei G ein Graph, indem es zwei Knoten u,w gibt, die durch zweiunterschiedliche einfache Pfade v0, v1, . . . , vl und v′0, v

′1, . . . , v

′l′ verbunden

sind (v0 = v′0 = u, vl = v′l′ = w).

1

2 3 4 5

6 7 8

1

2 3 4 5

6 7 8

Page 73: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eigenschaften von Baumen 59

• Lemma: Sei G = (V,E) ein einfacher Graph. Folgende Aussagen sindaquivalent:

(1) G ist ein Baum.

(2) G ist zushgd. mit |V | = |E|+ 1.

(3) G ist kreisfrei mit |V | = |E|+ 1.

(4) Zwei beliebige Knoten u, v sind durch genau einen einfachen Pfad in Gverbunden.

. Beweis:”(1) gdw. (4)”

• Sei a der Index des ersten Knotens (beginnend in u), an dem die beiden Pfadeverzweigen.

1

2 3 4 5

6 7 8

1

2 3 4 5

6 7 8

Page 74: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eigenschaften von Baumen 59

• Lemma: Sei G = (V,E) ein einfacher Graph. Folgende Aussagen sindaquivalent:

(1) G ist ein Baum.

(2) G ist zushgd. mit |V | = |E|+ 1.

(3) G ist kreisfrei mit |V | = |E|+ 1.

(4) Zwei beliebige Knoten u, v sind durch genau einen einfachen Pfad in Gverbunden.

. Beweis:”(1) gdw. (4)”

• Sei b der Index des ersten Knotens nach va auf dem Pfad v0, v1, . . . , vl, derauch wieder auf dem zweiten Pfad liegt. Diesen gibt es, da vl = v′l′ . Da beidePfade einfach sind, gibt es ein eindeutiges b′ > a mit vb = v′b′ .

1

2 3 4 5

6 7 8

1

2 3 4 5

6 7 8

Page 75: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eigenschaften von Baumen 59

• Lemma: Sei G = (V,E) ein einfacher Graph. Folgende Aussagen sindaquivalent:

(1) G ist ein Baum.

(2) G ist zushgd. mit |V | = |E|+ 1.

(3) G ist kreisfrei mit |V | = |E|+ 1.

(4) Zwei beliebige Knoten u, v sind durch genau einen einfachen Pfad in Gverbunden.

. Beweis:”(1) gdw. (4)”

• Dann ist va, va+1, . . . , vb, v′b′−1, . . . , v

′a ein einfacher Kreis in G, der die drei

unterschiedlichen Knoten vl, vl+1, vr enthalt.

1

2 3 4 5

6 7 8

Page 76: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eigenschaften von Baumen 59

• Lemma: Sei G = (V,E) ein einfacher Graph. Folgende Aussagen sindaquivalent:

(1) G ist ein Baum.

(2) G ist zushgd. mit |V | = |E|+ 1.

(3) G ist kreisfrei mit |V | = |E|+ 1.

(4) Zwei beliebige Knoten u, v sind durch genau einen einfachen Pfad in Gverbunden.

. Beweis:”(1) gdw. (4)”

• Ist G also ein Baum, d.h. zushgd. und kreisfrei, gilt auch (4).

• Jeder Graph, der (4) erfullt, ist aber auch zushgd. und kreisfrei.

Page 77: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Baume

Wurzelbaume

Page 78: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Wurzelbaume 61

• In der Informatik finden Baume z.B. als Suchstrukturen Verwendung.

. Hierbei gibt es einen speziellen Start-/Einstiegsknoten, in dem die Suchebeginnt, welcher als Wurzel bezeichnet wird.

. Implizit stellt man sich den Baum als gerichteten Graphen vor, indem alleKanten von der Wurzel weggerichtet sind.

Page 79: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Wurzelbaume 62

. Definition: Ein Wurzelbaum G = (V,E, r) ist ein Baum G = (V,E) mit festgewahlter Wurzel r ∈ V .

• Die Hohe hG(v) eines Knotens v in G ist sein Abstand (Lange des kurzestensPfades) zu r.

• Die Hohe von G wird mit h(G) = max{hG(v) | v ∈ V } bezeichnet.

. Implizit sind alle Kanten von der Wurzel weggerichtet, d.h. man schreibt uEvfur

”{u, v} ∈ E und hG(v) = hG(u) + 1”.

Gilt uEv, dann nennt man u Vater von v und v Kind von u.

Im Fall uE∗v nennt man v Nachfahre von u und u Vorfahre von v.

(D.h. E∗ ist eine partielle Ordnung auf V mit r dem minimalen Element.)

. Fur u ∈ V ist (uE∗, E, u) gerade der durch u induzierte Teilbaum von G.

Page 80: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Wurzelbaume 63

• Beispiel: Perfekte Binarbaume mit Wurzel ε:

([2]<h, {{u, u1}, {u, u2} | u ∈ [2]<h−1}︸ ︷︷ ︸=Bh

, ε)

(B0, ε) (B1, ε) (B2, ε) (B3, ε)

. (Bh, ε) hat gerade die Hohe h; jedes Blatt hat Hohe h; jeder innere Knotenhat Hohe hochstens h− 1; insgesamt gibt es 2h+1 − 1 Knoten und damit2h+1 − 2 Kanten.

Page 81: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Wurzelbaume 64

• Beispiel: Entsprechend perfekte Baume vom Grad d und Hohe h:

([d]<h, {{u, ux} | u ∈ [d]<h−1}, x ∈ [d], ε)

Page 82: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Anwendung: Suffixbaume 65

• Muss man in einem gegebenen Text t ∈ Σ∗ wiederholt nach Vorkommen vonWortern w1, w2, . . . , wk ∈ Σ∗ suchen, so kann die Suche mittels eines Suffixbaumsbeschleunigt werden:

• Der Suffixbaum zu t hat als Knoten alle Infixe von t$, wobei $ ein kunstlichesEndsymbol ist.

• Zwei Infixe u, u′ von t sind durch eine Kante verbunden, wenn es einx ∈ Σ ] {$} mit u′ = ux gibt.

• Jedes Blatt u$ ist mit dem Startindex |t| − |u| von u bzgl. t beschriftet.

. Beispiel: m = banana (Knotenbezeichner als Kantenlabel)

5 3 1

4 2

0

a n a n a

$ $ $

n

a n a

$ $

b

a n a n a

$

Page 83: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

1 Graphen

Einfuhrung: Graphen in der Informatik

Digraphen, ungerichtete und einfache Graphen

Baume

Euler- und Hamiltonkreise

Planare Graphen und Knotenfarbungen

Matchings

Adjanzenzmatrix eines Graphen

Page 84: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Euler- und Hamiltonkreise

Page 85: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Euler- und Hamiltonkreise: Motivation 68

• In einem Museum soll ein Wachmann am Abend nach und nach alleLichtschranken an den Durchgangen (in rot) zu den einzelnenAusstellungsraumen von Hand aktivieren:

. Frage: Gibt es eine Moglichkeit fur den Wachmann, jeden Durchgang genaueinmal zu besuchen (er muss nicht hindurchgehen!)?

Page 86: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Euler- und Hamiltonkreise: Motivation 69

• Modellierung als Graph:

• Stelle Durchgange als Knoten dar, verbinde zwei Durchgange mit einer Kante,falls sie einen Raum gemeinsam haben.

Page 87: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Euler- und Hamiltonkreise: Motivation 70

• Unter dieser Modellierung ubersetzt sich die Frage in:

Gibt es einen Kreis, der jeden Knoten genau einmal besucht?

. Solche Kreise nennt man Hamiltonkreise.

Page 88: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Euler- und Hamiltonkreise: Motivation 70

• Unter dieser Modellierung ubersetzt sich die Frage in:

Gibt es einen Kreis, der jeden Knoten genau einmal besucht?

. Solche Kreise nennt man Hamiltonkreise.

Page 89: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Euler- und Hamiltonkreise: Motivation 71

. Der Wachmann langweilt sich.

. Er fragt sich: Gibt es eine Moglichkeit, jeden (roten) Durchgang genaueinmal zu durchqueren und dabei die Lichtschranke zu aktivieren?

• Modellierung als Graph:

• Stelle Raume (ink. umschließenden Raum) als Knoten dar, Durchgange alsKanten (ggf. Mehrfachkanten).

×2 ×2×2 ×2

Page 90: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Euler- und Hamiltonkreise: Motivation 72

• Unter dieser Modellierung ubersetzt sich die Frage in:

Gibt es einen Kreis, der jede Kante genau entsprechend ihrer Vielfachheitbesucht?

. Einen solchen Kreis nennt man Eulerkreis.

×2 ×2×2 ×2

Page 91: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Euler- und Hamiltonkreise: Motivation 73

. Wie schnell kann ein Rechner Eulerkreise bzw. Hamiltonkreise finden oderbestimmen, dass es keine gibt?

Page 92: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Euler- und Hamiltonkreise: Definition 74

• Wir betrachten im Folgenden nur einfache Graphen.

• Schleifen sind sowohl fur Euler- als auch Hamiltonkreise uninteressant(warum?).

• Mehrfachkanten sind fur Hamiltonkreise uninteressant (warum?).

• Fur Eulerkreise kann man ungerichtete Graphen mit Mehrfachkanten ineinfache Graphen uberfuhren, indem man jede Kante durch einen Hilfsknotenkunstlich unterteilt:

• Definition: Sei G = (V,E) ein einfacher Graph.

Ein Kreis v0, v1, . . . , vl in G heißt,

• Eulerkreis, falls er jeden Knoten mindestens einmal und jede Kante genaueinmal besucht:

{v0, v1, . . . , vl} = V und {{v0, v1}, {v1, v2}, . . . , {vl, v0}}M = E.

• Hamiltonkreis, falls er jeden Knoten genau einmal besucht:

{v0, v1, . . . , vl−1}M = V .

Page 93: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eulerkreise: Existenz 75

• Satz: Ein einfacher Graph G = (V,E) mit |V | ≥ 3 besitzt genau dann einenEulerkreis, wenn sowohl (1) G zusammenhangend ist als auch (2) jederKnoten geraden (positiven) Knotengrad hat.

. Es lasst sich somit sehr einfach entscheiden, ob ein gegebener Graph G einenEulerkreis besitzt

. Im Fall von Hamiltonkreisen ist es sehr unwahrscheinlich, dass es ein soeinfach zu uberprufendes Kriterium gibt. Es handelt sich um ein sogenanntesNP-vollstandiges Problem (mehr dazu in Theoretische Informatik im 4.Semester).

Page 94: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eulerkreise: Existenz 76

• Beweis: Ein einfacher Graph G = (V,E), der einen Eulerkreis besitzt, istzusammenhangend und jeder Knoten hat einen geraden Grad.

Wir fixieren einen Eulerkreis.

• G ist zusammenhangend: Da Jeder Knoten auf dem Eulerkreis liegt, gibt eszwischen je zwei beliebig gewahlten Knoten einen verbindenden Pfad gibt.

• Jeder Knoten hat geraden Grad: Sei u ∈ V beliebig fixiert.

Fur jede Kante, die bzgl. des Eulerkreises von u wegfuhrt, muss es auch genaueine Kante geben, welche bzgl. des Eulerkreises zu u hinfuhrt.

Also hat u geraden Grad.

Page 95: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eulerkreise: Existenz 77

• Beweis: Ein einfacher Graph G = (V,E), der zusammenhangend ist und indem jeder Knoten geraden Grad hat, besitzt einen Eulerkreis.

Da G zusammenhangend ist, hat jeder Knoten mindestens Grad 1; nachAnnahme sogar deg(v) ≥ 2 und damit |E| ≥ |V |.Wir verwenden Induktion nach der Anzahl der Kanten k := |E|.• IBasis: Es gelte k = 3 (mit weniger Kanten gibt es mindestens einen Knoten

mit ungeradem Grad). Dann ist der Graph isomorph zum C3 und besitzt einenEulerkreis.

• ISchritt: Sei k ∈ N0 beliebig fixiert.

• IAnnahme: Jeder zshgd. Graph G = (V,E) mit |E| ≤ k und nur geradenKnotengraden besitzt einen Eulerkreis.

• IBehauptung: Jeder zshgd. Graph G = (V,E) mit |E| = k + 1 und nur geradenKnotengraden besitzt einen Eulerkreis.

Page 96: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eulerkreise: Existenz 77

• Beweis: Ein einfacher Graph G = (V,E), der zusammenhangend ist und indem jeder Knoten geraden Grad hat, besitzt einen Eulerkreis.

• ISchritt: Sei k ∈ N0 beliebig fixiert.

• IBeweis: Sei G = (V,E) zshgd. mit |E| = k+ 1 und nur geraden Knotengraden.

Fixiere eine beliebige Kante {u,w} ∈ E. Sei G′ = G[E − {u,w}].

Wir behaupten: es gibt in G′ einen Pfad von u nach w.

Bewis der Behauptung: Die Zshgkpt. von u in G′ enthalt eine gerade Anzahlvon Knoten mit ungeradem Grad (Hand-Shaking Theorem).

Da u und w die einzigen Knoten mit ungeradem Grad sind, muss w zu derZshgkpt. von u gehoren.

Es folgt, dass mindestends ein Pfad von u nach w fuhrt.

a

b

c

d e

f

g

h

Page 97: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eulerkreise: Existenz 77

• Beweis: Ein einfacher Graph G = (V,E), der zusammenhangend ist und indem jeder Knoten geraden Grad hat, besitzt einen Eulerkreis.

• ISchritt: Sei k ∈ N0 beliebig fixiert.

• IBeweis: Sei G = (V,E) zshgd. mit |E| = k+ 1 und nur geraden Knotengraden.

Es gibt somit in G′ einen einfachen Pfad v0, . . . , vl von u nach w, zusammenmit {u,w} somit einen einfachen Kreis κ = v0, v1, . . . , vl, v0.

a

b

c

d e

f

g

h

Page 98: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eulerkreise: Existenz 77

• Beweis: Ein einfacher Graph G = (V,E), der zusammenhangend ist und indem jeder Knoten geraden Grad hat, besitzt einen Eulerkreis.

• ISchritt: Sei k ∈ N0 beliebig fixiert.

• IBeweis: Sei G = (V,E) zshgd. mit |E| = k+ 1 und nur geraden Knotengraden.

Sei G′′ der Graph, der aus G durch Entfernen der Kanten von κ entsteht. JederKnoten von G′′ hat geraden Grad.

Fur jede der max. Zshgsk. von G finden wir daher einen Eulerkreis κi nachIAnnahme; wir durfen annahmen, dass κi jeweils in einem Knoten von κ loslauft.

a

b

c

d e

f

g

h

κ = adeha, κ1 = abdca, κ2 = eghfe

Page 99: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eulerkreise: Existenz 77

• Beweis: Ein einfacher Graph G = (V,E), der zusammenhangend ist und indem jeder Knoten geraden Grad hat, besitzt einen Eulerkreis.

• ISchritt: Sei k ∈ N0 beliebig fixiert.

• IBeweis: Sei G = (V,E) zshgd. mit |E| = k+ 1 und nur geraden Knotengraden.

Wir erhalten einen Eulerkreis fur ganz G, indem wir die Eulerkreise κi anstelleihrer Starknoten in κ substituieren.

a

b

c

d e

f

g

h

κ = adeha, κ1 = abdca, κ2 = eghfe

Eulerkreis: (abdca)d(eghfe)ha

Page 100: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Hamiltonkreise: Existenz 78

• Satz: Ein einfacher Graph G = (V,E) mit |V | ≥ 3 besitzt einen

Hamiltonkreis, wenn in G jeder Knoten mindestens Knotengrad |V |2 hat.

. Dieser Satz ist keine Charakterisierung der Graphen, die einen Hamiltonkreishaben! Er stellt lediglich eine hinreichende Bedingung dar.

Page 101: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Hamiltonkreise: Existenz 79

• Beweis: Ein einfacher Graph G = (V,E), indem jeder Knoten mindestens

Grad |V |2 hat, enthalt einen Hamiltonkreis.

Sei G = (V,E) ein solcher Graph. Setze n = |V |. Dann ist Gzusammenhangend: Wurde G in mindestens zwei max. Zshgsk. zerfallen, sohatte die kleineste max. Zshgsk. hochstens n

2 Knoten und damit jeder Knotenhochstens Grad n

2 − 1.

Sei π = v0, v1, . . . , vm ein langster einfacher Pfad in G; dann muss jederNachbar von v0 auf π liegen, ebenso jeder Nachbar von vm; ansonsten wareπ nicht maximal.

Page 102: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Hamiltonkreise: Existenz 79

• Beweis: Ein einfacher Graph G = (V,E), indem jeder Knoten mindestens

Grad |V |2 hat, enthalt einen Hamiltonkreis.

Seien 0 < i1 < . . . < ik ≤ m die Positionen der Nachbarn von v0 bzgl. π; esgilt nach Annahme deg(v0) = k ≥ n

2 .

Einer der Knoten vi1−1, . . . , vik−1 muss ein Nachbar von vm sein: ansonstenkonnte vm nur noch maximal Grad n− 1− k ≤ n− 1− n

2 <n2 besitzen

entgegen unserer Annahme.

Wir finden also ein j ∈ [k] mit {v0, vij}, {vij−1, vm} ∈ E.

Page 103: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Hamiltonkreise: Existenz 79

• Beweis: Ein einfacher Graph G = (V,E), indem jeder Knoten mindestens

Grad |V |2 hat, enthalt einen Hamiltonkreis.

Damit ist κ = v0, v1, vij−1, vm, vm−1, . . . , vij , v0 ein einfacher Kreis in G.

Page 104: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Hamiltonkreise: Existenz 79

• Beweis: Ein einfacher Graph G = (V,E), indem jeder Knoten mindestens

Grad |V |2 hat, enthalt einen Hamiltonkreis.

Wurde ein Knoten vi auf κ einen Nachbarn w besitzen, der nicht auf κ liegt,dann konnte man κ bei vi zu einem Pfad offnen, welcher zusammen mit weinen langeren Pfad als π ergeben wurde.

Da G zusammenhangend ist, muss jeder Knoten von G bereits auf κ liegen,d.h. κ ist ein Hamiltonkreis.

Page 105: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

1 Graphen

Einfuhrung: Graphen in der Informatik

Digraphen, ungerichtete und einfache Graphen

Baume

Euler- und Hamiltonkreise

Planare Graphen und Knotenfarbungen

Matchings

Adjanzenzmatrix eines Graphen

Page 106: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Planare Graphen und Knotenfarbungen

Page 107: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Planaritat 82

• (Informelle) Definition: Ein einfacher Graph G = (V,E) ist planar, falls manihn in die Zeichenebene ohne Kantenuberschneidungen zeichnen kann.

• Motivation: Moglichst ubersichtliche Darstellung.

? ?

. Anwendungen: Layout von Graphen (Diagramme, Schaltkreise, . . . ).

Page 108: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eulersche Polyederformel 83

• Erstes Ziel: K3,3 und K5 sind nicht planar. Hilfsmittel:

. Satz: Eulersche Polyederformel (EPF)

Sei G = (V,E) ein zusammenhangender planerer Graph. Sei f die Anzahl derFlachen, in die G bei uberschneidungsfreier Darstellung die Zeichenebenezerschneidet. Dann gilt:

f − |E|+ |V | = 2

. Korollar: f ist bereits durch |E| und |V | bestimmt, jede uberschneidungsfreieDarstellung eines planaren Graphen zerschneidet die Ebene in dieselbe Anzahlvon Flachen.

. Beachte: Die umschließende Flache wird mitgezahlt (Vorstellung:Zeichenpapier entlang Kanten mit Teppichmesser zerschneiden).

Page 109: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eulersche Polyederformel 84

. Beweis mittels Induktion nach n = |E| − |V |+ 1 ∈ N0.

(Da G zshgd.: |E| ≥ |V | − 1.)

• IBasis: Im Fall n = 0 folgt |E| = |V | − 1, also ist G ein Baum mit f = 1, alsogilt 1− |E|+ |V | = 1− |V |+ 1 + |V | = 2.

• ISchritt: Sei n ∈ N0 beliebig fixiert.

IBehauptung: Die EPF gilt fur jeden zshgd. planaren Graph G = (V,E) mit|E| − |V |+ 1 = n+ 1.

IAnnahme: Die EPF gilt fur jeden zshgd. planaren Graph G = (V,E) mit|E| − |V |+ 1 ≤ n.

Page 110: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eulersche Polyederformel 84

. Beweis mittels Induktion nach n = |E| − |V |+ 1 ∈ N0.

(Da G zshgd.: |E| ≥ |V | − 1.)

• IBasis: Im Fall n = 0 folgt |E| = |V | − 1, also ist G ein Baum mit f = 1, alsogilt 1− |E|+ |V | = 1− |V |+ 1 + |V | = 2.

• ISchritt: Sei n ∈ N0 beliebig fixiert.

IBeweis: Sei G = (V,E) ein zshgd. planarer Graph mit|E| − |V |+ 1 = n+ 1 > 1, insbesondere |E| > |V |. Sei f die Anzahl derFlachen, in die G die Ebene zerteilt.

Page 111: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eulersche Polyederformel 84

. Beweis mittels Induktion nach n = |E| − |V |+ 1 ∈ N0.

(Da G zshgd.: |E| ≥ |V | − 1.)

• IBasis: Im Fall n = 0 folgt |E| = |V | − 1, also ist G ein Baum mit f = 1, alsogilt 1− |E|+ |V | = 1− |V |+ 1 + |V | = 2.

• ISchritt: Sei n ∈ N0 beliebig fixiert.

IBeweis: Da G zshgd., muss G somit einen Kreis κ enthalten. Entfernen einerbeliebigen Kante {u,w} von κ aus G fuhrt auf G′ = G[E − {{u,w}}], dabeiwerden die durch {u,w} getrennten Flachen zu einer Flache vereinigt.

G′ ist noch zshgd. und planar, hat eine Kante weniger als G und unterteilt dieEbene in f − 1 Flachen. Nach Induktionsannahme gilt(f − 1)− (|E| − 1) + |V | = 2, also auch f − |E|+ |V | = 2.

Page 112: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eulersche Polyederformel 85

• EPF fur planare Graphen mit k max. Zhgskomponenten (Beweis zur Ubung):

f − |E|+ |V | = 1 + k

• Folgerungen: Fur jeden planaren Graphen G = (V,E) gilt

• f − |E|+ |V | ≥ 2.

• |E| ≤ 3 |V | − 6, falls |V | ≥ 3, da:

Jede Flache wird durch mindestens 3 Kanten definiert; dabei zahlen wir jedeKante aber doppelt, d.h. |E| ≥ 3

2f bzw. f ≤ 2

3|E|. Damit

2 ≤ f − |E|+ |V | ≤ 2

3|E| − |E|+ |V |

• es gibt mind. einen Knoten u ∈ V mit deg(u) ≤ 5, falls |V | ≥ 3, da:

Ansonsten musste |E| = 12

∑v∈V deg(v) ≥ 1

2• 6 |V | = 3 |V | gelten.

Page 113: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Eulersche Polyederformel 86

• Folgerungen: K3,3 und K5 sind nicht planar.

• Im K5 gilt |V | = 5, |E| = 10, also 10 = |E| ≥ 3 |V | − 6 = 9.

• Im K3,3 besteht jeder Kreis aus mindestens 4 Kanten.

In einer uberschneidungsfreien Darstellung des K3,3 musste jede Flache durchmindestens 4 Kanten begrenzt sein.

Es musste also 42f ≤ |E| = 9 gelten und damit:

f − |E|+ |V | ≤ 92− 9 + 6 = 1.5 < 2

Page 114: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Minoren und Satz von Kuratowski 87

• Sei G = (V,E) ein einfacher Graph. Fixiere eine beliebige Kantee = {u,w} ∈ E. Dann schreibt man G/e fur den einfachen Graphen, denman aus G erhalt, indem man u mit w identifiziert:

G/e =

(V − {w},

(E ∩

(V − {w}

2

))∪ {{u, x} | {w, x} ∈ E}

)Man sagt, dass G/e aus G durch die Kantenkontraktion von e gewonnenwird.

Page 115: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Minoren und Satz von Kuratowski 88

• Definition: Fur zwei gegebene einfache Graphen H = (VH , EH) undG = (VG, EG) sagt man, dass

”H ein Minor von G” ist, falls man aus G

schrittweise mittels Entfernen von Kanten, Entfernen von Knoten vom Grad 0und Kantenkontraktion einen zu H isomorphen Graphen erzeugen kann.

. Satz von Kuratowski:

Ein einfacher Graph G = (V,E) ist genau dann planar, wenn weder der K3,3

noch der K5 ein Minor von G ist.

Page 116: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Knotenfarbungen 89

• Definition: Sei G = (V,E) ein einfacher Graph.

Eine Abbildung c : V → N ist eine Knotenfarbung von G, falls c(u) 6= c(w)entlang jeder Kante {u,w} ∈ E gilt;

die Anzahl der von c verwendeten Farben ist gerade |c(V )|.

Die chromatische Zahl χ(G) von G ist die minimale Anzahl von Farben, furdie es eine Knotenfarbung von G gibt, d.h.

χ(G) := min {|c(V )| | c : V → N Knotenfarbung von G}

. Trivial: 2 ≤ χ(G) ≤ |V | fur jeden einfachen Graphen G = (V,E) mit |E| ≥ 1.

Page 117: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Knotenfarbung 90

x = 5y = 6z = x + yy = z * xu = y * y

• Die Frage nach der chromatischen Zahl ergibt sich sehr naturlich, wenn manKonflikte mittels einfacher Graphen G = (V,E) darstellt:

. Beispiel: Register-Minimierung

Zwei Variablen stehen in Konflikt, falls der Wert der einen zu Berechnung desWerts der anderen benotigt wird; Farbung entspricht Zuordnung derKnoten/Variablen auf Register.

x

y z

u

Page 118: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Knotenfarbungen 91

• Beobachtungen:

• χ(G) ≤ |V | fur jeden einfachen Graphen G = (V,E).

• χ(G) ≤ 2, falls G bipartit.

• χ(G) > 1, sobald E 6= ∅.

• χ(Kn) = n, χ(Km,n) = 2, χ(C2k) = 2, χ(C2k+1) = 3.

• Fur jeden einfachen Graphen G = (V,E) gilt χ(G) ≤ 1 + maxv∈V deg(v).

Page 119: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Knotenfarbungen 91

• Lemma:

Fur jeden einfachen Graphen G = (V,E) gilt χ(G) ≤ 12 +

√2 |E|+ 1

4 .

• Beweis: Sei c : V → [χ(G)] eine minimale Knotenfarbung. Dann ist{c−1(i) | i ∈ [χ(G)]} eine Partition von V .

Fur zwei beliebige Farben 1 ≤ i < j ≤ χ(G) muss es jeweils Knotenui,j ∈ c−1(i), vi,j ∈ c−1(j) mit {ui,j , vi,j} ∈ E geben; ansonsten konnten wirdie Farbe j durch die Farbe i ersetzen.

Damit muss es mindestens |E| ≥ 12χ(G)(χ(G)− 1) Kanten geben.

Page 120: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Knotenfarbungen 92

• Satz: Vier-Farben-Satz

Fur jeden einfachen planaren Graphen G = (V,E) gilt χ(G) ≤ 4.

• Einer der ersten computeruntersutzten Beweise (1976):

Reduktion”von Hand” auf 1936 Falle, welche durch einen Computer

uberpruft wurden; spater Reduktion auf nur noch 633 Falle (1996).

2005 erster vollstandig formaler, durch Computer uberprufter Beweis.

• Wir zeigen den einfacheren Funf-Farben-Satz.

Page 121: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Funf-Farben-Satz 93

• Beweis Funf-Farben-Satz:

Ohne Einschrankung ist G zusammenhangend.

Annahme: Die Behauptung ist nicht wahr.

Dann gibt es einen einfachen planaren Graphen G = (V,E) mit χ(G) > 5mit minimaler Knotenzahl n = |V |.

Da immer χ(G) ≤ n, muss n ≥ 6 gelten.

Es gibt ein u ∈ V mit deg(u) ≤ 5 (schon bewiesen, folgt aus der EPF). SeiH = G[V − {u}].

Da G ein Gegenbeispiel mit minimaler Knotenzahl ist, muss χ(H) ≤ 5 unddamit aber auch deg(u) = 5 in G gelten; insbesondere mussen alle funfFarben fur alle funf Nachbarn von u in H verwendet werden.

Wir fixieren eine solche Farbung c : V \ {u} → [5] von H.

Page 122: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Funf-Farben-Satz 93

• Beweis Funf-Farben-Satz:

Wir zahlen die Nachbarn von u in G im Uhrzeigersinn aufΓ(u) = {u1, . . . , u5}

u1

u2

u3u4

u5

Wir machen nun eine Fallunterscheidung danach, ob es in H einen Pfad vonu1 nach u3 gibt, auf dem sich nur die Fraben Rot und Blau abwechseln.

Sei hierzu H1,3 = H[c−1({1, 3})] der durch die roten und blauen Knoteninduzierte Teilgraph von H.

Page 123: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Funf-Farben-Satz 93

• Beweis Funf-Farben-Satz:

Gibt es in H keinen Pfad zwischen u1 und u3, der nur die Farben Rot undBlau verwendet, dann liegen u1 und u3 in verschiedenen max.Zusammenhangskomponenten K1,K3 von H1,3.

u1

u2

u3u4

u5

Page 124: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Funf-Farben-Satz 93

• Beweis Funf-Farben-Satz:

Vertauschen wir in der Komponente K3 von u3 die Farben Rot und Blau

c′(v) :=

c(v) falls v 6∈ K3

3 falls c(v) = 1, v ∈ K3

1 falls c(v) = 3, v ∈ K3

dann wirkt sich dies nicht auf u1 aus und wir erhalten eine korrekte Farbungc′ von H mit:

u1

u2

u3u4

u5

Mit c′(u) := 3 erhalten wir somit ein 5-Farbung von G obwohl χ(G) > 5.

Page 125: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Funf-Farben-Satz 93

• Beweis Funf-Farben-Satz:

Es muss somit in H einen Pfad π zwischen u1 und u3 geben, der nur dieFarben Rot und Blau verwendet.

u1

u2

u3u4

u5

Sei nun H2,4 = H[c−1({2, 4})] analog zu gerade eben der Teilgraph von H,der von den grunen und orangenen Knoten induziert wird.

Page 126: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Funf-Farben-Satz 93

• Beweis Funf-Farben-Satz:

Die max. Zusammenhangskomponente von u2 bzgl. H2,4 muss vollstandig indem durch den Kreis uπu eingeschlossenen Gebiet liegen:

u1

u2

u3u4

u5

D.h. jeder Pfad von u2 nach u4 in H muss wegen der Planaritat uber einender Knoten auf π laufen.

Damit mussen u2 und u4 bzgl. H2,4 in verschiedenen Komponenten liegen;wir konnen somit die Farben Grun und Orange in der Komponente von u4vertauschen, womit wir u orange farben konnen.

Page 127: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

1 Graphen

Einfuhrung: Graphen in der Informatik

Digraphen, ungerichtete und einfache Graphen

Baume

Euler- und Hamiltonkreise

Planare Graphen und Knotenfarbungen

Matchings

Grundlagen und Heiratssatz

Matchings nach Praferenzen

Adjanzenzmatrix eines Graphen

Page 128: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Matchings

Page 129: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Matchings

Grundlagen und Heiratssatz

Page 130: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Matchings 97

• Problemstellung:

Sei S eine Menge von Studierenden, P eine Menge von Praktikumsplatzenund E ⊆ S × P mit

”sEp falls s Interesse an p hat”.

. Gesucht ist eine Zuordnung, die jedem Studierenden (hochstens) einenPraktikumsplatz zuordnet, also eine partielle Funktion f : S ↪→ P , diezusatzlich E respektiert, d.h. f ⊆ E.

. E schrankt somit die moglichen Zuordnungen ein (Nebenbedinungen).

S1 S2 S3 S4

P1 P2 P3 P4 P5 P6

. Definition: Sei G = (V,E) ein einfacher Graph. Ein Matching M ist eineTeilmenge M ⊆ E der Kanten, so dass |e ∩ e′| 6= 1 fur alle e, e′ ∈M .

Page 131: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Das Heiratsproblem 98

• Bekannt als das Heiratsproblem

• Gegeben seien heiratswilligeDamen und Herren. Jede Damegibt an, mit welchem derHerren sie sich eventuellvermahlen wurde.

• Das Problem besteht nun darin,die Damen so zu verheiraten,dass jede Dame einen Herrenihrer Wahl erhalt, und dassselbstverstandlich keine zweiDamen mit demselben Herrnverheiratet sind.

Page 132: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Heiratssatz 99

• Satz:

Sei G = (A ]B,E) ein einfacher bipartiter Graph mit (oBdA, sonst beidevertauschen) |A| ≤ |B|.

Dann gibt es ein Matching M ⊆ E mit |M | = |A| genau dann, wenn jedeKnotenteilmenge X ⊆ A mindestens |X| Nachbarn (in B) besitzt, d.h. falls

|Γ(X)| ≥ |X| wobei Γ(X) =⋃x∈X

Γ(x)

. Dass die Bedingung notwendig ist, sieht man sofort:

Ist M ⊆ E ein Matching mit |M | = |A|, dann istfM = {(a, b) ∈ A×B | {a, b} ∈M} eine injektive Funktion mitfM (X) ⊆ Γ(X) und damit |X| = |f(X)| ≤ |Γ(X)|.

. Wir zeigen, dass die Bedingung auch hinreichend ist.

Page 133: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Heiratssatz 100

• Sei G = (A ]B,E) ein einfacher bipartiter Graph mit der Eigenschaft

|Γ(X)| ≥ |X| fur alle X ⊆ A wobei Γ(X) =⋃x∈X

Γ(x)

. Sei M ⊆ E ein Matching und fM : A ↪→ B die durch M bestimmte partielleFunktion. Wir zeigen, wie man im Fall |M | < |A| das Matching vergroßernkann.

Sei also a0 ∈ A ein (bzgl. M) ungematchter Knoten. Setze A0 = {a0} undB0 = Γ(A0).

Nach Annahme gilt |B0| ≥ 1. Gibt es ein b ∈ B0, das ebenfalls ungematchtist, konnen wir direkt M um {a0, b} erweitern. Beispiel:

M = {(S2,P1), (S3,P2), (S4,P5)}A0 = {S1}, B0 = {P1,P3,P4}b = P3 oder P4

S1 S2 S3 S4

P1 P2 P3 P4 P5 P6

Page 134: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Heiratssatz 100

• Sei G = (A ]B,E) ein einfacher bipartiter Graph mit der Eigenschaft

|Γ(X)| ≥ |X| fur alle X ⊆ A wobei Γ(X) =⋃x∈X

Γ(x)

. Wir nehmen also an, das alle Knoten in B0 bereits gematcht sind. SetzeA1 = A0 ∪ f−1M (B0) und B1 = Γ(A1). Beispiel:

M = {(S1,P4), (S2,P2), (S4,P3)}A0 = {S3}, B0 = {P2}A1 = {S3, S2}, B1 = {P1, P2}

S1 S2 S3 S4

P1 P2 P3 P4 P5 P6

Page 135: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Heiratssatz 100

• Sei G = (A ]B,E) ein einfacher bipartiter Graph mit der Eigenschaft

|Γ(X)| ≥ |X| fur alle X ⊆ A wobei Γ(X) =⋃x∈X

Γ(x)

. Hat ein a1 ∈ A1 einen Nachbarn b, der ungematcht ist, dann konnen wir a1mit b und a0 mit fM (a1)

”ummatchen” und damit M vergroßern.

Vor dem “Ummatchen”:

M = {(S1,P4), (S2,P2), (S4,P3)}A0 = {S3}, B0 = {P2}A1 = {S3, S2}, B1 = {P1, P2}a1 = S2, b = P1

S1 S2 S3 S4

P1 P2 P3 P4 P5 P6

Page 136: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Heiratssatz 100

• Sei G = (A ]B,E) ein einfacher bipartiter Graph mit der Eigenschaft

|Γ(X)| ≥ |X| fur alle X ⊆ A wobei Γ(X) =⋃x∈X

Γ(x)

. Hat ein a1 ∈ A1 einen Nachbarn b, der ungematcht ist, dann konnen wir a1mit b und a0 mit fM (a1)

”ummatchen” und damit M vergroßern.

Nach dem “Ummatchen”:

M = {(S1,P4), (S2,P2), (S4,P3)}A0 = {S3}, B0 = {P2}A1 = {S3, S2}, B1 = {P1, P2}a1 = S2, b = P1

S1 S2 S3 S4

P1 P2 P3 P4 P5 P6

Page 137: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Heiratssatz 100

• Sei G = (A ]B,E) ein einfacher bipartiter Graph mit der Eigenschaft

|Γ(X)| ≥ |X| fur alle X ⊆ A wobei Γ(X) =⋃x∈X

Γ(x)

. Wir wiederholen die Konstruktion Ai+1 = Ai ∪ f−1M (Bi), Bi+1 = Γ(Ai+1) solange, bis wir ein ai ∈ Ai finden, das einen ungematchten Nachbarnb ∈ Γ(ai) besitzt, welcher uns erlaubt, das Matching um a0 zu erweitern.Beispiel, in dem erst B2 einen ungematchten Knoten enthalt:

Vor dem “Ummatchen”:

M = {(S1,P2), (S2,P3), (S3,P4)}A0 = {S4}, B0 = {P4}A1 = {S4, S3}, B1 = {P2, P3, P4}A2 = {S4, S3, S2, S1}, B2 = {P1, . . . , P4} S1 S2 S3 S4

P1 P2 P3 P4 P5 P6

Page 138: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Heiratssatz 100

• Sei G = (A ]B,E) ein einfacher bipartiter Graph mit der Eigenschaft

|Γ(X)| ≥ |X| fur alle X ⊆ A wobei Γ(X) =⋃x∈X

Γ(x)

. Wir wiederholen die Konstruktion Ai+1 = Ai ∪ f−1M (Bi), Bi+1 = Γ(Ai+1) solange, bis wir ein ai ∈ Ai finden, das einen ungematchten Nachbarnb ∈ Γ(ai) besitzt, welcher uns erlaubt, das Matching um a0 zu erweitern.Beispiel, in dem erst B2 einen ungematchten Knoten enthalt:

Nach dem “Ummatchen”:

M = {(S1,P2), (S2,P3), (S3,P4)}A0 = {S4}, B0 = {P4}A1 = {S4, S3}, B1 = {P2, P3, P4}A2 = {S4, S3, S2, S1}, B2 = {P1, . . . , P4} S1 S2 S3 S4

P1 P2 P3 P4 P5 P6

Alle Kanten vom “Pfad” S4, P4, S3, P3, S2, P2, S1 werden “umgematcht”.

Page 139: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Heiratssatz 100

• Sei G = (A ]B,E) ein einfacher bipartiter Graph mit der Eigenschaft

|Γ(X)| ≥ |X| fur alle X ⊆ A wobei Γ(X) =⋃x∈X

Γ(x)

. Wir zeigen fur alle i ≥ 0: Wenn alle Knoten in Bi gematcht sind dann giltAi ⊂ Ai+1.

Erinnerung: Ai+1 := Ai ∪ f−1M (Bi) und Bi+1 := Γ(Ai+1).

(1) Es gilt |f−1M (Bi)| = |Bi|, denn alle Knoten in Bi sind gematcht und fMist injektiv.

(2) Es gilt a0 ∈ Ai \ f−1M (Bi), denn a0 ∈ Ai ist nicht gematcht und alleKnoten in f−1M (Bi) sind gematcht.

Daraus folgt: |Ai| ≤ |Γ(Ai)| (Annahme des Heiratssatzes)= |Bi| (Def. von Bi)=

∣∣f−1M (Γ(Bi))∣∣ (1)

<∣∣Ai ∪ f−1M (Bi)

∣∣ (2)= |Ai+1| (Def. von Ai)

Page 140: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Heiratssatz 100

• Sei G = (A ]B,E) ein einfacher bipartiter Graph mit der Eigenschaft

|Γ(X)| ≥ |X| fur alle X ⊆ A wobei Γ(X) =⋃x∈X

Γ(x)

. Wir zeigen: es gibt ein i ≥ 0 so dass Bi einen ungematchten Knoten enthalt.

Da alle die Mengen A0 ⊆ A1 ⊆ A2 . . . Teimengen der endlichen Menge Asind, gibt es einen Index i ≥ 0 mit Ai = Ai+1. Fur dieses i gilt dann, dass dieMenge Bi einen ungematchten Knoten enthalt.

Page 141: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Matchings

Matchings nach Praferenzen

Page 142: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Matchings nach Praferenzen 102

• Gegeben seien heiratswilligeDamen und Herren in gleicherAnzahl.

• Jede Dame (jeder Herr) stellteine Praferenzliste zurVerfugung, die alle Herren (alleDamen) enthalt—in dieserGesellschaft ist jede Heiratbesser als keine Heirat.

• Das Problem besteht darin, dieDamen und Herren so zuverheiraten, dass es keinenAnreiz fur Seitensprunge gibt:Kein Paar ware liebermiteinander als mit denjeweiligen Ehegatten.

Page 143: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Matchings nach Praferenzen 103

• Formal:

Gesucht ist eine bijektive Abbildung f : A→ B (mit |A| = |B|).

Die Nebenbedingungen sind jetzt aber nicht mehr von der Form

”a kann (nicht) mit b gematcht werden”.

Stattdessen besitzt jedes a ∈ A eine totale Praferenzordnung ≺a⊆ B ×B;und jedes b ∈ B entsprechend ≺b⊆ A×A.

Die Nebenbedingung ist nun, dass f stabil bzgl. aller Praferenzordnungen ist:

• f ist instabil, falls es a, a′ ∈ A gibt mit

f(a) ≺a f(a′) (”a bevorzugt den Partner von a′”) und

a′ ≺f(a′) a (”Der Partner von a′ bevorzugt a.”)

. a und f(a′) wurden ihre aktuellen Partner verlassen.

Page 144: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Matchings nach Praferenzen 104

• Beispiel:

• Personen: A = {a1, a2}, B = {b1, b2}.

• Praferenzen: b1 ≺a1 b2 b2 ≺a2 b1 a1 ≺b1 a2 a1 ≺b2 a2

• Instabiles Matching (”Heirat”): a2 praferiert b1, b1 praferiert a2.

a1

a2

b1

b2

• Stabiles Matching (”Heirat”): a1 praferiert b2, a2 praferiert b1; b1 und b2

praferieren a2; b1 hat seinen praferierten Partner, b2 muss sich mit a1abfinden, das Leben ist einfach nicht fair ...

a1

a2

b1

b2

. Stabil heißt nicht, dass jeder seinen am hochsten praferierten Partnerbekommt.

Page 145: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Gale-Shapley-Algorithmus 105

• Lloyd S. Shapley: wichtige Beitrage im Bereich Spieltheorie (stochastischeSpiele), Mathematiknobelpeistrager Preistrager fur Wirtschaftswissenschaftender schwedischen Reichsbank im Gedenken an Alfred Nobel (2012).

• David Gale: wichtige Beitrage im Bereich Spieltheorie/Optimierung

• Algorithmus:

• Gegeben: Mengen A, B und zugehorige Praferenzordnungen.

• Gesucht: Stabiles Matching f : A→ B

• f : A→ B ∪ {⊥}, g : B → A ∪ {>} mit f(A) = {⊥}, g(B) = {>}.

• Solange es ein ungematchtes b 6∈ Rng(f) gibt:

Matche b mit dem von ihm am meisten praferierten a, das (1) er nicht mehrpraferiert, als seinen letzten Partner (a ≺b g(b)), und das (2) ihn demaktuellen Partner vorzieht (f(a) ≺a b) (mit ⊥ ≺a b, a ≺b >):

f(a∗) := b, g(b) := a∗ mit a∗ := max≺b{a ∈ A | a ≺b g(b), f(a) ≺a b}

Page 146: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Gale-Shapley-Algorithmus 106

• Algorithmus:

• Gegeben: Mengen A, B und zugehorige Praferenzordnungen.

• Gesucht: Stabiles Matching f : A→ B

• f : A→ B ∪ {⊥}, g : B → A ∪ {>} mit f(A) = {⊥}, g(B) = {>}.

• Solange es ein ungematchtes b 6∈ Rng(f) gibt:

f(a∗) := b, g(b) := a∗ mit a∗ := max≺b{a ∈ A | a ≺b g(b), f(a) ≺a b}

. Beispiel: Zwei Frauen a1, a2 und zwei Manner b1, b2 mit:

b2 ≺a1b1 b1 ≺a2

b2 a1 ≺b1 a2 a1 ≺b2 a2

a1 a2 b1 b2⊥ ⊥ > >⊥ b1 a2 >⊥ b2 a2 a2b1 b2 a1 a2

Page 147: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Gale-Shapley-Algorithmus 106

• Algorithmus:

• Gegeben: Mengen A, B und zugehorige Praferenzordnungen.

• Gesucht: Stabiles Matching f : A→ B

• f : A→ B ∪ {⊥}, g : B → A ∪ {>} mit f(A) = {⊥}, g(B) = {>}.

• Solange es ein ungematchtes b 6∈ Rng(f) gibt:

f(a∗) := b, g(b) := a∗ mit a∗ := max≺b{a ∈ A | a ≺b g(b), f(a) ≺a b}

. Einige Beobachtungen:

• Die Zahl |{a ∈ A | f(a) 6= ⊥}| der gematchten a kann nicht abnehmen:

a∗ wird entweder zum ersten Mal mit einem b gematcht oder a∗ bekommt einneues b zugeordnet.

• Keine zwei a, a′ sind mit demselben b gematcht (f(a) = f(a′) nur, fallsf(a) = ⊥ = f(a′)): a∗ bekommt immer nur ein ungematchtes b zugeordnet.

. Daher: Gibt es ein ungematchtes b 6∈ Rng(f), dann auch ein a mit f(a) = ⊥.Jedes solche a muss a ≺b g(b) erfullen; ansonsten ware b statt mit g(b) mitdem am meisten praferierten dieser a gematcht worden.

Page 148: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Gale-Shapley-Algorithmus 106

• Algorithmus:

• Gegeben: Mengen A, B und zugehorige Praferenzordnungen.

• Gesucht: Stabiles Matching f : A→ B

• f : A→ B ∪ {⊥}, g : B → A ∪ {>} mit f(A) = {⊥}, g(B) = {>}.

• Solange es ein ungematchtes b 6∈ Rng(f) gibt:

f(a∗) := b, g(b) := a∗ mit a∗ := max≺b{a ∈ A | a ≺b g(b), f(a) ≺a b}

. • Also finden wir stets ein a∗ fur jedes ungematchte b.

. In jeder Runde nimmt der Werte g(b) ab; maximal kann der Wert n-Malabnehmen; insgesamt wird also g hochstens n2-Mal umdefiniert.

. Der Algorithmus terminiert also nach hochstens n2 Runden.

Page 149: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Gale-Shapley-Algorithmus 106

• Algorithmus:

• Gegeben: Mengen A, B und zugehorige Praferenzordnungen.

• Gesucht: Stabiles Matching f : A→ B

• f : A→ B ∪ {⊥}, g : B → A ∪ {>} mit f(A) = {⊥}, g(B) = {>}.

• Solange es ein ungematchtes b 6∈ Rng(f) gibt:

f(a∗) := b, g(b) := a∗ mit a∗ := max≺b{a ∈ A | a ≺b g(b), f(a) ≺a b}

. Behauptung: Nach Terminierung ist f ein stabiles Matching.

Annahme: Es gibt a, a′ mit b := f(a′) und f(a) ≺a b, a′ ≺b a.

• Sollte b in einer Runde mit a gematcht worden sein, dann muss diesesMatching spater aufgehoben worden sein, da a sich verbessern konnte; da f(a)in jeder Runde nicht abnehmen kann, wurde dies b ≺a f(a) bedeuten.

Page 150: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Gale-Shapley-Algorithmus 106

• Algorithmus:

• Gegeben: Mengen A, B und zugehorige Praferenzordnungen.

• Gesucht: Stabiles Matching f : A→ B

• f : A→ B ∪ {⊥}, g : B → A ∪ {>} mit f(A) = {⊥}, g(B) = {>}.

• Solange es ein ungematchtes b 6∈ Rng(f) gibt:

f(a∗) := b, g(b) := a∗ mit a∗ := max≺b{a ∈ A | a ≺b g(b), f(a) ≺a b}

. Behauptung: Nach Terminierung ist f ein stabiles Matching.

Annahme: Es gibt a, a′ mit b := f(a′) und f(a) ≺a b, a′ ≺b a.

• Damit bleibt nur, dass b nie mit a gemacht wurde, d.h. es gibt eine Runde, zuderen Beginn a ≺b g(b), an deren Ende jedoch g(b) = a∗ ≺b a gilt.

• Zu Beginn a ≺b g(b) = >, g(b) kann nur abnehmen, am Schluss giltg(b) = a′ ≺b a.

Da a ≺b g(b) folgt aus der Definition von a∗, dass wieder b ≺a f(a) geltenmuss, sonst ware a∗ nicht maximal.

Page 151: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Gale-Shapley-Algorithmus 106

• Algorithmus:

• Gegeben: Mengen A, B und zugehorige Praferenzordnungen.

• Gesucht: Stabiles Matching f : A→ B

• f : A→ B ∪ {⊥}, g : B → A ∪ {>} mit f(A) = {⊥}, g(B) = {>}.

• Solange es ein ungematchtes b 6∈ Rng(f) gibt:

f(a∗) := b, g(b) := a∗ mit a∗ := max≺b{a ∈ A | a ≺b g(b), f(a) ≺a b}

. Ohne Beweis: Nach Terminierung ist f optimal im folgenden Sinn:

Ist e ein stabiles Matching, dann gilt e−1(b) �b f−1(b) fur jedes b ∈ B.

. M.a.W. jeder Mann erhalt am Ende die am meisten praferierte Frau aus derTeilmenge aller Frauen, mit welchen eine stabile

”Ehe” uberhaupt moglich ist.

. Konsequenz: Die konkrete Wahl eines ungematchten b in jeder Runde hatkeinen Einfluss auf das Endresultat.

Page 152: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

1 Graphen

Einfuhrung: Graphen in der Informatik

Digraphen, ungerichtete und einfache Graphen

Baume

Euler- und Hamiltonkreise

Planare Graphen und Knotenfarbungen

Matchings

Adjanzenzmatrix eines Graphen

Page 153: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Adjanzenzmatrix eines Graphen

Page 154: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Adjazenmatrix eines Graphen: Matrizen 109

• Eine z × s Matrix uber eine Menge D ist eine Tabelle von Elementen von Dmit z Zeilen und s Spalten.

• Notation: M ∈ Dz×s

. Mi,j ∈ D: Eintrag in i-ter Zeile und j-ter Spalte.

• D1×s: Zeilenvektoren; Dz×1: Spaltenvektoren

. Beispiel einer 3 × 4 matrix uber N:

M =

(M1,1 M1,2 M1,3 M1,4

M2,1 M2,2 M2,3 M2,4

M3,1 M3,2 M3,3 M3,4

)=

(0 2 3 10 1 2 01 0 0 1

)

Page 155: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Matrizen: Summe 110

• Summe fur reellwertige Matrizen A ∈ Rn×m, B ∈ Rn×m:

. NB.: Gleiche Anzahl von Zeilen und Spalten.

• Summe C = A+B ∈ Rn×m definiert durch

Ci,j := Ai,j +Bi,j

• Beispiel:(1 2 03 0 1

)+

(0 1 1−2 1 −1

)=

(1 + 0 2 + 1 0 + 13− 2 0 + 1 1− 1

)=

(0 3 11 1 0

)

Page 156: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Matrizen: Multiplikation 111

• Multiplikation fur reellwertige Matrizen A ∈ Rk×m, B ∈ Rm×n:

. NB.: Spaltenzahl links gleich Zeilenzahl rechts

• Produkt C = A •B ∈ Rk×n definiert durch

Ci,j :=∑t∈[m]

Ai,t •Bt,j

. Ci,j ist das Skalarprodukt des i-ten Zeilenvektors und des j-tenSpaltenvektors.

. Beispiel: (1 2 02 0 1

)•

0 −13 11 0

=

(1 • 0 + 2 • 3 + 0 • 1 1 • −1 + 2 • 1 + 0 • 02 • 0 + 0 • 3 + 1 • 1 2 • −1 + 0 • 1 + 1 • 1

)=

(6 11 −1

)

. Beachte: Matrixmultiplikation ist nicht kommutativ!

Page 157: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Adjanzenzmatrix, Pfade zahlen 112

• Adjanzenzmatrix eines gerichteten (endlichen) Graphens G = (V,E):

• Fixiere eine Aufzahlung der Knoten: V = {v1, v2, . . . , vn}

. Alternativ: nenne Knoten um, so dass V = [n].

• Adjazenzmatrix AG = (ai,j)i,j∈[n] ∈ {0, 1}n×n mit”ai,j = 1 gdw. viEvj“

. Beispiel:

1

2

3

4

AG =

a1,1 a1,2 a1,3 a1,4a2,1 a2,2 a2,3 a2,4a3,1 a3,2 a3,3 a3,4a4,1 a4,2 a4,3 a4,4

=

0 1 0 10 0 1 11 0 0 00 1 0 1

Page 158: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Adjanzenzmatrix, Pfade zahlen 113

• Anwendung: (gewichtete) Pfade zahlen, Random-Surfer-Modell

. Lemma: (AkG)i,j ist gerade die Anzahl der verschiedenen k-Schritt-Pfade von

vi nach vj .

. Beispiel:

1

2

3

4

AG =

0 1 0 10 0 1 11 0 0 00 1 0 1

A2G =

0 1 1 21 1 0 10 1 0 10 1 1 2

A3G =

1 2 1 30 2 1 30 1 1 21 2 1 3

Page 159: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Adjanzenzmatrix, Pfade zahlen 114

• Anwendung: (gewichtete) Pfade zahlen, Random-Surfer-Modell

. Lemma: (AnG)i,j ist gerade die Anzahl der verschiedenen k-Schritt-Pfade von

vi nach vj

. Beweis: Sei Φki,j die Menge aller k-Schritt-Pfade von vi nach vj .

Behauptung: (AkG)i,j =

∣∣Φki,j

∣∣ fur alle k ∈ N0.

• Induktionsbasis fur k = 0:

• Linke Seite: (A0G)i,j ∈ {0, 1} mit (A0

G)i,j = 1 gdw i = j, da nach DefinitionA0G die Identitatsmatrix.

A0G =

1 0 . . . 00 1 . . . 0...0 0 . . . 1

• Rechte Seite: Falls i = j, dann Φ0i,j = {vi}, also

∣∣∣Φ0i,i

∣∣∣ = 1; sonst Φ0i,j = ∅,

also∣∣∣Φ0i,j

∣∣∣ = 0

Also gilt (A0G)i,j =

∣∣Φ0i,j

∣∣

Page 160: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Adjanzenzmatrix, Pfade zahlen 114

• Anwendung: (gewichtete) Pfade zahlen, Random-Surfer-Modell

. Lemma: (AnG)i,j ist gerade die Anzahl der verschiedenen k-Schritt-Pfade von

vi nach vj

. Beweis: Sei Φki,j die Menge aller k-Schritt-Pfade von vi nach vj .

Behauptung: (AkG)i,j =

∣∣Φki,j

∣∣ fur alle k ∈ N0.

• Induktionsschritt: Sei k ∈ N0 beliebig fixiert.

• Induktionsbehauptung: Es gilt (Ak+1G )i,j =

∣∣∣Φk+1i,j

∣∣∣• Induktionsannahme: Es gilt (AkG)i,j =

∣∣∣Φki,j∣∣∣ und∣∣(A1

G)i,j∣∣ =

∣∣∣Φ1i,j

∣∣∣• Induktionsbeweis:

Linke Seite: (AkG)i,j = (AkG •A1G)i,j =

∑m∈[n](A

kG)i,m(A1

G)m,j nach

Definition der Matrixmult.

Rechte Seite: Φki,j =⊎m∈[n] Φki,mΦ1

m,j , da wir die k-Schritt-Pfade nach dem

vorletzten Knoten vm paritionieren konnen.Daher:∣∣∣Φk+1i,j

∣∣∣ =∑m∈[n]

∣∣∣Φki,m∣∣∣ ∣∣∣Φ1m,j

∣∣∣ =∑m∈[n](A

kG)i,m(AG)m,j = (Ak+1

G )i,j .

Page 161: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Adjanzenzmatrix, Pfade zahlen 115

• Anwendung: Random surfer model

V : Webpages; E: Links; User klickt mit W’keit pi,j = 1|viE| auf Webpage vi

auf Link zu vj (falls viEvj ; sonst pi,j = 0).

. Ubergangsmatrix: PG = (pi,j)i,j∈[n]

. Fakt: (P kG)i,j ist gerade die Wahrscheinlichkeit von vi nach vj in genau k

Schritten zu kommen – jetzt gewichtete Pfade”zahlen”.

. Beispiel:

1

2

3

4

PG =

0 12

0 12

0 0 12

12

1 0 0 00 1

20 1

2

P 2G =

0 14

14

12

12

14

0 14

0 12

0 12

0 14

14

12

P 3G =

14

14

18

38

0 38

18

12

0 14

14

12

14

14

18

38

Page 162: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Adjanzenzmatrix, Pfade zahlen 116

• Interpretiere Wahrscheinlichkeiten (P kG)i,j als Bruchteil des k-ten

Zeitintervalls [k− 1, k), den der User auf Webpage vj verbringt, wenn er in vistartet.

. Dann verbringt der User im Mittel im Zeitraum [0, T ) beginnend in i auf jdie Zeit

Q :=

(1

T

T−1∑k=0

P kG

)i,j

. Fakt: Summe konvergiert fur T →∞, d.h. Q”existiert”.

. Beweis falls G”stark zusammenhangend” in Vorlesung DWT, 4. Semester.

Page 163: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Adjanzenzmatrix, Pfade zahlen 117

. Beispiel: “Stark zusammenhangender” Graph

1

2

3

4

1

100

99∑n=0

PnG ≈

0.1494 0.2845 0.1408 0.42530.1422 0.2902 0.1437 0.42390.1480 0.2816 0.1494 0.42100.1394 0.2845 0.1408 0.4353

T→∞−−−−→

17

27

17

37

17

27

17

37

17

27

17

37

17

27

17

37

. Unabhangig, auf welcher Webpage User startet, er verbringt im Mittel 3/7

seiner Zeit auf Webpage 4, 2/7 auf Webpage 2 und je 1/7 der Zeit auf denbeiden restlichen.

. (War angeblich) Grundlage fur PageRank von Google: Q•,j Relevanz vonWebpage j (Internet notfalls kunstlich stark zusammenhangend gemacht).

Page 164: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Adjanzenzmatrix, Pfade zahlen 118

. Beispiel: nicht stark zusammenhangender Graph

1

2

3

4

1

100

99∑n=0

PnG ≈

0.01 0.3311 0. 0.65890 0.3378 0 0.6622

0.01 0.3278 0.01 0.65220 0.3311 0 0.6689

T→∞−−−−→

0 13

0 23

0 13

0 23

0 13

0 23

0 13

0 23

. Unabhangig, auf welcher Webpage User startet, er verbringt im Mittel 2/3

seiner Zeit auf Webpage 4, 1/3 auf Webpage 2 und (gemittelt uber alle Zeit)keine Zeit auf den beiden verbleibenden Webpages.

. Anschaulich: Da der RandumSurfer in jedem Schritt auf einen Link klickenmuss, kann er nur endlich viel Zeit auf 1 und 3 verbringen.

Page 165: Diskrete Strukturen GraphenDiskrete Strukturen Graphen c Javier Esparza und Michael Luttenberger Chair for Foundations of Software Reliability and Theoretical Computer Science

Adjanzenzmatrix, Pfade zahlen 119

. Beispiel: “nicht zusammenhangender” Graph

1

2

3

4

1

100

99∑n=0

PnG ≈

1 0 0. 00 0.3378 0 0.6622

0.99 0 0.01 00 0.3311 0 0.6689

T→∞−−−−→

1 0 0 00 1

30 2

30 0 0 00 1

30 2

3

. Jetzt Wahrscheinlichkeiten/Relevanz von Startknoten abhangig, da Graph in

mehrere Komponenten zerfallt.