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