300 likes | 458 Vues
Verteilte Algorithmen und Datenstrukturen Kapitel 2 : Routing und Scheduling. Christian Scheideler Institut f ür Informatik Universität Paderborn. Graphentheorie. Graph G=(V,E): V: Menge von Knoten E { { v,w } | v,w V }: Menge von Kanten. D. C. A. B. Graphentheorie.
E N D
VerteilteAlgorithmen und DatenstrukturenKapitel2: Routing und Scheduling Christian Scheideler Institut fürInformatik Universität Paderborn
Graphentheorie Graph G=(V,E): • V:Menge von Knoten • E { {v,w} | v,wV}: Menge von Kanten D C A B
Graphentheorie • (v,w): Distanz (Länge des kürzesten Weges) zwischen v und w in G • D=maxv,w(v,w): Durchmesser von G D A
Graphentheorie • (U): Nachbarmenge von Knotenmenge U • (U) = |(U)| / |U| • (G) = minU,|U||V|/2(U): Expansion von G U G(U) D C A
Graphentheorie NetzwerkG=(V,E,c): • V:Knotenmenge,E: Kantenmenge • c:EIR+: Kantenkapazitäten (beide Richt.) 2 1 2 3 1 4 1
Graphentheorie • c(v) = w c(v,w): Kapazität von Knoten v • c(U) = vUc(v), c(U,U): Kapazität U U • (G) = minU [ c(U,U) / min{c(U),c(U)} ]LeitfähigkeitvonG 2 U U 1 2 1 3 1 4
Netzwerktopologien Idealerweise vollständiges Netzwerk: Problem: skaliert nicht gut! (~n2Kanten)
Linie • Grad 2 (optimal), ABER • Durchmesser schlecht (n-1für nKnoten) • Expansion schlecht ( (Linie) = 2/n ) Wie erhält man kleinen Durchmesser?
Binärer Baum • n=2k+1-1Knoten, Grad 3 • Durchmesser ist k = log2 n, ABER • Expansion schlecht ( (Baum)=2/n )
2-dimensionales Gitter • n = k2Knoten, maximaler Grad 4 • Durchmesser ist 2(k-1) < 2 n • Expansion ist ~2/ n • Nicht schlecht, aber geht es besser?
Hypercube • Knoten: (x1,…,xd) {0,1}d • Kanten: i: (x1,…,xd) (x1,..,1-xi,..,xd) d=1d=2 d=3 Grad d, Durchmesser d, Expansion 1/ d
Butterfly • Knoten: (k,(xd,…,x1)) {0,..,d} {0,1}d • Kanten: (k-1,(xd,…,x1)) (k,(xd,..,xk,..,x1)), (k,(xd,..,1-xk,..,x1)) Grad 4, Durchmesser 2d, Expansion ~1/d 00 01 10 11 0 1 0 0 1 1 2
Cube-Connected-Cycles • Knoten: (k,(x1,…,xd)) {0,..,d-1} {0,1}d • Kanten: (k,(x1,…,xd)) (k-1,(x1,...,xd)), (k+1,(x1,..,xd)),(k,(x1,..,1-xk+1,..,xd)
De Bruijn Graph • Knoten: (x1,…,xd) {0,1}d • Kanten: (x1,…,xd) (x2,…,xd,0)(x2,…,xd,1) 01 001 011 010 101 00 11 000 111 10 100 110
Durchmesser Theorem 1.11: Jeder Graph mit maximalem Grad d>2 und Größe nmuss einen Durch-messer von mindestens (log n)/(log(d-1))-1 haben. Theorem 1.12: Für jedes gerade d>2gibt es eine Familie von Graphen mit maximalem Grad d und Größe nmit Durchmesser (log n) / (log d -1).
Expansion Theorem: Für jeden Graph Gist die Expansion (G)höchstens 1. Beweis: siehe Definition von (G). Theorem:Es gibt Familien von Graphen mit konstantem Grad mit konstanterExpansion. Beispiel: Gabber-Galil Graph • Knotenmenge: (x,y) {0,…,n-1}2 • (x,y) (x,x+y),(x,x+y+1), (x+y,y), (x+y+1,y)
Leitfähigkeit Theorem 1.13: Für jedes Netzwerk G=(V,E,c)ist die Leitfähigkeit b(G) höchstens 1. Beweis: • Betrachte ein beliebiges U⊆V. • Sei EU = { {v,w}∈E | v∈U}, wobei {v,w} zweimal in EU vorkommt, falls v,w∈U. • Es gilt (U,U)⊆E und c(U) = c(E), also ist c(U,U)≤c(U). • Analog ist c(U,U)≤c(U). • Aus Definition von folgt dann das Theorem. Theorem:Es gibt Familien von Graphen mit konstantem Grad und konstanter Leitfähigkeit.
Flusszahl (Flow Number) (s,t)-Fluss f:Eℝ+im Netzwerk G=(V,E,c): • Flusserhaltung: für alle vV\{s,t}: u f(u,v) = w f(v,w) • Kapazitätseinhaltung: für alle (v,w)E: f(v,w) c(v,w) Flusswert:|f| = v f(s,v)-u f(u,s) Hier nicht gefordert. 2 von 3 1 von 1 s 1 von 2 t 1 von 1 2 von 2
Flusszahl Mehrfachflussproblem: • Netzwerk G=(V,E,c) (bigerichtete Kanten) • Paare (s1,t1),…,(sk,tk) • Anforderungen d1,…,dkℝ+ • Eine gültige Lösung Szum Mehrfachflussproblem ist eine Menge von Flüssen f1,…fk für die Paare (s1,t1),…,(sk,tk) mit |fi|=difür alle i. • Congestion von S: C(S) = maxe∈E f(e)/c(e), wobei f(e)= ∑ifi(e)der Gesamtfluss über e ist. Standardproblem: finde gültige Lösung S, so dass C(S) minimal ist.
Flusszahl Spezielles Mehrfachflussproblem: • Paare: alle (v,w) V2 • Anforderungen: dv,w = c(v)c(w)/c(V) • S: Lösung für spezielles Problem • Dilation D(S) = Länge des längsten Flussweges • Congestion C(S) = maxe∈Ef(e)/c(e)(C(S) ist invariant zu Kantenskalierungen) Flusszahl: F = minS max{C(S),D(S)}
Flusszahl Balanciertes Mehrfachflussproblem (BMFP): • Für jedesv ist die Summe der Anforderungen aus vund nach vgleich c(v). Beispiel: dv,w = c(v)c(w)/c(V) für alle v∈V. Theorem 1.14: Für jedes Netzwerk mit Flusszahl Fund jede BMFP Instanz I gibt es eine Lösung Sfür Imit max{C(S),D(S)} 2F. Theorem 1.15: Im Schnitt gilt über alle BMFP InstanzenI, dass max{C(S),D(S)}=(F) für die beste Lösung S von I.
Flusszahl Beweis von Theorem 1.14: • Sei G=(V,E,c) das gegebene Netzwerk. • S: optimale Lösung zum speziellenBMFP für G, das der Flusszahl F zugrunde liegt, d.h. F=max{C(S),D(S)} • fv,w: Fluss in S von v nach w • Pv,w: Menge an Pfaden in fv,w • Betrachte beliebiges BMFP mit Anforderungen di für Paare (si,ti). • Betrachte daraus festes Paar (s,t) mit Anforderung ds,t. • Konstruiere daraus Tripel (s,v,t) mit Anforderungen ds,v,t = ds,tc(v)/c(V)für alle v, d.h. ∑v ds,v,t = ds,t. • Verwende Ps,v∘Pv,t, um jedes Tripel (s,v,t) zu routen.(∘: Konkatenation)
Flusszahl Beweis von Theorem 1.14: • Betrachte erste Hälfte des Routings: • Flusswert über Ps,v: ∑tds,tc(v)/c(V)= c(v)/c(V)∑tds,t= c(s)c(v)/c(V). • Das ist der gleiche wie für das spezielle BMFP! • Also ist Congestion und Dilation für die erste Hälfte des Routings höchstens F. • Dasselbe gilt für die zweite Hälfte des Routings. • Damit erhalten wir eine Lösung für das BMFP mit Congestion und Dilation höchstens 2F. v s t
Flusszahl Theorem 1.16 (Shortening Lemma): Angenommen, wir haben ein Netzwerk mit Flusszahl F. Für jedes [0,1] und jeden gültigen Mehrfachfluss fmit Congestion C(f) gibt es einen gültigen Mehrfachfluss f´mit Congestion maximal (1+)C(f), der Wege der Länge höchstens 2F(1+1/)verwendet. Fazit: immer gute Lösung mit kurzen Wegen!
Flusszahl Beweisskizze von Theorem 1.16:
Beziehung zwischen Parametern Fact 1.17: Für jedes Netzwerk mit Durch-messer Dund Flusszahl F gilt, dass FD. Theorem 1.18: Für (fast) jedes Netzwerk der Größe nmit Leitfähigkeit und Flusszahl F gilt:-1F c -1 log n Theorem 1.20: Der d-dimensionale Hypercube, das Butterfly und der de Bruijn Graph haben die Flusszahl F=(d).
Die Spanne Expansion: bestimmt die Robustheit eines Graphen gegenüber worst-case Ausfällen. Problem:wie misst man die Robustheit eines Graphen gegen zufällige Fehler? Beispiel:nn-Gitter hat Expansion 1/n, kann aber eine konstante Fehlerwahrschein-lichkeit aushalten.
Die Spanne • Graph G=(V,E) • UVkompakt: Uund V\Uverbunden • (U): Nachbarmenge von U • P(U)V: Knotenmenge mit kleinstem Spannbaum von(U) Spanne = maxkompakte U |P(U)|/|(U)|
Die Spanne Theorem 1.22: Betrachte einen beliebigen Graphen mit maximalem Grad dund Spanne . Dann Geine Fehlerwahr-scheinlichkeit bis zu 1/(16e d8 ) aushalten. Konstantdimensionale Gitter: konstantes