Inhaltsverzeichnis. - Kurzer Überblick Seite ) Einleitung Seite ) Vorbereitungen Seite 2. - ungewichtete und ungerichtete Graphen Seite 2
|
|
- Insa Küchler
- vor 7 Jahren
- Abrufe
Transkript
1 Inhaltsverzeichnis - Kurzer Überblick Seite 1-1) Einleitung Seite 1-2) Vorbereitungen Seite 2 - ungewichtete und ungerichtete Graphen Seite 2 - Erweiterung für gerichtete Graphen Seite 8-3) a) Abschätzung des Durchmessers Seite 8 - Algorithmus 2-vs-4 Seite 9 - b) Approximierung des Durchmessers Seite 12 - Algorithmus approx-diameter Seite 13 - c) Erweiterung für gewichtete Graphen Seite 14-4) APSP-Abschätzung Seite 14 - Algorithmus approx-apsp Seite 15-5) Abschätzung von k-pairs kürzesten Wegen Seite 18 - Algorithmus approx-kpsp(i) Seite 18 - Zusammenfassung Seite 19
2 Schnelle Durchmesser- und kürzeste Wege- Abschätzung (ohne Matrix-Multiplikation) Lit: D. Aingworth, C. Chekuri, P. Indyk and R. Motwani: Fast Estimation of Diameter and Shortest Paths (Without Matrix Multiplication). SIAM Journal on Computing, Bd. 28 (4), S , Kurzer Überblick: - In der Vergangenheit wurden bedeutende Fortschritte in der Entwicklung von Algorithmen für APSP-Probleme (all-pairs shortest paths) verzeichnet. Bedeutend dabei ist die jeweilige Laufzeit, die schneller als O(n 3 ) ist. - Def: APSP: G = (V,E) gerichteter Graph, c:e Kantenbewertung. Zu allen u,v V mit u v sind die minimalen Längen von Wegen von u nach v oder auch solche Wege selbst zu berechnen. - Das Problem bei diesen Algorithmen ist die Tatsache, daß sie Fast Matrix Multiplikation Algorithmen sind und damit unpraktisch bei der Durchführung sind. - Ziel dieser Arbeit: Entwicklung eines kombinatorischen Algorithmus, der diese verbesserte Laufzeit erreicht. - Wichtigstes Ergebnis: Ein Algorithmus, der das APSP-Problem in ungerichteten und ungewichteten Graphen mit einem additiven Fehler von 2 in O(n 2,5 log n ) löst. - Wenn die kürzesten Wege nur zwischen k bestimmten Knotenpaaren bestimmt werden müssen, gibt es einen effizienteren Algorithmus mit der Laufzeit O(n 1,5 k logn + n 2 log 2 n) 1) Einleitung: Es wird das Problem betrachtet, APSP für einen ungewichteten und ungerichteten Graphen G mit n Knoten und m Kanten zu berechnen. Neuere Arbeiten, die schnellere Algorithmen für dieses Problem vorstellen, basieren auf der Formulierung des Problems als Terme von Matrizen mit kleinen ganzzahligen Einträgen und benutzen die Fast Matrix Multiplikation. Sie erreichen eine Laufzeit von O(n ω polylog(n)), wobei ω für den Exponent der Laufzeit des benutzten Matrix Multiplikation Algorithmus steht. Der aktuell beste Algorithmus dieser Art läuft mit ω = 2,376. 1
3 Im Vergleich zu diesem Algorithmus hat der ursprüngliche Algorithmus für APSP, der BFS für jeden Knoten ausführt, die Laufzeit Θ(nm). Bei dieser Art von Problem ist die Durchführbarkeit des Algorithmus in der Praxis sehr wichtig. Leider wird dieser Gesichtspunkt mit Fast Matrix Multiplikation Algorithmen nicht erfüllt. Deshalb ist es das Ziel einen kombinatorischen Algorithmus für APSP mit der Laufzeit O(n 3-ε ) zu entwickeln. Mit der Bezeichnung kombinatorischer Algorithmus wollen die Autoren den Kontrast zum Fast Matrix Multiplikation Algorithmus hervorheben. Dieser Algorithmus kann für ungerichtete Graphen mit kleinen ganzzahligen Kantengewichten verallgemeinert werden. Ein entscheidender Schritt in der Entwicklung eines solchen Algorithmus war der Wechsel des Schwerpunktes auf den Gesichtspunkt, Durchmesser zwischen Knoten zu berechnen. Der Durchmesser zwischen zwei Knoten kann durch Berechnen von APSP Distanzen im Graphen ermittelt werden. Dies ist die einzige Möglichkeit das Durchmesser-Problem zu lösen. Deshalb soll hier ein schneller Algorithmus zur Approximation des Durchmessers konstruiert werden. Es ist einfach den Durchmesser innerhalb der Abschätzung E 1/2 E mit der Laufzeit O(m) anzugeben, indem man eine BFS für jeden Knoten v durchführt; wenn d die erhaltenen Höhe des BFS-Baumes ist, liegt der Durchmesser von G zwischen d und 2d. Bis zu dieser Arbeit war kein besserer Algorithmus für dieses Problem bekannt. Das Ergebnis der Autoren eines solchen Algorithmus kann auch auf gerichtete Graphen mit beliebigen positiven, reellen Kantengewichten ausgedehnt werden. 2) Vorbereitungen: Alle Definitionen sind für ungerichtete, ungewichtete und zusammenhängende Graphen G(V,E) mit n Knoten und m Kanten. Später erfolgt eine Ausdehnung auf gerichtete und gewichtete Graphen. Knoten-BFS: Wähle einen beliebigen Knoten aus, markiere ihn und hänge ihn an eine Warteschlange an. Solange die Warteschlange noch einen Knoten enthält, betrachte den vordersten Knoten v in der Warteschlange. Suchschritt an v: Falls v einen unmarkierten Nachbarn besitzt, markiere ihn und hänge ihn an die Warteschlange und speichere die entsprechende Kante. 2
4 backtrack: Ansonsten entferne v aus der Warteschlange. Bsp: Def. 2.1: Die Distanz/der Abstand d(u,v) zwischen zwei Knoten u und v ist die Länge des kürzesten Weges zwischen ihnen. Bsp: 2 = 2 = 4 => d(u,v) = 2 Def. 2.2: Der Durchmesser eines Graphen ist definiert als max u,v G d(u,v). Bsp: = 5 3
5 Def. 2.3: Die k-nachbarschaft N k (v) eines Knotens v ist die Menge aller Knoten (außer v), die höchstens den Abstand k von v haben. N k (v) = {u V 0 < d(u,v) k} Der Grad eines Knotens v (Knotengrad) wird bezeichnet durch d v = N 1 (v). N(v) = N 1 (v) {v} bezeichnet die Menge der Knoten, die höchstens den Abstand 1 von v haben. Wichtig: die Menge N(v) beinhaltet nicht nur die Nachbarn von v, sondern auch v selbst. Bsp: Sei k = 2 N 2 (v) = {1,2,3,4,5,6}, d v = {1,4,5,6} = 4 N v = {1,4,5,6,v} Def. 2.4: Für alle Knoten v V bezeichnen wir mit B(v) die Höhe eines BFS-Baumes in G mit der Wurzel v. Bsp: B(v) = 5 In dieser Arbeit wird die Variable s, die später erst definiert wird, benutzt, um die Knoten zu klassifizieren; als Knoten von niedrigem Grad bzw. Knoten von hohem Grad. 4
6 Def. 2.5: Sei L(V) = {u V d u < s} und H(V) = V\L(V). Bsp: Sei s = 3 => L(V) = {u V d u < 3} d 1 = {2,3,4,5} = 4 d 6 = {5,7} = 2 d 2 = {1,3,4} = 3 d 7 = {6,8} = 2 d 3 = {1,2,4,5} = 4 d 8 = {7,9} = 2 d 4 = {1,2,3,5} = 4 d 9 = {8,10} = 2 d 5 = {1,3,4,6} = 4 d 10 = {9} = 1 => L(V) = {6,7,8,9,10} und H(V) ={1,2,3,4,5} Def. 2.6: Gegeben sei eine Menge A V. Eine Menge D V ist ein dominating set für A genau dann, wenn für jeden Knoten v A N(v) D Ø. D.h. für jeden Knoten in A\D ist einer seiner Nachbarn in D. Bsp: 1) Sei A = {1,2,3,4,5} => D = {3} 2) Sei A = V => D = {3,6} Das folgende Theorem liegt allen in dieser Arbeit verwendeten Algorithmen zugrunde. Theorem 2.7: Es existiert ein dominating set für H(V) mit der Größe O(s -1 n logn), welches in der Zeit O(m+ns) gefunden werden kann. 5
7 Anmerkung 2.8: Es ist leicht zu sehen, daß das zufällige Auswählen einer Menge mit Θ(s -1 n logn) Knoten das gewünschte dominating set für H(V) mit hoher Wahrscheinlichkeit ergibt. Beweis: i) Ann: H(V) = V Wir interessieren uns für das standard dominating set für den Graphen G. Das Problem ein minimales dominating set für G zu berechnen, kann als Überdeckungs- Problem umformuliert werden: Konstruiere für alle Knoten v eine Menge S v = N(v). Dies ergibt ein Fall des Überdeckungs- Problems S = {S v v V}, bei dem das Ziel ist, eine minimale Anzahl von Mengen zu finden, deren Vereinigung V ist. S 1 = {1,2,4} S 5 = {2,4,5,6,7} S 2 = {1,2,3,5} S 6 = {5,6,7} S 3 = {2,3,4} S 7 = {5,6,7,8} S 4 = {1,3,4,5,8} S 8 = {4,7,8} In diesem Fall überdecken S 4 und S 5 V. => C = {S 4,S 5 }, C S. Gegeben sei eine Überdeckungslösung C S. Die Knotenmenge, die mit den Untermengen in C übereinstimmen, bilden ein dominating set für G mit der gleichen Größe wie C (Hier: D={4,5}). Dies ist der Fall, da jeder Knoten v in einer der Mengen S w C vorkommt und demgemäß entweder sich selbst im dominating set befindet oder einen Nachbar darin hat. Ebenso stimmt ein dominating set für G mit der Überdeckung für S mit derselben Kardinalität überein. Der greedy-überdeckungs-algorithmus wählt wiederholt die Menge, die die meisten unüberdeckten Elemente enthält. Es ist bekannt, daß eine solche Überdeckung höchstens um den Faktor log n schlechter ist als die optimale Bruchlösung (keine ganze Zahl). 6
8 Weil jeder Knoten mindestens den Grad s hat (weil H(V) = V und H(V) = {d u s}) und deshalb die entsprechende Menge S v mindestens die Kardinalität s hat, ergibt das Zuschreiben eines Gewichts von 1/s für jede Menge in S eine Überdeckung mit dem Gesamtgewicht von n/s. Deshalb ist die optimale Mengengröße O(n/s). Der greedy-überdeckungs-algorithmus liefert deshalb eine Lösung der Größe O(s -1 n logn). Dies ergibt ein dominating set für G mit derselben Größe. Wenn der greedy-überdeckungs-algorithmus dadurch implementiert wird, daß die Mengen in buckets nach der Anzahl der unüberdeckten Knoten sortiert werden, läuft der Algorithmus in der Zeit O(m), da es höchstens m verschiedenen Werte gibt und deshalb die Menge in O(m) sortiert werden kann. ii) Sei H(V) V. Konstruiere einen Graph G = (V,E ). Füge eine Menge von Scheinknoten X = {x i 1 i s}folgendermaßen hinzu: definiere V = V X und E = E {(x i,x j ) 1 i<j s} {(u,x i ) u L(V)}. Sei s = 3 L(V) = {6,7,8,9,10} H(V) = {1,2,3,4,5} Jeder Knoten in diesem neuen Graphen G hat den Grad s oder höher. Nach den vorhergehenden Argumentationen können wir ein dominating set für G mit der Größe O(s -1 (n+s) log(n+s)) = O(s -1 n logn) konstruieren. Da keiner der neuen Knoten in X mit den Knoten in H(V) verbunden ist, gibt die Einschränkung dieses dominating sets für V ein dominating set für H(V) mit der Größe O(s -1 n logn). Die Laufzeit vergrößert sich durch das Hinzufügen der neuen Knoten und Kanten, aber da die Gesamtzahl der addierten Kanten höchstens ns+s 2 = O(ns) ist, bekommen wir die gewünschte Zeitschranke. 7
9 Erweiterung für gerichtete Graphen: Gegeben sei ein gerichteter Graph G(V,E); durchg s wird der Graph bezeichnet, den man aus G erhält, indem die Richtung aller Kanten von G umgedreht wird. Der Begriff Grad wird benutzt, um auf den Ausgrad (bzw. auslaufenden Grad) eines Knotens zu verweisen und für v V wird sein Grad durch d r v bezeichnet. Die Definitionen, die zuvor für Abstände, Durchmesser, Nachbarschaft, BFS-Bäume und dominating sets gegeben wurden, erweitern sich für gerichtete Graphen wie folgt: Die Definitionen werden nur für G gegeben. Die Definitionen für G s können analog erhalten werden. Def. 2.9: Für zwei Knoten u, v V wird d(u,v) als die Länge des kürzesten Weges von u nach v definiert. Wenn kein solcher Weg existiert, wird d(u,v) = angenommen. Def. 2.10: Der Durchmesser eines Graphen G ist als max u,v G d(u,v) definiert. Def. 2.11: Sei N r k(v) = {u V 0<d(u,v) k}. Weiter bezeichne N r (v) = N r 1(v) {v} die Menge von Knoten, die höchstens den Abstand 1 von v haben. Def. 2.12: BFS ist ein BFS-Baum im gerichteten Graph G. Für alle Knoten v V bezeichnet man mit B r (v) die Höhe des BFS -Baumes in G mit der Wurzel v. Wir definieren H r (V), L r (V) und dominating set für gerichtete Graphen in Beziehung zu den auslaufenden Kanten abhängig von den Knoten. Def. 2.13: s L r (V) = {u V d r u < s} und H r (V) = V\L r (V) Def. 2.14: Gegeben sei A V. D V ist ein out-dominating set von A genau dann, wenn für jeden Knoten v A N r (v) D Ø. Folgendes Korollar ist eine einfache Konsequenz des Theorems 2.7. Korollar 2.15: Gegeben sei ein gerichteter Graph G(V,E). Für H r (V) existiert ein out-dominating set mit der Größe O(s -1 log n) das in der Zeit O(m+ns) gefunden werden kann. 3) a) Abschätzung des Durchmessers: In diesem Abschnitt wird ein Algorithmus entwickelt, der eine Abschätzung E ausgibt, für die 2/3 E gilt. Als ersten Schritt in diese Richtung wird ein Algorithmus präsentiert, der zwischen Graphen mit dem Durchmesser 2 und 4 unterscheiden kann. Dieser wird dann zum gewünschten Abschätzalgorithmus generalisiert. 8
10 Durchmesser von 2 und 4 unterscheiden Lemma 3.1: Ann: G hat ein Knotenpaar a und b mit d(a,b) 4. Dann hat jeder BFS -Baum mit Wurzel v N r (a) und jeder BFS -Baum mit Wurzel v N s (b) mindestens die Höhe 3. Bsp: d(a,b) = 5 B r (a) = 7 B w (v) = 7 N r (a) = {a, 1,2,3} N s (b) = {b,9} Algorithmus 2-vs-4 1) falls L r (V) Ø, dann a) wähle v L r (V) b) berechne einen BFS -Baum von v und einen BFS -Baum von jedem Knoten in N r (v). 2) sonst a) berechne ein out-dominating set D für H r (V) = V b) berechne einen BFS -Baum für jeden Knoten in D. 3) falls alle BFS-Bäume die Höhe 2 haben, gib 2 aus sonst gib 4 aus. Bsp: i) n = 9 => s = 2,93 = 4 (d(3,2) = 4) d r 1 = 3, d r 2 = 4, d r 3 = 3, d r 4 = 3, d r 5 = 3, d r 6 = 2, d r 7 = 1, d r 8 = 3, d r 9 = 2 L r (V) = {6,7,9}, H r (V) = {1,2,3,4,5,8} 9
11 1) a) Sei v = 6 b) BFS -Baum von v = 6 => B r (v) = 7 N r (6) = {6,7,9} BFS -Baum von v = 7 => B w (7) = 3 usw.( B w (6) und B w (9) ) => Ausgabe: 4 ii) n = 5 => s = 1,87 = 2 d r 1 = 2, d r 2 = 2, d r 3 = 2, d r 4 = 2, d r 5 = 2 H r (V) = V 2) sonst a) outdominating set D für H r (V) = V D = {2,4,5} b) BFS -Baum für v = 2 B r (v) = 2 BFS -Baum für v = 5 B r (v) = 2 BFS -Baum für v = 4 B r (v) = 2 => Ausgabe: 2 10
12 Theorem 3.2: Der Algorithmus 2-vs-4 unterscheidet Graphen mit Durchmesser 2 und 4 und hat die Laufzeit O(ms -1 n logn + ms). Beweis: Es ist klar, daß der Algorithmus 2 für Graphen mit dem Durchmesser 2 ausgibt, da in solchen Graphen die BFS-Bäume die Höhe 2 nicht überschreiten können. Ann: G hat den Durchmesser 4. Fixiere ein Knotenpaar a,b V so, daß gilt d(a,b) 4. Wir wollen zeigen, daß der Algorithmus eine den entsprechend den Kanten gerichtete BFS von einem Punkt v N r (a) N s (b) ausführt. Aus Lemma 3.1 können wir schließen, daß die Höhe des BFS-Baumes mit der Wurzel v mindestens 3 ist; der Algorithmus wird 4 ausgeben. Es können 2 Fälle im Algorithmus auftreten: 1. Fall: L r (V) Ø. i) wenn b zu N r (v) gehört, gibt es nichts zu beweisen. ii) iii) wenn B r (v) > 2, gibt es nichts zu beweisen. wenn B r (v) = 1, folgt, daß d r v = n-1. Da s als o(n) gewählt v L r (V). Dies ist aber ein Widerspruch zur Voraussetzung. Der einzige Fall, der übrig bleibt ist B r (v) = 2 und d(v,b) = 2. N r 1(v) hat weniger als s Knoten. x gehört sowohl zu N r (v) als auch zu N s (b). N r (v) N s (b) Ø. mit Lemma 3.1 folgt, daß der Algorithmus 4 ausgibt. Die Größe von N r (v) ist höchstens s. Deshalb ist die Zeit, die benötigt wird, um den BFS-Baum zu berechnen, durch O(ms) begrenzt. 2. Fall: L r (V) = Ø, d.h. H r (V) = V. Da D ein out-dominating set von V ist D N r (a) Ø. Mit Theorem 2.7 folgt D = O(s -1 n logn). Laufzeit ist O(ms -1 n logn). Wählt man s = n logn, erhält man folgendes Korollar. Korollar 3.3: Graphen mit den Durchmessern 2 und 4 können in O(m n logn ) unterschieden werden. 11
13 b) Approximierung des Durchmessers: Die Ideen, die im 2-vs-4 Algorithmus benutzt wurden, können generalisiert werden, um den Durchmesser für alle gerichteten Graphen abzuschätzen. Man bestimmt 2 beliebige Knoten a und b, für die d(a,b) = ( =Durchmesser). Ann: Man kann einen Knoten v in N r /3(a) oder v in N s /3(b) finden. Daraus folgt, daß B r (v) 2/3 oder B s (v ) 2/3 und wir können B r (v) oder B s (v ) für unsere Abschätzung benutzen. Wie vorhin können wie eine kleine Menge von Knoten finden, für die gilt, daß sie einen Knoten in N r /3(a) N s /3(b) hat. Wir können den BFS-Baum eines jeden diesen Knotens berechnen und das Maximum dieser Höhen als unsere Abschätzung E benutzen. Für die Notation im Folgenden ist es einfacher /3 als eine ganze Zahl anzunehmen. Im allgemeinen muß die Analyse jedoch modifiziert werden, um /3 benutzen zu können. Ann: 3. Def. 3.4: Ein k-partial-bfs-baum wird dadurch erhalten, daß eine BFS bis zu dem Knoten ausgeführt wird, bei dem (ohne die Wurzel) k Knoten durchlaufen wurden. Sei k = 9 Lemma 3.5: Ein k-partial-bfs-baum kann in O(k 2 ) berechnet werden. Beachte: ein k-partial-bfs-baum beinhaltet die k Knoten, die am nächsten zur Wurzel sind. Diese Menge ist aber nicht eindeutig definiert. Def. 3.6: Sei PBFS k (v) die Knotenmenge, die durch die k-partial-bfs von v besucht wurde. PB (v) bezeichne die Höhe des auf diese Art konstruierten Baumes. PBFS und PB sind analog definiert. 12
14 Bsp: Sei k = 8 PBFS k (v) = {1,2,3,4,5,9,10,11} PB (v) = 3 Algorithmus approx-diameter 1) berechne einen s-partial-bfs -Baum für jeden Knoten in V als Wurzel. 2) sei w der Knoten mit der maximalen Höhe (PB (w)) der Partial-BFS -Bäume. 3) berechne ein BFS -Baum von w und ein BFS Baum für jeden Punkt in PBFS s (w). 4) berechne einen neuen Graphen Ĝ aus G dadurch, daß alle Kanten der Form (v,u), wobei u PBFS s (v), hinzugefügt werden. 5) berechne ein out-dominating set D in Ĝ. 6) berechne ein BFS -Baum für jeden Knoten in D. 7) gib die Abschätzung E aus, die der maximalen Höhe aller BFS-Bäume aus Schritt 3 und 6 entspricht. Lemma 3.7: Das dominating set D, das in Schritt 5 gefunden wird, hat die Größe O(s -1 n logn). Lemma 3.8: Wenn N r /3(v) s für alle v V, dann ist D (N r /3(v) {v}) Ø für alle v V. Lemma 3.9: Sei S die Menge von Knoten v so, daß N r /3(v) < s. Wenn S Ø, dann gehört der Knoten w, der im 2. Schritt gefunden wird, zu S. Wenn zusätzlich B r (w) < 2/3 ist, gilt für alle Knoten v PBFS s (w) N s /3(v) Ø. Theorem 3.10: Der Algorithmus approx-diameter ergibt eine Abschätzung E, für die 2/3 E gilt, in der Zeit O(ms+ms -1 n logn+ns 2 ). Wählt man s= n logn, ergibt dies die Laufzeit O(m n logn + n 2 logn). Beweis: Es gibt zwei Fälle. Seien a und b zwei Knoten, für die gilt d(a,b) =. 1. Fall: Für alle Knoten v gilt N r /3(v) s. i) wenn a oder b aus D ist, sind wir fertig. 13
15 ii) sonst folgt aus dem Beweis des Lemmas 3.8, daß die Menge D einen Knoten v mit v N r /3(a) besitzt. In Schritt 6 berechnet man BFS -Bäume für jeden Knoten aus D. Einer dieser Knoten ist v und B r (v) ist die gewünschte Abschätzung. 2. Fall: Es gibt einen Knoten v V, für den N r /3(v) < s gilt. Sei w der Knoten aus Schritt 2. i) wenn B r (w) 2/3 ist B r (w) unsere Abschätzung. ii) Sonst folgt aus Lemma 3.9, daß PBFS s (w) einen Knoten v N s /3(b) besitzt. Weil wir in Schritt 3 für jeden Knoten aus PBFS s (w) BFS -Bäume berechnen, ist einer dieser Knoten v und B s (v) die gewünschte Abschätzung. c) Erweiterung für gewichtete Graphen: Der Algorithmus zur Abschätzung der Durchmesser erweitert sich für den Fall der gewichteten Graphen gut. Dies erfordert einige Modifikationen des Algorithmus approx-diameter: - Die BFS wird durch den Dijkstra s Algorithmus für kürzeste Wege ersetzt. - Bei der Konstruktion des neuen Graphen Ĝ in Schritt 4 müssen wir zuerst alle Originalkanten von G entfernen, bevor wir die neuen Kanten hinzufügen, da es in einem gewichteten Graphen nicht notwendigerweise der Fall ist, daß der Nachbar eines Knoten v zu N /3 (v) gehört. Die Laufzeit bleibt dieselbe. 4) APSP- Abschätzung Wir beschränken uns auf ungerichtete und ungewichtete Graphen. Auch APSP-Abstände können mit einem additiven Fehler von 2 bestimmt werden. Basis-Idee: Ein dominating set muß einen Knoten beinhalten, der innerhalb eines Abstandes 1 von allen kürzesten Wegen ist, da ein dominating set einen Nachbarn von jedem Knoten des Graphen enthält. 14
16 Algorithmus approx-apsp Kommentar: Definiere G[L(V)] als den Subgraph von G, der durch L(V) induziert wird. 1) Setze alle Einträge in der Abstandsmatrix ď auf. 2) Berechne ein dominating set D für H(V) mit der Größe s -1 n logn. 3) Berechne ein BFS-Baum für jeden Knoten v D und erneuere ď mit den erhaltenen kürzesten Weglängen von v. 4) Berechne ein BFS-Baum in G[L(V)] für jeden Knoten v L(V) und erneuere ď mit den erhaltenen kürzesten Weglängen von v. 5) für alle u,v V\D ď(u,v) min {ď(u,v), min {ď(w,u) + ď(w,v)}} w D 6) gib ď als die APSP Matrix und den größten Eintrag als Durchmesser aus. Bsp: Schritt 3: 15
17 Schritt 4: Schritt 5: kürzester Weg der Weg, der in Schritt 5 berechnet wird (In Schritt 4 erhält man den roten Weg nicht, da er über H(V) geht => Abschätzung nötig) Theorem 4.1: Im Algorithmus approx-apsp erfüllen die Abstände, die in ď auftreten, für alle Knoten u,v V die Ungleichung 0 ď(u,v) d(u,v) 2. Außerdem kann der Algorithmus so modifiziert werden, daß er Wege mit der Länge ď produziert, anstatt nur die Approximationsabstände auszugeben. Dieser Algorithmus hat die Laufzeit O(n 2 s+n 3 s -1 logn). Wählt man s = n logn, ergibt dies eine Laufzeit O(n 2,5 log n ). Beweis: Zuerst zeigen wir, daß der Algorithmus so modifiziert werden kann, daß er die aktuellen Wege ausgibt, anstatt nur die Abstände. Um dies zu erreichen, kann im Schritt 3 und 4 jeder neue Matrixeintrag mit dem Weg, der vom BFS-Baum dafür benutzt wurde, verknüpft werden. In Schritt 5 verknüpfen wir nur die zwei Wege aus Schritt 3, die den minimalen Wert von ď ermitteln. 16
18 Für einen Knoten u ist klar, daß der kürzeste Weg-Abstand zu einem Knoten v V, der ausgegeben wird, nicht kleiner sein kann als die korrekten Werte, da sie mit den aktuellen Wegen übereinstimmen. Um zu sehen, daß sie nicht mehr als 2 differieren, müssen wir drei Fälle betrachten. 1. Fall: u D In diesem Fall wird der BFS-Baum von v in Schritt 3 berechnet. Deshalb sind die Abstände, die ausgegeben werden korrekt. 2. Fall: u H(V)\D Aufgrund der Definition von D muß u einen Nachbarn w in D haben. Der Abstand von u und w zu einem anderen Knoten kann nicht mehr als 1 variieren. Die Abstände von w sind nach dem 1. Fall immer korrekt. Die Zuweisung in Schritt 5 garantiert ď(u,v) ď(w,u) + ď(w,v) = d(w,v)+1 d(u,v)+2 3. Fall: u L(V) Nehme einen kürzesten Weg von u nach v. Ann: Der Weg von u nach v sei völlig in L(V) enthalten. Dann wird ď(u,v) in Schritt 4 richtig gesetzt. Sonst muß der Weg einen Knoten w H(V) enthalten. a) wenn w D, wird der richtige Abstand berechnet, wie im 1. Fall. b) wenn w H(V)\D, dann gibt es einen Nachbarn x D von w. In Schritt 5 wird eine der betrachteten Möglichkeiten einen Weg von u nach x und einen Weg von x nach v liefern. Weil die Abstände x beinhalten, werden sie in Schritt 3 korrekt berechnet. Dies bedeutet, daß ď(u,v) d(x,u) + d(x,v) d(w,u) + d(w,v) + 2 = d(u,v) + 2 Laufzeitberechnung: - Schritt 1 erfordert nur O(n 2 ) Zeit. - Schritt 2 kann nach Theorem 2.7 in der festgesetzen Zeit ausgeführt werden. - Schritt 3 erfordert ms -1 n logn zur Berechnung der BFS-Bäume. - Schritt 4 kann nur O(n) Bäume berechnen, aber jeder einzelne hat O(ns) Kanten. Deshalb erfordert dies nur O(n 2 s) Zeit. - Schritt 5 nimmt alle n 2 Knotenpaare und vergleicht diese mit den s -1 n logn Knoten aus D. dies impliziert die gewünschte Laufzeit. Eine Ausdehnung der Ergebnisse auf ungerichtete Graphen mit kleinen ganzzahligen Kantengewichten ist möglich. 17
19 5) Abschätzung von k-pairs kürzesten Wegen: Es werden nur die Abstände zwischen einer gegebenen Menge P mit k unterschiedlichen Paaren bestimmt. Dazu kann der Algorithmus approx-apsp generalisiert werden, um dieses Problem mit derselben Fehlergrenze zu behandeln. Der generalisierte Algorithmus wird approx-kpsp genannt. Er hat die Laufzeit O(n 1,5 k logn + n 2 log 2 n), wobei k die Kardinalität der Menge P ist. Wenn P alle Knotenpaare beinhaltet, ist das Verhalten von approx-kpsp mit dem von approx-apsp identisch. Aber für kleine k ist der Algorithmus bedeutsam schneller als approx-apsp. Die wichtigste Idee hinter der Beschleunigung ist die richtige Wahl von s. Algorithmus approx-kpsp(i) Kommentar: Definiere s i = n/2 i und t = log(n 1,5 / k logn ). Alle ď(u,v) sind anfänglich gleich und G 1 = (V 1,E 1 ) ist als G gesetzt. 1) falls i = t berechne ein BFS-Baum für jeden Knoten v V i in G i und erneuere ď mit den erhaltenen kürzesten Weglängen. 2) sonst sei U i = {v V i Grad von v in G i ist mindestens s i } V i+1 = V i \U i und G i+1 sei der Subgraph von G i induziert durch V i+1. a) nenne approx-kpsp(i+1) b) berechne ein dominating set D i für U i in G i c) berechne ein BFS-Baum für jedes v D i und erneuere ď mit den erhaltenen kürzesten Weglängen d) für jede {u,v} P führe aus 3) return ď(u,v) min{ď(u,v), min ď(w,u) + ď(w,v)} w D Der Algorithmus ist rekursiv und wird auf der höchsten Ebene mit dem Parameterwert i = 1 mit der Annahme G = G 1 aufgerufen. Der Algorithmus macht t rekursive Aufrufe, wobei t als Parameter so gewählt wurde, daß er die Laufzeit minimiert. 18
20 Lemma 5.1: Der Parameter t kann so gewählt werden, daß die Laufzeit von Algorithmus approx-kpsp O(n 1,5 k logn + n 2 log 2 n) ist. Diese Laufzeit wird für t = log(n 1,5 / k logn ) erreicht. Theorem 5.2: Für alle Paare (u,v) P erfüllen die Abstände, die durch approx-kpsp in ď ausgegeben wurden, die Ungleichung 0 ď(u,v) d(u,v) 2. Der Algorithmus hat die Laufzeit O(n 2 log 2 n + n 1,5 k logn ). Zusammenfassung: In der Arbeit wurden drei Teilprobleme betrachtet und folgende Ergebnisse erzielt. - Durchmesser: Algorithmus 2-vs-4 O(ms -1 n logn + ms) (für s= n logn => O(m n logn )) für spezielle gerichtete und ungewichtete Graphen wird generalisiert zu Algorithmus approx-diameter 2/3 E Abschätzung O(ms+ms -1 n logn+ns 2 ) (für s= n logn => O(m n logn + n 2 logn) für alle gerichtete und ungewichtete Graphen Erweiterung für gewichtete Graphen möglich - APSP: Algorithmus approx-apsp 0 ď(u,v) d(u,v) 2 O(n 2 s+n 3 s -1 logn) (für s= n logn => O(n 2,5 log n )) Erweiterung für ungewichtete Graphen mit kleinen ganzzahligen Kantengewichten möglich - APSP für k-pairs kürzeste Wege: Algorithmus approx-kpsp(i) 0 ď(u,v) d(u,v) 2 O(n 2 log 2 n+n 1,5 k logn ) 19
Vorlesung 2 KÜRZESTE WEGE
Vorlesung 2 KÜRZESTE WEGE 34 Kürzeste Wege im Graphen Motivation! Heute:! Kürzeste Wege von einem Knoten (SSSP)! Kürzeste Wege zwischen allen Knotenpaaren (APSP)! Viele Anwendungen:! Navigationssysteme!
Mehr10 Kürzeste Pfade SSSP-Problem
In diesem Kapitel setzen wir uns mit der Berechnung von kürzesten Pfaden in einem Graphen auseinander. Definition 10.1 (Pfadgewichte). i) Das Gewicht eines Pfades p = (v 0, v 1,..., v k ) ist die Summe
MehrVorlesung 2 KÜRZESTE WEGE
Vorlesung 2 KÜRZESTE WEGE 45 Kürzeste Wege im Graphen Motivation! Heute:! Kürzeste Wege von einem Knoten (SSSP)! Distanzen zwischen allen Knotenpaaren (APD)! Viele Anwendungen:! Navis! Netzwerkrouting!...
Mehr2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37
2. November 2011 Gradfolgen Zusammenhang Kürzeste Wege H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37 Satz von Erdős und Gallai Eine Partition einer natürlichen Zahl ist genau dann die Gradfolge
MehrFortgeschrittene Netzwerk- und Graph-Algorithmen
Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester
MehrAlgo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7
1 Kürzeste Pfade Woche 6 7 Hier arbeiten wir mit gewichteten Graphen, d.h. Graphen, deren Kanten mit einer Zahl gewichtet werden. Wir bezeichnen die Gewichtsfunktion mit l : E R. Wir wollen einen kürzesten
MehrFortgeschrittene Netzwerk- und Graph-Algorithmen
Fortgeschrittene Netzwerk- und Graph-Algorithmen Dr. Hanjo Täubig Lehrstuhl für Eziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester 2007/08
Mehr9 Minimum Spanning Trees
Im Folgenden wollen wir uns genauer mit dem Minimum Spanning Tree -Problem auseinandersetzen. 9.1 MST-Problem Gegeben ein ungerichteter Graph G = (V,E) und eine Gewichtsfunktion w w : E R Man berechne
MehrLiteratur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)
Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,
MehrAlgorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg
MehrAlgorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck. 10 Matching-Probleme
10 Matching-Probleme 10.1 Definition von Matching-Probleme Definition 21 [2-dimensionales Matching] Sei G = (V, E) ein ungerichteter Graph und E E. E ist ein Matching, wenn für alle Kantenpaare e 1, e
Mehr16. All Pairs Shortest Path (ASPS)
. All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e
MehrFortgeschrittene Netzwerk- und Graph-Algorithmen
Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester
MehrDefinition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.
Kapitel 4 Graphenalgorithmen 4.1 Definitionen Definition 4.1.1. Der Graph G = (V, E) ist über die beiden Mengen V und E definiert, wobei V die Menge der Knoten und E die Menge der Kanten in dem Graph ist.
MehrGraphentheorie. Kardinalitätsmatchings. Kardinalitätsmatchings. Kardinalitätsmatchings. Rainer Schrader. 11. Dezember 2007
Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 11. Dezember 2007 1 / 47 2 / 47 wir wenden uns jetzt einem weiteren Optimierungsproblem zu Gliederung Matchings in bipartiten Graphen
MehrAlgorithmen II Vorlesung am
Algorithmen II Vorlesung am 07..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 10 Suche in Graphen Version vom 13. Dezember 2016 1 / 2 Vorlesung 2016 / 2017 2 /
MehrGraphenalgorithmen und lineare Algebra Hand in Hand Prof. Dr. Henning Meyerhenke
Graphenalgorithmen und lineare Algebra Hand in Hand Prof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische
MehrSeien u, v V, u v. Da G zusammenhängend ist, muss mindestens ein Pfad zwischen u und v existieren.
Beweis: 1. 2. Seien u, v V, u v. Da G zusammenhängend ist, muss mindestens ein Pfad zwischen u und v existieren. Widerspruchsannahme: Es gibt zwei verschiedene Pfade zwischen u und v. Dann gibt es einen
MehrAlgorithmen II Vorlesung am
Algorithmen II Vorlesung am 0..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum
Mehr11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME
Algorithmen und Datenstrukturen 11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 1 Algorithmen und Datenstrukturen 11.1. BERECHNUNG MAXIMALER FLÜSSE
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen Lerneinheit : Kürzeste Pfade in Graphen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 016.6.01 Einleitung Diese Lerneinheit beschäftigt
MehrDieser Graph hat 3 Zusammenhangskomponenten
Vl 2, Informatik B, 19. 04. 02 1.1.3 Definitionen und wichtige Graphen Sei im folgenden G =(V;E) ein schlichter ungerichteter Graph. Definition: Der Grad eines Knoten v in einem ungerichteten Graphen ist
MehrOptimale Lösungen mit Greedy-Strategie erfordern Optimalität der Greedy-Wahl. Beispiele für optimale Greedy-Lösungen
Wiederholung Optimale Lösungen mit Greedy-Strategie erfordern Optimalität der Greedy-Wahl unabhängig von Subproblemen Optimalität der Subprobleme Beispiele für optimale Greedy-Lösungen Scheduling Problem
Mehr10. Übung Algorithmen I
INSTITUT FÜR THEORETISCHE INFORMATIK 1 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft Institut für Theoretische www.kit.edu Informatik Bäume
MehrGraphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.
Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 14. November 2007 1 / 22 2 / 22 Gliederung eulersche und semi-eulersche Graphen Charakterisierung eulerscher Graphen Berechnung eines
Mehr3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:
3. Minimale Spannbäume Sei G = (V, E) ein einfacher ungerichteter Graph, der o.b.d.a. zusammenhängend ist. Sei weiter w : E R eine Gewichtsfunktion auf den Kanten von G. Wir setzen E E: w(e ) = e E w(e),
MehrDatenstrukturen und Algorithmen (SS 2013)
Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 10 Abgabe: Montag, 08.07.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes
Mehrp = (v 0, v 1,..., v k )
1 Routenlaner Hamburg 300 km 200 km Berlin 450 km Köln 200 km 400 km Frankfurt 50 km 200 km 150 km Mannheim Saarbrücken 100 km 250 km Stuttgart 200 km Dresden 300 km Nürnberg 200 km München Berechne den
MehrRichtig oder falsch? Richtig oder falsch? Richtig oder falsch? Mit dynamischer Programmierung ist das Knapsack- Problem in Polynomialzeit lösbar.
Gegeben sei ein Netzwerk N = (V, A, c, s, t) wie in der Vorlesung. Ein maximaler s-t-fluss kann immer mit Hilfe einer Folge von höchstens A Augmentationsschritten gefunden werden. Wendet man den Dijkstra-Algorithmus
Mehr(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.
(a, b)-bäume / 1. Szenario: Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. Konsequenz: Kommunikation zwischen Hauptspeicher und Festplatte - geschieht nicht Byte für Byte,
MehrFerienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie
Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie Dipl-Math. Wolfgang Kinzner 2.4.2012 Kapitel 1: Grundlagen der algorithmischen Graphgentheorie
MehrAlgorithmische Graphentheorie
Algorithmische Graphentheorie Vorlesung 7 und 8: Euler- und Hamilton-Graphen Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 17. April 2018 1/96 WIEDERHOLUNG Eulersche
MehrAlgorithmische Methoden zur Netzwerkanalyse
Algorithmische Methoden zur Netzwerkanalyse Prof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Die Forschungsuniversität Meyerhenke, in der Institut für Theoretische Informatik
Mehr2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1}
1. Berechne für jeden Knoten i in BFS-Art eine Liste S i von von i aus erreichbaren Knoten, so dass (i) oder (ii) gilt: (i) S i < n 2 + 1 und Si enthält alle von i aus erreichbaren Knoten (ii) S i = n
Mehr\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.
Das Komplement Ḡ = (V, ( V ) \ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E. Ein Graph H = (V, E )
MehrBeweis: Färbe jede Kante zufällig und unabhängig mit Ws 1 2. Ereignis A i : i-te Clique K (i), i = 1,..., ( n K (i)
Die Probabilistische Methode Beobachtung: Besitzt ein Ereignis Ws > 0, so muss es existieren! Notation: Sei K n der komplette Graph mit n Knoten und ( n 2) Kanten. Satz Falls 2 (k 2) 1 > ( n k), existiert
MehrBemerkung: Der vollständige Graph K n hat n(n 1)
Bemerkung: Der vollständige Graph K n hat n(n 1) 2 Kanten. Bew: Abzählen! Definition 111. Graphen mit n paarweise zyklisch verbundenen Kanten heißen Kreise (vom Grad n) und werden mit C n bezeichnet. Beispiel
MehrKapitel IV Minimale Spannbäume
Kapitel IV Minimale Spannbäume 1. Grundlagen Ein Graph G = (V, E) besteht aus einer Menge V von Knoten und einer Menge E von Kanten. Wir werden nur endliche Knoten- (und damit auch Kanten-) Mengen betrachten.
Mehr3 Klassifikation wichtiger Optimierungsprobleme
3 Klassifikation wichtiger Optimierungsprobleme 3.1 Das MIN- -TSP Wir kehren nochmal zurück zum Handlungsreisendenproblem für Inputs (w {i,j} ) 1 i
MehrFortgeschrittene Netzwerk- und Graph-Algorithmen
Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester
MehrFreie Bäume und Wälder
(Martin Dietzfelbinger, Stand 4.6.2011) Freie Bäume und Wälder In dieser Notiz geht es um eine besondere Sorte von (ungerichteten) Graphen, nämlich Bäume. Im Gegensatz zu gerichteten Bäumen nennt man diese
MehrKombinatorische Optimierung
Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 16 Programm: Einführung
MehrBetriebswirtschaftliche Optimierung
Institut für Statistik und OR Uni Graz 1 Approximationsalgorithmen auf metrischen Instanzen Minimum Spanning Tree Definition (Spannbaum) Ein Spannbaum in einem Graphen G = (V,E) ist ein kreisfreier Teilgraph
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Lerneinheit 3: Greedy Algorithmen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 10.5.2016 Einleitung Einleitung Diese Lerneinheit
MehrLernmodul 7 Algorithmus von Dijkstra
Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer
Mehr15. Elementare Graphalgorithmen
Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen
MehrGrundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester H.
MehrFortgeschrittene Netzwerk- und Graph-Algorithmen
Fortgeschrittene Netzwerk- und Graph-Algorithmen Dr. Hanjo Täubig Lehrstuhl für Eziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester 2007/08
MehrNaiver Algorithmus für Hamiltonkreis
Naiver Algorithmus für Hamiltonkreis Algorithmus HAMILTON EINGABE: G = ([n], E) in Adjazenzmatrixdarstellung 1 Für alle Permutationen π : [n] [n]. 1 Falls (π(1), π(2),..., π(n)) ein Kreis in G ist, AUSGABE
MehrBetriebliche Optimierung
Betriebliche Optimierung Joachim Schauer Institut für Statistik und OR Uni Graz Joachim Schauer ( Institut für Statistik und OR Uni Graz Betriebliche ) Optimierung 1 / 21 1 Approximationsalgorithmen auf
MehrProgrammierkurs Python II
Programmierkurs Python II Stefan Thater & Michaela Regneri Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Übersicht Topologische Sortierung (einfach) Kürzeste Wege finden
MehrFortgeschrittene Netzwerk- und Graph-Algorithmen
Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester
MehrTheoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme
Theoretische Informatik Exkurs Rainer Schrader Exkurs: Komplexität von n Institut für Informatik 13. Mai 2009 1 / 34 2 / 34 Gliederung Entscheidungs- und Approximationen und Gütegarantien zwei Greedy-Strategien
MehrTechnische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung
Mehr10. Übungsblatt zu Algorithmen I im SS 2010
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders G.V. Batz, C. Schulz, J. Speck 0. Übungsblatt zu Algorithmen I im SS 00 http//algo.iti.kit.edu/algorithmeni.php
MehrAlgorithmen und Datenstrukturen 2-1. Seminar -
Algorithmen und Datenstrukturen 2-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010 Outline 1. Übungsserie: 3 Aufgaben, insgesamt 30 28 Punkte A1 Spannbäume (10 8
Mehr12.4 Traveling Salesman Problem
96 KOMBINATORISCHE SUCHE.4 Traveling Salesman Problem Definition.3(TSP, Problem des Handlungsreisenden): Wir betrachten einen gerichteten, gewichteten Graphen G = (V,E) mit K : V R. K({u,v}) sind die Kosten
MehrVery simple methods for all pairs network flow analysis
Very simple methods for all pairs network flow analysis obias Ludes 0.0.0. Einführung Um den maximalen Flusswert zwischen allen Knoten eines ungerichteten Graphen zu berechnen sind nach Gomory und Hu nur
MehrAlgorithmische Methoden zur Netzwerkanalyse
Algorithmische Methoden zur Netzwerkanalyse Juniorprof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische
MehrVery simple methods for all pairs network flow analysis
Very simple methods for all pairs network flow analysis Tobias Ludes 02.07.07 Inhalt Einführung Algorithmen Modifikation der Gomory-Hu Methode Einführung Nach Gomory-Hu nur n-1 Netzwerk-Fluss- Berechnungen
MehrÜberblick. Kap. 1.4: Minimum Weight Perfect Matching. 1.3 Blüten-Schrumpf Algorithmus für Maximum Matching
Kap. 1.4: Minimum Weight Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS11 4. VO 6. November 2006 Überblick kurze Wiederholung: 1.2 Blüten-Schrumpf-Algorithmus für Perfektes Matching
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Minimale Spannbäume Maike Buchin 18.7., 20.7.2017 Einführung Motivation: Verbinde Inseln mit Fähren oder Städte mit Schienen und verbrauche dabei möglichst wenig Länge. Problem:
Mehr3. Musterlösung. Problem 1: Boruvka MST
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner. Musterlösung Problem : Boruvka MST pt (a) Beweis durch Widerspruch. Sei T MST von G, e die lokal minimale Kante eines
Mehr23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108
23. November 2011 Betweenness Centrality Closeness Centrality H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108 Betweenness Centrality Grundlegende Idee: Ein Knoten ist wichtig, wenn er auf
MehrTECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 11 Prof. Dr. Helmut Seidl, S. Pott,
Mehr3.2 Generischer minimaler Spannbaum-Algorithmus
3.2 Generischer minimaler Spannbaum-Algorithmus Initialisiere Wald F von Bäumen, jeder Baum ist ein singulärer Knoten (jedes v V bildet einen Baum) while Wald F mehr als einen Baum enthält do wähle einen
MehrWiederholung zu Flüssen
Universität Konstanz Methoden der Netzwerkanalyse Fachbereich Informatik & Informationswissenschaft SS 2008 Prof. Dr. Ulrik Brandes / Melanie Badent Wiederholung zu Flüssen Wir untersuchen Flüsse in Netzwerken:
MehrVorlesung 4 BETWEENNESS CENTRALITY
Vorlesung 4 BETWEENNESS CENTRALITY 101 Aufgabe! Szenario: Sie arbeiten bei einem sozialen Online-Netzwerk. Aus der Netzwerk-Struktur Ihrer Benutzer sollen Sie wichtige Eigenschaften extrahieren. [http://www.fahrschule-vatterodt.de/
MehrEffiziente Algorithmen I
9. Präsenzaufgabenblatt, WiSe 2013/14 Übungstunden am 13.01. & 15.01.2014 Aufgabe Q Gegeben sei ein Fluss-Netzwerk mit Digraph D = (V, A), Knotenkapazitäten c(u, v) 0, Quelle s und Senke t. Kann sich der
Mehr1 Kürzeste Pfade in Graphen
Praktikum Algorithmen-Entwurf (Teil 3) 03.11.2011 1 1 Kürzeste Pfade in Graphen Es sei ein gerichteter Graph G = (V, E) mit V = n Knoten, E = m Kanten und Kantengewichten c : E R gegeben. Ein Pfad in G
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 13 (8.6.2016) Graphenalgorithmen I Algorithmen und Komplexität Graphen Knotenmenge V, typischerweise n V Kantenmenge E, typischerweise
MehrAufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.
Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. a) Es seien W 1 = (V, E 1 ), W 2 = (V, E 2 ) Untergraphen von G, die beide Wälder sind. Weiter gelte E 1 > E 2.
MehrGraphdurchmusterung, Breiten- und Tiefensuche
Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Kürzeste Wege Maike Buchin 4. und 6.7.2017 Einführung Motivation: Bestimmung von kürzesten Wegen ist in vielen Anwendungen, z.b. Routenplanung, ein wichtiges Problem. Allgemeine
MehrKap. 6.6: Kürzeste Wege
Kap. 6.6: Kürzeste Wege Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 1./. VO DAP SS 009./9. Juli 009 1 Nachtest für Ausnahmefälle Di 1. Juli 009, 16:00 Uhr,
MehrQuicksort ist ein Divide-and-Conquer-Verfahren.
. Quicksort Wie bei vielen anderen Sortierverfahren (Bubblesort, Mergesort, usw.) ist auch bei Quicksort die Aufgabe, die Elemente eines Array a[..n] zu sortieren. Quicksort ist ein Divide-and-Conquer-Verfahren.
MehrÜberblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP
Kap..1 Heuristiken Kap.. Approximative Algorithmen und Gütegarantien Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 3. VO DAP SS 008 14. Juli 009 Überblick
MehrBäume und Wälder. Definition 1
Bäume und Wälder Definition 1 Ein Baum ist ein zusammenhängender, kreisfreier Graph. Ein Wald ist ein Graph, dessen Zusammenhangskomponenten Bäume sind. Ein Knoten v eines Baums mit Grad deg(v) = 1 heißt
MehrKap. 7.1 Heuristiken Kap. 7.2 Approximative Algorithmen und Gütegarantien
Kap. 7.1 Heuristiken Kap. 7.2 Approximative Algorithmen und Gütegarantien Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 23. VO DAP2 SS 2008 14. Juli 2009
Mehr4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1
Allgemeines. Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition.. (a) Ein Graph G =(V, E) heißt kreisfrei, wenn er keinen Kreis besitzt. Beispiel: Ein kreisfreier Graph: FG KTuEA, TU Ilmenau
MehrEffiziente Algorithmen I 11. Übungsblatt, Wintersemester 2015/16 Abgabetermin:
11 11. Übungsblatt, Wintersemester 2015/16 Abgabetermin: 19.01.2016 Aufgabe 29 Bestimmen Sie mit der Stepping-Stone-ethode einen Transportplan mit minimalen Kosten für das klassische Transportproblem mit
MehrÜbungsblatt 5. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 5 Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Ausgabe 20. Dezember 2017 Abgabe 16. Januar 2018, 11:00 Uhr
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil 4 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 24. April 2019 [Letzte Aktualisierung: 24/04/2019,
MehrWie wird ein Graph dargestellt?
Wie wird ein Graph dargestellt? Für einen Graphen G = (V, E), ob gerichtet oder ungerichtet, verwende eine Adjazenzliste A G : A G [i] zeigt auf eine Liste aller Nachbarn von Knoten i, wenn G ungerichtet
MehrBemerkung: Es gibt Algorithmen für minimale Spannbäume der Komplexität O(m + n log n) und, für dünnbesetzte Graphen, der Komplexität O(m log n), wobei
Bemerkung: Es gibt Algorithmen für minimale Spannbäume der Komplexität O(m + n log n) und, für dünnbesetzte Graphen, der Komplexität O(m log n), wobei { log x = min n N n: log (log ( log(x) )) } {{ } n
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil 6 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 16. Mai 2018 [Letzte Aktualisierung: 18/05/2018,
MehrBäume und Wälder. Definition 1
Bäume und Wälder Definition 1 Ein Baum ist ein zusammenhängender, kreisfreier Graph. Ein Wald ist ein Graph, dessen Zusammenhangskomponenten Bäume sind. Ein Knoten v eines Baums mit Grad deg(v) = 1 heißt
MehrKap. 6.6: Kürzeste Wege
0.0.00 Nachtest für Ausnahmefälle Kap..: Kürzeste Wege Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund./. VO DAP SS 00./. Juli 00 Di. Juli 00, :00 Uhr, OH, R.
MehrInformatik II, SS 2016
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 12 (4.6.2018) Graphenalgorithmen I Yannic Maus Algorithmen und Komplexität Graphen Knotenmenge V, typischerweise n V Kantenmenge E, typischerweise
MehrDatenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität
Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Clustering: Partitioniere Objektmenge in Gruppen(Cluster), so dass sich Objekte in einer Gruppe ähnlich sind und Objekte
Mehr2.4 Starke Zusammenhangskomponenten in Digraphen
Starke Zusammenhangskomponenten Einleitung 2.4 Starke Zusammenhangskomponenten in Digraphen Definition 2.4.1 Zwei Knoten v und w in einem Digraphen G heißen äquivalent, wenn v w und w v gilt. Notation:
Mehr16. November 2011 Zentralitätsmaße. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 87
16. November 2011 Zentralitätsmaße H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 87 Darstellung in spektraler Form Zentralität genügt Ax = κ 1 x (Herleitung s. Tafel), daher ist x der Eigenvektor
MehrEffiziente Algorithmen I
H 10. Präsenzaufgabenblatt, Wintersemester 2015/16 Übungstunde am 18.01.2015 Aufgabe Q Ein Reiseveranstalter besitzt ein Flugzeug, das maximal p Personen aufnehmen kann. Der Veranstalter bietet einen Flug
MehrEDM, Algorithmen und Graphenspeicherung
EDM, Algorithmen und Graphenspeicherung 1 Graphenspeicherung Gespeichert werden soll ein Graph G = (V, E) bzw. Digraph D = (V, A). Man beachte: E ( ) V 2 bzw. E V 2 1.1 Adjazenzmatrix Graph G: A = (a vw
MehrAlgorithmische Graphentheorie
Algorithmische Graphentheorie Vorlesung 4: Suchstrategien Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 14. April 2017 HALBORDNUNG TOPOLOGISCHE ORDNUNG TOPOLOGISCHES
MehrBetriebswirtschaftliche Optimierung
Institut für Statistik und OR Uni Graz 1 Das Travelling Salesperson Problem 2 Das Travelling Salesperson Problem Zentrales Problem der Routenplanung Unzählige wissenschaftliche Artikel theoretischer sowie
MehrSatz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,...
Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,..., k, so dass gilt M = k c i P i i=1 k c i = r. i=1 Diskrete Strukturen 7.1 Matchings
MehrAlgorithmen für schwierige Probleme
Algorithmen für schwierige Probleme Britta Dorn Wintersemester 2011/12 24. November 2011 Farbkodierung Beispiel Longest Path Longest Path gegeben: G = (V, E) und k N. Frage: Gibt es einen einfachen Pfad
Mehrlässt sich auch ableiten, dass es einen augmentierenden Pfad der Länge höchstens
Praktikum Algorithmen-Entwurf (Teil 5)..5 Matchings in Graphen Es sei ein ungerichteter Graph G = (V, E) gegeben. Ein Matching in G ist eine Teilmenge M E, so dass keine zwei Kanten aus M einen Endpunkt
Mehr