Algorithmen für Ad-hoc- und Sensornetze VL 10 Eine kurze Geschichte vom Färben

Ähnliche Dokumente
Algorithmen für Ad-hoc- und Sensornetze Nachtrag zu VL 06 Doubling Dimensions

Zugriffsverfahren CSMA/CD CSMA/CA

Übungen zu Rechnerkommunikation Wintersemester 2010/2011 Übung 8

Rechnernetze 2. Grundlagen

WS 2009/10. Diskrete Strukturen

Algorithmen II Vorlesung am

WS 2009/10. Diskrete Strukturen

3. Musterlösung. Problem 1: Boruvka MST

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone

Der Backoff-Algorithmus

Übungen zu Rechnerkommunikation

Näherungsalgorithmen (Approximationsalgorithmen) WiSe 2006/07 in Trier. Henning Fernau Universität Trier

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

RFID Media Access. Roland Schneider. Betreuer: Christian Flörkemeier. SS 2003 RFID Media Access 1

CSMA mit Kollisionsdetektion: CSMA/CD

Technische Universität München Zentrum Mathematik Propädeutikum Diskrete Mathematik. Weihnachtsblatt

Algorithmen und Datenstrukturen Kapitel 10

Graphen: Datenstrukturen und Algorithmen

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 6: Graphentheorie

William Rowan Hamilton,

Westfählische Wilhelms-Universität. Eulersche Graphen. Autor: Jan-Hendrik Hoffeld

Algorithmen für Ad-hoc- und Sensornetze

Informatik II, SS 2014

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Wir unterscheiden folgende drei Schritte im Design paralleler Algorithmen:

1. Woche Einführung in die Codierungstheorie, Definition Codes, Präfixcode, kompakte Codes

Kap. 4. Sicherungs-Schicht ( Data Link Schicht)

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)

Universität des Saarlandes

Single Source Sortest Path Negative Kreise All-Pair Shortest Path Problem Minimum Mean Cycle Zusammenfassung. Shortest Paths

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Themen. MAC Teilschicht. Ethernet. Stefan Szalowski Rechnernetze MAC Teilschicht

Übung zur Vorlesung Algorithmische Geometrie

NP-Vollständigkeit. Krautgartner Martin ( ) Markgraf Waldomir ( ) Rattensberger Martin ( ) Rieder Caroline ( )

Stefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie

Computeranwendung in der Chemie Informatik für Chemiker(innen) 4. Netzwerke

Kombinatorische Optimierung

Vorlesung 4 BETWEENNESS CENTRALITY

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Systeme II 7. Woche Funkprobleme und Ethernet

Wiederholung zu Flüssen

Gibt es in Königsberg einen Spaziergang, bei dem man jede der. Pregelbrücken. überquert?

5. Woche Perfekte und Optimale Codes, Schranken. 5. Woche: Perfekte und Optimale Codes, Schranken 88/ 142

Datenstrukturen & Algorithmen

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Clustering (hierarchische Algorithmen)

WS 2013/14. Diskrete Strukturen

Algorithmen und Datenstrukturen

Kostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016)

Wireless Local Area Network

Lernmodul 2 Graphen. Lernmodul 2: Geoobjekte und ihre Modellierung - Graphen

4 Greedy-Algorithmen (gierige Algorithmen)

Amortisierte Analysen

Guten Morgen und Willkommen zur Saalübung!

Anmerkungen zur Übergangsprüfung

15 Optimales Kodieren

8 Diskrete Optimierung

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

Deadlocks. System hat nur begrenzte Ressourcen (Ressourcentypen) Hauptspeicher Externer Speicher Drucker File

Vorlesung "Verteilte Systeme" Wintersemester 2000/2001. Verteilte Systeme. Empfänger Kommunikationssystem. Netzwerk

echtzeitfähige Ethernet-Netzwerke

Minimal spannende Bäume

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Effiziente Algorithmen und Datenstrukturen: Kürzeste Wege

Lösungen zu Informations- und Telekommunikationstechnik Arbeitsheft, 3. Auflage

Algorithmen II Vorlesung am


Algorithmen und Datenstrukturen

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Dynamisches Huffman-Verfahren

4.7 Der Algorithmus von Dinic für maximalen Fluss

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Minimal spannender Baum

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

Grundbegriffe der Informatik

Grundbegriffe der Informatik

Klausur Algorithmen und Datenstrukturen

Algorithmen & Datenstrukturen 1. Klausur

6. Übung zur Linearen Optimierung SS08

23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

