Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang...

48
Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009

Transcript of Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang...

Page 1: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Verteilte Algorithmen und Datenstrukturen

Kapitel 6: Dynamische Netzwerke für Zusammenhang

Christian Scheideler

WS 2009

Page 2: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Übersicht

• Dynamische Netzwerke• Selbststabilisierende Netzwerke• Selbststabilisierende Clique• Selbststabilisierende Liste• Zufällige Graphen

Page 3: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Dynamische Netzwerke

• Jedes universelle verteilte System basiert auf einem physikalischen oder logischen Netzwerk, das prinzipiell den Austausch von Informationen zwischen beliebigen zwei Teilnehmern (auf direktem oder indirektem Weg) erlaubt.

• Wir beschränken uns auf logische Netzwerke (auch Overlay Netzwerke genannt), die beliebige paarweise Verbindungen zwischen den Teilnehmern zulassen.

Page 4: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Dynamische Netzwerke

• In diesem Fall können die Netzwerke topologisch als gerichtete Graphen G=(V,E) modelliert werden.

• Kante (v,w)∈E: v kennt (und hat direkten Zugang zu) w.• N(v) = { w∈V | (v,w)∈E }: Nachbarschaft von v. • d(v) = |N(v)|: Grad von v.

Page 5: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Dynamische Netzwerke

• Problem: besonders in offenen verteilten Systemen (wie z.B. Peer-to-Peer Systemen) kann sich die Knotenmenge stark über die Zeit verändern.

• Wir brauchen also Mechanismen, die Knoten effektiv in ein Netzwerk integrieren oder aus einem Netzwerk entfernen können.

• Diese Mechanismen sollten robust gegenüber Ausfällen und gegnerischem Verhalten sein.

Page 6: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Dynamische Netzwerke

Grundlegende Ereignisse/Operationen:• Join(v,w): der neue Knoten v kontaktiert Knoten w (d.h. initiiert

Kante (v,w) ), um in das Netzwerk integriert zu werden.• Leave(v): Knoten v will das Netzwerk verlassen.

Klassischer Ansatz: finde Protokolle für Join(v,w) und Leave(v) mit möglichst geringer Arbeit, Strukturveränderung und Laufzeit, so dass nach Bearbeitung jeder Operation das Netzwerk im gewünschten Zustand ist.

• Arbeit: Anzahl Botschaften• Strukturveränderung: Anzahl veränderter Kanten• Laufzeit: Anzahl Kommunikationsrunden

(Annahme: alle Knoten arbeiten synchron)

Probleme!

Page 7: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Dynamische Netzwerke

Klassischer Ansatz: finde Protokolle für Join(v,w) und Leave(v) mit möglichst geringer Arbeit, Strukturveränderung und Laufzeit, so dass nach Bearbeitung jeder Operation das Netzwerk im gewünschten Zustand ist.

• Arbeit: Anzahl Botschaften• Strukturveränderung: Anzahl veränderter Kanten• Laufzeit: Anzahl Kommunikationsrunden

(Annahme: alle Knoten arbeiten synchron)

Probleme:• Operationen müssen nebenläufig bearbeitet werden, was zu

Konsistenzproblemen führen kann.• Bei kontinuierlichen Operationen ist Netzwerk nie „fertig“.• Fehler und gegnerisches Verhalten können Netzwerk in einen

degenerierten Zustand überführen, aus dem es sich erholen muss.

Page 8: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Dynamische Netzwerke

Idealerweise:• Mechanismen, die das Netzwerk ständig

reparieren/optimieren.• Join(v,w): etabliere Kante (v,w). Den Rest

macht das Netzwerk.• Leave(v): entferne einfach v aus dem Netz.

Solche Netzwerke nennt man auch

selbstorganisierende Netzwerke

Page 9: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Dynamische Netzwerke

Verschiedene Kategorien selbstorganisierender Netzwerke:• Selbststabilisierende Netzwerke: Netzwerke, die von einem

