Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

18. Januar 2005Paralleles Färben von Graphen1 Thomas Holleczek Erlangen, 18. Januar 2005.

Ähnliche Präsentationen


Präsentation zum Thema: "18. Januar 2005Paralleles Färben von Graphen1 Thomas Holleczek Erlangen, 18. Januar 2005."—  Präsentation transkript:

1 18. Januar 2005Paralleles Färben von Graphen1 Thomas Holleczek Erlangen, 18. Januar 2005

2 18. Januar 2005Paralleles Färben von Graphen2 Überblick Wiederholung Das Färben von Graphen Anwendungsgebiete Sequentielle Algorithmen Parallele Algorithmen –Theoretisches Modell –Eigene Implementierung Laufzeitverhalten Ausblick

3 18. Januar 2005Paralleles Färben von Graphen3 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

4 18. Januar 2005Paralleles Färben von Graphen4 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)}

5 18. Januar 2005Paralleles Färben von Graphen5 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)}

6 18. Januar 2005Paralleles Färben von Graphen6 Wiederholung Der Grad eines Knotens Gerichteter Beispielgraph Eingangsgrad: Anzahl der eingehenden Kanten Ausgangsgrad: Anzahl der ausgehenden Kanten Beispiel: –Eingangsgrad(0) = 1 –Ausgangsgrad(0) =

7 18. Januar 2005Paralleles Färben von Graphen7 Wiederholung Der Grad eines Knotens Ungerichteter Beispielgraph Grad: Anzahl der Kanten, die einen Knoten mit anderen verbinden Beispiel: –grad(2) = 4 –grad(3) =

8 18. Januar 2005Paralleles Färben von Graphen8 Wiederholung Der maximale Grad eines Graphen Ungerichteter Beispielgraph Maximaler Grad: Maximum der Grade aller Knoten Beispiel: –MaximalerGrad(G) =

9 18. Januar 2005Paralleles Färben von Graphen9 Wiederholung Wie stellt man Graphen im Rechner dar? BeispielgraphAdjazenzmatrix

10 18. Januar 2005Paralleles Färben von Graphen10 Wiederholung Wie stellt man Graphen im Rechner dar? BeispielgraphAdjazenzliste

11 18. Januar 2005Paralleles Färben von Graphen11 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:

12 18. Januar 2005Paralleles Färben von Graphen12 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 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 P

13 18. Januar 2005Paralleles Färben von Graphen13 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) Beispiel: –X(G) =

14 18. Januar 2005Paralleles Färben von Graphen14 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

15 18. Januar 2005Paralleles Färben von Graphen15 Das Färben von Graphen praktische Anwendungen Technische Informatik 2 Technische Informatik 1 Algorithmik 1 Mathematik Theoretische Informatik Rechnungs- wesen E-Technik

16 18. Januar 2005Paralleles Färben von Graphen16 Das Färben von Graphen praktische Anwendungen Technische Informatik 2 Technische Informatik 1 Algorithmik 1 Mathematik Theoretische Informatik Rechnungs- wesen E-Technik

17 18. Januar 2005Paralleles Färben von Graphen17 Das Färben von Graphen Alternative Problemstellungen Bestimme die chromatische Zahl X(G) –Sehr aufwändig Finde heraus, ob zu vorgegebenem k eine passende k- Färbung existiert –Sehr aufwändig Färbe die Kanten des Graphen

18 18. Januar 2005Paralleles Färben von Graphen18 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

19 18. Januar 2005Paralleles Färben von Graphen19 Sequentielle Algorithmen „SeqGraph“ am Beispiel Bestimme maximalen Grad Maximaler Grad = 4 Maximale Farbanzahl = 5 Untersuche Knoten 0 Untersuche Knoten 1 Untersuche Knoten 2 Untersuche Knoten 3 Untersuche Knoten

20 18. Januar 2005Paralleles Färben von Graphen20 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:

21 18. Januar 2005Paralleles Färben von Graphen21 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

22 18. Januar 2005Paralleles Färben von Graphen22 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.