Algorithmen zur Berechnung der Transitiven Hülle einer Datenbankrelation

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Grundlagen der Programmierung 2. Bäume

Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn

Viel Spaÿ! Aufgabe 0.1. Laufzeit unter Verdoppelung (-)

Zeichnen von Graphen. graph drawing

Übung zur Vorlesung Berechenbarkeit und Komplexität

Graphentheorie. Maximale Flüsse. Maximale Flüsse. Maximale Flüsse. Rainer Schrader. 31. Oktober Gliederung. sei G = (V, A) ein gerichteter Graph

Randomisierte Algorithmen 2. Erste Beispiele

2. Optimierungsprobleme 6

Suchbäume mit inneren Knoten verschiedener Knotengrade.

Vollständige Induktion

Stichpunktezettel fürs Tutorium

Algorithmische Mathematik

Effiziente Algorithmen I

Vier-Farben-Vermutung (1)

Routing Algorithmen. Begriffe, Definitionen

Transkript:

Algorithmen für Ad-hoc- und Sensornetze VL 0 Eine kurze Geschichte vom Färben Dr. rer. nat. Bastian Katz. Juli 2009 (Version 3 vom 3. Juli 2009)

Motivation Kommunikation im drahtlosen Kanal ist nicht beliebig gleichzeitig möglich kein Knoten kann gleichzeitig an zwei Übertragungen teilnehmen benachbarte Knoten können nicht gleichzeitig übertragen/empfangen Einfach drauflossenden ist keine Lösung! 2/ 24

Ad-hoc-Lösung: CSMA/CD Ad-hoc-Lösung: CSMA/CD (wie Ethernet) Carrier Sense Multiple Access/Collision Detection Carrier Sense: Mithören, ob der Kanal frei ist Collision Detection: Bei Kollision später wiederholen Achtung: Anders als im Ethernet kann der Sender Kollisionen nicht immer erkennen! Was, wenn der Empfänger von jemandem gestört wird, den der Sender nicht sieht? (Hidden Terminal Problem) 3/ 24

Ad-hoc-Lösung: CSMA/CA Ad-hoc-Lösung: CSMA/CA (ähnlich Ethernet) Carrier Sense Multiple Access/Collision Avoidance Carrier Sense: Mithören, ob der Kanal frei ist Collision Avoidance: Kollisionen verhindern Achtung: Anders als im Ethernet kann der Sender Kollisionen nicht immer erkennen! Was, wenn der Empfänger von jemandem gestört wird, den der Sender nicht sieht? (Hidden Terminal Problem) CSMA/CA-Protokolle (gaaaaanz grob) Sender wartet, bis er freien Kanal sieht Sender schickt Request To Send Empfänger bestätigt Clear To Send (das hören hoffentlich auch alle Betroffenen!) Sender schickt Daten Empfänger bestätigt 3/ 24

Die koordinierte Lösung: TDMA Übertragungen bekommen Slots in Zeitraster zugewiesen Time Division Multiple Access entweder kurzfristig bei Bedarf oder sogar langfristig/periodisch Übertragungen sind auch gleichzeitig möglich, wenn mehrere Frequenzen/orthogonale Kodierungen zur Verfügung stehen CDMA: Code Division.. FDMA: Frequency Division.. Übertragungen können sogar gleichzeitig dieselbe Ressource belegen, wenn sie weit genug auseinander liegen! 4/ 24

Knotenfärbung Definition Eine Knotenfärbung eines Graphen G = (V, E) ist eine Abbildung c : V N so, dass für jede Kante die beiden Endpunkte unterschiedliche Farben haben, also {u, v} E c(u) c(v) Eine Färbung c hat die Größe c = max v V c(v) Jeder darf nur senden, wenn seine Farbe dran ist Eigentlich bringt das gar nichts 5/ 24

Kantenfärbung Definition Eine Kantenfärbung eines Graphen G = (V, E) ist eine Abbildung c : E N so, dass für jeden Knoten alle inzidenten Kanten unterschiedliche Farben haben, also {u, v}, {u, w} E c({u, v}) c({u, w}) Eine Färbung c hat die Größe c = max e E c(e) Jeder darf nur über Kante kommunizieren, deren Farbe dran ist schließt zumindest direkte Kollisionen aus 6/ 24