beliebigen Zustand mit schwachem Zusammenhang wieder zurück in einen legalen Zustand gelangen können (unter der Voraussetzung, dass während dieses Prozesses keine join oder leave Ereignisse stattfinden).

• Selbsterhaltende Netzwerke: Netzwerke, die (bis zu einer bestimmten Rate an join und leave Ereignissen) nie einen legalen Zustand verlassen.

• Selbstoptimierende Netzwerke: Netzwerke, die ihre Struktur optimal an eine Zielfunktion (die von Kantenkosten oder Anfragen in der Anwendungsebene abhängen mag) anpassen können.

Hier Fokus auf selbststabilisierende Netzwerke.

Page 10: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Netze

Problem: finde geeignete lokale Regeln, so dass das Netz von jedem Zustand mit schwachem Zusammenhang in einen legalen Zustand zurückkehren kann.

ungerichtet: beidseitig gerichtet

Page 11: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Netze

• Knoten kennen nur den lokalen Zustand ihrer direkten Nachbarn.

• Nur folgende Netzwerk-Befehle:– u.insert(v,w): u kontaktiert Knoten v∈N(u), um

eine Kante zu Knoten w∈N(u) aufzubauen

– u.delete(v): u löscht Kante zu v

u

v

wu

v

w

Page 12: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Netze

Annahmen für die Laufzeitanalyse:• Die Zeit verläuft in synchronen Runden.• In jeder Runde kann jeder Knoten v jeder Menge

an Knoten w∈N(v) Botschaften schicken.• Zeitaufwand pro Runde:

– Rundenkomplexität: 1– Kommunikationskomplexität: maximale Anzahl an

Elementarbotschaften (z.B. Anzahl Adressen), die ein Knoten in der Runde aussenden oder empfangen muss.

Page 13: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Übersicht

• Dynamische Netzwerke• Selbststabilisierende Netzwerke• Selbststabilisierende Clique• Selbststabilisierende Liste• Zufällige Graphen

Page 14: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Clique

Definition 6.1: Ein vollständiger (gerichteter) Graph Kn (oder kurz Clique) auf n Knoten ist ein Graph, in dem jedes Knotenpaar durch eine Kante in jeder Richtung verbunden ist.

Gegeben: beliebiger schwach zusammenhängender Graph G=(V,E)

Gesucht: Verfahren, das G möglichst schnell in einen vollständigen Graphen verwandelt

Anfangs-graph

Page 15: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Clique

Gegeben: beliebiger schwach zusammenhängender Graph G=(V,E)

Gesucht: Verfahren, das G möglichst schnell in eine Clique verwandelt

Zusätzliche Bedingung an Verfahren:• Geringer Umorganisierungsaufwand bei Join- und Leave-

Operation auf perfekter Clique.

Anfangs-graph

Page 16: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Clique

Gegeben: beliebiger schwach zusammenhängender Graph G=(V,E)

Gesucht: Verfahren, das G möglichst schnell in eine Clique verwandelt

Wichtig für unsere verteilten Konsens und Transak-tionsverfahren, da diese eine Clique benötigen!

Anfangs-graph

Page 17: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Clique

Naives Verfahren: Pointer DoublingJeder Knoten v schickt in jeder Kommunikations-runde seine gesamte Nachbarschaft N(v) an alle Nachbarn.

Theorem 6.1: Pointer Doubling benötigt nur O(log n) Kommunikationsrunden, bis sich aus einem beliebigen schwach zusammenhängenden Graphen eine Clique gebildet hat.

v wN(v)

Page 18: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Clique

Theorem 6.1: Pointer Doubling benötigt nur O(log n) Kommuni-kationsrunden, bis sich aus einem beliebigen schwach zusammenhängenden Graphen eine Clique gebildet hat.

Beweis:• Betrachte beliebige zwei Knoten v und w mit Distanz d (im

ungerichteten Fall).