23 18. Januar 2005Paralleles Färben von Graphen23 Sequentielle Algorithmen Algorithmus von Johnson am Beispiel Technische Informatik 2 Technische Informatik 1 Algorithmik 1 Mathematik Theoretische Informatik Rechnungs- wesen E-Technik

24 18. Januar 2005Paralleles Färben von Graphen24 Sequentielle Algorithmen Algorithmus von Johnson am Beispiel Technische Informatik 2 Technische Informatik 1 Algorithmik 1 Mathematik Theoretische Informatik Rechnungs- wesen E-Technik

25 18. Januar 2005Paralleles Färben von Graphen25 Sequentielle Algorithmen Algorithmus von Johnson am Beispiel Technische Informatik 2 Technische Informatik 1 Algorithmik 1 Mathematik Theoretische Informatik Rechnungs- wesen E-Technik

26 18. Januar 2005Paralleles Färben von Graphen26 Sequentielle Algorithmen Algorithmus von Johnson am Beispiel Technische Informatik 2 Technische Informatik 1 Algorithmik 1 Mathematik Theoretische Informatik Rechnungs- wesen E-Technik

27 18. Januar 2005Paralleles Färben von Graphen27 Sequentielle Algorithmen Bemerkungen zum Algorithmus von „Johnson“ verwendet weniger Farben als „SeqGraph“ Aufwandsabschätzung: O(n 2 )

28 18. Januar 2005Paralleles Färben von Graphen28 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

29 18. Januar 2005Paralleles Färben von Graphen29 Parallele Algorithmen Theoretisches Modell am Beispiel P1P2P3

30 18. Januar 2005Paralleles Färben von Graphen30 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(n 2 ) –Dieselbe falsche Lösung kann (nicht nur von verschiedenen Threads) mehrfach berechnet werden –Extrem schlechtes Laufzeitverhalten

31 18. Januar 2005Paralleles Färben von Graphen31 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

32 18. Januar 2005Paralleles Färben von Graphen32 Parallele Algorithmen „ParaGraph“ am Beispiel 1/0 1/3 2/4 2/1 2/32/2 3/1 1/2 P1 P3 1/1 3/2 3/3 3/0 P2 2/0

33 18. Januar 2005Paralleles Färben von Graphen33 Parallele Algorithmen Szenario 1/2 1/3 1/1 1/0 P1 2/2 2/3 2/1 2/0 P2 Farbordnung P1 Farbordnung P2

34 18. Januar 2005Paralleles Färben von Graphen34 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

35 18. Januar 2005Paralleles Färben von Graphen35 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

36 18. Januar 2005Paralleles Färben von Graphen36 Parallele Algorithmen Synchronisation am Beispiel 1/0 1/3 2/4 2/1 2/32/2 3/1 1/2 P1 P3 1/1 3/2 3/3 3/0 P2 2/0

37 18. Januar 2005Paralleles Färben von Graphen37 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

38 18. Januar 2005Paralleles Färben von Graphen38 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

39 18. Januar 2005Paralleles Färben von Graphen39 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); }

40 18. Januar 2005Paralleles Färben von Graphen40 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]); }

41 18. Januar 2005Paralleles Färben von Graphen41 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

42 18. Januar 2005Paralleles Färben von Graphen42 Laufzeitverhalten

43 18. Januar 2005Paralleles Färben von Graphen43 Ausblick Verbesserung des Laufzeitverhaltens durch –Preprocessing des Graphen –Optimistische Synchronisation und Fehlerkorrektur –Verwendung eines anderen Vermeidungsalgorithmus

44 18. Januar 2005Paralleles Färben von Graphen44 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

45 18. Januar 2005Paralleles Färben von Graphen45 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

46 18. Januar 2005Paralleles Färben von Graphen46 ENDE Fragen Anregungen Kritik


Herunterladen ppt "18. Januar 2005Paralleles Färben von Graphen1 Thomas Holleczek Erlangen, 18. Januar 2005."

Ähnliche Präsentationen


Google-Anzeigen