Knoten-, Kanten-, Abstand-d-Färbungen Beobachtung Eine Kantenfärbung ist eine Knotenfärbung im Graphen G = (E, E ) mit E := {{e, e 2 } : e e 2 } Wir können Kantenfärbungen auf Knotenfärbungen zurückführen! das lät sich erweitern auf andere Färbungen Abstand-d-Färbungen: Knoten mit Abstand d müssen unterschiedlich gefärbt werden jede Bedingung, in der Ausschlüsse innerhalb von konstanter Entfernung liegen! Deshalb kümmern wir uns nur um Knotenfärbungen! 7/ 24

Warm-up: Zentrale + -Färbung Satz Jeder Graph lässt sich mit + Farben färben. Beweis: wenn es einen Knoten u gibt, der eine höhere Farbe hat als deg(u) +, dann ist eine der Farben,..., deg(u) + in der Nachbarschaft nicht verwendet worden besser wollen wir gar nicht sein, aber wie bekommen wir das verteilt hin? 6 6 3 3 8 5 2 4 2 4 8/ 24

Warm-up: Verteilte + -Färbung Einfache Lösung jeder färbt sich mit seiner ID 2 jeder Knoten u mit Farbe c(u) deg(u) +, der die höchste Farbe in seiner Nachbarschaft hat, wählt die kleinste Farbe aus,..., deg(u) aus, die keiner der Nachbarn hat 8 4 7 0 6 9 4 7 3 5 2 2 3 6 5 9/ 24

Warm-up: Verteilte + -Färbung Einfache Lösung jeder färbt sich mit seiner ID 2 jeder Knoten u mit Farbe c(u) deg(u) +, der die höchste Farbe in seiner Nachbarschaft hat, wählt die kleinste Farbe aus,..., deg(u) aus, die keiner der Nachbarn hat 8 4 7 0 9 4 3 5 2 6 9/ 24

Warm-up: Verteilte + -Färbung Einfache Lösung jeder färbt sich mit seiner ID 2 jeder Knoten u mit Farbe c(u) deg(u) +, der die höchste Farbe in seiner Nachbarschaft hat, wählt die kleinste Farbe aus,..., deg(u) aus, die keiner der Nachbarn hat Das ist eine + -Färbung! üblicherweise sogar was besseres das dauert (mal wieder) linear viele Schritte! man nehme einen Pfad mit geordneten IDs... 8 2 2 2 9 4 2 2 3 2 3 9/ 24

Erinnerung: MAC-Layer Übertragungen können nicht beliebig parallel stattfinden Interferenzen naher Übertragungen verhindert erfolgreiches Dekodieren Lösung : CSMA/CA Spontane Benutzung des Mediums, aber vorsichtig Warten auf freien Kanal, Anfragen beim Empfänger Übliche Lösung, kostet aber Energie (Kollisionen, Mithören) Lösung 2: TDMA/CDMA/FDMA feste Zuweisung von Zeiten/Codierung/Frequenzen an Sender/Übertragungen gleiche Ressource immer nur so genutzt, dass es keine Konflikte geben sollte (Noch) wenig populär in WSN 0/ 24

Erinnerung: Färbungen Definition Eine Knotenfärbung eines Graphen G = (V, E) ist eine Abbildung c : V N so, dass für jede Kante die beiden Endpunkte unterschiedliche Farben haben, also {u, v} E c(u) c(v) Eine Färbung c hat die Größe c = max v V c(v) darauf lassen sich allgemeinere Färbungsprobleme reduzieren es gibt immer eine + -Färbung in jeder schlechteren Färbung kann man die Farbe eines Knotens herabsetzen das ging auch verteilt, aber bisher nur langsam / 24

Satz Satz Es gibt einen verteilten Algorithmus, der eine + -Färbung in O( 2 + log 2(n)) Schritten berechnet. log (n): Anzahl der Anwendungen von log, bevor das Argument unter fällt. (Bsp: log 2(0 50 ) = 5) einfacher zu merken: log 2 2(x) = 5 2 222 < x 2 222 2/ 24

Beweisstruktur Beweisstruktur es gibt einen Algorithmus, der in einem Baum in log (n) Schritten eine 6-Färbung berechnet es gibt einen Algorithmus, der in einem Baum in k Runden eine Färbung mit 3 + k Farben auf 3 Farben reduziert beide Verfahren funktionieren auch auf Pseudo-Bäumen jeder Graph läßt sich in Schritten in Pseudo-Bäume zerlegen Färbungen mit je 3 Farben lassen sich in 2 Runden auf + Farben reduzieren 3/ 24