• In zwei Kommunikationsrunden hat sich d (bis auf ein additives 1) halbiert.

v w

v w

Page 19: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Clique

Nachteil des Pointer Doubling: in einer Kommunikationsrunde muss ein Knoten eventuell Q(n) Pakete mit Q(n) Adressen empfangen, d.h. es müssen insgesamt Q(n2) Adressen empfangen werden, d.h. die Kommunikationskomplexität ist sehr hoch.

Einsicht: Im worst case (anfangs schwach zusammenhängende Liste) muss jedes Verfahren W(n) Adressen an jeden Knoten schicken, um eine Clique zu formen.

Ist es möglich, in die Nähe des Aufwands Q(n) zu kommen?

Page 20: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Clique

Pull Strategie: • Jeder Knoten u sendet in jeder Runde eine pull

Anfrage an einen zufälligen Knoten v∈N(u). • Für jede pull Anfrage, die u von einem Knoten v

empfängt, setzt u N(u):=N(u)∪{v} und schickt einen zufälligen Knoten w∈N(u) an v zurück, den v in seine Nachbarschaft integriert.

u vpull

w∈N(v)

Page 21: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Clique

Leave(u): Restgraph ist nach wie vor Clique

Join(u,v):

Theorem 6.2: Join(u,v) benötigt O(n log n) Runden m.h.W. bis u vollständig in der Clique integriert ist.

u v

Page 22: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Clique

Beweis:

Anzahl Runden, bis u alle kennt:• Angenommen, u kennt bereits d Knoten.• Wkeit, dass kontaktierter Knoten einen Kno-ten in

N(u) an u zurückschickt ist d/n, alsoPr[d(u) bleibt d] = d/n

• E[#Runden mit Grad d]=1/(1-d/n) = n/(n-d)• E[#Runden, bis u alle kennt]

= Sd=1n-1 E[#Runden mit Grad d]

= Sd=1n-1 n/(n-d) = Si=1

n-1 n/i = O(n ln n)

Page 23: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Clique

Anzahl Runden, bis alle u kennen:• Angenommen, u kennt bereits alle.• Für jeden festen Knoten v gilt:

Pr[u kontaktiert v] = 1/n• Also ist Pr[u kontaktiert v keinmal in cn ln n Runden]

= (1-1/n)cn ln n ≤ e-c ln n = (1/n)c

• D.h. nach O(n log n) Runden kennen alle u mit hoher Wkeit.

Arbeit:• Erwartete Anzahl Botschaften an jeden Knoten in jeder

Runde ist konstant.• D.h. Arbeit pro Knoten ist O(n log n), was viel besser als

Pointer Doubling (mit Arbeit W(n2) ) ist.

Page 24: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Clique

Selbststabilisierung der Pull Strategie:• Korrektheit einfach nachzuweisen

(Distanzen zwischen Knoten verkürzen sich über die Zeit)• Noch keine nichttriviale Laufzeitschranke

(Vermutung: O(n log n) w.h.W.)

Beweisidee:• d(v): Grad von Knoten v.• Betrachte festen Knoten u.• Zeit verläuft in Phasen. In einer Phase unterscheiden wir zwischen zwei Fällen:

1) ∃v∈N(u): d(v)>2d(u): Gradverdopplung von u nach ~d(u)2 Kommunikationsrunden.2) ∀v∈N(u): d(v)≤2d(u): u kennt die Nachbarn aller Nachbarn nach ~d(u)2 Kommunikationsrunden

• Nach O(log n) Phasen ist Grad jedes Knotens mindestens n m.h.W., dafür ~O(n log n) Zeit.

• Danach Verdopplung alle weiteren O(n log n) Runden m.h.W.?

Page 25: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Clique

Anwendung:• Verteilter Konsensus und Transaktionen

(auf Cliquen einfach machbar!)

Nachteil:• Eine Clique ist kein skalierbares Netzwerk

Besser Netzwerk kleiner Cliquen?

