Folien

Werbung
Paralleles Färben von Graphen
Thomas Holleczek
Erlangen, 18. Januar 2005
18. Januar 2005
Paralleles Färben von Graphen
1
Überblick
•
•
•
•
•
Wiederholung
Das Färben von Graphen
Anwendungsgebiete
Sequentielle Algorithmen
Parallele Algorithmen
– Theoretisches Modell
– Eigene Implementierung
• Laufzeitverhalten
• Ausblick
18. Januar 2005
Paralleles Färben von Graphen
2
Wiederholung
Was ist ein Graph?
• Geordnetes Paar G(V, E), wobei:
– V := Menge der Knoten (engl. vertex)
– E := Menge der Kanten (engl. edge)
• Dabei ist E eine zweistellige Relation auf V x V
– Ist E symmetrisch, so ist G ungerichtet
– Sonst ist G gerichtet
• Anschauliche Darstellung
– V := Menge der Knoten
– E := Kantenverbindungen zwischen den Knoten
18. Januar 2005
Paralleles Färben von Graphen
3
Wiederholung
gerichteter Beispielgraph
• V = {0,1,2,3,4}
• E = {(0,1), (0,2), (1,2),
(1,4), (3,2), (4,0),
(4,2), (4,3)}
18. Januar 2005
3
4
2
0
1
Paralleles Färben von Graphen
4
Wiederholung
ungerichteter Beispielgraph
• V = {0,1,2,3,4}
• E = {(0,1), (0,2), (0,4), (1,0),
(1,2), (1,4), (2,0), (2,1),
(2,3), (2,4), (3,2), (3,4),
(4,0), (4,1), (4,2), (4,3)}
18. Januar 2005
Paralleles Färben von Graphen
3
4
2
0
1
5
Wiederholung
Der Grad eines Knotens
Gerichteter Beispielgraph
3
4
0
18. Januar 2005
2
1
• Eingangsgrad: Anzahl der
eingehenden Kanten
• Ausgangsgrad: Anzahl
der ausgehenden Kanten
• Beispiel:
– Eingangsgrad(0) = 1
– Ausgangsgrad(0) = 2
Paralleles Färben von Graphen
6
Wiederholung
Der Grad eines Knotens
Ungerichteter Beispielgraph
3
4
2
• Grad: Anzahl der Kanten,
die einen Knoten mit
anderen verbinden
• Beispiel:
– grad(2) = 4
– grad(3) = 2
0
18. Januar 2005
1
Paralleles Färben von Graphen
7
Wiederholung
Der maximale Grad eines Graphen
Ungerichteter Beispielgraph
3
4
2
• Maximaler Grad:
Maximum der Grade aller
Knoten
• Beispiel:
– MaximalerGrad(G) = 4
0
18. Januar 2005
1
Paralleles Färben von Graphen
8
Wiederholung
Wie stellt man Graphen im Rechner dar?
Beispielgraph
Adjazenzmatrix
3
4
0
18. Januar 2005
2
0
1
2
3
4
0
0
1
1
0
1
1
1
0
1
0
1
2
1
1
0
1
1
3
0
0
1
0
1
4
1
1
1
1
0
1
Paralleles Färben von Graphen
9
Wiederholung
Wie stellt man Graphen im Rechner dar?
Beispielgraph
Adjazenzliste
3
4
0
18. Januar 2005
0
1
2
4
1
0
2
4
2
0
1
3
4
3
2
4
4
0
1
2
3
2
1
Paralleles Färben von Graphen
10
Das Färben von Graphen
Was bedeutet Graphen Färben?
• Ausgangssituation: (Ungerichteter) Graph mit soll
gefärbt werden
• k-Färbung informell:
– Jedem Knoten wird eine natürliche Zahl aus {0,1,… k-1}
zugeordnet
– Benachbarte Knoten müssen unterschiedlich gefärbt sein
• k-Färbung abstrakt:
 : V  {0,1,..., k  1}:
 (u )   (v)  adj (u, v).