6-Färbung eines Baumes 6-Färbung eines Baumes schreibe Label binär in log 2 n Bits (dafür muss a priori zumindest obere Schranke an n bekannte sein) 2 Setze L = log 2 n (aktuelle Labellänge) 3 Solange L > 3 und dann noch einmal: suche ein Bit, in dem sich das eigene Label und das des Vorgängers unterscheiden kodiere dessen Position in log 2 (L) Bits verwende als neues Label die kodierte Position und den Wert des eigenen Bits die Wurzel wählt dafür beliebiges Bit aus setze L = log 2 (L) + (neue Labellänge) 0 2 2 8 6 3 4 3 4/ 24

6-Färbung eines Baumes 6-Färbung eines Baumes schreibe Label binär in log 2 n Bits (dafür muss a priori zumindest obere Schranke an n bekannte sein) 2 Setze L = log 2 n (aktuelle Labellänge) 3 Solange L > 3 und dann noch einmal: suche ein Bit, in dem sich das eigene Label und das des Vorgängers unterscheiden kodiere dessen Position in log 2 (L) Bits verwende als neues Label die kodierte Position und den Wert des eigenen Bits die Wurzel wählt dafür beliebiges Bit aus setze L = log 2 (L) + (neue Labellänge) 00 000 00 00 000 00 0 000 000 4/ 24

6-Färbung eines Baumes 6-Färbung eines Baumes schreibe Label binär in log 2 n Bits (dafür muss a priori zumindest obere Schranke an n bekannte sein) 2 Setze L = log 2 n (aktuelle Labellänge) 3 Solange L > 3 und dann noch einmal: suche ein Bit, in dem sich das eigene Label und das des Vorgängers unterscheiden kodiere dessen Position in log 2 (L) Bits verwende als neues Label die kodierte Position und den Wert des eigenen Bits die Wurzel wählt dafür beliebiges Bit aus setze L = log 2 (L) + (neue Labellänge) 00 000 00 00 000 00 0 000 000 4/ 24

6-Färbung eines Baumes 6-Färbung eines Baumes schreibe Label binär in log 2 n Bits (dafür muss a priori zumindest obere Schranke an n bekannte sein) 2 Setze L = log 2 n (aktuelle Labellänge) 3 Solange L > 3 und dann noch einmal: suche ein Bit, in dem sich das eigene Label und das des Vorgängers unterscheiden kodiere dessen Position in log 2 (L) Bits verwende als neues Label die kodierte Position und den Wert des eigenen Bits die Wurzel wählt dafür beliebiges Bit aus setze L = log 2 (L) + (neue Labellänge) 00 000 00 00 000 00 0 000 000 4/ 24

6-Färbung eines Baumes 6-Färbung eines Baumes schreibe Label binär in log 2 n Bits (dafür muss a priori zumindest obere Schranke an n bekannte sein) 2 Setze L = log 2 n (aktuelle Labellänge) 3 Solange L > 3 und dann noch einmal: suche ein Bit, in dem sich das eigene Label und das des Vorgängers unterscheiden kodiere dessen Position in log 2 (L) Bits verwende als neues Label die kodierte Position und den Wert des eigenen Bits die Wurzel wählt dafür beliebiges Bit aus setze L = log 2 (L) + (neue Labellänge) 00 000 00 00 000 00 0 000 bit = 2 val = 0 000 4/ 24

6-Färbung eines Baumes 6-Färbung eines Baumes schreibe Label binär in log 2 n Bits (dafür muss a priori zumindest obere Schranke an n bekannte sein) 2 Setze L = log 2 n (aktuelle Labellänge) 3 Solange L > 3 und dann noch einmal: suche ein Bit, in dem sich das eigene Label und das des Vorgängers unterscheiden kodiere dessen Position in log 2 (L) Bits verwende als neues Label die kodierte Position und den Wert des eigenen Bits die Wurzel wählt dafür beliebiges Bit aus setze L = log 2 (L) + (neue Labellänge) 00 000 00 00 000 00 0 000 bit = 0 b val = 0 000 4/ 24

6-Färbung eines Baumes 6-Färbung eines Baumes schreibe Label binär in log 2 n Bits (dafür muss a priori zumindest obere Schranke an n bekannte sein) 2 Setze L = log 2 n (aktuelle Labellänge) 3 Solange L > 3 und dann noch einmal: suche ein Bit, in dem sich das eigene Label und das des Vorgängers unterscheiden kodiere dessen Position in log 2 (L) Bits verwende als neues Label die kodierte Position und den Wert des eigenen Bits die Wurzel wählt dafür beliebiges Bit aus setze L = log 2 (L) + (neue Labellänge) 00 000 00 00 000 00 0 000 0 0 000 4/ 24

