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