Page 26: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierender Clustergraph

Cluster: lokale Clique

Gegeben: zusammenhängendes Netzwerk G=(V,E).

Ziel: Transformation in zusammenhängenden Graph G´, in dem alle Knoten in Clustern der Größe minimal K und maximal 4K organisiert sind.

Selbststabilisierende Regel für Clustergraph sehr kniffelig!!!

Einfacher: selbststabilisierende Liste

Page 27: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Übersicht

• Dynamische Netzwerke• Selbststabilisierende Netzwerke• Selbststabilisierende Clique• Selbststabilisierende Liste• Zufällige Graphen

Page 28: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Liste

Unser Ziel:

5

12

20

2

8

2 5 8 12 20

Page 29: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selststabilisierende Liste

Naïver Ansatz:• Stelle Nachbarn allen Nachbarn vor• Transformiere Nachbarschaft in sortierte

Liste

Anfangs-graph

Nicht skalierbar!Nicht skalierbar!

Page 30: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Liste

Besserer Ansatz: Linearisierung

Jeder Knoten macht das folgende:

12853 14 16

12853 14 16

temporär

stabil

Page 31: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Liste

Theorem 6.3: Die Linearisierungsregel transformiert jeden schwach zusammenhängenden Graphen in O(n2) Runden in eine doppelt verkettete sortierte Liste.

Beweis:• Betrachte beliebiges Nachbarpaar v,w.

v w

Bereich des Pfades von v nach w

Page 32: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Liste

• Betrachte Randknoten des Pfades, z.B. u:

• Fall 1: u hat zwei ausgehende Kanten

• Linearisierung verkürzt dann den Bereich des Pfades von v nach w

v wu

u

Page 33: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Liste

• Betrachte Randknoten des Pfades, z.B. u:

• Fall 2: mindestens eine zu u eingehende Kante

• Fall 2a: u nächster Nachbar von x. Dann führt x Kante (u,x) ein, damit Reduktion auf Fall 1.

v wu

u x

Page 34: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Liste

• Betrachte Randknoten des Pfades, z.B. u:

• Fall 2: mindestens eine zu u eingehende Kante

• Fall 2b: u nicht nächster Nachbar von x. Dann führt x Kante (y,u) ein, damit Kantenlänge kleiner.

v wu

u xy

Page 35: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Liste

• Betrachte Randknoten des Pfades, z.B. u:

• Fall 2: mindestens eine zu u eingehende Kante

• Fall 2b kann damit maximal n-mal auftauchen, bis Fall 2a oder Fall 1 gilt.

v wu

u xy

Page 36: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Liste

• Damit verkürzt sich der Bereich des Pfades von v nach w nach spätestens n Runden um mindestens 1.

• Insgesamt reichen also O(n2) Runden, bis v mit w verbunden ist.

v w

Bereich des Pfades von v nach w

Page 37: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Liste

Schnellere aber aufwändigere Linearisierung:• Alle Kanten werden beidseitig gerichtet gehalten

Problem: Transformation von {12,16} zu {14,16} muss mit Knoten 16 koordiniert werden.

12853 14 16

12853 14 16

Page 38: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Liste

Theorem 6.4: Beidseitige Linearisierung kann jeden schwach zusammenhängenden Graphen in O(n) Runden in eine doppelt verkettete sortierte Liste transformieren.

Beweis: ähnlich zu Theorem 6.3.

Theorem 6.5: Jede lokale Stabilisierungsstrategie für die sortierte Liste benötigt W(n) Runden bis zur sortierten Liste.

Beweis:

12853 14 16

Page 39: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Liste

Problem: Eine Liste ist sehr verwundbar gegenüber Ausfällen und gegnerischem Verhalten.

Lösung: verwende skalierbare Strukturen mit besserem Zusammenhang

Idee: sortierte Liste, in der jeder Knoten mit seinen d Vorgängern und Nachfolgern verbunden ist.

Beispiel für d=2:

2 5 8 12 20

Page 40: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Selbststabilisierende Liste

Übung: Regel für selbststabilisierende Liste mit Kanten zu d Vorgängern und Nachfolgern.

Problem: Struktur jetzt zwar stärker zusammenhängend, aber Durchmesser noch sehr hoch.

Lösung: zufällige Graphen

Page 41: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Übersicht

• Dynamische Netzwerke• Selbststabilisierende Netzwerke• Selbststabilisierende Clique• Selbststabilisierende Liste• Zufällige Graphen

Page 42: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Zufällige Graphen

Übersicht:• Eigenschaften von zufälligen d-regulären

Graphen• Selbststabilisierende Transformation eines

beliebigen schwach zusammenhängenden Graphen in zufälligen d-regulären Graphen

Page 43: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Eigenschaften zufälliger Graphen

• d-regulärer Graph: ausgehender Grad aller Knoten ist d.• zufälliger Graph: jede ausgehende Kante hat einen

uniform zufällig ausgewählten Knoten als Ziel

Theorem 6.6: Ein zufälliger d-regulärer Graph G erfüllt mit hoher Wkeit

∀U⊆V, |U|≤|V|/d: |N(U)|≥d|U|/2

d.h. G ist ein Expander.

d-reguläre Graphen sind also sehr stark zusammenhän-gend und daher sehr robust gegenüber Ausfällen.

Page 44: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Eigenschaften zufälliger Graphen

Beweis:• n: Anzahl der Knoten, m:Teilmengengröße.• : Anzahl Teilmengen der Größe m

• : Anzahl Möglichkeiten, dm/2 der dm ausgehenden Kanten in U auszuwählen.

• m/n : Wkeit, dass zufällige ausgehende Kante in U hineinzeigt.

• Also gilt:

Pr[∃U⊆V, |U|≤|V|/d: |N(U)|<d|U|/2]

≤ ≤

• Das ist poly klein falls m≤n/d und d genügend groß.

nm

dmdm/2

nm

mn

dm/2 enm

m2

dm mn

dm/2

dmdm/2

Page 45: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Dynamische zufällige Graphen

Push&Pull Strategie: • Jeder Knoten u sendet in jeder Runde eine push Anfrage

mit einem zufälligen Knoten w∈N(u) an einen zufälligen Knoten v∈N(u). Falls d(u)≥d, dann löscht u w aus N(u).

• Für jede push Anfrage mit Knoten w, die u von einem Knoten v empfängt, setzt u N(u):=N(u)∪{w} und schickt eine pull Anfrage mit einem zufälligen Knoten w´∈N(u) an v zurück. Falls d(u)>d, dann löscht u w´ aus N(u).

• Für jede pull Anfrage mit Knoten w´, die u von einem Knoten v empfängt, setzt u N(u):=N(u)∪{w´}.

Push&Pull realisiert einen lokalen Kantenwechsel („flip“):u vpush(w)

w w´

pull(w´)u v

w w´

Page 46: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Dynamische zufällige Graphen

Die ungerichtete flip Regel ist bereits analysiert worden:

Theorem 6.7: G sei anfangs ein beliebiger d-regulärer Graph. Nach O(n5) Anwendungen der flip Regel auf ein zufälliges Paar von Knoten {u,v} ist der resultierende Graph mit hoher Wkeit ein zufälliger d-regulärer Graph.

u vpush(w)

w w´

pull(w´)u v

w w´

Page 47: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Dynamische zufällige Graphen

Vermutung: Nach O(log n) vielen Runden mit der Push&Pull-Regel ist der resultierende Graph ein zufälliger ~d-regulärer zusammenhängender Graph.

Beachte: flip-Regel gefährdet nicht Zusammenhang

Page 48: Verteilte Algorithmen und Datenstrukturen Kapitel 6: Dynamische Netzwerke für Zusammenhang Christian Scheideler WS 2009.

Noch Fragen?