6-Färbung eines Baumes 6-Färbung eines Baumes schreibe Label binär in log 2 n Bits (dafür muss a priori zumindest obere Schranke an n bekannte sein) 2 Setze L = log 2 n (aktuelle Labellänge) 3 Solange L > 3 und dann noch einmal: suche ein Bit, in dem sich das eigene Label und das des Vorgängers unterscheiden kodiere dessen Position in log 2 (L) Bits verwende als neues Label die kodierte Position und den Wert des eigenen Bits die Wurzel wählt dafür beliebiges Bit aus setze L = log 2 (L) + (neue Labellänge) 000 0 0 0 0 0 0 00 00 000 00 0 0 000 00 0 0 000 00 0 0 4/ 24

6-Färbung eines Baumes 6-Färbung eines Baumes schreibe Label binär in log 2 n Bits (dafür muss a priori zumindest obere Schranke an n bekannte sein) 2 Setze L = log 2 n (aktuelle Labellänge) 3 Solange L > 3 und dann noch einmal: suche ein Bit, in dem sich das eigene Label und das des Vorgängers unterscheiden kodiere dessen Position in log 2 (L) Bits verwende als neues Label die kodierte Position und den Wert des eigenen Bits die Wurzel wählt dafür beliebiges Bit aus setze L = log 2 (L) + (neue Labellänge) 000 0 0 0 00 0 0 0 00 4/ 24

Korrektheit Baum-6-Färbung Satz Der beschriebene Algorithmus berechnet eine 6-Färbung. Nach jeder Runde liegt eine Färbung des Baumes vor Annahme: zwei Knoten haben nach einer Runde dasselbe Label dann haben sie beide dasselbe Bit ausgewählt und hatten dort vorher denselben Wert stehen aber das Kind sollte Bit wählen, in dem es sich vom Vorgänger unterscheidet! Widerspruch! Die Färbung enthält zum Schluss maximal 6 Farben L ist immer aktuelle Labellänge wenn L 3, wird noch eine Runde ausgeführt. dann reichen die drei Beschriebungen 00, 0, 0 für die Position dann gibt es nur noch die Labels 000, 00, 00, 0, 00, 0 5/ 24

Satz Laufzeit Baum-6-Färbung Der beschriebene Algorithmus terminiert nach O(log (n)) Schritten. Das werden wir nicht beweisen. Grobe Vorstellung: in jeder Runde wird die Labellänge von L auf log 2 (L) + gedrückt ohne das + wäre die Aussage klar ein bißchen Formelschieberei löst das Problem (wer nicht ohne Leben kann siehe Buch) Das war schon Teil : Wir können einen Baum in O(log (n)) Schritten mit 6 Farben färben! 6/ 24

Kompression von 6 auf 3 Farben im Baum Baum-(3+k)-zu-3-Färbung Für i = (3 + k),..., 4 tue folgendes: 4 3 2 2 3 4 7/ 24

Kompression von 6 auf 3 Farben im Baum Baum-(3+k)-zu-3-Färbung Für i = (3 + k),..., 4 tue folgendes: jeder Knoten nimmt die Farbe seines Vorgängers an ( shift down ) Wurzel nimmt neue Farbe aus {, 2, 3} 3 2 2 4 3 4 7/ 24

Kompression von 6 auf 3 Farben im Baum Baum-(3+k)-zu-3-Färbung Für i = (3 + k),..., 4 tue folgendes: jeder Knoten nimmt die Farbe seines Vorgängers an ( shift down ) Wurzel nimmt neue Farbe aus {, 2, 3} 4 4 2 2 3 4 7/ 24

Kompression von 6 auf 3 Farben im Baum Baum-(3+k)-zu-3-Färbung Für i = (3 + k),..., 4 tue folgendes: jeder Knoten nimmt die Farbe seines Vorgängers an ( shift down ) Wurzel nimmt neue Farbe aus {, 2, 3} 2 jeder Knoten mit Farbe i wählt Farbe aus {, 2, 3}, die kein Nachbar hat 2 3 Korrektheit: nach einem Shift hat jeder Knoten die Farbe seines Vorgängers, und seine Kinder seine alte Farbe das ist eine Färbung! jeder Knoten sieht nur 2 benachbarte Farben in jeder Runde werden wir Farbe i los! nach k Runden je 2 Schritte haben wir noch 3 Farben! 2 2 3 2 7/ 24

