Minimum Spanning Trees Problemstellung Motivation Definition 9

Werbung
Minimum Spanning Trees Grundlagen
30
31
Problemstellung
Minimum Spanning Trees
Grundlagen
Algorithmus
Beispiel
Korrektheit
Komplexität
I
Voraussetzungen
I
I
I
I
Literatur
I
I
R. G. Gallager, P. A. Humblet, and P. M. Spira: A Distributed
Algorithm for Minimum-Weight Spanning Trees. ACM Transactions
on Programming Languages and Systems 5:1, 66-77, 1983.
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
I
Minimum Spanning Trees Grundlagen
Problem
I
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
32
Ungerichteter, zusammenhängender Kommunikationsgraph
G = (V, E) (|V | = n, |E| = m)
Kantengewichte W : E → R, paarweise verschieden
Asynchrone Kommunikation
Jeder Knoten kennt Kantengewichte inzidenter Kanten
Bestimme einen aufspannenden Baum minimalen Gewichts
(Minimum Spanning Tree, MST)
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Minimum Spanning Trees Grundlagen
33
Motivation
Definition 9
I
I
Fundamentales Problem in verteilten Systemen
Aufspannende Bäume bilden Grundlage für weitere
Algorithmen wie
I
I
I
I
I
Sei T ein Teilbaum (,,Fragment”) eines Graphen G = (V, E), der
durch eine Teilmenge der Kanten ET ⊂ E induziert wird. Dann
heißt eine Kante e ausgehend aus T wenn genau einer der beiden
Endknoten von e zum Teilbaum T gehört.
Broadcast
Leader Election
Zählen der Knoten
Berechnen von Funktionen wie Maximum, Summe, . . .
Energieaufwand in Sensor- und Ad Hoc-Netzen
I
I
Kantengewichte entsprechen Energieaufwand für
Kommunikation
Minimiere Energieaufwand
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Lemma 10
Sei ein Teilbaum T eines MST induziert durch eine Kantenmenge
ET und e eine aus T ausgehende Kante minimalen Gewichts. Dann
ist der durch ET ∪ e induzierte Baum ebenfalls ein Teilbaum eines
MST.
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Minimum Spanning Trees Grundlagen
Minimum Spanning Trees Grundlagen
34
35
Sequentieller Algorithmus von Prim (Wdh.)
Lemma 11
1. Wähle einen beliebigen Startknoten und betrachte diesen als
,,grünen Baum”
Wenn alle Kantengewichte eines Graphen paarweise verschieden
sind, so ist der MST eindeutig bestimmt.
2. Wiederhole den folgenden Färbungsschritt n − 1 mal
3.
I
I
Wähle eine ungefärbte aus dem grünen Baum
ausgehende Kante minimalen Gewichts und färbe
sie grün.
Lemma 12
Bei paarweise verschiedenen Kantengewichten ist jeder
MST-Algorithmus, der Schritt für Schritt zu (mehreren)
bestehenden Teilen des MST die ausgehende Kante minimalen
Gewichts hinzufügt, korrekt.
Laufzeit O(m log2+m/n n)
Zu sequentiellen MST-Algorithmen siehe auch Kapitel 4 im
Skript zur Vorlesung ,,Entwurf und Analyse von Algorithmen”:
http://i11www.ira.uka.de/algo/teaching/scripts/sources/ad.pdf
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Minimum Spanning Trees Algorithmus
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Anfangszustand
I
I
I
I
I
Fragment F hat zwei ausgezeichnete Kanten
I
Alle Knoten sind im Zustand Sleeping
Jeder Knoten bildet ein einzelnes Fragment F des MST
Das Level LF jedes Fragments ist am Anfang 0
I
I
0
I
I
I
0
Falls L = L und eF = eF 0 , so verschmelzen F und F zu
einem Fragment mit Level L + 1 und core eF
Falls L < L0 , so wird F von F 0 absorbiert
Ansonsten wartet F bis F 0 ein höheres Level erhält
I
I
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Level L
Fragment-ID (Gew. der core-Kante der letzten Verschmelzung)
Zu inzidenten Kanten ob sie zum MST gehören oder nicht
Kante in Richtung minF
Kante in Richtung coreF
Knotenzustände
I
I
I
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
minF : Die minimale ausgehende Kante
coreF : Kante der letzten Verschmelzung oder gleich minF
Knoten v speichern
I
Jedes Fragment F sucht die ausgehende Kante eF minimalen
Gewichts und versucht mit dem benachbarten Fragment F 0 zu
verschmelzen
I
37
Idee des Algorithmus
I
I
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Minimum Spanning Trees Algorithmus
36
Idee des Algorithmus
I
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Sleeping: Anfangszustand
Find: Suche nach minimaler ausgehender Kante
Found: minimale ausgehende Kante ist bekannt
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Minimum Spanning Trees Algorithmus
Minimum Spanning Trees Algorithmus
38
Aufwachen: Erster Schritt im Zustand Sleeping
I
Verschmelzen zweier Fragmente bei e
I
Für F1 und F2 ist e minimale ausgehende Kante min und core
I
Beide Endknoten haben hconnecti(L) zum anderen
Endknoten geschickt
Broadcast von hiniti(L + 1, We , Find) an beide Fragmente
über branch Kanten
Knoten im Zustand Sleeping
I
I
I
I
I
Markiere minimale inzidente Kante als branch
Sende hconnecti(0) über diese Kante
Gehe in Zustand Found
Bei Empfang von hconnecti oder htesti weiter wie später
beschrieben
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
I
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Minimum Spanning Trees Algorithmus
I
I
Von Blättern aus Antwort von hreporti(W ): Gewicht der
neuen minimalen ausgehenden Kante (,,Convergecast”)
I
Neue core-Kante des Fragments wird minimal ausgehende
Kante
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
I
I
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Minimum Spanning Trees Algorithmus
40
Welche inzidenten Kanten sind ausgehend?
Klassifiziere Kanten als
I
I
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
41
Knoten sucht minimalen ausgehenden Kante II
Bei Erhalt einer Nachricht hiniti(L, F, Find)
I
I
Die Knoten updaten den Level und die Fragment-ID (We ),
senden die hiniti Nachricht weiter und suchen dann ihre
minimal ausgehende Kante
I
Knoten sucht minimalen ausgehenden Kante I
I
39
I
branch: gehört zum MST
rejected: gehört nicht zum MST
basic: steht noch nicht fest
Antwort auf htesti(F 0 , L0 )
I
I
Falls F 0 = F , so sende hrejecti() zurück
Ansonsten
I
Sende htesti(F, L) an minimale Kante mit Status basic
I
Falls L ≥ L0 , so sende haccepti() zurück
Falls L < L0 , so verzögere Antwort bis L ≥ L0
Antwort hrejecti(): Nachbar gehört selbst zu F ; markiere
Kante als rejected, sende htesti(F, L) an nächste Kante
Antwort haccepti(): Kante gefunden!
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Minimum Spanning Trees Algorithmus
Minimum Spanning Trees Algorithmus
42
Antwort auf hiniti: Convergecast des min. Kantengew.
I
I
I
I
Wechsel der core-Kante und neuer hconnecti
Blatt eines Fragments
I
I
We sei Gewicht der minimalen ausgehenden Kante e (oder ∞)
Sende hreporti(We ) in Richtung core
Gehe in Zustand Found
Ankunft von hreporti(W ) am core
I
I
Innere Knoten
I
I
I
I
I
I
Falls W = ∞ terminiere (Broadcast hterminatei)
Sende hchange-corei() entlang des Weges zur minimalen
ausgehenden Kante
I
Nach Erhalt der hreporti(Wei ) Nachrichten von allen
ausgehenden branch-Kanten ei
Nach Bestimmung der eigenen ausgehenden Kante minimalen
Gewichts We
Bilde das Minimum W über die Gewichte Wei und We
Merke Richtung zur minimalen ausgehenden Kante
Sende hreporti(W ) in Richtung core
Gehe in Zustand Found
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
I
I
I
I
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Minimum Spanning Trees Algorithmus
43
Update der Kante in Richtung core
Gespeicherte Kanten in Richtung neuer core-Kante bilden jetzt
gerichteten Baum
Wurzel ist Knoten, der zur core-Kante inzident ist
Markiere die Kante minimalen Gewichts als branch
Über die neue core-Kante minimalen Gewichts wird
hconnecti(L) gesendet
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Minimum Spanning Trees Beispiel
44
Eingliederung Fragmente niedrigeren Levels
45
3
12
6
14
I
v empfängt Nachricht hconnecti(L0 ) mit L0 < L von u
I
I
I
I
Eingliederung des benachbarten Fragments
Markiere Kante {u, v} als branch
Sende hiniti(L, Wcore , f ) an u
Falls v in Zustand Find, so ist f = Find
I
I
19
8
15
1
18
5
Die Knoten des benachbarten Fragments nehmen an Suche
nach minimaler ausgehender Kante teil
10
13
11
16
Falls v in Zustand Found, so ist f = Found
I
I
v hat eine ausgehende Kante kleineren Gewichts als die Kante
{u, v}
Die Knoten des benachbarten Fragments gehen nach
Weiterleitung der hiniti(. . .) Nachricht in den Zustand Found
7
9
17
2
4
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Minimum Spanning Trees Korrektheit
Minimum Spanning Trees Korrektheit
46
Korrektheit I
Korrektheit II
I
Lemma 13
I
I
Beweis.
I
I
Die branch-Kanten bilden einen MST
I
Es gibt keine ,,Deadlocks”
I
Der verteilte MST-Algorithmus ist korrekt, d.h. der Algorithmus
terminiert und die als branch klassifizierten Kanten bilden einen
MST.
I
I
Folgt aus Lemma 12, denn es werden nur minimal ausgehende
Kanten aus Fragmenten des MST als branch markiert
I
I
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Minimum Spanning Trees Komplexität
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
I
Die Anzahl der Nachrichten im verteilten MST-Algorithmus ist
O(m + n log n).
I
I
Ein Fragment in Level L + 1 enthält immer zwei Fragmente in
Level L
Eine Kante wird höchstens einmal als rejected markiert, dabei
wird eine htesti und eine hrejecti Nachricht verschickt:
2m Nachrichten
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
je einmal haccepti und hiniti erhalten,
je einmal htesti (erfolgreich) und hreporti senden, und
einmal hchange-corei oder hconnecti senden.
5n(−1 + log n) Nachrichten
I
Level-L Fragmente enthalten mindestens 2L Knoten
Der maximale Level ist durch log n beschränkt
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
49
In jedem Level ausser 0 und dem höchsten Level kann ein
Knoten
I
Beweis.
I
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Nachrichtenkomplexität II
Lemma 13
I
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Minimum Spanning Trees Komplexität
48
Nachrichtenkomplexität I
I
Geht an Fragment höheren Levels ⇒ F wird eingegliedert
Geht an Fragment F 0 gleichen Levels mit gleicher minimaler
ausgehenden Kante ⇒ F und F 0 verschmelzen
Für ein Fragment wird keine ausgehende Kante gefunden
Dieses Fragment spannt den ganzen Graph auf
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
I
Betrachte beliebigen Zeitpunkt vor Terminierung
Nichtleere Menge von Fragmenten, jeweils mit einer
ausgehende Kante minimalen Gewichts
Sei F ein Fragment im niedrigsten Level mit kleinster
ausgehenden Kante in diesem Level
Jede htesti Nachricht von F wird beantwortet oder weckt
einen neuen Knoten auf
Jede hconnecti Nachricht weckt einen neuen Knoten auf oder
I
Wenn der Algorithmus terminiert:
I
47
I
In Level 0 kann jeder Knoten einmal hiniti empfangen und
einmale hconnecti senden, und im höchsten Level einmal
hreporti senden: 5n Nachrichten
Insgesamt also höchstens 2m + 5n log n Nachrichten
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Minimum Spanning Trees Komplexität
Minimum Spanning Trees Komplexität
50
Untere Schranke Nachrichtenkomplexität I
Untere Schranke Nachrichtenkomplexität II
Lemma 13
I
Die Anzahl der Nachrichten für einen verteilten, uniformen und
asynchronen MST-Algorithmus ist Ω(m + n log n). D.h. unser
MST-Algorithmus ist optimal bzgl. Nachrichtenkomplexität.
Leader Election in Ringen benötigt Ω(n log n) Nachrichten im
asynchronen Fall (ohne Beweis; s. Kapitel ,,Verteilte
Algorithmen”)
I
Beweis.
I
51
I
Algorithmus für MST ⇒ Algorithmus für Leader Election mit
gleicher Laufzeit
Ω(n log n) Nachrichten
Über jede Kante muss eine Nachricht geschickt werden, denn
sonst könnte sich ,,in der Mitte” dieser Kante ein Knoten
befinden, der nicht gefunden würde
I
Ω(m) Nachrichten
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Minimum Spanning Trees Komplexität
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Minimum Spanning Trees Komplexität
52
Schlechte Zeitkomplexität
53
Zeitkomplexität I
Lemma 13
I
I
Es gibt Beispiele, für die
Problem dabei
I
I
I
Ω(n2 )
Zeiteinheiten notwendig sind
Nur ein Knoten wacht spontan auf
Ω(n2 ) sequentielle Nachrichten
Beweis.
Verbesserung des Algorithmus
I
I
I
Der verbesserte MST-Algorithmus (,,mit Aufwecken”) terminiert
nach spätestens O(n log n) Zeiteinheiten.
I
Zu Beginn des Algorithmus ,,aufwecken” aller Knoten
Schicke hwake-upi über alle Kanten, auf denen noch keine
solche Nachricht empfangen wurde
O(n) Zeiteinheiten, O(m) Nachrichten
I
Zeigen per Induktion: Nach 5ln − 3n Zeiteinheiten sind alle
Knoten in Level l
Induktionsanfang l = 1:
I
I
I
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Nach n Zeiteinheiten sind alle Prozessoren aufgewacht
Jeder Prozessor hat dann eine hconnecti Nachricht verschickt
Nach 2n Zeiteinheiten ist jeder Prozessor in Level 1 (Empfang
oder Auslösen von hiniti)
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Minimum Spanning Trees Komplexität
Minimum Spanning Trees Komplexität
54
Zeitkomplexität II
I
Bessere Zeitkomplexität
Induktionsschritt
I
I
In Level l sendet jeder Knoten max. n htesti Nachrichten, die
spätestens nach 2n Zeiteinheiten beantwortet sind
Weiter 3n Zeiteinheiten für
I
I
I
I
hreporti
hchange-rooti und hconnecti
hiniti
Danach, zum Zeitpunkt 5ln − 3n + 5n = 5(l + 1)n − 3n, sind
alle Prozessoren in Level l + 1
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Minimum Spanning Trees Komplexität
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
56
Aktuelle Forschung
I
Bessere Algorithmen für spezielle Graphklassen
I
Durchmesser
D(G) = max max d(u, v)
u∈V v∈V
I
Radius
R(G) = min max d(u, v)
u∈V v∈V
I
I
55
MST-Radius µ(G, W )
Zeitkomplexität in Abhängigkeit von D bzw. µ
I
I
√
O(D(G) + n√
log∗ n)
O(µ(G, W ) + n)
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
I
Es gibt Beispiele, für die der verbesserte Algorithmus
Ω(n log n) Zeiteinheiten benötigt werden
I
Ω(n) ist triviale untere Schranke
I
Der beschriebene MST-Algorithmus kann weiter verbessert
werden auf optimale Zeitkomplexität von O(n)
Universität Karlsruhe (TH)
Institut für Theoretische Informatik
Algorithmen für Sensor- und Ad Hoc-Netze
Sommersemester 2005
Lehrstuhl für Algorithmik
http://i11www.ira.uka.de
Herunterladen