Kapitel 1: Grundbegriffe Graphen - fbi.h

Werbung
Kapitel 1: Grundbegriffe
Gliederung der Vorlesung
1.
2.
3.
4.
5.
6.
7.
8.
1/1, Folie 1
Grundbegriffe
Elementare Graphalgorithmen und Anwendungen
Kürzeste Wege
Netzplantechnik
Minimale spannende Bäume
Traveling Salesman Problem
Flüsse in Netzwerken und Anwendungen
Bipartite Graphen
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Gliederung des Kapitels
a)
b)
c)
1/1, Folie 2
Graphen
Gerichtete Graphen
O-Notation
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Beispiel für einen Graphen
a
b
1
2
e
c
d
4
3
•
•
•
1/1, Folie 3
f
5
Knotenmenge
•
V = { 1,2,3,4,5 }
Kantenmenge
•
E = { a,b,c,d,e,f }
Inzidenzabbildung
•
γ = { (a,{1}),(b,{1,2}),(c,{1,3}),(d,{2,3}),(e,{2,5}),(f,{2,5}) }
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Begriffe: Graph ...
•
ein Graph G = (V,E,γ) ist ein Triple bestehend aus:
•
•
•
einer nicht leeren Menge V von Knoten
einer Menge E von Kanten
einer Inzidenzabbildung γ, die jeder Kante e ∈ E eine Teilmenge
X ⊆ V mit 1 ≤ |X| ≤ 2 zuordnet
•
zwei Knoten a,b ∈ V heißen adjazent, wenn es eine Kante e ∈ E mit
γ(e) = { a,b} gibt
•
ein Knoten a ∈ V und eine Kante e heißen inzident, wenn a ∈ γ(e) gilt
... wir betrachten nur endliche Graphen, d.h. die Mengen V und E
sind endlich !!!
1/1, Folie 4
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Repräsentation von Graphen mit Inzidenz-Matrizen
•
Idee:
•
•
1/1, Folie 5
verwende eine Tabelle mit einer Zeile pro Kante und einer Spalte
pro Knoten
in eine Zelle wird eine 1 eingetragen, wenn die zugehörige Kante
und der zugehörige Knoten inzident sind; andernfalls, eine 0
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Repräsentation von Graphen mit Inzidenz-Matrizen (Beispiel)
a
b
1
e
c
d
3
1/1, Folie 6
2
f
5
4
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
1
2
3
4
5
a
1
0
0
0
0
b
1
1
0
0
0
c
1
0
1
0
0
d
0
1
1
0
0
e
0
1
0
0
1
f
0
1
0
0
1
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Begriffe: Schleifen und parallele Kanten
•
es sei G = (V,E,γ) ein Graph
•
eine Kante e ∈ E heißt Schleife, falls die Menge X = γ(e) genau einen
Knoten enthält
•
zwei Kanten e, e‘ ∈ E mit e ≠ e‘ heißen parallel, falls die Mengen
X = γ(e) und X‘ = γ(e‘) identisch sind
a
b
1
2
e
c
d
3
1/1, Folie 7
© 2013 Prof. Steffen Lange
•
•
f
die Kante a ist ein Schleife
die Kanten e und f sind parallel
5
4
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Begriff: Schlichte Graphen
•
ein Graph G = (V,E,γ) heißt schlichter Graph, wenn G keine Schleifen
und keine parallelen Kanten enthält
•
einen schlichten Graphen G = (V,E,γ) kann man einfacher beschreiben,
und zwar mit einem Paar (V‘,E‘), wobei gilt
•
•
V‘ enthält alle Knoten von G, d.h. V‘ = V
E‘ = { γ(e) | e ∈ E }; d.h. für jede Kante e ∈ E enthält E‘ die
Menge {a,b} mit a ∈ γ(e) und b ∈ γ(e)
b
1
2
c
d
3
1/1, Folie 8
•
•
e
© 2013 Prof. Steffen Lange
V‘ = { 1,2,3,4,5 }
E‘ = { {1,2},{1,3},{2,3},{2,5} }
5
4
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Anmerkungen
•
•
in der Vorlesung werden wir uns hauptsächlich mit schlichten
(endlichen) Graphen beschäftigen
aus Gründen der Lesbarkeit werden wir in der Regel nur den Begriff
Graph verwenden ...
... später untersuchen wir auch gerichtete Graphen
1/1, Folie 9
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Repräsentation von Graphen mit Adjazenz-Matrizen
•
Idee:
•
•
verwende eine Tabelle mit einer Zeile und einer Spalte pro
Knoten
in eine Zelle wird eine 1 eingetragen, falls die zugehörigen
Knoten adjazent sind; andernfalls, eine 0
... jede Kante wird zweimal „repräsentiert“
... will man Graphen repräsentieren, die keine schlichten Graphen
sind, muss man anders vorgehen
1/1, Folie 10
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Repräsentation von Graphen mit Adjazenz-Matrizen (Beispiel)
b
1
e
c
d
3
1/1, Folie 11
2
5
4
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
1
2
3
4
5
1
0
1
1
0
0
2
1
0
1
0
1
3
1
1
0
0
0
4
0
0
0
0
0
5
0
1
0
0
0
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Repräsentation von Graphen mit Adjanzenz-Listen
•
Idee:
•
•
verwende ein Array mit einer Zelle pro Knoten
in eine Zelle wird ein Zeiger auf eine einfach verkettete Liste
eingetragen, die alle Knoten enthält, die zum zugehörigen
Knoten adjazent sind
... jede Kante wird zweimal „repräsentiert“
... will man Graphen repräsentieren, die keine schlichten Graphen
sind, muss man anders vorgehen
1/1, Folie 12
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Repräsentation von Graphen mit Adjazenz-Listen (Beispiel)
b
1
2
e
c
d
3
5
4
1
2
3
2
1
3
3
1
2
4
5
1/1, Folie 13
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
2
Graphen und Optimierung
5
Kapitel 1: Grundbegriffe
Graphen
u Anmerkungen
•
•
1/1, Folie 14
wenn wir uns Algorithmen für graphentheoretische Probleme
anschauen, ist jeweils festzulegen, auf welche Art der gegebene
Graph repräsentiert wird
die verwendete Repräsentation hat Einfluss auf die Laufzeit der
Algorithmen (das sehen wir später)
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Begriff: Grad eines Knotens
•
es sei G = (V,E) ein Graph
•
der Grad deg(v) eines Knotens v ∈ V entspricht der Anzahl der Kanten,
die mit dem Knoten v inzident sind; mit anderen Worten gilt:
•
1/1, Folie 15
deg(v) = | { e ∈ E | v ∈ e } |
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Begriff: Grad eines Knotens (Beispiel)
b
1
2
e
c
d
3
5
4
•
•
•
•
•
1/1, Folie 16
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
deg(1) = 2
deg(2) = 3
deg(3) = 2
deg(4) = 0
deg(5) = 1
Kapitel 1: Grundbegriffe
Graphen
u Eine einfache Beobachtung (Handschlaglemma)
•
es sei G = (V,E) ein Graph
•
es sei deg(G) =
Σ deg(v)
v∈V
Dann gilt: deg(G) = 2|E|.
... die Summe der Knotengrade der Knoten von G ist genau
doppelt so groß wie die Anzahl der Kanten von G
1/1, Folie 17
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Eine unmittelbare Folgerung
•
es sei G = (V,E) ein Graph
Dann gilt: Die Anzahl der Knoten in G mit ungeradem Grad ist gerade.
... diesen Zusammenhang haben wir benutzt, als wir uns mit der
Korrektheit des Algorithmus zur Lösung des Postbotenproblems
beschäftigt haben
1/1, Folie 18
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Begründung (Beweisidee)
•
es sei G = (V,E) ein Graph
•
•
es sei Vg = { v ∈ V | deg(v) gerade }
es sei Vu = { v ∈ V | deg(v) ungerade }
•
offenbar gilt: deg(G) = 2|E| = a + b mit
•
a=
•
b=
Σ deg(v)
v ∈ Vg
Σ deg(v)
v ∈ Vu
1/1, Folie 19
•
offenbar ist a gerade und, da deg(G) gerade ist, muss deshalb auch b
gerade sein
•
da für jedes v ∈ Vu gilt, dass deg(v) ungerade ist, und b gerade ist,
muss |Vu| gerade sein
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Hintergrund
•
es seien z1,...,zk beliebige ungerade Zahlen
•
es sei b =
Σ
1≤i≤k
•
mit vollständiger Induktion kann man ganz einfach die folgenden
Aussagen beweisen:
(1)
(2)
1/1, Folie 20
zi
Wenn k gerade ist, so ist b gerade.
Wenn k ungerade ist, so ist b ungerade.
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u eine andere einfache Beobachtung
•
es sei G = (V,E) ein Graph mit |V| ≥ 2
Dann gilt: In G gibt es mindestens zwei Knoten mit demselben Knotengrad.
... das ist keine spektakuläre Erkenntnis, aber man kann diesen
Zusammenhang recht einfach unter Verwendung des so genannten
Schubfachprinzips beweisen (diese Beweismethode ist sehr
anschaulich und recht hilfreich)
1/1, Folie 21
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Begründung (Beweisidee)
•
es sei G = (V,E) ein Graph mit n = |V| und n ≥ 2
•
da G ein schlichter Graph ist, ist der maximale Knotengrad n-1
•
wir zerlegen die Knotenmenge V in n-1 disjunkte Mengen
•
•
•
•
1/1, Folie 22
V0 = { v ∈ V | deg(v) = 0 }
V1 = { v ∈ V | deg(v) = 1 }
...
Vn-1 = { v ∈ V | deg(v) = n-1 }
•
damit haben wir n Schubfächer für n Knoten
•
wir unterscheiden 2 Fälle (V0 = ∅ bzw. V0 ≠ ∅)
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Begründung (Beweisidee)
•
Fall 1: V0 = ∅
•
•
•
Fall 2: V0 ≠ ∅
•
•
•
1/1, Folie 23
also sind n Knoten auf höchstens n-1 viele Schubfächer (die
Mengen V1,...,Vn-1) zu verteilen
folglich muss ein Schubfach 2 Knoten enthalten
dann muss die Menge Vn-1 leer sein
also sind n Knoten auf höchstens n-1 viele Schubfächer (die
Mengen V0,...,Vn-2) zu verteilen
folglich muss ein Schubfach 2 Knoten enthalten
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Begriffe: Pfad und Weg
•
es sei G = (V,E) ein Graph
•
ein Pfad in G ist eine Knotenfolge (v0,v1,...,vk) von Knoten aus G, so
dass gilt:
•
•
ein Pfad (v0,v1,...,vk) in G heißt Weg, wenn alle benutzen Kanten
paarweise verschieden sind, d.h. es gilt:
•
1/1, Folie 24
{ vi-1,vi } ∈ E für alle i = 1,...,k
{ vi-1,vi } ≠ { vj-1,vj } für alle i,j = 1,...,k mit i ≠ j
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Begriffe: Pfad und Weg (Beispiel)
1
1/1, Folie 25
2
3
4
5
© 2013 Prof. Steffen Lange
•
•
•
-
HDa/FbI
-
(1,2,3,4,2,3) ist ein Pfad in G
(1,2,3,4,2,3) ist kein Weg in G
(1,2,4,3) ist ein Weg in G
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Begriffe: Pfad und Weg (cont.)
1/1, Folie 26
•
•
es sei G = (V,E) ein Graph
es sei (v0,v1,...,vk) ein Pfad bzw. ein Weg in G
•
•
v0 heißt Startknoten und vk Endknoten von (v0,v1,...,vk)
(v0,v1,...,vk) heißt Pfad bzw. Weg vom Knoten v0 zum Knoten vk,
und zwar Pfad bzw. Weg der Länge k
•
Anmerkung: ein Pfad bzw. Weg kann auch nur einen Knoten enthalten
(und hat dann natürlich die Länge 0)
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u zwei einfache Beobachtungen
•
•
es sei G = (V,E) ein Graph
es seien u,v ∈ V
Dann gilt: Wenn es in G einen Pfad vom Knoten u zum Knoten v gibt,
so gibt es in G auch einen Weg vom Knoten u zum Knoten v.
... überlegen Sie sich selbst eine Begründung (ÜA)
Dann gilt: Wenn es in G einen Pfad vom Knoten u zum Knoten v gibt,
so gibt es in G auch einen Weg vom Knoten u zum Knoten v, in dem
jeder Knoten nur einmal vorkommt (mögliche Ausnahme: der Startund der Endknoten können gleich sein) .
... solche Wege heißen in Literatur einfache Wege
1/1, Folie 27
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Begriff: Kreis
1/1, Folie 28
•
•
es sei G = (V,E) ein Graph
es sei (v0,v1,...,vk) ein Weg in G
•
(v0,v1,...,vk) ist ein Kreis in G, wenn v0 = vk gilt
•
Anmerkung: in schlichten Graphen gibt es keine Kreise der Länge 1 und
der Länge 2
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Begriff: Kreis (Beispiel)
1
1/1, Folie 29
2
3
4
5
© 2013 Prof. Steffen Lange
•
•
-
HDa/FbI
-
(1,2,3,4,2,3) ist kein Kreis in G
(1,2,4,5,3,1) ist ein Kreis in G, und
zwar einer der Länge 5
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Begriff: Erreichbarkeitsrelation
•
es sei G = (V,E) ein Graph
•
wir definieren die Erreichbarkeitsrelation Rerr ⊆ V × V wie folgt:
•
für zwei Knoten u,v ∈ V gilt (u,v) ∈ Rerr, wenn es in G einen Pfad
vom Knoten u zum Knoten v gibt
... äquivalent könnte man auch definieren:
es gilt (u,v) ∈ Rerr, wenn es einen Weg vom Knoten u zum
Knoten v gibt
1/1, Folie 30
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Begriff: Erreichbarkeitsrelation (Beispiel)
1
2
4
1/1, Folie 31
© 2013 Prof. Steffen Lange
3
•
{ (1,1),(2,2),(3,3),(4,4),(5,5) } ⊆ Rerr
(/* mit Hilfe von Wegen der Länge 0 */)
•
{ (1,2),(2,1),(2,4),(3,5),(4,2),(5,3) } ⊆ Rerr
(/* mit Hilfe von Wegen der Länge 1 */)
•
{ (1,4),(4,1) } ⊆ Rerr
(/* mit Hilfe von Wegen der Länge 2 */)
5
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Begriff: Erreichbarkeitsrelation (alternative Definition)
•
es sei G = (V,E) ein Graph, wobei n = |V| gilt
•
für jedes i = 0,1,...,n-1 definieren wir die Relation Rerr,i ⊆ V × V wie folgt:
•
für zwei Knoten u,v ∈ V gilt (u,v) ∈ Rerr,i, wenn es in G einen Weg
vom Knoten u zum Knoten v der Länge i gibt
Dann gilt: Rerr = Rerr,0 ∪ Rerr,1 ∪ ... ∪ Rerr,n-1.
... diesen Zusammenhang kann man ausnutzen, um alle Paare
(u,v) in der Erreichbarkeitsrelation zu berechnen
1/1, Folie 32
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u einige einfache Beobachtungen
•
es sei G = (V,E) ein Graph
•
die Erreichbarkeitsrelation Rerr ⊆ V × V hat folgende Eigenschaften:
•
Rerr ist eine reflexive Relation, d.h.
für alle v ∈ V gilt: (v,v) ∈ Rerr
•
Rerr ist eine symmetrische Relation, d.h.
für alle u,v ∈ V gilt: wenn (u,v) ∈ Rerr, so ist auch (v,u) ∈ Rerr
•
Rerr ist eine transitive Relation, d.h.
für alle u,v,w ∈ V gilt: wenn (u,v) ∈ Rerr und (v,w) ∈ Rerr so ist
auch (u,w) ∈ Rerr
... mit anderen Worten: die Erreichbarkeitsrelation Rerr ⊆ V × V ist
eine Äquivalenzrelation über der Knotenmenge V
1/1, Folie 33
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u einige einfache Folgerung
•
•
es sei G = (V,E) ein Graph
es sei Rerr ⊆ V × V hat folgende Eigenschaften:
Dann gilt: Die Äquivalenzrelation Rerr definiert eine Klasseneinteilung
über der Knotenmenge V, d.h. V wird in k nicht leere, paarweise disjunkte
Mengen C1, ...,Ck aufgeteilt, wobei gilt:
•
zwei Knoten u,v ∈ V gehören genau dann zu ein und derselben
Menge Ci, wenn (u,v) ∈ Rerr gilt.
... k kann Werte zwischen 1 und |V| annehmen
... wie groß k aktuell ist, hängt vom Graphen G ab
1/1, Folie 34
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Beispiel
1
3
2
5
4
6
•
die Knotenmenge wird in drei
Mengen aufgeteilt:
•
•
•
1/1, Folie 35
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
C1 = { 1,2,3 }
C2 = { 4 }
C3 = { 5,6 }
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Begriff: Zusammenhangskomponente
•
es sei G = (V,E) ein Graph
•
eine nicht leere Teilmenge C ⊆ V heißt Zusammenhangskomponente des
Graphen G, falls für alle v ∈ C und alle u ∈ V gilt:
•
•
wenn (v,u) ∈ Rerr gilt, so gilt auch u ∈ C
wenn u ∈ C gilt, so gilt auch (v,u) ∈ Rerr
... mit anderen Worten: C enthält genau die Knoten, die von
jedem Knoten v ∈ C erreichbar sind
... jede Menge in der durch die Erreichbarkeitsrelation definierten
Klasseneinteilung bildet eine Zusammenhangskomponente
1/1, Folie 36
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Begriff: zusammenhängender Graph
•
es sei G = (V,E) ein Graph
•
G heißt zusammenhängender Graph, wenn die Knotenmenge V eine
Zusammenhangskomponente in G ist
... mit anderen Worten: Rerr = V × V
... mit anderen Worten: für alle u,v ∈ V gilt, dass es in G einen
Weg von u nach v gibt
1/1, Folie 37
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Anmerkungen
•
•
einige Algorithmen zum Lösen von graphentheoretischen Problemen sind
speziell für zusammenhängende Graphen konzipiert
falls ein gegebener Graph nicht zusammenhängend ist, so
•
•
bestimmt man zunächst die Zusammenhangskomponenten und
die von diesen induzierten Teilgraphen
anschließend wird der jeweilige Algorithmus auf jeden dieser
Teilgraphen separat angewendet
... deshalb ist es wichtig, die Zusammenhangskomponenten
eines Graphen möglichst effizient bestimmen zu können
1/1, Folie 38
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Begriff: von einer Zusammenhangskomponente induzierter Teilgraph
•
•
es sei G = (V,E) ein Graph
es sei C eine Zusammenhangskomponente
•
der durch eine Zusammenhangskomponente C induzierte
Teilgraph G‘ hat:
•
•
1/1, Folie 39
die Knotenmenge C
die Kantenmenge EC = { {u,v} ∈ E | u,v ∈ C }
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Begriff: von einer Zusammenhangskomponente induzierter Teilgraph (Beispiel)
1
2
5
4
6
3
•
der durch C = { 1,2,3 } induzierte Teilgraph hat
•
•
die Knotenmenge C
die Kantenmenge EC = { {1,2},{1,3},{2,3} }
1
2
3
1/1, Folie 40
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Anmerkung
•
•
es sei G = (V,E) ein Graph
es sei C1, ..., Ck die Zusammenhangskomponenten von G
Dann gilt: Jede Kante aus E kommt genau in der Kantenmengen eines
durch die von den Zusammenhangskomponenten C1, ..., Ck induzierten
Teilgraphen vor.
1
2
5
4
6
3
1/1, Folie 41
© 2013 Prof. Steffen Lange
-
1
2
3
HDa/FbI
-
Graphen und Optimierung
4
5
6
Kapitel 1: Grundbegriffe
Graphen
u Eine einfache algorithmische Fragestellung
•
gegeben:
•
•
ein Graph G = (V,E)
gesucht:
•
alle Zusammenhangskomponenten von G
... der Graph G habe genau n Knoten (/* der Einfachheit
halber sei V = { 1,...,n } */) und m Kanten
1/1, Folie 42
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Algorithmische Idee
1)
2)
starte bei einem Knoten u und markiere alle von diesem Knoten aus
erreichbaren Knoten (/* u und alle diese Knoten bilden eine
Zusammenhangskomponente */)
falls noch ein unmarkierter Knoten u‘ existiert, so gehe zu 1) (/* wobei
die nächste Zusammenhangskomponente gebildet wird ... */)
u Zugrunde liegende Datenstrukturen
•
•
•
1/1, Folie 43
die zu G gehörende Adjazenzliste A[1..n]
ein Array B[1..n] (/* in dem sich die Zugehörigkeit zu den einzelnen
Zusammenhangskomponenten „gemerkt“ wird */)
eine Liste L (/* zur Steuerung der Verarbeitung */)
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
u Realisierung
•
•
1/1, Folie 44
setze b = 0 und B[j] = 0 für alle j = 1,...,n
for j = 1,...,n do
if B[j] == 0 then
setze b = b+1, B[j] = b, L = { j }
while L nicht leer ist do
entferne das erste Element s aus L
for all v ∈ A[s] do
if B[v] = 0 then
setze B[v] = b und füge v ans Ende von L ein
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Graphen
1
u Beispiel
3
•
j=1
•
•
•
•
•
1/1, Folie 45
© 2013 Prof. Steffen Lange
-
HDa/FbI
b = 1, B[1] = 1
L = ( 1 ), s = 1
•
v = 2, B[2] = 1, L = ( 2 )
•
v = 3, B[3] = 1, L = ( 2,3 )
L = ( 2,3 ), s = 2
•
v=1
•
v=3
L = ( 3 ), s = 3
•
v=1
•
v=2
L=()
-
Graphen und Optimierung
2
5
4
6
Kapitel 1: Grundbegriffe
Grundbegriffe
1
u Beispiel
3
1/1, Folie 46
•
j=2
•
j=3
•
j=4
© 2013 Prof. Steffen Lange
•
•
•
-
HDa/FbI
b = 2, B[4] = 2
L = ( 4 ), s = 4
L=()
-
Graphen und Optimierung
2
5
4
6
Kapitel 1: Grundbegriffe
Grundbegriffe
1
u Beispiel
3
•
j=5
•
•
•
•
1/1, Folie 47
© 2013 Prof. Steffen Lange
-
HDa/FbI
b = 3, B[5] = 3
L = ( 5 ), s = 5
•
v = 6, B[6] = 3, L = ( 6 )
L = ( 6 ), s = 6
•
v=5
L=()
-
Graphen und Optimierung
2
5
4
6
Kapitel 1: Grundbegriffe
Grundbegriffe
1
u Beispiel
2
3
•
1/1, Folie 48
j=6
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
4
5
6
Kapitel 1: Grundbegriffe
Grundbegriffe
u Abschätzung der Laufzeit des Algorithmus
•
die Initialisierung benötigt n+1 viele Rechenschritte
•
die Ausführung der „for-Schleife“ für einen Knoten j benötigt:
•
•
•
konstant viele Rechenschritte um j zu initialisieren und den Test
„B[j] == 0“ durchzuführen (/* immer */)
keine weiteren Rechenschritte (/* falls B[j] ≠ 0 gilt */)
konstant viele Rechenschritte für die Initialisierung vor
Ausführung der „while-Schleife“ und so viele weitere Rechenschritte, wie zum Neubestimmen der Zusammenhangskomponente, deren „erster besuchter“ Knoten j ist, erforderlich
sind (/* falls B[j] = 0 gilt */)
... da jeder Knoten nur einmal markiert wird, reicht es, die Rechenzeiten zum
Neubestimmen der einzelnen Zusammenhangskomponenten abzuschätzen
und aufzuaddieren
1/1, Folie 49
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Grundbegriffe
u Abschätzung der Laufzeit des Algorithmus
•
beim Neubestimmen einer Zusammenhangskomponente C
•
wird jede Kante, die die Knoten in C verbindet, genau zweimal
„angefasst“
dabei werden je Kante benötigt:
•
•
•
•
konstant viele Schritte, um für die „andere“ Ecke v dieser
Kante den Test „B[v] == 0“ durchzuführen (/* immer */)
keine weiteren Rechenschritte (/* falls B[v] ≠ 0 gilt */)
konstant viele Rechenschritte (/* falls B[v] = 0 gilt */)
... da jede Kante nur beim Neubestimmen einer einzigen Zusammenhangskomponente „angefasst“ wird, genügen maximal c‘*m viele Rechenschritte,
für die Neubestimmung aller (!!!) Zusammenhangskomponenten
... insgesamt werden maximal c*(n + m) viele Rechenschritte benötigt, um
alle Zusammenhangskomponenten zu bestimmen
1/1, Folie 50
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Kapitel 1: Grundbegriffe
Grundbegriffe
u Zusammenfassung
•
•
1/1, Folie 51
man kann die Zusammenhangskomponenten eines Graphen G sehr
effizient bestimmen; später werden wir sagen, dass hierfür O(n+m)
viele Rechenschritte genügen
man kann folglich auch sehr effizient herausfinden, ob ein Graph G
zusammenhängend ist
© 2013 Prof. Steffen Lange
-
HDa/FbI
-
Graphen und Optimierung
Herunterladen