u, v  V : adj (u , v)  (u, v)  E  (v, u )  E.
18. Januar 2005
Paralleles Färben von Graphen
11
Das Färben von Graphen
Oberschranke für die Farbanzahl
• Sei d der maximale Grad des Graphen
• Dann ist (d + 1) obere Schranke für die benötigte
Farbanzahl
3
P
4
2
0
1
18. Januar 2005
• Beispiel:
– Knoten 2 soll gefärbt werden
– Knoten 2 besitzt maximalen Grad
– Alle Nachbarknoten sind
unterschiedlich gefärbt
– Knoten 2 braucht eine größere
Farbe
Paralleles Färben von Graphen
12
Das Färben von Graphen
Die chromatische Zahl X(G)
• Charakteristikum jedes Graphen
• Mindestanzahl der Farben, die notwendig ist, um den
Graphen zulässig zu färben
• Extrem schwer zu bestimmen (NP-vollständig)
3
• Beispiel:
– X(G) = 4
4
2
0
1
18. Januar 2005
Paralleles Färben von Graphen
13
Das Färben von Graphen
praktische Anwendungen
• Universität:
– Knoten: jeder Knoten steht für angebotene Vorlesung
– Kanten: Kante zwischen 2 Knoten ↔ Student hört beide
Vorlesungen
– X(G):
Mindestanzahl der Klausurtermine
• Chemie
– Knoten: jeder Knoten steht für Chemikalie
– Kanten: Kante zwischen 2 Knoten ↔ Chemikalien reagieren
miteinander
– X(G):
Mindestanzahl der Aufbewahrungsorte
18. Januar 2005
Paralleles Färben von Graphen
14
Das Färben von Graphen
praktische Anwendungen
Technische
Informatik 2
Technische
Informatik 1
Theoretische
Informatik
Algorithmik 1
Rechnungswesen 1 + 2
E-Technik
18. Januar 2005
Mathematik
1+2
Paralleles Färben von Graphen
15
Das Färben von Graphen
praktische Anwendungen
Technische
Informatik 2
Technische
Informatik 1
Theoretische
Informatik
Algorithmik 1
Rechnungswesen 1 + 2
E-Technik
18. Januar 2005
Mathematik
1+2
Paralleles Färben von Graphen
16
Das Färben von Graphen
Alternative Problemstellungen
• Bestimme die chromatische Zahl X(G)
– Sehr aufwändig
• Finde heraus, ob zu vorgegebenem k eine passende kFärbung existiert
– Sehr aufwändig
• Färbe die Kanten des Graphen
18. Januar 2005
Paralleles Färben von Graphen
17
Sequentielle Algorithmen
Erster Versuch: „SeqGraph“
• Bestimme den maximalen Grad des Graphen
• Iteriere über alle Knoten des Graphen
– Überprüfe jeweils alle Nachbarknoten auf Färbung
– Wähle jeweils die kleinstmögliche Farbe aus
18. Januar 2005
Paralleles Färben von Graphen
18
Sequentielle Algorithmen
„SeqGraph“ am Beispiel
3
4
2
0
1
0
•
•
•
•
•
•
•
•
Bestimme maximalen Grad
Maximaler Grad = 4
Maximale Farbanzahl = 5
Untersuche Knoten 0
Untersuche Knoten 1
Untersuche Knoten 2
Untersuche Knoten 3
Untersuche Knoten 4
1
2
3
4
18. Januar 2005
Paralleles Färben von Graphen
19
Sequentielle Algorithmen
„SeqGraph“ Aufwandsabschätzung
• Sei d der maximale Grad des Graphen
• Jeder Knoten wird untersucht
• Für jeden Knoten werden maximal d Nachbarn
untersucht
• Im Extremfall gilt d = n - 1:
O(n)  O(n)  O(n )
2
18. Januar 2005
Paralleles Färben von Graphen
20
Sequentielle Algorithmen
Bemerkungen zu „SeqGraph“
• Im ungünstigsten Fall tritt höchstens eine (d + 1)
Färbung auf (wobei d maximaler Grad)
• Anzahl der benutzten Farben hängt von der Reihenfolge
der Knoten ab
• Mindestens eine Reihenfolge der Knoten führt zur
Minimallösung mit X(G) Farben
• Es gibt noch eine Vielzahl anderer Algorithmen, die
– Viel aufwendiger zu implementieren sind
– Viel schlechteres Laufzeitverhalten aufweisen
18. Januar 2005
Paralleles Färben von Graphen
21
Sequentielle Algorithmen
Algorithmus von D. S. Johnson
• Solange noch Knoten existieren
– Färbe Knoten mit minimalem Grad mit Farbe 1
– Entferne diesen Knoten samt Nachbarknoten und inzidenten
Kanten
• Betrachte Graph bestehend aus noch ungefärbten
Knoten samt dazugehörigen Kanten
• Wende auf diesen Graph obiges Verfahren mit Farbe 2
an
• usw.
18. Januar 2005
Paralleles Färben von Graphen
22
Sequentielle Algorithmen
Algorithmus von Johnson am Beispiel
Technische
Informatik 2
Technische
Informatik 1
Theoretische
Informatik
Algorithmik 1
Rechnungswesen 1 + 2
E-Technik
18. Januar 2005
Mathematik
1+2
Paralleles Färben von Graphen
23
Sequentielle Algorithmen
Algorithmus von Johnson am Beispiel
Technische
Informatik 2
Technische
Informatik 1
Theoretische
Informatik
Algorithmik 1
Rechnungswesen 1 + 2
E-Technik
18. Januar 2005
Mathematik
1+2
Paralleles Färben von Graphen
24
Sequentielle Algorithmen
Algorithmus von Johnson am Beispiel
Technische
Informatik 2
Technische
Informatik 1
Theoretische
Informatik
Algorithmik 1
Rechnungswesen 1 + 2
E-Technik
18. Januar 2005
Mathematik
1+2
Paralleles Färben von Graphen
25
Sequentielle Algorithmen
Algorithmus von Johnson am Beispiel
Technische
Informatik 2
Technische
Informatik 1
Theoretische
Informatik
Algorithmik 1
Rechnungswesen 1 + 2
E-Technik
18. Januar 2005
Mathematik
1+2
Paralleles Färben von Graphen
26
Sequentielle Algorithmen
Bemerkungen zum Algorithmus von „Johnson“
• verwendet weniger Farben als „SeqGraph“
• Aufwandsabschätzung: O(n2)
18. Januar 2005
Paralleles Färben von Graphen
27
Parallele Algorithmen
Theoretisches Modell
• Bestimme den Grad des Graphen
• Jeder Prozess erhält die Adjazenzmatrix des Graphen
• Jeder Prozess führt folgende Schritte durch:
– Iteriere über alle Knoten
• Färbe jeden Knoten mit einer Zufallsfarbe
• Berücksichtige nicht die Farbe der Nachbarn
– Überprüfe, ob die gefundene Lösung korrekt ist
18. Januar 2005
Paralleles Färben von Graphen
28
Parallele Algorithmen
Theoretisches Modell am Beispiel
P1
P2
P3
3
3
3
4
2
4
2
4
2
0
1
0
1
0
1
18. Januar 2005
Paralleles Färben von Graphen
29
Parallele Algorithmen
Bemerkungen zum theoretischen Modell
• Pro
– Die erste zufällige Färbung kann korrekt sein
• Kontra
– Allein das Überprüfen auf Korrektheit liegt im ungünstigsten Fall
in O(n2)
– Dieselbe falsche Lösung kann (nicht nur von verschiedenen
Threads) mehrfach berechnet werden
– Extrem schlechtes Laufzeitverhalten
18. Januar 2005
Paralleles Färben von Graphen
30
Parallele Algorithmen
Eigene Implementierung „ParaGraph“
• p Prozessoren zur Verfügung
• Idee:
– Teile V in p gleich große Teile auf
– Jeder Prozessor färbt die ihm zugewiesenen Knoten
– Verwendung des sequentiellen Algorithmus‘ „SeqGraph“
• Problem:
– Fehlende Synchronisation führt zu Fehlfärbungen
18. Januar 2005
Paralleles Färben von Graphen
31
Parallele Algorithmen
„ParaGraph“ am Beispiel
3/3
3/2
P3
3/1
3/0
2/4
2/0
2/2
1/1
2/3
P1
1/2
1/0
18. Januar 2005
P2
2/1
1/3
Paralleles Färben von Graphen
32
Parallele Algorithmen
Szenario
Farbordnung
P2
2/1
2/2
Farbordnung
P1
2/3
P1
1/0
1/1
1/2
18. Januar 2005
P2
2/0
Paralleles Färben von Graphen
1/3
33
Parallele Algorithmen
Synchronisation
• Prozess p will Knoten k färben
• Folgende zwei Aspekte sind zu berücksichtigen
– k darf von keinem anderen Prozess gelesen werden
– Nachbarn von k dürfen von keinem anderen Prozess gefärbt
werden
• Lösung:
– Jeder Knoten erhält binäre Semaphore
– Prozess p, der k färben will, muss anfordern:
• k selbst, damit k nicht gelesen wird
• Alle Nachbarn von k, damit diese nicht gefärbt werden
18. Januar 2005
Paralleles Färben von Graphen
34
Parallele Algorithmen
Synchronisation
• Prozess p will Knoten k färben
• 2 Vereinfachungen:
– Schon gefärbte Nachbarknoten müssen nicht angefordert
werden
– Nur Nachbarknoten anfordern, die außerhalb des Bereichs von p
liegen
18. Januar 2005
Paralleles Färben von Graphen
35
Parallele Algorithmen
Synchronisation am Beispiel
3/3
3/2
P3
3/1
3/0
2/4
2/0
2/2
1/1
2/3
P1
1/2
1/0
18. Januar 2005
P2
2/1
1/3
Paralleles Färben von Graphen
36
Parallele Algorithmen
Deadlock: Vermeidungsalgorithmen
• BM := Betriebsmittel
• Zuteilung der BM erfolgt in festgelegter linearer
Reihenfolge
• Zuteilung der BM erfolgt atomar
• Belegte BM werden notfalls zwangsweise entzogen
• Zuteilung von BM erfolgt nur, wenn resultierender
Zustand sicher
18. Januar 2005
Paralleles Färben von Graphen
37
Parallele Algorithmen
Synchronisation: Hilfsfunktionen
• void REQUEST(int node);
– Regelt die Anforderung eines zu färbenden Knotens
• void RELEASE(int node);
– Regelt die Freigabe eines gefärbten Knotens
18. Januar 2005
Paralleles Färben von Graphen
38
Parallele Algorithmen
REQUEST und RELEASE
void REQUEST(int node) {
P(lock);
P(sema[node]);
for (int i = 0; i < neighbors[node].length; i++) {
if (!colored[neighbors[node][i]] &&
!area(neighbors[node][i], process)) {
P(sema[neighbors[node][i]]);
}
}
V(lock);
}
18. Januar 2005
Paralleles Färben von Graphen
39
Parallele Algorithmen
REQUEST und RELEASE
void RELEASE(int node) {
for (int i = 0; i < neighbors[node].length; i++) {
if (!area(neighbors[node][i], process)) {
V(sema[neighbors[node][i]]);
}
}
V(sema[node]);
}
18. Januar 2005
Paralleles Färben von Graphen
40
Parallele Algorithmen
Bemerkungen zu „ParaGraph“
• Verwendung aktiven Wartens
– Kann Semaphoroperationen simulieren
– Bedeutet Gefahr bei Monoprozessorsystemen
• Je mehr Prozesse färben, desto größer ist der
Synchronisationsbedarf
• Bestes Laufzeitverhalten
18. Januar 2005
Paralleles Färben von Graphen
41
Laufzeitverhalten
7
6
SpeedUp
5
Optimal
4
Semaphoren
3
aktives Warten
2
1
0
0
1
2
3
4
5
6
Threads
18. Januar 2005
Paralleles Färben von Graphen
42
Ausblick
• Verbesserung des Laufzeitverhaltens durch
– Preprocessing des Graphen
– Optimistische Synchronisation und Fehlerkorrektur
– Verwendung eines anderen Vermeidungsalgorithmus
18. Januar 2005
Paralleles Färben von Graphen
43
Zusammenfassung
• Das Färben von Graphen
– Einführung
– Bedeutung in der Praxis
• Sequentielle Algorithmen
– Intuitiver Algorithmus
– Algorithmus von Johnson
• Parallele Algorithmen
– Theoretisches Modell
– Eigene Implementierung
• Synchronisationsmaßnahmen
• Laufzeitverhalten
18. Januar 2005
Paralleles Färben von Graphen
44
Literaturverzeichnis
• I. N. Bronstein et al.: Taschenbuch der Mathematik,
Verlag Harri Deutsch, Frankfurt am Main 2001
• Kenneth H. Rosen: Handbook of Discrete and
Combinatorial Mathematics, CRC Press
• Volker Turau: Algorithmische Graphentheorie,
Oldenbourg Verlag, München 2004
• Jürgen Nehmer, Peter Sturm: Systemsoftware –
Grundlagen Moderner Betriebssysteme, dpunkt Verlag,
Heidelberg 2001
18. Januar 2005
Paralleles Färben von Graphen
45
ENDE
• Fragen
• Anregungen
• Kritik
18. Januar 2005
Paralleles Färben von Graphen
46
Herunterladen