Pseudo-Wälder (klingt schlimmer als es ist) Definition Pseudo-Wald Ein gerichteter Graph heißt Pseudo-Wald, wenn jeder Knoten höchstens eine ausgehende Kante hat. jeder Knoten zeigt auf maximal einen Vorgänger Vorsicht: Graph kann gerichtete Kreise enthalten Satz Die Dreifärbung von Pseudo-Wäldern funktioniert exakt wie bei Bäumen. Beweise gehen exakt wie vorher, nur gibt es ggf. mehrere Knoten ohne Vorgänger 8/ 24

Pseudo-Wald-Dekomposition Definition Eine Pseudo-Wald-Dekomposition eines Graphen G ist eine Menge von Pseudo-Wäldern F,..., F, so dass jede Kante von G in mindestens einem F i vorkommt (in beliebiger Richtung). 9/ 24

Pseudo-Wald-Dekomposition Definition Eine Pseudo-Wald-Dekomposition eines Graphen G ist eine Menge von Pseudo-Wäldern F,..., F, so dass jede Kante von G in mindestens einem F i vorkommt (in beliebiger Richtung). 9/ 24

Verteilte Pseudo-Wald-Dekomposition Verteilte Dekomposition, Runde i =,..., jeder Knoten wählt eine inzidente unmarkierte Kante aus, wenn noch möglich 2 eine gewählte Kante {u, v} wird markiert und zu F i hinzugefügt, und zwar von einem Knoten weg, der sie wählte. 20/ 24

Verteilte Pseudo-Wald-Dekomposition Verteilte Dekomposition, Runde i =,..., jeder Knoten wählt eine inzidente unmarkierte Kante aus, wenn noch möglich 2 eine gewählte Kante {u, v} wird markiert und zu F i hinzugefügt, und zwar von einem Knoten weg, der sie wählte. 20/ 24

Verteilte Pseudo-Wald-Dekomposition Verteilte Dekomposition, Runde i =,..., jeder Knoten wählt eine inzidente unmarkierte Kante aus, wenn noch möglich 2 eine gewählte Kante {u, v} wird markiert und zu F i hinzugefügt, und zwar von einem Knoten weg, der sie wählte. 20/ 24

Verteilte Pseudo-Wald-Dekomposition Verteilte Dekomposition, Runde i =,..., jeder Knoten wählt eine inzidente unmarkierte Kante aus, wenn noch möglich 2 eine gewählte Kante {u, v} wird markiert und zu F i hinzugefügt, und zwar von einem Knoten weg, der sie wählte. 20/ 24

Verteilte Pseudo-Wald-Dekomposition Verteilte Dekomposition, Runde i =,..., jeder Knoten wählt eine inzidente unmarkierte Kante aus, wenn noch möglich 2 eine gewählte Kante {u, v} wird markiert und zu F i hinzugefügt, und zwar von einem Knoten weg, der sie wählte. 20/ 24

Verteilte Pseudo-Wald-Dekomposition Verteilte Dekomposition, Runde i =,..., jeder Knoten wählt eine inzidente unmarkierte Kante aus, wenn noch möglich 2 eine gewählte Kante {u, v} wird markiert und zu F i hinzugefügt, und zwar von einem Knoten weg, der sie wählte. 20/ 24

Verteilte Pseudo-Wald-Dekomposition Verteilte Dekomposition, Runde i =,..., jeder Knoten wählt eine inzidente unmarkierte Kante aus, wenn noch möglich 2 eine gewählte Kante {u, v} wird markiert und zu F i hinzugefügt, und zwar von einem Knoten weg, der sie wählte. nach Runden (oder früher) sind alle Kanten markiert in jeder Runde wird ein Pseudo-Wald gewählt 20/ 24

Wo stehen wir? Wir können den Graphen in Schritten in Pseudo-Wälder dekomponieren Wir können Bäume und Pseudo-Wälder verteilt mit 3 Farben einfärben erst färben wir in log (n) Runden mit konstant vielen Schritten 6-farbig, dann reduzieren wir die Farben in 3 Runden mit konstant vielen Schritten auf 3 Wir können in O(log (n)) Schritten jeden der Pseudo-Wälder 3 dreifärben das kann ja in allen Pseudowäldern parallel geschehen was fangen wir mit 3-Färbungen für die Pseudo-Wälder an? Wir wollen eine + -Färbung des Graphen! 2/ 24

Färbungen zusammenführen Idee: Wir blenden nacheinander die Kanten der Pseudo-Wälder ein und warten eine Färbung mit + Farben! Wir beginnen mit F und dessen 3 Farben das ist eine + -Färbung von F i 2 2 3 3 3 2 2 22/ 24

