Parallele Algorithmen - Lehrstuhl für Informatik der RWTH Aachen

Werbung
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
Herunterladen