8. Übung – Algorithmen I - KIT – ITI Algorithmik...
Transcript of 8. Übung – Algorithmen I - KIT – ITI Algorithmik...
1 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS
8. Übung – Algorithmen ITimo Bingmann, Christian Schulz
KIT – Universität des Landes Baden-Württemberg undnationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
Graphen
2 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Rn×n 3 Ax = b ∈ Rn
3 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
WarmupWiederholung Graph Datenstrukturen
TerminologieGraphen
4 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
adjazentZwei Knoten sind adjazent, wenn sie durch eine gemeinsame Kanteverbunden sind.
inzidentEinen Knoten und eine Kante sind inzident, wenn der Knoten einEndpunkt der Kante ist.
1 2
3
Adjazenzfelder
5 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
1
2
3
4 5
V
E
Adjazenzfelder
5 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
1
2
3
4 5
V 1 2 4 7 7 9
E 2 3 5 2 4 5 3 4
AdjazenzfelderAbstraktion in der Praxis
6 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
AdjazenzfelderAbstraktion in der Praxis
6 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
AdjazenzfelderAbstraktion in der Praxis
6 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Graphen als MatrizenSymmetrie
7 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Ungerichteter Graph→ symmetrische Adjazenzmatrix A = AT
1 2
3
4
0 1 0 11 0 1 00 1 0 01 0 0 0
Graphen als MatrizenDAG
8 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
DAGs lassen sich als obere Dreiecksmatrix repräsentieren
3 5
4
1 2
0 0 0 0 00 0 0 0 01 1 0 0 00 0 1 0 11 1 0 0 0
Graphen als MatrizenDAG
8 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
DAGs lassen sich als obere Dreiecksmatrix repräsentieren
2 3
1
4 5
0 1 1 0 00 0 0 1 10 0 0 1 10 0 0 0 00 0 0 0 0
Graphen als MatrizenZusammenhangskomponenten
9 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Pro Zusammenhangskomponente ein Block in der Matrix
3 2
54
6
1 0 0 0 0 0 10 0 0 0 1 00 1 0 0 0 00 0 1 0 0 00 0 0 1 0 01 0 0 0 0 0
Graphen als MatrizenZusammenhangskomponenten
9 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Pro Zusammenhangskomponente ein Block in der Matrix
1 2
34
5
6 0 1 0 0 0 00 0 1 0 0 00 0 0 1 0 01 0 0 0 0 00 0 0 0 0 10 0 0 0 1 0
Graphen als MatrizenPotenzierung
10 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Was resultiert aus Potenzierung der Adjazenzmatrix?wie sind überhaupt · und + definiert auf {0,1}?
z. B. · wie üblich (also Logisches Und), + als max
was bedeutet aij = 1? Weg von i nach j (in einem Schritt).⇒ M = A2, mij = max`(mi` ·m`j): ∃Weg von i nach j über `?mittels Induktion: (Ak )ij = 1 ⇐⇒ ∃Weg von i nach j in k Schritten
1 2
3
4
0 1 0 11 0 1 00 1 0 01 0 0 0
11 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Analyse von Graphen
Teilgraphen
12 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Graph G = (V ,E). G′ = (V ′,E ′) Teilgraph von G :⇔V ′ ⊆ V und E ′ ⊆ E .
1
2
35
6
1
2
3
4
5
6
ist Teilgraph von
Teilgraphen
12 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Graph G = (V ,E). G′ = (V ′,E ′) Teilgraph von G :⇔V ′ ⊆ V und E ′ ⊆ E .
1
2
35
6
1
2
3
4
5
6
ist kein Teilgraph von
Knoteninduziertere Teilgraphen
13 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Graph G = (V ,E). G′ = (V ′,E ′) knoteninduzierter Teilgraph von G :⇔V ′ ⊆ V und E ′ = {(v ,w) ∈ E | v ,w ∈ V ′}.
1
2
35
6
1
2
3
4
5
6
ist knoteninduzierter Teilgraph von
Knoteninduziertere Teilgraphen
13 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Graph G = (V ,E). G′ = (V ′,E ′) knoteninduzierter Teilgraph von G :⇔V ′ ⊆ V und E ′ = {(v ,w) ∈ E | v ,w ∈ V ′}.
1
2
35
6
1
2
3
4
5
6
ist kein knoteninduzierter Teilgraph von
K -core
14 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Der größte knoteninduzierte Teilgraph G′ = (V ′,E ′) von G mit∀v ∈ V ′ : Grad(v) ≥ K ist der K -core von G.
1
2
3
4
5
6
1
2
3
4
5
6
ist 2-core von
K -core
14 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Der größte knoteninduzierte Teilgraph G′ = (V ′,E ′) von G mit∀v ∈ V ′ : Grad(v) ≥ K ist der K -core von G.
2
35
6
1
2
3
4
5
6
ist 3-core von
K -core
14 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Der größte knoteninduzierte Teilgraph G′ = (V ′,E ′) von G mit∀v ∈ V ′ : Grad(v) ≥ K ist der K -core von G.
1
2
3
4
5
6
ist 4-core von
K -coreCore Decomposition
15 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Berechnung des K -cores
16 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Procedure core(G = (V ,E), K : N)G′ = (V ′,E ′) := Gwhile (∃v ∈ V ′ with GradG′(v) < K )
Remove v from V ′ and all its incident edges from E ′return G′
Frage: Laufzeit für diesen Algorithmus?
a) O(n + m)
b) O(n log n + m)
c) O(n2 + m
)
Berechnung des K -cores
17 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Procedure core(G = (V [1..n + 1],E [1..m]), K : N) // AdjazenzfeldQ : FIFOd : Array[1..n] of Nfor (v := 1; v ≤ n; ++ v )
d [v ] := V [v + 1]− V [v ]if (d [v ] < K ) Q.pushBack(v )
while (!Q.empty())v := Q.popFront()for (e := V [v ]; e < V [v + 1]; ++ e)
w := E [e]d [w ]−−if (d [w ] = K − 1) Q.pushBack(w)
return subgraph induced by the nodes v with d [v ] ≥ K
Berechnung des K -cores
17 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Procedure core(G = (V [1..n + 1],E [1..m]), K : N) // AdjazenzfeldQ : FIFOd : Array[1..n] of Nfor (v := 1; v ≤ n; ++ v )
d [v ] := V [v + 1]− V [v ]if (d [v ] < K ) Q.pushBack(v )
while (!Q.empty())v := Q.popFront()for (e := V [v ]; e < V [v + 1]; ++ e)
w := E [e]d [w ]−−if (d [w ] = K − 1) Q.pushBack(w)
return subgraph induced by the nodes v with d [v ] ≥ K
Laufzeit: O(n + m)
18 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Durchmesser ungerichteter Graphen
Durchmesser ungerichteter Graphen
19 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Intuitiv: Größter Abstand zweier Knoten im Graph.
Frage: Was ist der Abstand zweier Knoten im Graph?Antwort: Länge des kürzesten Pfades zwischen zwei Knoten.
Frage: Was ist die Länge eines Pfades?Antwort: Die Anzahl Kanten des Pfades.
A
C
D
E
F
G
B
H
I
Durchmesser ungerichteter Graphen
19 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Intuitiv: Größter Abstand zweier Knoten im Graph.
Frage: Was ist der Abstand zweier Knoten im Graph?Antwort: Länge des kürzesten Pfades zwischen zwei Knoten.
Frage: Was ist die Länge eines Pfades?Antwort: Die Anzahl Kanten des Pfades.
Ein Pfad von C nach G, Länge = 4
A
C
D
E
F
G
B
H
I
Durchmesser ungerichteter Graphen
19 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Intuitiv: Größter Abstand zweier Knoten im Graph.
Frage: Was ist der Abstand zweier Knoten im Graph?Antwort: Länge des kürzesten Pfades zwischen zwei Knoten.
Frage: Was ist die Länge eines Pfades?Antwort: Die Anzahl Kanten des Pfades.
Kürzester Pfad von C nach G, Länge = 3
A
C
D
E
F
G
B
H
I
Durchmesser ungerichteter Graphen
19 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Intuitiv: Größter Abstand zweier Knoten im Graph.
Frage: Was ist der Abstand zweier Knoten im Graph?Antwort: Länge des kürzesten Pfades zwischen zwei Knoten.
Frage: Was ist die Länge eines Pfades?Antwort: Die Anzahl Kanten des Pfades.
Abstand von C und G, Länge = 3
A
C
D
E
F
G
B
H
I
Durchmesser ungerichteter Graphen
19 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Intuitiv: Größter Abstand zweier Knoten im Graph.
Frage: Was ist der Abstand zweier Knoten im Graph?Antwort: Länge des kürzesten Pfades zwischen zwei Knoten.
Frage: Was ist die Länge eines Pfades?Antwort: Die Anzahl Kanten des Pfades.
Kürzester Pfad von I nach H, Länge = 4
A
C
D
E
F
G
B
H
I
Durchmesser ungerichteter Graphen
19 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Intuitiv: Größter Abstand zweier Knoten im Graph.
Frage: Was ist der Abstand zweier Knoten im Graph?Antwort: Länge des kürzesten Pfades zwischen zwei Knoten.
Frage: Was ist die Länge eines Pfades?Antwort: Die Anzahl Kanten des Pfades.
Kürzester Pfad von I nach H, Länge = 4⇒ Abstand von I und H = 4
A
C
D
E
F
G
B
H
I
Durchmesser ungerichteter Graphen
19 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Intuitiv: Größter Abstand zweier Knoten im Graph.
Frage: Was ist der Abstand zweier Knoten im Graph?Antwort: Länge des kürzesten Pfades zwischen zwei Knoten.
Frage: Was ist die Länge eines Pfades?Antwort: Die Anzahl Kanten des Pfades.
Kürzester Weg von I nach H, Länge = 4⇒ Abstand von I und H = 4Größter Abstand⇒ Durchmesser = 4
A
C
D
E
F
G
B
H
I
Durchmesser ungerichteter GraphenAlgorithmus
20 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Idee:1: D = 0 : N≥02: for each u ∈ V do3: Berechne kürzeste Pfade von u zu allen v ∈ V\{u}4: D := max{D,größte gefundene Pfadlänge}5: return D
Laufzeit: O(n · Laufzeit Zeile 3)
Erinnerung:Anzahl Knoten: nAnzahl Kanten: m
Durchmesser ungerichteter GraphenMathematische Definition
21 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Durchmesser := maxu,v∈V
(min
P∈P(u,v)|P|)
mit
P(u, v) ist Menge aller Pfade zwischen u und v|P| ist Anzahl der Kanten eines Pfades P
Wiederholung BreitensucheBeispiel
22 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
FIFO 1
Wiederholung BreitensucheBeispiel
22 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
FIFO 2
Wiederholung BreitensucheBeispiel
22 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
FIFO 2 3
Wiederholung BreitensucheBeispiel
22 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
FIFO 2 3 4
Wiederholung BreitensucheBeispiel
22 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
FIFO 2 3 4 5
Wiederholung BreitensucheBeispiel
22 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
FIFO 2 3 4 5 6
Wiederholung BreitensucheBeispiel
22 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
FIFO 3 4 5 6 7
Wiederholung BreitensucheBeispiel
22 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
FIFO 4 5 6 7 8
Wiederholung BreitensucheBeispiel
22 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
FIFO 5 6 7 8 9
Wiederholung BreitensucheBeispiel
22 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
FIFO 6 7 8 9
Wiederholung BreitensucheBeispiel
22 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
FIFO 7 8 9
Wiederholung BreitensucheBeispiel
22 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
FIFO 10 11 12 13 14
Wiederholung BreitensucheBeispiel
22 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
FIFO 18 19 23 16 17 15
Wiederholung BreitensucheBeispiel
22 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
FIFO 20 21 22 25 24 33 26
Wiederholung BreitensucheBeispiel
22 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
FIFO 30 31 27 29
Wiederholung BreitensucheBeispiel
22 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
FIFO 32 28
Wiederholung BreitensucheBeispiel
22 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
FIFO ∅
Durchmesser ungerichteter GraphenTeilalgorithmus: Alle kürzesten Pfade von u nach v ∈ V\{u}
23 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Breitensuche plus Nachbearbeitung:
1: function maxAbstand(u: NodeID): Abstand2: (⊥,d) := bfs(u)3: result := maxv∈V\{u} d [v ]4: return result
Laufzeit:BFS braucht O(m)
Maximum berechenen braucht O(n)⇒ Gesamt O(n + m), für zusammenhängende Graphen = O(m), dan ≤ m
Durchmesser ungerichteter GraphenTeilalgorithmus: Alle kürzesten Pfade von u nach v ∈ V\{u}
24 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Breitensuche plus Nachbearbeitung:
1: function maxAbstand(u: NodeID): Abstand2: (⊥,d) := bfs(u)3: result := maxv∈V\{u} d [v ]4: return result
Laufzeit: Was glauben Sie?
BFS braucht O(m)
Maximum berechenen braucht O(n)⇒ Gesamt O(n + m), falls zusammenhängend = O(m), da n ≤ m
Durchmesser ungerichteter GraphenTeilalgorithmus: Alle kürzesten Pfade von u nach v ∈ V\{u}
24 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Breitensuche plus Nachbearbeitung:
1: function maxAbstand(u: NodeID): Abstand2: (⊥,d) := bfs(u)3: result := maxv∈V\{u} d [v ]4: return result
Laufzeit:
Was glauben Sie?
BFS braucht O(m)
Maximum berechenen braucht O(n)⇒ Gesamt O(n + m), falls zusammenhängend = O(m), da n ≤ m
Durchmesser ungerichteter GraphenAlgorithmus
25 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Fertiger Algorithmus:1: D = 0 : N≥02: for each u ∈ V do3: D := max{D,maxAbstand(u)}4: return D
Laufzeit: O(n · Laufzeit Zeile 3) = O(nm), für zusammenh. Graphen
Durchmesser von Facebook 41
Durchmesser ungerichteter GraphenAlgorithmus
25 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Fertiger Algorithmus:1: D = 0 : N≥02: for each u ∈ V do3: D := max{D,maxAbstand(u)}4: return D
Laufzeit: O(n · Laufzeit Zeile 3) = O(nm), für zusammenh. Graphen
Durchmesser von Facebook 41
26 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Breitensuchenzur Graphpartitionierung
GraphpartitionierungWas ist Graphpartitionierung?
27 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Geben G und k > 1, teile V in k Blöcke V1,V2, ...Vk so dass:1 alle Mengen disjunkt, und die Vereinigung gerade V ist2 alle Mengen ungefähr gleich groß3 Anzahl der Kanten wird minimiert
Notation
28 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
ungerichter Graph G = (V ,E , c, ω), n = |V |,m = |E |Knotengewichte c : V → R>0, Kantengewichte ω : E → R≥0
Erweiterung auf Mengen1 c(V ′) :=
∑v∈V ′ c(v)
2 ω(E ′) :=∑
e∈E′ ω(e)
Schnittkanten Eij := {{u, v} ∈ E : u ∈ Vi , v ∈ Vj}
Notation
28 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
ungerichter Graph G = (V ,E , c, ω), n = |V |,m = |E |Knotengewichte c : V → R>0, Kantengewichte ω : E → R≥0
Erweiterung auf Mengen1 c(V ′) :=
∑v∈V ′ c(v)
2 ω(E ′) :=∑
e∈E′ ω(e)
Schnittkanten Eij := {{u, v} ∈ E : u ∈ Vi , v ∈ Vj}
Notation
28 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
ungerichter Graph G = (V ,E , c, ω), n = |V |,m = |E |Knotengewichte c : V → R>0, Kantengewichte ω : E → R≥0
Erweiterung auf Mengen1 c(V ′) :=
∑v∈V ′ c(v), c(Grün) = 11
2 ω(E ′) :=∑
e∈E′ ω(e)
Schnittkanten Eij := {{u, v} ∈ E : u ∈ Vi , v ∈ Vj}
Notation
28 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
ungerichter Graph G = (V ,E , c, ω), n = |V |,m = |E |Knotengewichte c : V → R>0, Kantengewichte ω : E → R≥0
Erweiterung auf Mengen1 c(V ′) :=
∑v∈V ′ c(v)
2 ω(E ′) :=∑
e∈E′ ω(e)
Schnittkanten Eij := {{u, v} ∈ E : u ∈ Vi , v ∈ Vj}
Notation
28 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
ungerichter Graph G = (V ,E , c, ω), n = |V |,m = |E |Knotengewichte c : V → R>0, Kantengewichte ω : E → R≥0
Erweiterung auf Mengen1 c(V ′) :=
∑v∈V ′ c(v)
2 ω(E ′) :=∑
e∈E′ ω(e), ω(Eij) = 5
Schnittkanten Eij := {{u, v} ∈ E : u ∈ Vi , v ∈ Vj}
GraphpartitionierungFormaler
29 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Geg.: Graph G = (V ,E , c, ω)c : V → R>0ω : E → R≥0k ∈ N, ε ∈ R>0.
Ges.: Blöcke V1, ...,Vk ⊆ V , V =⋃
i Vi und Vi ∩ Vj = ∅ (i 6= j)Balancebedingung: c(Vi) ≤ (1 + ε) c(V )
k + maxv c(v) ∀iKantenschnitt =
∑i<j ω(Eij) minimal
Notation
30 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
ungerichter Graph G = (V ,E , c, ω), n = |V |,m = |E |Knotengewichte c : V → R>0, Kantengewichte ω : E → R≥0
c :≡ 1, ω :≡ 1, Kantenschnitt = 17Balancebedingung?
Notation
30 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
ungerichter Graph G = (V ,E , c, ω), n = |V |,m = |E |Knotengewichte c : V → R>0, Kantengewichte ω : E → R≥0
c :≡ 1, ω :≡ 1, Kantenschnitt = 17Balancebedingung? ε = 0.25: 7, 8, 10, 8 ≤ (1+ε)
k c(V ) = 10.31
Notation
30 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
ungerichter Graph G = (V ,E , c, ω), n = |V |,m = |E |Knotengewichte c : V → R>0, Kantengewichte ω : E → R≥0
c :≡ 1, ω :≡ 1, Kantenschnitt = 17Optimal?
BeispielFinite Element Methode
31 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
BeispielFinite Element Methode
32 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Multilevelframework
33 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
input graph
match
... ...local improvement
uncontractcontract
outputpartition
part.
initial
Multilevelframework
33 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
match
... ...local improvement
uncontractcontract
outputpartition
input graph
partitioning
initial
Breitensuchen!
AbstraktionBreitensuchen
34 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Initial Partitioning
35 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Rekursive Bipartitionierung, z.B. mit BFSfinde Knoten die weit entfernt sind
1 wähle zufälligen Startknoten, iteriere Breitensuchen2 bis Konvergenz
wechselseitige Breitensuchen mit Zuweisung zu Blöcken
BubblingBesser
36 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
1: procedure bubbling(Graph G, k ∈ N)2: centers[1..k] : Array of Vertices3: centers = initializeCenters(G, k)4: do5: growRegions(G, centers)6: findNewCenters(G)7: while( !stop-condition )8: return
BubblinginitializeCenters
37 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
BubblinggrowRegions
38 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
BubblingfindNewCenters
39 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
BubblingBeispiel / Init Centers
40 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
BubblingBeispiel / Grow Regions
41 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
BubblingBeispiel / Grow Regions
41 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
BubblingBeispiel / Grow Regions
41 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
BubblingBeispiel / Grow Regions
41 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
BubblingBeispiel / Grow Regions
41 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
BubblingBeispiel / Grow Regions
41 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
BubblingBeispiel / Grow Regions
41 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
BubblingBeispiel / Grow Regions
41 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
BubblingBeispiel / Grow Regions
41 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
Multilevelframework
42 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
input graph
...
initial
...
outputpartition
local improvement
partitioning
match
contract uncontract
später
AnwendungParallelisierung Gesamtschrittverfahren
43 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
A positiv definit, symmetrisch, dünn besetztGesucht x ∈ Rn mit:
Rn×n 3 Ax = b ∈ Rn
n groß! ⇒ Parallelverarbeitung, z.B. iterative Löser
AnwendungParallelisierung Gesamtschrittverfahren
44 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
D − L−R := AAx = b ⇒ Dx = (L + R)x + b
AnwendungParallelisierung Gesamtschrittverfahren
44 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
D − L−R := AAx = b ⇒ Dx = (L + R)x + bdefiniere iterativen Prozess: xk+1 = D−1(L + R)xk + b
AnwendungParallelisierung Gesamtschrittverfahren
44 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
D − L−R := AAx = b ⇒ Dx = (L + R)x + bdefiniere iterativen Prozess: xk+1 = D−1(L + R)xk + b
xk+1i = 1
aii
∑i 6=j aijxk
j + bi
AnwendungParallelisierung Gesamtschrittverfahren
44 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
D − L−R := AAx = b ⇒ Dx = (L + R)x + bdefiniere iterativen Prozess: xk+1 = D−1(L + R)xk + b
xk+1i = 1
aii
∑i 6=j aijxk
j + bi
Graphpartitionierung?
AnwendungParallelisierung Gesamtschrittverfahren
45 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
xk+1i = 1
aii
∑i 6=j aijxk
j + bi
G = (V = {1, · · · ,n},E) ungerichteter Graphe = {i , j} ∈ E ⇔ ai,j 6= 0
jede Komponente xki , x
k+1i ,Ai,∗ gehört zu Knoten i ∈ V
G ungerichtet, da A symmetrisch
AnwendungParallelisierung Gesamtschrittverfahren
46 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
xk+1i = 1
aii
∑i 6=j aijxk
j + bi
G = (V = {1, · · · ,n},E) ungerichteter Graphe = {i , j} ∈ E ⇔ ai,j 6= 0
0 3 0 23 0 1 00 1 0 02 0 0 0
1 2
3
4
AnwendungParallelisierung Gesamtschrittverfahren
47 T. Bingmann, C. Schulz8. Übung – Algorithmen I
Fakultät für InformatikInstitut für Theoretische Informatik
xk+1i = 1
aii
∑i 6=j aijxk
j + bi
k -Partition von G:Prozessor l korrespondiert zu Vl (Aufteilung)speichert xk
i , xk+1i ,Ai,∗ und berechnet xk+1
i für alle i ∈ Vl
gute Partitionierung⇒ ausgeglichene Arbeit, wenig Kommunikation
0 3 0 23 0 1 00 1 0 02 0 0 0
1
4
2
3