Färbungen zusammenführen Idee: Wir blenden nacheinander die Kanten der Pseudo-Wälder ein und warten eine Färbung mit + Farben! Wir beginnen mit F und dessen 3 Farben das ist eine + -Färbung von F i die 3-Färbung von F j und die + -Färbung von F F j ergeben 3( + ) Mischfarben (, 0),..., (3, + ) 22 3 23 2 33 2 2 2 32 22/ 24

Färbungen zusammenführen Idee: Wir blenden nacheinander die Kanten der Pseudo-Wälder ein und warten eine Färbung mit + Farben! Wir beginnen mit F und dessen 3 Farben das ist eine + -Färbung von F i die 3-Färbung von F j und die + -Färbung von F F j ergeben 3( + ) Mischfarben (, 0),..., (3, + ) in 3( + ) Runden können immer Knoten mit einer bestimmten Farbe eine einfache Farbe aus {, + } wählen, die keiner der Nachbarn hat 2 22 33 2 23 2 3 2 32 22/ 24

Färbungen zusammenführen Idee: Wir blenden nacheinander die Kanten der Pseudo-Wälder ein und warten eine Färbung mit + Farben! Wir beginnen mit F und dessen 3 Farben das ist eine + -Färbung von F i die 3-Färbung von F j und die + -Färbung von F F j ergeben 3( + ) Mischfarben (, 0),..., (3, + ) in 3( + ) Runden können immer Knoten mit einer bestimmten Farbe eine einfache Farbe aus {, + } wählen, die keiner der Nachbarn hat 2 22 33 2 23 2 3 2 32 22/ 24

Färbungen zusammenführen Idee: Wir blenden nacheinander die Kanten der Pseudo-Wälder ein und warten eine Färbung mit + Farben! Wir beginnen mit F und dessen 3 Farben das ist eine + -Färbung von F i die 3-Färbung von F j und die + -Färbung von F F j ergeben 3( + ) Mischfarben (, 0),..., (3, + ) in 3( + ) Runden können immer Knoten mit einer bestimmten Farbe eine einfache Farbe aus {, + } wählen, die keiner der Nachbarn hat 2 22 33 2 23 2 3 2 R: 32 22/ 24

Färbungen zusammenführen Idee: Wir blenden nacheinander die Kanten der Pseudo-Wälder ein und warten eine Färbung mit + Farben! Wir beginnen mit F und dessen 3 Farben das ist eine + -Färbung von F i die 3-Färbung von F j und die + -Färbung von F F j ergeben 3( + ) Mischfarben (, 0),..., (3, + ) in 3( + ) Runden können immer Knoten mit einer bestimmten Farbe eine einfache Farbe aus {, + } wählen, die keiner der Nachbarn hat 22 23 3 R: 2 33 2 2 32 22/ 24

Färbungen zusammenführen Idee: Wir blenden nacheinander die Kanten der Pseudo-Wälder ein und warten eine Färbung mit + Farben! Wir beginnen mit F und dessen 3 Farben das ist eine + -Färbung von F i die 3-Färbung von F j und die + -Färbung von F F j ergeben 3( + ) Mischfarben (, 0),..., (3, + ) in 3( + ) Runden können immer Knoten mit einer bestimmten Farbe eine einfache Farbe aus {, + } wählen, die keiner der Nachbarn hat 22 23 2 R: 3 33 2 2 32 22/ 24

Färbungen zusammenführen Idee: Wir blenden nacheinander die Kanten der Pseudo-Wälder ein und warten eine Färbung mit + Farben! Wir beginnen mit F und dessen 3 Farben das ist eine + -Färbung von F i die 3-Färbung von F j und die + -Färbung von F F j ergeben 3( + ) Mischfarben (, 0),..., (3, + ) in 3( + ) Runden können immer Knoten mit einer bestimmten Farbe eine einfache Farbe aus {, + } wählen, die keiner der Nachbarn hat 22 23 2 R: 4 33 2 2 32 22/ 24

Färbungen zusammenführen Idee: Wir blenden nacheinander die Kanten der Pseudo-Wälder ein und warten eine Färbung mit + Farben! Wir beginnen mit F und dessen 3 Farben das ist eine + -Färbung von F i die 3-Färbung von F j und die + -Färbung von F F j ergeben 3( + ) Mischfarben (, 0),..., (3, + ) in 3( + ) Runden können immer Knoten mit einer bestimmten Farbe eine einfache Farbe aus {, + } wählen, die keiner der Nachbarn hat 22 23 2 R: 5 33 2 2 32 22/ 24

