Parallele Algorithmen Walter Unger, Dirk Bongartz Lehrstuhl für Informatik I 8. November 2006 Teil I Motivation 1 2 3 4 5 Färbung I Kreis Eulerkreis Einleitung Einleitung Verfahren Matchings Einleitung Algorithmus Laufzeiten Färbungen II Bipatite Graphen Außenplanare Graphen Simulationen Einfache Simulationen Aufwendige Simulationen Färbung I Eulerkreis Matchings Färbungen II Färbung Färbungsproblem Gegeben ungerichteter Graph G = (V , E ) und k ∈ IN. Bestimme [Existiert?] Funktion c : V 7→ {1, · · · , k} mit: ∀{a, b} ∈ E : c(a) 6= c(b). Färbungszahl von G : χ(G ) := min{{k | ∃c : V 7→ {1, · · · , k} | ∀{a, b} ∈ E : c(a) 6= c(b)}. Färbungsproblem ist im allgemeinen NP-vollständig. Simulationen Färbung I Eulerkreis Matchings Färbungen II Kreis Färbung auf Kreis Sei G = Cn , d.h. G = ({v0 , · · · , vn−1 }, {{vi , v(i+1) mod n } | 0 6 i < n}). Dann gilt χ(Cn ) 6 3 und χ(C2·n ) 6 2. Simulationen Färbung I Eulerkreis Matchings Färbungen II Kreis Paralleler Färbungsalgorithmus (Idee) Ein Prozessor Pj verwaltet vπ(i) für Permutation π. In Register Ri steht π(i). In Register Ni steht π((i + 1) mod n). In Register Vi steht π((i − 1) mod n). In Register Ci soll die Farbe von vi stehen. Initial setze Ci mit i. Reduziere dann schrittweise die Farbenanzahl. Wir arbeiten mit Farben {0, 1, · · · , n}. Simulationen Färbung I Eulerkreis Matchings Färbungen II Kreis Paralleler Färbungsalgorithmus Programm: for all Pi where 1 6 i 6 n do in parallel c = i. Pi (c) → Ci Ni → Pi (h) Vi → Pi (h′ ) repeat ⌈log∗ (n)⌉ + 2 times Ch → Pi (c ′ ) minimales k mit: ((c ≫ k)%2) 6= ((c ′ ≫ k)%2). c = 2 · k + ((c ≫ k)%2). Pi (c) → Ci Korrektur(5,4,3) Simulationen Färbung I Eulerkreis Matchings Färbungen II Simulationen Kreis Paralleler Färbungsalgorithmus Am Anfang werden n Farben verwendet. In jedem Reduktionsschritt bleibt die Färbung korrekt. In jedem Reduktionsschritt verringert sich die Färbungszahl von x auf log(x). Nach ⌈log∗ (n)⌉ Reduktionsschritten ist die Färbungszahl 6 5. Die weitere Reduktion der Anzahl der Farben folgt. Färbung I Eulerkreis Matchings Färbungen II Simulationen Kreis Letzte Schritte In den Zeilen steht c in den Spalten c ′ . In den Einträgen der Tabellen das neue c. 000 0 1 2 3 4 5 6 7 000 001 010 011 100 101 110 111 0011 0113 0011 1015 0011 0113 0011 001 0000 0000 0113 0000 1015 0000 0113 010 0102 0011 0011 0102 0011 1015 0011 011 0000 0102 0000 0000 0102 0000 1015 100 1004 0011 0113 0011 0011 0113 0011 101 0000 1004 0000 0113 0000 0000 0113 110 0102 0011 1004 0011 0102 0011 111 0000 0102 0000 1004 0000 0102 0000 0011 Es treten nur noch Farben 000,001,010,011,100,101 (6 5) auf. Färbung I Eulerkreis Matchings Färbungen II Kreis Letzte Schritte (Teil II) 000 0 1 2 3 4 5 000 001 010 011 100 101 001 011 001 101 001 001 000 000 011 000 101 010 010 001 001 010 001 011 000 010 000 000 010 100 100 001 011 001 101 000 100 000 011 000 001 Der Eintrag 101 tritt nur zweimal auf: Für diese Fälle betrachten wir nun auch die neuen Werte der Vorgänger und Nachfolger. c = 100 c ′ = 000 c = 101 c ′ = 001 → 001 ∨ 011 ∨ 100 101 000 ∨ 010 ∨ 100 → 000 ∨ 011 ∨ 100 101 001 ∨ 010 ∨ 100 Simulationen Färbung I Eulerkreis Matchings Färbungen II Kreis Paralleler Färbungsalgorithmus Programm: for all Pi where 1 6 i 6 n do in parallel c = i. Pi (c) → Ci Ni → Pi (h) Vi → Pi (h′ ) repeat ⌈log∗ (n)⌉ + 2 times Ch → Pi (c ′ ) minimales k mit: ((c ≫ k)%2) 6= ((c ′ ≫ k)%2). c = 2 · k + ((c ≫ k)%2). Pi (c) → Ci for r := 5 downto 3 do: if c = r then Ch → Pi (c ′ ) Ch′ → Pi (c ′′ ) c := min({0, 1, 2} \ {c ′ , c ′′ }) Pi (c) → Ci Simulationen Färbung I Eulerkreis Matchings Färbungen II Simulationen Kreis Färben eines Kreises Theorem: Ein Kreis mit n Knoten kann mit n Prozessoren in Zeit O(log∗ n) mit drei Farben gefärbt werden. Beweis: siehe oben. Färbung I Eulerkreis Matchings Färbungen II Simulationen Einleitung Eulerkreis Definition: Ein Graph G = (V , E ) heißt Eulergraph, falls es einen Kreis gibt, der jede Kante genau einmal enthält. Äquivalent (ungerichtet): Ein ungerichteter Graph G = (V , E ) ist ein Eulergraph, falls: G ist zusammenhängend und jeder Knoten in G hat geraden Grad. Äquivalent (gerichtet): Ein gerichteter Graph G = (V , E ) ist ein Eulergraph, falls: G ist stark zusammenhängend und Jeder Knoten in G hat soviele eingehende wie ausgehende Kanten. Problem: Bestimme Eulerkreis in Eulergraphen. Färbung I Eulerkreis Matchings Färbungen II Simulationen Einleitung Idee Seriell: Starte an freier Kante und verfolge freie Kanten bis ein Kreis gefunden. Wiederhole das, bis alle Kanten in einem Kreis sind. Verbinde jeweils zwei Kreise zu einem Kreis. Wiederhole das, bis es nur noch einen Kreis gibt. Falls G ungerichtet, erzeuge gerichtete Version. Bestimme Überdeckung durch Kreise. Bestimme Zusatzkreis der jeden Kreis der Überdeckung einmal trifft. Bestimme damit einen Kreis durch G und die Zusatzkonstruktion. Bestimme dann durch Löschen einen Eulerkreis in G . Färbung I Eulerkreis Matchings Färbungen II Simulationen Einleitung Erzeugen eines gerichteten Graphen G enthalte m ungerichtete Kanten. Ersetze ungerichtet Kante durch zwei gerichtete: {i, j} wird zu (i, j) und (j, i). Definiere Nachfolger für jede der Kanten: Seien Nachbarn von v : v0 , v1 , · · · , vd−1 . Dann setze für alle ungeraden i: Succ((vi , v )) := (v , vi+1 ) und Succ((vi+1 , v )) := (v , vi ). Damit ist jede Kante in genau einem Kreis (definiert durch Succ). Zu jedem Kreis C gibt es einen Kreis C ′ , der aus den Rückwärtskanten besteht. Nun werden wir genau einen der Kreise C oder C ′ löschen. Färbung I Eulerkreis Matchings Färbungen II Simulationen Einleitung Erzeugen eines gerichteten Graphen Identifiziere die so definierten Kreise: (i, j) falls i 6 k ∨ i = k ∧ j < l Sei min((i, j), (k, l)) := . (k, l) sonst Fur jede Kante e setze Edge ′ (e) = e; Für jede Kante e wiederhole log m mal: Edge ′ (e) = min(Edge ′ (e), Edge ′ (Succ(e))) Succ(e) = Succ(Succ(e)). Für jede Kante (i, j): falls min((i, j), (j, i)) 6= (i, j) dann setze Edge ′ (e) = 0. Damit haben wir genau eine gerichtete Kante für jede ungerichtete Kante ausgewählt. Möglich mit m Prozessoren in O(log m) Zeit. Im Weiteren werden wir nur noch gerichtete Graphen betrachten. Färbung I Eulerkreis Matchings Färbungen II Verfahren Schritt 1 Gegeben gerichteter Graph G = (V , E ). Sortiere Kante in Array Edge. Sortierordnung: (i, j) < (k, l) ⇔ j < l ∨ (j = l ∧ i < k). Sortiere Kante in Array Succ. Sortierordnung: (i, j) < (k, l) ⇔ i < k ∨ (i = k ∧ j < l). Damit sind schon Kreise definiert: Nachfolger der Kante e = Edge(i) ist Kante Succ(i). Weiter speichern wir in P(i) die Position von Succ(i) in Edge. D.h. Edge(P(i)) = Succ(i). Diese Information kann beim Sortieren von Succ mitverwaltet werden. Aufwand O(log m) Zeit mit O(m) Prozessoren. Simulationen Färbung I Eulerkreis Matchings Färbungen II Verfahren Schritt 2 Situation: Überdeckung von Kreisen definiert. Problem: Bestimme für jede Kante, in welchem Kreis sie ist. Lösung: Bestimme für jeden Kreis die minimale Kante ((i, j) < (k, l) ⇔ i < k ∨ (i = k ∧ j < l)). Verfahren dazu: Programm: for all Pi where 1 6 i 6 m do in parallel CycleRep(i) := Succ(i) for i := 1 to ⌈log m⌉ do: CycleRep(i) := min(CycleRep(i), CycleRep(P(i))) P(i) := P(P(i)) Verwendet wird das bekannte Verdoppelungsverfahren. Aufwand O(log m) Zeit mit O(m) Prozessoren. Simulationen Färbung I Eulerkreis Matchings Färbungen II Simulationen Verfahren Schritt 2 (Fortsetzung) Situation: Kreise der Überdeckung sind durch CycleRep identifiziert. Problem: Kreise verbinden. Lösung: Stützgraphen definieren, d.h. welche Knoten sind in welchen Kreisen. C = {CycleRep(i) | 1 6 i 6 m}. (Beachte C ist Kantenmenge) G′ = V ∪ C E ′ = {(u, v ) | u ∈ V , v ∈ C : v ist im Kreis identifiziert durch u} Bestimmung von E ′ : Programm: for all Pi where 1 6 i 6 m do in parallel (u, v ) = Edge(i) Edge ′ (2 · i) = (u, CycleRep(i)) Edge ′ (2 · i + 1) = (v , CycleRep(i)) Färbung I Eulerkreis Matchings Färbungen II Verfahren Schritt 2 (Fortsetzung) Situation: Überdeckende Kreise und Graph G ′ definiert. Problem: Doppelte Kanten vorhanden. Lösung: Aussortieren. Sortiere Edge ′ . Programm: for all Pi where 1 6 i 6 m do in parallel if Edge ′ (i) = Edge ′ (i + 1) then Edge(i) = ∞ Sortiere Edge ′ . Betrachte nur noch die ersten |E ′ | Elemente von Edge ′ . Problem: Knoten u kann mehrfach in Kreis v auftreten. Analog kann da ein Representant bestimmt werden. Dies sei Kante (i, u) = Cert(u, v ). Aufwand O(log m) Zeit mit O(m) Prozessoren. Simulationen Färbung I Eulerkreis Matchings Färbungen II Verfahren Schritt 3 Situation: Überdeckende Kreise und Graph G ′ definiert. Problem: Kreis in G ′ bestimmen. Lösung: Spannbaum T für bipatiten Graph G ′ . Aufwand für Spannbaum: O(log2 m) Zeit mit O(m/ log2 m) Prozessoren. Ersetze jede Kante in T durch zwei gerichtet Kanten. Der neue Graph T ′ ist Eulergraph. Der Eulerkreis ist einfach zu finden. Bestimme dazu an jeden Knoten Ordnung der Kanten. Aufwand O(log m) Zeit mit O(m) Prozessoren. Simulationen Färbung I Eulerkreis Matchings Färbungen II Simulationen Verfahren Schritt 4 Situation: Überdeckende Kreise in G und Graph T ′ definiert. Problem: Kreis L in G ′ bestimmen. Lösung: Zusammenfassen mit Hilfe von Cert(u, v ). Dabei wird L uns auch Eulerkreis in G liefern. Zu jedem Kreis v in G definiert uns Cert(u, v ) eine Kante, an der zwischen v und dem Kreis in T ′ gewechselt werden kann. Diese Wechselpunkte werden nun benutzt, um aus den vielen Kreisen einen Kreis L zu machen. Damit hat L die gewünschte Form. Aufwand O(1) Zeit mit O(m) Prozessoren. Färbung I Eulerkreis Matchings Färbungen II Verfahren Schritt 5 Situation: Überdeckender Kreise in G ∪ T ′ definiert. Problem: Kreis in G bestimmen. Lösung: Lösche Kanten aus T ′ . Programm: for all Pi where 1 6 i 6 m do in parallel if Succ(i) ∈ T ′ then Succ(i) := Succ(Succ(i)) if Succ(i) ∈ T ′ then Succ(i) := Succ(Succ(i)) Aufwand O(1) Zeit mit O(m) Prozessoren. Gesamtaufwand: O(log2 m) Zeit mit O(m) Prozessoren. Verbesserbar auf: O(log2 m) Zeit mit O(m/ log2 m) Prozessoren. Simulationen Färbung I Eulerkreis Matchings Färbungen II Einleitung Definition Definition Sei G = (V , E ) ungerichteter Graph. M ⊂ E heißt Matching, falls ∀e, e ′ ∈ M : e ∩ e ′ = ∅. M heißt maximales Matching, falls 6 ∃e ∈ E : M ∪ {e} ist ein Matching. M heißt maximum Matching, falls für alle Matchings M ′ gilt |M ′ | 6 |M|. Aufwand seriell: O(m log m) für maximales Matching. Idee dabei: Wähle freie Kante, lösche alle inzidenten Kanten. Aufwand seriell: O(m3 ) für maximum Matching. Idee dabei: Erweiternde Wege Simulationen Färbung I Eulerkreis Matchings Färbungen II Simulationen Einleitung Idee Sei ∆(G ) der maximal Knotengrad von G . Erweitere schrittweise das Matching um viele Kanten. Das geschieht in O(log3/2 n) Phasen. i-te Phase Fi hat als Eingabe Gi und bestimmt Mi . G1 = G und Endergebnis: ∪Mi . In jeder Phase Fi wird (1 + log(∆(G )))-mal die Procedure DegreeSplit aufgerufen. In jedem Teilschritt wird der Knotengrad dabei halbiert. Mit G (i, j) wird der Eingabegraph des j-ten Durchlaufs in der i-ten Phase bezeichnet. Beschrieben wird Procedure DegreeSplit. Sei k die kleinste Zahl mit 2k 6 ∆(G ) 6 2k+1 . Dann nennen wir die Knoten v mit δ(v ) > 2k aktive Knoten. Färbung I Eulerkreis Matchings Färbungen II Simulationen Algorithmus Schritt 1 Bestimme aktive Knoten von G (i, j) Bestimme Knotengrad in Zeit O(log ∆(G (i, j))) mit O(m) Prozessoren. Bestimme maximalen Knotengrad in Zeit O(log n) mit O(n) Prozessoren. Danach sind die aktiven Knoten in Zeit O(1) mit O(n) Prozessoren bekannt. Gesamtaufwand: Zeit O(log n) mit O(m) Prozessoren. Färbung I Eulerkreis Matchings Färbungen II Algorithmus Schritt 2 Bestimme Graphen G ∗ (i, j) wie folgt: Bestimme all Kanten, die zu aktiven Knoten inzident sind. Bestimme neuen Knotengrad. Falls Knoten mit ungeradem Grad vorhanden sind, verbinde diese mit einem neuen Knoten v . Gesamtaufwand: Zeit O(log n) mit O(m) Prozessoren. G ∗ (i, j) muss nicht zusammenhängend sein. Jede Komponente von G ∗ (i, j) enthält Eulerkreis. Beachte v hat geraden Grad. Simulationen Färbung I Eulerkreis Matchings Färbungen II Algorithmus Schritt 3 Bestimme auf jeder Komponente von G ∗ (i, j) einen Eulerkreis. Aufwand: Zeit O(log2 n) mit O(m + n) Prozessoren. Beachte: Die zusätzlichen n Prozessoren ergeben sich durch die zusätzlichen Kanten. Label die Kanten der Eulerkreise abwechselnd mit 0 und 1. Für die Komponente mit dem Zusatzknoten v starte bei v mit Label 0. Für alle anderen Komponenten starte an beliebigen Knoten mit Label 1. Aufwand: Zeit O(log n) mit O(m + n) Prozessoren. Verwende zum Bestimmen der Labels Parallel Prefix. Simulationen Färbung I Eulerkreis Matchings Färbungen II Simulationen Algorithmus Schritt 4 Lösche alle Kanten mit Label 0. Falls der verbleibende Graph G ∗∗ (i, j) kein Matching ist, dann G (i, j + 1) = G ∗∗ (i, j) \ {v }. Falls der verbleibende Graph G ∗∗ (i, j) ein Matching ist, dann Mi = E (G ∗∗ (i, j)). Aufwand: Zeit O(1) mit O(m + n) Prozessoren. Aufwand der Prozedure DegreeSplit: Zeit O(log2 n) mit O(m + n) Prozessoren. Noch zu zeigen: Nach maximal 1 + log(∆(G (i, j))) Durchläufen erzeugt DegreeSplit ein Matching. Noch zu zeigen: Nach maximal O(log3/2 n) Phasen ist das Matching maximal. Färbung I Eulerkreis Matchings Färbungen II Laufzeiten Innere Schleife Lemma: Sei G Eingabe von DegreeSplit, dann erzeugt DegreeSplit nach 1 + log(∆(G )) Durchläufen ein Matching. Beweis: Sei k kleinste Zahl mit 2k 6 ∆(G ) 6 2k+1 + 1. Sei G1 Ergebnis eines Schleifendurchlaufs. Sei v aktiv in G , dann gilt: 2k 6 δG (v ). ⌊δG (v )/2⌋ 6 δG1 (v ) 6 ⌊δG (v )/2⌋ + 1. 2k−1 6 δG1 (v ) 6 2k + 1. Damit bleibt v in G1 aktiv. Damit wird der Grad immer weiter halbiert. Für ein passendes k ′ 6 k hat Gk ′ einen Grad von 3. Nach zwei weiteren Schritte ist der Grad maximal eins. Damit ist dann ein Matching gefunden. Simulationen Färbung I Eulerkreis Matchings Färbungen II Simulationen Laufzeiten Äußere Schleife Lemma: Eine logarithmische Anzahl von Phasen reicht aus ein maximum Matching zu bestimmen. Beweis: Seien Ai die Knoten die aktiv werden innerhalb der Phase Fi . Damit ist Ai ein Vertex Cover von Gi . (C ⊂ V heist Vertex Cover, falls ∀e ∈ E : e ∪ C 6= ∅) Wir zeigen im Folgenden: Die Hälfte der Knoten eines Vertex Covers Ai kann inzident zu Kanten aus Mi gemacht werden. D.h. es gilt: |Ai /Gi+1 | 6 |Ai |/2. mit Ai /Gi+1 die Knoten von Ai in Gi+1 Es gibt Vertex Covers Ci : |Ci+1 | 6 2 · |Ci |/3. Färbung I Eulerkreis Matchings Färbungen II Laufzeiten Äußere Schleife (Beweis) Sei Gk = (V , Ek ) der Graph in der drittletzten Schleife von DegreeSplit. O.E.d.A. ist Gk zusammenhängend vom Grad 6 3. DegreeSplit kann auch o.E.d.A. die kleinere Menge von Kanten entfernen. Damit gilt |Mi | > |Ek |/4. Simulationen Färbung I Eulerkreis Matchings Färbungen II Simulationen Laufzeiten Äußere Schleife (Beweis) Falls |Ek | > |Ai | enthält Mi mindestens |Ai |/4 Kanten. Beide Endpunkte einer Kante aus Ai gehören zu Ai und mindestens die Hälfte dieser sind inzident zu Mi . Falls |Ek | < |Ai | dann ist Gk ein Baum. Wir entfernen Kanten aus Gk die eine Blatt als Endpunkt haben. Zusätzlich werden die inzidenten Kanten entfernt. |Mi | > |Ek |/4 Färbung I Eulerkreis Matchings Färbungen II Simulationen Laufzeiten Äußere Schleife (Beweis) Da ∆(Gk ) 6 3 bleiben höchsten 2 Bäume T1 und T2 übrig (mit n1 + n2 Knoten). Damit werden dann ((n1 − 1) + (n2 − 1))/4 Kanten zu Mi aufgenommen. Damit haben wir |Ai |/2 Knoten in Mi . Damit gilt: |Ai /Gi+1 | 6 |Ai |/2. |Mi | > |Ek |/4 Färbung I Eulerkreis Matchings Färbungen II Simulationen Laufzeiten Äußere Schleife (Beweis) |Mi | > |Ek |/4 |Ai /Gi+1 | 6 |Ai |/2 Wir zeigen per Induktion Gi hat Vertex Cover Ci mit |Ci | 6 (2/3)i−1 |V |. Wir werden dazu zeigen |Ci+1 | 6 2|Ci |/3. I.A. i = 1: Wähle C1 = V . Fall 1: |Ai | 6 4|Ci |/3. In Phase i werden die Hälfe der Knoten von Ai gelöscht. Ai /Gi+1 ist Vertex Cover von Gi+1 . |Ai |/2 6 (4|Ci |/3)/2 = 2|Ci |/3. Fall 2: |Ai | > 4|Ci |/3. Die Hälfe der Knoten von Ai gelöscht. Die haben Endpunkte in Mi . Ci ist Vertex Cover von Gi . Damit hat jede Kante mindesten einen Endpunkt in Ci . Mindestens 1/4 der Kanten aus Ai sind in Ci . Ci /Gi+1 ist Vertex Cover von Gi+1 . |Ci /Gi+1 | 6 |Ci | − |Ai |/4 6 |Ci | − (4|Ci |/3)/4 = 2|Ci |/3. Färbung I Eulerkreis Matchings Färbungen II Simulationen Laufzeiten Zusammenfassung Theorem: Ein maximales Matching kann in Zeit O(log4 n) mit O(n + m) Prozessoren bestimmt werden. Beweis: Äußere Schleife: O(log n) Innere Schleife: O(log n) Laufzeit von DegreeSplit: O(log2 n). |Mi | > |Ek |/4 |Ai /Gi+1 | 6 |Ai |/2 Färbung I Eulerkreis Matchings Färbungen II Bipatite Graphen Kantenfärbung von Bipatiten Graphen Bipatite Graphen Ein Graph G = (A, B, E ) mit E ⊂ A × B heißt Bipatiter Graph. gerichteter Kantengraph Sei G = (V , E ) ein gerichteter Graph, dann ist G 2 = (E , F ) mit F = {((a, b), (b, c)) | (a, b), (b, c) ∈ E } der Kantengraph von G . ungerichteter Kantengraph Sei G = (V , E ) ein ungerichteter Graph, dann ist G 2 = (E , F ) mit F = {{{a, b}, {b, c}} | {a, b}, {b, c} ∈ E } der Kantengraph von G . Kantenfärbung Gegeben ungerichteter Graph G = (V , E ) und k ∈ IN. Bestimme [Existiert?] k-Färbung von G 2 . Simulationen Färbung I Eulerkreis Matchings Färbungen II Bipatite Graphen Einleitung Gegeben ungerichteter Graph G = (V , E ) Es ist NP-vollständig eine ∆(G ) Kantenfärbung zu finden. Eine ∆(G ) + 1 Kantenfärbung gibt es immmer. Ein bipatiter Graph G ist ∆(G ) kantenfärbbar. Bzw.: bipatiter Graph G kann mit ∆(G ) Matching überdeckt werden. Hier: parallele Kantenfärbung eines bipatiten Graphen. 1.Schritt: ∆(G ) = 2k für ein k ∈ IN. Simulationen Färbung I Eulerkreis Matchings Färbungen II Simulationen Bipatite Graphen Verfahren für ∆(G ) = 2k Idee: Überdecke die Kanten von G durch Kreise und Wege. Färbe Kanten alternierend mit 0 und 1. Bestimme dadurch Aufteilung von G in G0 und G1 mit ∆(G0 ) = ∆(G1 ) = 2k−1 . Alle Schritte sind in Zeit O(log n) mit O(m) Prozessoren möglich. Danach fahre rekursiv fort. Gesamtlaufzeit O(log2 n) mit O(m) Prozessoren. Färbung I Eulerkreis Matchings Färbungen II Bipatite Graphen Beispiel v v LA @ vLA@ v LB LA @ LA @ @v BL v BL LA L L A BL L v v L A L BL A L B L L LB LL A v v J LB L L v J LB L LLv @ J LB L J BL @ v JL Lv @ LB @ JBL JLBv v @ v v LAJ B @ BLAJ@ v v L B @ J A LJ BA@ L B @ J A @ BLAJ @ v v L B J A H J@ BLAH LA@ J J L B A H LAJH @ LAJB @ H @ v Jv L B A L A J B LAJ@ @ J J BAL A LABL B@ @J @ L Av J v J L A B J LA@ J H LB L @ J A B H L A J H H J @ LALv BH @ L B J J @ v L A @JB LB J @ AB J L@ J LALBv LB@ J @ v @J LB @ JLB JLBv v @ v v BJ BJ v v A B J J @ B J vAJ@ v J B H AJ@ A H J @ J B H AJH @ AJ @ H Jv v @ B AJ@ A J J @ AJBA@ J J @ BA@ Jv v A JB H J@ @ A H A J H J @ H B@ Av J v @ @JA H B A @ JB ABv J v @ v v Simulationen Färbung I Eulerkreis Matchings Färbungen II Simulationen Bipatite Graphen Beispiel r r Ar@ r @r rB A r B r A rB Ar r r r@B r r @B r r r r@ r r @r r r r r r r r@ r r @r r r LAr@ r BrLLA@ r r BL L r L A r LBL Ar LLr r J LBLLr J r@ LLB r J r @ r r Ar r rB A r r B A r Ar rB r r r Br rB r r r r@ L BAJ r @ rLB @ r J ABLAJ H J @ H r @ J ABLABJ L r L A J @ Ar LAJ r @ J L A B H L B JALr @ @ H rJ J A L LALB r B J @ J r@ LLB r J @ r r r Lr r rLL r r Lr L r L r LL LLr rJ LLLr r J LLr r J r r r r r r Lr r rL r r L r r rL r Lr r L r L r r L LLr r rJ r r JLLr r L r r Jr r LLr r r r r BJ r rH ABJ J @ r J @ H rAABJ J @ Jr @ rAJ J @ A H B H r J JAr @ @ A JAB r r@ r r r r r r J rA Jr J rAAJJr J Jr rAJ J r JAAJAr r JAr r r r r r r r r r r J rA r r Jr J rAA r r JJr J Jr rAAr rJ J r AAr r JJr r Ar r Jr r r r r r r Br r r@ r B H @ r r@BH @r r@ H Br @ H r@ r @B r r r r r r r r r Br r r@r r B r H r r@@r r BH @r r@ r r H Br @r r@ H r r @r r Br r r r r Färbung I Eulerkreis Matchings Bipatite Graphen Beispiel x x BLAJ @ BLAJ@ BLAJ@ x x B BLAJ @ AL@ J BLAJ@ BLAJ @ BLAJB@ x x L A J@ H L H A@ J @ BL AH BJL A J @ LAJ H BLA J B L A@ J H H LAJBL@ x Jx AB L JA@ @ J L @ AJ B L A JA B L @LA J @ LBA L J AJAx BJ J @ @ x JBAL H L L AB@ J @ J H L A JAL B L H B J@ J LH A@ B AJALLx BJ H @ J@ LJALH x @ J@LBJLAB B LB J @ @ JALB JALx x @ JLB@ LB @ J LB @J @ JLLBx x Färbungen II Simulationen Färbung I Eulerkreis Matchings Färbungen II Simulationen Bipatite Graphen Verfahren für ∆(G ) < 2k (Idee) ′ Färbe möglichst viele Kanten auf Teilgraph G ′ mit ∆(G ′ ) = 2k . Erlaube Doppelfärbung von Kanten, d.h. (i, j) erhällt Farbe α an i und β an j. In jeden Schritt gilt/wird: Es gibt es korrekt gefärbte Kanten und doppelt gefärbte Kanten. Farbenmenge S gewählt, die möglichst viele doppelt gefärbte Kanten beinhaltet. Diese Kanten werden korrekt gefärbt. ′ k′ Dies geschieht auf erweitertem Teilgraphen mit ∆(G ) = 2 . Färbung I Eulerkreis Matchings Färbungen II Simulationen Bipatite Graphen Verfahren für ∆(G ) < 2k (Idee) ′ Sei k ′ : 2k < ∆(G ) < 2k ′ +1 , C = ∅ und U = E . Teile F = {0, 1, 2, · · · , ∆(G ) − 1} in vier fast gleich große Mengen S1 , S2 , S3 , S4 auf. Wiederhole bis alle Kanten korrekt gefärbt sind: Bestimme Doppelfärbung der Kanten aus U. Wähle i, j mit: möglichst viele Kanten aus U sind nur mit Si ∪ Sj gefärbt. Seien diese Kanten U ′ . ′ Damit gilt: |U ′ | > |U|/6 und U ′ 6 2k . Seien H alle Kanten die nur Farben aus Si ∪ Sj haben. ′ Sei G ′ = (V , H), erweitere G ′ so dass ∆(G ′ ) = 2k . Färbe G ′ mit obigen Verfahren. Setze C = C ∪ H, die korrekt gefärbten Kanten. Gesamtlaufzeit O(log3 n) mit O(m) Prozessoren. Färbung I Eulerkreis Matchings Färbungen II Bipatite Graphen Beispiel (1.Runde) x x x x x ! x x x P P ! a ! a a H H H Q Q Q Q Q P P ! ! a ! aa @a @ H @ H HP @ @ @ P A ! ! a ! Qa Q Q Q Q P P H!! HaPH ! a a P @Q @ H H @ ! ! PH Q a Q ! @ @ @ A Q aQ a P P P ! ! a ! a a H H H Q P Q Q Q Q P ! ! a ! a a @ Q @ HP @ ! P H Q H Q a! Q ! Q a @ @ @ a Aa P P ! ! a ! a ! ! a ! a a H H H P P Q Q Q Q H Q H Q H Q Q !@ ! P a ! a a P @ @ Q @ @ @ ! AQ P P ! a ! a a H HQ H Q Q Q Q P P ! ! a ! a a H@ @ HQ H@ @ !@ ! ! @ a A Q Pa Q Q P Q HPP H H a ! ! a ! a a P P ! x ! x x @ Q P @ @ Hx P Qx @ a Hx ! Q @ Hx @ Q Q a a Ax x x x x x !x ! x ! x P P a a a H H H QP Q P Q aP aP @ Q @ APa Q @ @! @! ! ! @ H H H a ! a ! Qa Q Q Q P Q H H H a a ! a ! ! P P Q aQ ! a P P @Q @ A@ Q @ @ @ Q! ! a H H H! P P a ! a a ! H H H Q Q Q Q P P Q a ! a a ! ! Q Q Q P P A @ @ @ Q @ @ @ Q H H H a ! a a! ! P P ! a ! a ! a ! a ! a ! a H H H P P Q Q Q Q Q H Q Q H Qa a !@ ! a ! a ! P P H @ AQ @ @ @ Q @ P P ! a ! a H H H Q Q Q Q Q P P ! ! ! a a a H@ @ A @ H @ @ @ PH Pa ! ! ! a a Q Q Q Q Q P P HP H H ! ! ! a a a P Hx ! x ! x @ ! x @ Q Ax @ Qx H a Qx @ H Px a Q @ P a @ Q x x x x x !x x !x P a a a H H Q P aa a ! @ !! @a H H P a a ! ! ! Q P H H aa a @QaP @ ! aP ! a H H P a ! a ! a H H P a ! a ! aa ! @ Q @ a ! a Q PP Ha H ! a ! a ! a a ! a H H P Q HHa Q a a a ! a a P! H @ H@ P ! ! Q P ! ! a a HHaa @ Pa H@ ! ! a Q P H ! ! a a P Hxa@ ! x x @! x Qx x ax a P a Hx Simulationen Färbung I Eulerkreis Matchings Färbungen II Bipatite Graphen Beispiel (2.Runde) x x x x x ! x x x P P ! a ! a a H H H Q Q Q Q Q P P ! ! a ! aa @a @ H @ H HP @ @ @ P A ! ! a ! Qa Q Q Q Q P P H!! HaPH ! a a P @Q @ H H @ ! ! PH Q a Q ! @ @ @ A Q aQ a P P P ! ! a ! a a H H H Q P Q Q Q Q P ! ! a ! a a @ Q @ HP @ ! P H Q H Q a! Q ! Q a @ @ @ a Aa P P ! ! a ! a ! ! a ! a a H H H P P Q Q Q Q H Q H Q H Q Q !@ ! P a ! a a P @ @ Q @ @ @ ! AQ P P ! a ! a a H HQ H Q Q Q Q P P ! ! a ! a a H@ @ HQ H@ @ !@ ! ! @ a A Q Pa Q Q P Q HPP H H a ! ! a ! a a P P ! x ! x x @ Q P @ @ Hx P Qx @ a Hx ! Q @ Hx @ Q Q a a Ax x x x x x !x ! x ! x P P a a a H H H Q PP Q Qa QP a aa ! @ @ @ A Q @ @! @! ! H H HP a ! ! Q Q Q P P Qa Q ! H H H a a! ! ! ! PQ P Q Q Q a P P a a @Qa@ A @ @ @ @ ! H H H P P a a a ! ! ! H H H Q Q Q P P Q Q a a a ! ! ! Q Q Q P P Aa ! @ @ @ @ Q @ Q HP H @ H a a a ! ! P a a ! ! ! a a a ! ! ! H H H P P Q Q Q Q Q QP a H a a Q Q H ! !@ ! P P H AQ @ @ @ @ Q @ P a a a ! ! ! H H H Q Q Q Q Q P P a a a ! ! ! A @ @ a H @ Q @ @ PP PH H@ a a ! ! ! Q Q Q Q P H H H a@ aQ ! !@ Q Ax ax a Q ! ! x ! x x !@ Q @x aa Qx @ P P H P H P @x H x x x x x ! x ! x x Pa a a ! a H H Q Q Q Q PP@ aa ! ! ! a @ H @ Ha aa ! ! ! Q Q Q PQ H !! Ha a! ! PQ @ @ H! @ a a ! a Q Q Q! H P P a a ! ! a H H Q Q Q Q P a a ! ! ! a a a ! @ ! @ Q ! @ H a Q Q Q PP H a a ! ! ! a a a ! ! ! a H H P Q Q Q Q Q H a ! !@ ! P Qa Q H a @ @ Q P a a ! ! ! a H H Q Q P Q aQ a ! ! ! a @ @ @ H P H aQ a ! ! ! a Q Q PQ H H a ! ! ! a P ax Q ! @ ! x ! x x @x @x a Qx Q P H axaQ H Simulationen Färbung I Eulerkreis Matchings Färbungen II Bipatite Graphen Beispiel (2.Runde) x x x x x ! x ! x x P P aP ! a a H H H Q Q Q Q Q P ! ! aP ! aa aP @Q @ A H @ @ H @ H @ ! ! a ! a Q Q Q P Q P HaPH H!! ! a! P @Qa@ A H @ @ H H! @ @ P aQ Q Q ! a Q! P a P P ! ! a a a H H H Q P Q Q Q P Q ! ! a ! a a @ Q @ A @ HP @ ! ! P a H Q a @ a! Q Q H @ P a Q P ! ! ! a a ! ! a ! a a H H H P P Q Q Q Q Q H Q H Q H !@ ! Q @ a ! P a a P @ AQ @ ! @ Q @ P P ! a ! a a H H H Q Q Q Q P Q@ P !@ ! ! !@a aH aH A @ @ H P @ P ! a ! aH a PP Q P Q Q Q Q H H ! ! a ! aH a Q @ ! x ! x @ x Q Ax @ P P ax @ Q H ax Q H ! @x @ P ax Q x x x x x !x ! x ! x P P a a a H H H Q PP Q Qa QP a aa ! @ @ @ A Q @ @! @! ! H H HP a ! ! Q Q Q P P Qa Q ! H H H a a! ! ! ! PQ P Q Q Q a P P a a @Qa@ A @ @ @ @ ! H H H P P a a a ! ! ! H H H Q Q Q P P Q Q a a a ! ! ! Q Q Q P P Aa ! @ @ @ @ Q @ Q HP H @ H a a a ! ! P a a ! ! ! a a a ! ! ! H H H P P Q Q Q Q Q QP a H a a Q Q H ! !@ ! P P H AQ @ @ @ @ Q @ P a a a ! ! ! H H H Q Q Q Q Q P P a a a ! ! ! A @ @ a H @ Q @ @ PP PH H@ a a ! ! ! Q Q Q Q P H H H a@ aQ ! !@ Q Ax ax a Q ! ! x ! x x !@ Q @x aa Qx @ P P H P H P @x H x x x x x ! x ! x x Pa a a ! a H H Q Q Q Q PP@ aa ! ! ! a @ H @ Ha aa ! ! ! Q Q Q PQ H !! Ha a! ! PQ @ @ H! @ a a ! a Q Q Q! H P P a a ! ! a H H Q Q Q Q P a a ! ! ! a a a ! @ ! @ Q ! @ H a Q Q Q PP H a a ! ! ! a a a ! ! ! a H H P Q Q Q Q Q H a ! !@ ! P Qa Q H a @ @ Q P a a ! ! ! a H H Q Q P Q aQ a ! ! ! a @ @ @ H P H aQ a ! ! ! a Q Q PQ H H a ! ! ! a P ax Q ! @ ! x ! x x @x @x a Qx Q P H axaQ H Simulationen Färbung I Eulerkreis Matchings Färbungen II Bipatite Graphen Beispiel (3.Runde) x x x x x ! x ! x x P P aP ! a a H H H Q Q Q Q Q P ! ! aP ! aa aP @Q @ A H @ @ H @ H @ ! ! a ! a Q Q Q P Q P HaPH H!! ! a! P @Qa@ A H @ @ H H! @ @ P aQ Q Q ! a Q! P a P P ! ! a a a H H H Q P Q Q Q P Q ! ! a ! a a @ Q @ A @ HP @ ! ! P a H Q a @ a! Q Q H @ P a Q P ! ! ! a a ! ! a ! a a H H H P P Q Q Q Q Q H Q H Q H !@ ! Q @ a ! P a a P @ AQ @ ! @ Q @ P P ! a ! a a H H H Q Q Q Q P Q@ P !@ ! ! !@a aH aH A @ @ H P @ P ! a ! aH a PP Q P Q Q Q Q H H ! ! a ! aH a Q @ ! x ! x @ x Q Ax @ P P ax @ Q H ax Q H ! @x @ P ax Q x x x x x !x ! x ! x P P a a a H H H P Q! Q QP @ aP aa aa ! @ Q ! @ Q A@ @ @! H H H a ! ! Q P Q Q Q P QP H H H a a a ! ! ! P P Q P Q a @ Q! P a @Q @ A@ @ @ H H! ! aQ ! H P P a a a ! ! H H H Q P P Q Q Q Q a a a ! ! ! Q P P Q a @ Q H Q H @ A @ @ Q @ HP @ a a! a ! ! P a a ! ! ! a a ! a ! ! H H H P P Q Q Q Q Q Q @ H Q QP a H Q H a P ! ! a ! ! P @ @ H @ @ AQ @ P a a ! a ! H H Q@ QP H Q P A a aH ! ! !@a @ H @ P Q Q @ @ P a aH ! ! ! a Q Q Q Q P Q P H H a ! ! ! a P P ax Q ! @x @ P H Q ax Q ax ! x ! x @ x @ Q Ax Q @ H aH P @ x x x x x x x !x aP a aa P H Q aP aa@ ! A a aaH ! Q ! HP a a P A @ a ! a aaH Q P ! P a a H Q P@ a a a ! a a! a H A Q PP a a a ! a a a ! H P Q H QP a H aP a a ! A a @ a ! Q P a a a ! H @ PP aP aH aQ ! A! a a ax ax x x x ! Ax x H @ ax Q aP Simulationen Färbung I Eulerkreis Matchings Färbungen II Bipatite Graphen Beispiel (3.Runde) x x x x x ! x ! x x P P aP ! a a H H H Q Q Q Q Q P ! ! aP ! aa aP @Q @ A H @ @ H @ H @ ! ! a ! a Q Q Q P Q P HaPH H!! ! a! P @Qa@ A H @ @ H H! @ @ P aQ Q Q ! a Q! P a P P ! ! a a a H H H Q P Q Q Q P Q ! ! a ! a a @ Q @ A @ HP @ ! ! P a H Q a @ a! Q Q H @ P a Q P ! ! ! a a ! ! a ! a a H H H P P Q Q Q Q Q H Q H Q H !@ ! Q @ a ! P a a P @ AQ @ ! @ Q @ P P ! a ! a a H H H Q Q Q Q P Q@ P !@ ! ! !@a aH aH A @ @ H P @ P ! a ! aH a PP Q P Q Q Q Q H H ! ! a ! aH a Q @ ! x ! x @ x Q Ax @ P P ax @ Q H ax Q H ! @x @ P ax Q x x x x x !x ! x ! x P P a a a H H H P Q! Q QP @ aP aa aa ! @ Q ! @ Q A@ @ @! H H H a ! ! Q P Q Q Q P QP H H H a a a ! ! ! P P Q P Q a @ Q! P a @Q @ A@ @ @ H H! ! aQ ! H P P a a a ! ! H H H Q P P Q Q Q Q a a a ! ! ! Q P P Q a @ Q H Q H @ A @ @ Q @ HP @ a a! a ! ! P a a ! ! ! a a ! a ! ! H H H P P Q Q Q Q Q Q @ H Q QP a H Q H a P ! ! a ! ! P @ @ H @ @ AQ @ P a a ! a ! H H Q@ QP H Q P A a aH ! ! !@a @ H @ P Q Q @ @ P a aH ! ! ! a Q Q Q Q P Q P H H a ! ! ! a P P ax Q ! @x @ P H Q ax Q ax ! x ! x @ x @ Q Ax Q @ H aH P @ x x x x x x x !x aP a aa P H Q aP aa@ ! A a aaH ! Q ! HP a a P A @ a ! a aaH Q P ! P a a H Q P@ a a a ! a a! a H A Q PP a a a ! a a a ! H P Q H QP a H aP a a ! A a @ a ! Q P a a a ! H @ PP aP aH aQ ! A! a a ax ax x x x ! Ax x H @ ax Q aP Simulationen Färbung I Eulerkreis Matchings Färbungen II Simulationen Bipatite Graphen Beispiel (Ergebnis) | | | | | | | | P P a a a ! ! ! H H H Q ! Q QH @ QP Q @ a aa @ aa @ ! ! H HP @ A @P a ! ! ! Q QP Q P Q Q P H H H a a a ! ! ! P @ H Q @ @ a Q @ a A H Q Q H aP @Q P @ P ! ! ! P P a a a ! ! ! H H H Q Q Q H P ! a @ H! @ @ @P Aa H! Q @QQ a @ P a a aP ! ! ! Q Q P Q Q P H H HP a a aa ! !a !a P P P H Q @ @ Q Q @ H Q A Q H @ @ ! ! ! @ @ Q@ @ @ Q @ Q @ H H a a P aA! Q HP P Q ! ! P a a a ! ! ! H H HH ! P P a Q Q Q a Q Q a P ! ! H H Q Q P Q Q @ @ @ A @ @ a a a ! ! ! @ H HQQ@ @ @ H @ A @ !Q @ P P a a a ! ! Q P Q Q P H @ aH aH a !a ! ! P P H Q@ a Q P @ Q @ aH Q Q H @ P A @ ! ! ! P P a a a ! ! ! H H H Q@ P Q Q Q Q P a a aa ! ! ! H P @ @ P H H @ A @ @ a aH ! ! ! Q PP Q Q Q P Q H H a aH a ! ! ! P @ H a| P Q a| QA| a @ P Q @ Q| Q H| @ ! ! | | ! @ | @ Färbung I Eulerkreis Matchings Färbungen II Simulationen Bipatite Graphen Resultate Theorem: Ein bipatiter Graph G mit ∆(G ) = 2k kann in Zeit O(log2 n) mit O(m) Prozessoren mit ∆(G ) Farben kantengefärbt werden. Beweis: siehe oben. Theorem: Ein bipatiter Graph G kann in Zeit O(log3 n) mit O(m) Prozessoren mit ∆(G ) Farben kantengefärbt werden. Beweis: siehe oben. Färbung I Eulerkreis Matchings Färbungen II Simulationen Außenplanare Graphen Planare Graphen Definition Ein Graph G = (V , E ) heißt planar, falls es eine kreuzungsfreie Einbettung in die Ebene gibt. Es gilt für planare Graphen |E | 6 3 · |V | − 6. Der K3,3 und der K5 sind nicht planar. Planare Graphen haben immer Knoten vom Grad 6 5. Planare Graphen sind immer 4-färbbar. Ein Fenster ist eine geschlossene Region, die bei der Einbettung von einen Kantenzug begrenzt wird. Färbung I Eulerkreis Matchings Färbungen II Außenplanare Graphen Außenplanare Graphen Definition Ein Graph G = (V , E ) heißt außenplanar, falls es eine kreuzungsfreie Einbettung in die Ebene gibt, bei der alle Knoten auf den äußeren Fenster liegen. Es gilt für außenplanare Graphen |E | 6 2 · |V | − 3. Der K2,3 und der K4 sind nicht außenplanar. Außenplanare Graphen haben immer Knoten vom Grad 6 2. Außenplanare Graphen sind immer 3-färbbar. Ein Fenster ist eine Region, die bei der Einbettung Die inneren Fenster bilden eine Baumstruktur. Simulationen Färbung I Eulerkreis Matchings Färbungen II Simulationen Außenplanare Graphen Algorithmus im Überblick Sei G zweifachzusammenhängend und außenplanar. Bestimme die äußeren Kanten. Richte die äußeren Kanten aus, so daß ein Kreis entsteht. Bestimme Lage/Ordnung der inneren Kanten und verdopple die inneren Kanten zu zwei entgegengesetzten gerichteten Kanten. Bestimme gerichteten Kreis zu jedem Fenster. Färbe jedes Fenster unabhängig. Bestimme Baumstruktur der Fenster, d.h. jeder Kreis entspricht Knoten im Baum. Fasse in Schichtenpaaren die Kreise zu größeren korrekt gefärbten Objekten zusammen. Wiederhole letzten Schritt, bis gesamter Graph korrekt gefärbt ist. Färbung I Eulerkreis Matchings Färbungen II Simulationen Außenplanare Graphen Details des Algorithmus. Bestimme die äußeren Kanten. Teste für Kante {v , w } mit ob G \ {v , w } zerfällt. Ein Test: O(log2 n) Zeit mit O(n2 / log2 n) Prozessoren. Geammt: O(log2 n) Zeit mit O(n3 / log2 n) Prozessoren. Richte die äußeren Kanten aus, so daß ein Kreis entsteht. Erzeuge zu jeder äußerne Kante, zwei (entgegen) gerichtete Kanten. Sortiere Kanten lexikographisch in K1 , K2 , ·, K2·m . Nachfolger von Kx = (i, j) ist K2·j = (r , s) falls s 6= i. Nachfolger von Kx = (i, j) ist K2·j+1 = (r , s) falls s 6= i. Wähle einen Kreis aus. Bestimme Position jedes Knoten auf dem Kreis. Gesamt: O(log n) Zeit mit O(n) Prozessoren. Färbung I Eulerkreis Matchings Färbungen II Simulationen Außenplanare Graphen Details des Algorithmus. Bestimme Lage/Ordnung der inneren Kanten. Sortieren der inneren Kanten {a, a1 }, {a, a2 }, {a, a3 }, · · · am Knoten a ergibt sich durch Lage der Knoten a1 , a2 , · · · auf dem Kreis. Gesamt: O(log n) Zeit mit O(n) Prozessoren. Verdopple die inneren Kanten zu zwei entgegengesetzten gerichteten Kanten. Bestimme gerichteten Kreis zu jedem Fenster. Bestimme neue Nachfolger anhand der Sortierung der Kanten an jedem Knoten. Bestimme neue Kreise und Representanten. Gesamt: O(log n) Zeit mit O(n) Prozessoren. Färbung I Eulerkreis Matchings Färbungen II Simulationen Außenplanare Graphen Details des Algorithmus. Färbe jedes Fenster unabhängig. Gesamt: O(log∗ n) Zeit mit O(n) Prozessoren. Bestimme Baumstruktur der Fenster, d.h. jeder Kreis entspricht Knoten im Baum. Über die inneren Kanten ist Nachbarschaft direkt ablesbar. Tiefe der Knoten im Baum kann per Listranking bestimmt werden. Gesamt: O(log n) Zeit mit O(n) Prozessoren. Fasse in Schichtenpaaren die Kreise zu größeren korrekt gefärbten Objekten zusammen. Sohnkreis orientieren sich an Färbung von Vaterkreis. Gesamt: O(1) Zeit mit O(n) Prozessoren. Wiederhole letzten Schritt, bis gesamter Graph korrekt gefärbt ist. Gesamt: O(log n) Zeit mit O(n) Prozessoren. Färbung I Eulerkreis Matchings Färbungen II Simulationen Außenplanare Graphen Aussagen Theorem: Ein zweifachzusammenhängender außenplanarer Graph kann in Zeit O(log2 n) mit O(n3 / log2 n) Prozessoren mit drei Fraben gefärbt werden. Beweis: siehe oben. Theorem: Ein außenplanarer Graph kann in Zeit O(log2 n) mit O(n3 / log2 n) Prozessoren mit drei Fraben gefärbt werden. Beweis: Verwende analog wie oben die Baumstruktur der zweifach Zusammenhangskomponenten. Theorem: Ein planarer Graph kann in Zeit O(log2 n) mit O(n) Prozessoren mit sechs Fraben gefärbt werden. Beweis: Siehe Übung. Färbung I Eulerkreis Matchings Färbungen II Simulationen Außenplanare Graphen Ergebnisse ohne Beweis Theorem: Die Kanten eines außenplanaren Graphen G mit ∆(G ) 6 3 und bekannter Einbettung in die Ebene kann in Zeit O(log2 n) mit O(n2 ) Prozessoren mit drei Fraben gefärbt werden. Beweisidee: ähnliches Vorgehen wie oben. Theorem: Die Kanten eines außenplanaren Graphen G mit bekannter Einbettung in die Ebene kann in Zeit O(log3 n) mit O(n2 ) Prozessoren mit drei Fraben gefärbt werden. Beweis: siehe Literatur. Färbung I Eulerkreis Matchings Färbungen II Simulationen Simulationen Theorem: Ein Programm A für eine CREW PRAM mit PA (n) Prozessoren und TA (n) Laufzeit kann von einer EREW PRAM mit PA (n)2 Prozessoren in Zeit O(TA (n) log n) simuliert werden. Theorem: Ein Programm A für eine CRCW PRAM mit PA (n) Prozessoren und TA (n) Laufzeit kann von einer CREW PRAM mit PA (n)2 Prozessoren in Zeit O(TA (n) log n) simuliert werden. Theorem: Ein Programm A für eine CRCW PRAM mit PA (n) Prozessoren und TA (n) Laufzeit kann von einer EREW PRAM mit PA (n)2 Prozessoren in Zeit O(TA (n) log n) simuliert werden. Färbung I Eulerkreis Matchings Färbungen II Simulationen Aufwendige Simulationen Simulationen II Theorem: Ein Programm A für eine CREW PRAM mit PA (n) Prozessoren und TA (n) Laufzeit kann von einer EREW PRAM mit PA (n) Prozessoren in Zeit O(TA (n) log n) simuliert werden. Theorem: Ein Programm A für eine CRCW PRAM mit PA (n) Prozessoren und TA (n) Laufzeit kann von einer CREW PRAM mit PA (n) Prozessoren in Zeit O(TA (n) log n) simuliert werden. Theorem: Ein Programm A für eine CRCW PRAM mit PA (n) Prozessoren und TA (n) Laufzeit kann von einer EREW PRAM mit PA (n) Prozessoren in Zeit O(TA (n) log n) simuliert werden. Färbung I Eulerkreis Matchings Färbungen II Aufwendige Simulationen Literatur zu diesem Kapitel Literatur: A. Gibbons, W. Rytter: Efficient Parallel Algorithms. Cambridge University Press 1990. Kapitel 5. Simulationen