Färbungen zusammenführen Idee: Wir blenden nacheinander die Kanten der Pseudo-Wälder ein und warten eine Färbung mit + Farben! Wir beginnen mit F und dessen 3 Farben das ist eine + -Färbung von F i die 3-Färbung von F j und die + -Färbung von F F j ergeben 3( + ) Mischfarben (, 0),..., (3, + ) in 3( + ) Runden können immer Knoten mit einer bestimmten Farbe eine einfache Farbe aus {, + } wählen, die keiner der Nachbarn hat 22 23 2 R: 6 33 2 2 32 22/ 24

Färbungen zusammenführen Idee: Wir blenden nacheinander die Kanten der Pseudo-Wälder ein und warten eine Färbung mit + Farben! Wir beginnen mit F und dessen 3 Farben das ist eine + -Färbung von F i die 3-Färbung von F j und die + -Färbung von F F j ergeben 3( + ) Mischfarben (, 0),..., (3, + ) in 3( + ) Runden können immer Knoten mit einer bestimmten Farbe eine einfache Farbe aus {, + } wählen, die keiner der Nachbarn hat 22 23 2 R: 2 33 2 2 32 22/ 24

Färbungen zusammenführen Idee: Wir blenden nacheinander die Kanten der Pseudo-Wälder ein und warten eine Färbung mit + Farben! Wir beginnen mit F und dessen 3 Farben das ist eine + -Färbung von F i die 3-Färbung von F j und die + -Färbung von F F j ergeben 3( + ) 3 33 2 Mischfarben (, 0),..., (3, + ) in 3( + ) Runden können immer Knoten 23 2 mit einer bestimmten Farbe eine einfache Farbe aus {, + } wählen, die keiner der 2 Nachbarn hat R: 22 32 22/ 24

Färbungen zusammenführen Idee: Wir blenden nacheinander die Kanten der Pseudo-Wälder ein und warten eine Färbung mit + Farben! Wir beginnen mit F und dessen 3 Farben das ist eine + -Färbung von F i die 3-Färbung von F j und die + -Färbung von F F j ergeben 3( + ) Mischfarben (, 0),..., (3, + ) in 3( + ) Runden können immer Knoten mit einer bestimmten Farbe eine einfache Farbe aus {, + } wählen, die keiner der Nachbarn hat 3 4 2 R: 23 33 2 2 32 22/ 24

Färbungen zusammenführen Idee: Wir blenden nacheinander die Kanten der Pseudo-Wälder ein und warten eine Färbung mit + Farben! Wir beginnen mit F und dessen 3 Farben das ist eine + -Färbung von F i die 3-Färbung von F j und die + -Färbung von F F j ergeben 3( + ) Mischfarben (, 0),..., (3, + ) in 3( + ) Runden können immer Knoten mit einer bestimmten Farbe eine einfache Farbe aus {, + } wählen, die keiner der Nachbarn hat das sind 3 = 3 2 Runden zum Zusammenführen 2 3 4 R: 33 3 5 2 2 22/ 24

Wo stehen wir jetzt? Wir können den Graphen in Schritten in Pseudo-Wälder dekomponieren Wir können Bäume und Pseudo-Wälder verteilt mit 3 Farben einfärben erst färben wir in log (n) Runden mit konstant vielen Schritten 6-farbig, dann reduzieren wir die Farben in 3 Runden mit konstant vielen Schritten auf 3 Wir können in O(log (n)) Schritten jeden der Pseudo-Wälder 3 dreifärben das kann ja in allen Pseudowäldern parallel geschehen wir können aus den 3-Färbungen für die Pseudowälder in O( 2 ) Schritten eine + -Färbung des eigentlichen Graphen gewonnen! wir sind fertig, Laufzeit insgesamt: O( 2 + log n) 23/ 24

Zusammenfassung Färbungen sind ein leichtes Mittel, um gegenseitige Ausschlüsse zu modellieren Knoten dürfen nicht gleichzeitig senden oder Kanten dürfen nicht gleichtzeitig aktiv sein das lässt sich immer auf Knotenfärbungen reduzieren wir haben einen schnellen, verteilten und überhaupt nicht trivialen Algorithmus für + -Färbungen kennengelernt! 24/ 24

Literatur A. Goldberg, S. Plotkin, G. Shannon: Parallel symmetry-breaking in sparse graphs. In: Proceedings of the nineteenth annual ACM symposium on Theory of computing, 987. 25/ 24