Algorithmen für Routenplanung 5. Sitzung, Sommersemester 2010 Thomas Pajor 10. Mai 2010
|
|
- Sofie Kerner
- vor 6 Jahren
- Abrufe
Transkript
1 Algorithmen für Routenplanung 5. Sitzung, Sommersemester 00 Thomas Pajor 0. Mai 00 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK I PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft
2 Nächstes Mal Special Guest Daniel Delling Ehem. Dokotorand am ITI Wagner Forschungsbereich: Routenplanung SHARC-Routing Time-Dependent, Multi-Criteria Jetzt: Microsoft Research Silicon Valley Alternativrouten in Straßennetzen Vorlesung am 7. Mai 00, 4:00 Uhr
3 Letztes Mal Arc-Flags Hierarchische Techniken s t
4 Reach prefix(p,u) suffix(p,u) s u t Definition: sei P = s,..., u,..., t Pfad durch u dann Reach von u bezüglich P: r P (u) := min{len(p su ), len(p ut )} Reach von u: Maximum seiner Reachwerte bezüglich aller kürzesten Pfade durch u: r(u) := max{r P (u) P kürzester Weg mit u P}
5 Reach-Pruning s t somit: Reach r(u) von u gibt Suffix oder Prefix des längsten kürzesten Weges durch u wenn für u während Query r(u) < d(s, u) und r(u) < d(u, t) gilt, kann u geprunt werden s u t r P (u) t s r P (u) = r(u)
6 Reach Dijkstra - Pseudocode ReachDijkstra(G = (V, E), s, t) d[s] = 0 Q.clear(), Q.add(s, 0) while!q.empty() do u Q.deleteMin() if r(u) < d[u] and r(u) < d(u, t) then continue forall edges e = (u, v) E do if d[u] + len(e) < d[v] then d[v] d[u] + len(e) if v Q then Q.decreaseKey(v, d[v]) else Q.insert(v, d[v])
7 Probleme Probleme: Lösung: Abfrage r(u) < d(u, t) Knotenpotential π(u) gibt untere Schranke zum Ziel wenn π(t) = 0 benutze A* für Abschätzung (euklidisch oder Landmarken) gut kombinierbar mit A*
8 Probleme Probleme: Lösung: Abfrage r(u) < d(u, t) Knotenpotential π(u) gibt untere Schranke zum Ziel wenn π(t) = 0 benutze A* für Abschätzung (euklidisch oder Landmarken) gut kombinierbar mit A*
9 Potentiale durch Landmarken Idee: wähle Landmarken L aus V ( 6) berechne Distanzen von und zu allen Landmarken dann gilt: für alle u V. somit ist d(u, t) d(l, t) d(l, u) d(u, t) d(u, L ) d(t, L ) π(u) = max{max{d(l, t) d(l, u), d(u, l) d(t, l)}} l L ein gültiges Potential
10 A* + Reach A*Reach(G = (V, E), s, t) d[s] = 0 Q.clear(), Q.add(s, 0) while!q.empty() do u Q.deleteMin() if r(u) < d[u] and r(u) < π(u) then continue forall edges e = (u, v) E do if d[u] + len(e) < d[v] then d[v] d[u] + len(e) if v Q then Q.decreaseKey(v, d[v] + π(v)) else Q.insert(v, d[v] + π(v))
11 Nachteil A*Reach Problem: Potentiale nicht verfügbar Potentiale können schlechte Abschätzung sein schwaches Pruning Lösung: benutze bidirektionalen Anfragealgorithmus zwei Ansätze: self-bounding distance-bounding
12 Bidir. Self-Bounding Reach-Dijkstra Idee (für Vorwärtssuche): prune, wenn d[u] > r(u) gilt überlasse den Check d(u, t) > r(u) der Rückwärtssuche Rückwärtssuche analog (umgekehrt) ändere Stoppkriterium neues Stoppkriterium: stoppe Suche in eine Richtung wenn Queue leer oder es gilt: minkey(q) > µ/ stoppe Anfrage, wenn beide Suchrichtungen gestoppt haben Korrektheit in Übung
13 Bidir. Dist.-Bounding Reach-Dijkstra Idee (für Vorwärtssuche): wenn u von Rückwärtssuche noch nicht erreicht, ist minkey( Q ) eine untere Schranke für d(u, t) wenn u von Rückwärtssuche abgearbeitet, d(u, t) bekannt d f (s, u) s u minkey( Q ) t somit: prune, wenn r(u) < d f [u] und r(u) < min{d b [u], minkey( Q )} Stoppkriterium bleibt erhalten (also minkey( Q ) + minkey( Q ) µ) wenn als Alternierungsstrategie min{minkey( Q ), minkey( Q )} gewählt, gilt für Vorwärtssuche: d f [u] minkey( Q ) kann zusätzlich mit A* kombiniert werden
14 Optimierungen mögliche Verbesserungen: Early (Kanten-)Pruning: (u, v) muss nicht relaxiert werden, wenn gilt: d[u] + len(u, v) > r(v) und r(v) < min{d b [u], minkey( Q )} Kanten sortieren: sortiere ausgehende Kanten (u, v i ) absteigende nach r(v i ) wenn Kante relaxiert wird mit r(v i ) < minkey( Q ) und r(v i ) < d f [u] müssen die restlichen Kanten ausgehend von u nicht relaxiert werden
15 Vorberechnung: Erster Ansatz Wie kann man Reach-Werte vorberechnen? initialisieren r(u) = 0 für alle Knoten für jeden Knoten u konstruiere kürzeste Wege-Baum höhe von Knoten v: Abstand von v zum am weitesten entfernten Nachfolger für jeden Knoten v: r(v) = max{r(v), min{d(u, v), height(v)}} v height(v) altes Problem: Vorberechnung basiert auf all-pair-shortest paths somit wieder 500 Jahre Vorberechnung
16 Approximation Beobachtung: es genügt, für jeden Knoten eine obere Schranke des Reach-Wertes zu haben Problem: untere Schranken einfach zu finden: breche Konstruktion der Bäume einfach bei bestimmter Größe ab aber: untere Schranken sind unbrauchbar Berechnung von oberen Schranken deutlich schwieriger
17 Der RE-Algorithmus Erweiterungen gegenüber reinem Reach: Kanten-Reach für Vorberechnung obere Schranken durch iterative Berechnung Shortcuts Ergebnisse: schnellere Vorberechnung deutlich schnellere Anfragen
18 Kanten-Reach prefix(p,(u,v)) s u v suffix(p,(u,v)) t Definition: sei P = s,..., u, v,..., t Pfad durch (u, v) Reach von (u, v) bezüglich P: r P ((u, v)) := min{len(p sv ), len(p ut )} Reach von (u, v): Maximum seiner Reachwerte bezüglich aller kürzester Pfade durch (u, v): r((u, v)) := max{r P ((u, v)) P kürzester Weg mit (u, v) P}
19 Approx. Berechnung von Kanten-Reach Idee: gegeben: Graph und Schranke ɛ gesucht: Gültige obere Reach-Schranken für alle Kanten mir reach kleiner ɛ alle andere Kanten sollen reach von gesetzt bekommen dabei dürfen Kanten mit reach kleiner ɛ auch den Wert gesetzt bekommen, also false negatives erlaubt Problem: um r(u, v) < ɛ zu garantieren, müssen alle kürzesten Wege durch (u, v) berücksichtigt werden. Beobachtung: es gibt Pfad P st = s, s,..., u, v,..., t, t Pfad durch (u, v) mit r Pst (u, v) ɛ und r Ps t (u, v) < ɛ und r Pst (u, v) < ɛ genannt ɛ-minimal bezüglich (u, v) es reicht, ɛ-minimale Pfade zu finden (ohne Beweis)
20 Approx. Berechnung von Kanten-Reach II partieller KW-Baum T w von jedem w V stoppe, wenn garantiert, dass alle ɛ-minimalen Pfade, die bei w starten gefunden worden sind u ist innerer Knoten: u = w oder d(x, u) < ɛ mit x erster Knoten nach w zwischen u und w stoppe, wenn Queue leer oder wenn Abstand von allen Knoten in der Queue zu nähestem inneren Knoten bzgl. T w größer gleich ɛ ist für jeden inneren Knoten u berechne Höhe bezüglich T w reach für (u, v) bezüglich T w ist min{d(w, u), height Tw (u)} r(u, v) = max w V {r Tw (u, v)} wenn r(u, v) ɛ setze r(u, v) = < ɛ ɛ
21 Iterative Berechnung von Knoten-Reach Berechnen von Reach: wähle ɛ frei iterativ, solange E berechne obere Schranken mit vorherigem Verfahren entferne alle Kanten mit reach < ɛ aus Graphen setze ɛ = k ɛ wandle Kanten-Reach in Knoten-Reach um Umrechnung: r(u) min { max i {r(v i, u)}, max i {r(u, w i )} } v v u w w v 3 w 3
22 Penalties Problem: durch entfernen von Knoten und Kanten ändern sich die Längen der kürzesten Wege Lösung: halte für jeden Knoten zwei Werte vor: inpenalty(u) : maximum der reachs entfernter (w, u) Kanten outpenalty(u) : maximum der reachs entfernter (u, w) Kanten während Vorberechnung: Hänge an jeden Knoten v Pseudoknoten v mit Abstand outpenalty(v) bestimmte neue Höhe height p(u) dann r Tw (u, v) = min{d(w, u) + inpenalty(w), height p(u)}
23 Penalties Problem: durch entfernen von Knoten und Kanten ändern sich die Längen der kürzesten Wege Lösung: halte für jeden Knoten zwei Werte vor: inpenalty(u) : maximum der reachs entfernter (w, u) Kanten outpenalty(u) : maximum der reachs entfernter (u, w) Kanten während Vorberechnung: Hänge an jeden Knoten v Pseudoknoten v mit Abstand outpenalty(v) bestimmte neue Höhe height p(u) dann r Tw (u, v) = min{d(w, u) + inpenalty(w), height p(u)}
24 Penalties Problem: durch entfernen von Knoten und Kanten ändern sich die Längen der kürzesten Wege Lösung: halte für jeden Knoten zwei Werte vor: inpenalty(u) : maximum der reachs entfernter (w, u) Kanten outpenalty(u) : maximum der reachs entfernter (u, w) Kanten während Vorberechnung: Hänge an jeden Knoten v Pseudoknoten v mit Abstand outpenalty(v) bestimmte neue Höhe height p(u) dann r Tw (u, v) = min{d(w, u) + inpenalty(w), height p(u)}
25 Penalties Problem: durch entfernen von Knoten und Kanten ändern sich die Längen der kürzesten Wege Lösung: halte für jeden Knoten zwei Werte vor: inpenalty(u) : maximum der reachs entfernter (w, u) Kanten outpenalty(u) : maximum der reachs entfernter (u, w) Kanten während Vorberechnung: Hänge an jeden Knoten v Pseudoknoten v mit Abstand outpenalty(v) bestimmte neue Höhe height p(u) dann r Tw (u, v) = min{d(w, u) + inpenalty(w), height p(u)}
26 Penalties Problem: durch entfernen von Knoten und Kanten ändern sich die Längen der kürzesten Wege Lösung: halte für jeden Knoten zwei Werte vor: inpenalty(u) : maximum der reachs entfernter (w, u) Kanten outpenalty(u) : maximum der reachs entfernter (u, w) Kanten während Vorberechnung: Hänge an jeden Knoten v Pseudoknoten v mit Abstand outpenalty(v) bestimmte neue Höhe height p(u) dann r Tw (u, v) = min{d(w, u) + inpenalty(w), height p(u)}
27 Penalties Problem: durch entfernen von Knoten und Kanten ändern sich die Längen der kürzesten Wege Lösung: halte für jeden Knoten zwei Werte vor: inpenalty(u) : maximum der reachs entfernter (w, u) Kanten outpenalty(u) : maximum der reachs entfernter (u, w) Kanten während Vorberechnung: Hänge an jeden Knoten v Pseudoknoten v mit Abstand outpenalty(v) bestimmte neue Höhe height p(u) dann r Tw (u, v) = min{d(w, u) + inpenalty(w), height p(u)}
28 Penalties Problem: durch entfernen von Knoten und Kanten ändern sich die Längen der kürzesten Wege in = out Lösung: halte für jeden Knoten zwei Werte vor: inpenalty(u) : maximum der reachs entfernter (w, u) Kanten outpenalty(u) : maximum der reachs entfernter (u, w) Kanten während Vorberechnung: Hänge an jeden Knoten v Pseudoknoten v mit Abstand outpenalty(v) bestimmte neue Höhe height p(u) dann r Tw (u, v) = min{d(w, u) + inpenalty(w), height p(u)}
29 Penalties Problem: durch entfernen von Knoten und Kanten ändern sich die Längen der kürzesten Wege Lösung: halte für jeden Knoten zwei Werte vor: inpenalty(u) : maximum der reachs entfernter (w, u) Kanten outpenalty(u) : maximum der reachs entfernter (u, w) Kanten während Vorberechnung: Hänge an jeden Knoten v Pseudoknoten v mit Abstand outpenalty(v) bestimmte neue Höhe height p(u) dann r Tw (u, v) = min{d(w, u) + inpenalty(w), height p(u)} in = out
30 Penalties Problem: durch entfernen von Knoten und Kanten ändern sich die Längen der kürzesten Wege Lösung: halte für jeden Knoten zwei Werte vor: inpenalty(u) : maximum der reachs entfernter (w, u) Kanten outpenalty(u) : maximum der reachs entfernter (u, w) Kanten während Vorberechnung: Hänge an jeden Knoten v Pseudoknoten v mit Abstand outpenalty(v) bestimmte neue Höhe height p(u) dann r Tw (u, v) = min{d(w, u) + inpenalty(w), height p(u)}
31 Shortcuts Beobachtung: lange modellierte Pfade in Straßennetzwerken erscheint unnötig, alle diese Knoten anzuschauen Idee: füge iterativ Shortcuts ein Shortcuts verkleinern reach Werte
32 Shortcuts Beobachtung: lange modellierte Pfade in Straßennetzwerken erscheint unnötig, alle diese Knoten anzuschauen Idee: füge iterativ Shortcuts ein Shortcuts verkleinern reach Werte
33 Shortcuts Beobachtung: lange modellierte Pfade in Straßennetzwerken erscheint unnötig, alle diese Knoten anzuschauen Idee: füge iterativ Shortcuts ein Shortcuts verkleinern reach Werte
34 Shortcuts Beobachtung: lange modellierte Pfade in Straßennetzwerken erscheint unnötig, alle diese Knoten anzuschauen Idee: füge iterativ Shortcuts ein Shortcuts verkleinern reach Werte
35 Shortcuts Beobachtung: lange modellierte Pfade in Straßennetzwerken erscheint unnötig, alle diese Knoten anzuschauen Idee: füge iterativ Shortcuts ein Shortcuts verkleinern reach Werte
36 Shortcuts Beobachtung: lange modellierte Pfade in Straßennetzwerken erscheint unnötig, alle diese Knoten anzuschauen Idee: füge iterativ Shortcuts ein Shortcuts verkleinern reach Werte
37 Shortcuts Beobachtung: lange modellierte Pfade in Straßennetzwerken erscheint unnötig, alle diese Knoten anzuschauen Idee: 0 0 füge iterativ Shortcuts ein Shortcuts verkleinern reach Werte
38 Shortcuts Beobachtung: lange modellierte Pfade in Straßennetzwerken erscheint unnötig, alle diese Knoten anzuschauen 0 Idee: füge iterativ Shortcuts ein Shortcuts verkleinern reach Werte
39 Kontraktion des Graphen Vorgehen: überspringe iterativ Knoten v aus Graphen für jede Kante eingehende Kante (u, v) und ausgehende (v, w) füge Shortcut (u, w) mit len(u, w) = len(u, v) + len(v, w) ein wenn Kante schon existiert: len(u, w) = min{len(u, w), len(u, v) + len(v, w)} r(u, v) = len(u, v) + outpenalty(v), r(v, w) = len(v, w) + inpenalty(v) entferne (u, v), (v, w) und v aus Graphen Reihenfolge: Reihenfolge wie Knoten entfernt werden, ändert das Ergebnis benutze Priority Queue zum Verwalten, wenn als nächstes Expansion c(v) = deg in (v) deg out (v)/(deg in (v) + deg out (v)) stoppe wenn c(v) > C, (meist C =.5 gewählt)
40 Verfeinerung der Reach Werte Problem: Idee: Approximation schaukelt sich auf hohe Werte werden massiv überschätzt diese Knoten genau die wichtige für die Anfragen nach voller Vorberechnung extrahiere δ Knoten mit höchstem Reach berechne exakten Reach mit APSP für diesen Subgraphen (mit Penalties) wenn neuer Reachwert kleiner, aktualisiere
41 RE Vorberechnung: wähle ɛ frei iterativ, solange E Kontrahiere Graphen berechne obere Schranken mit vorherigem Verfahren entferne alle Kanten mit reach < ɛ aus Graphen setze ɛ = k ɛ wandle Kanten-Reach in Knoten-Reach um verfeinere Knoten-Reach Werte Anfrage: Bidirectional Distance-Bounding Reach-Dijkstra auf Graphen mit Shortcuts
42 RE Vorberechnung: wähle ɛ frei iterativ, solange E Kontrahiere Graphen berechne obere Schranken mit vorherigem Verfahren entferne alle Kanten mit reach < ɛ aus Graphen setze ɛ = k ɛ wandle Kanten-Reach in Knoten-Reach um verfeinere Knoten-Reach Werte Anfrage: Bidirectional Distance-Bounding Reach-Dijkstra auf Graphen mit Shortcuts
43 RE Vorberechnung: wähle ɛ frei iterativ, solange E Kontrahiere Graphen berechne obere Schranken mit vorherigem Verfahren entferne alle Kanten mit reach < ɛ aus Graphen setze ɛ = k ɛ wandle Kanten-Reach in Knoten-Reach um verfeinere Knoten-Reach Werte Anfrage: Bidirectional Distance-Bounding Reach-Dijkstra auf Graphen mit Shortcuts
44 Entpacken von Shortcuts Problem: Anfrage auf Graphen mit Shortcuts Distanzen bleiben erhalten kürzester Weg enthält jetzt viele Shortcuts schlecht, wenn wir den gesamten Pfad haben wollen Lösung jeder Shortcut überspringt genau einen Knoten speicher Mittelknoten für jeden Shortcut entpacke rekursiv bei Bedarf
45 Entpacken von Shortcuts Problem: Anfrage auf Graphen mit Shortcuts Distanzen bleiben erhalten kürzester Weg enthält jetzt viele Shortcuts schlecht, wenn wir den gesamten Pfad haben wollen Lösung jeder Shortcut überspringt genau einen Knoten speicher Mittelknoten für jeden Shortcut entpacke rekursiv bei Bedarf
46 Kombination mit ALT Beobachtung: RE-Algorithmus hierarchisch nicht zielgerichtet gut kombinierbar mit ALT REAL-Algorithmus RE + ALT Vorberechnung unabhängig voneinander Anfragen mit Bidirectional Distance-Bounding ALT-Reach-Dijkstra auf Graphen mit Shortcuts
47 Partielle Landmarken Beobachtung: Landmarken brauchen viel Speicher während Anfragen werden meist Knoten mit hohem Reach betrachtet s t Idee: speichere Landmarken-Informationen nur für Knoten mit Reach > R -phasiger Anfrage Algorithmus reiner Reach, relaxiere keine Kanten ausgehend von Knoten mit Reach > R wenn kürzester Weg gefunden, fertig sonst starte REAL Query von allen Knoten mit > R
48 Partielle Landmarken Beobachtung: Landmarken brauchen viel Speicher während Anfragen werden meist Knoten mit hohem Reach betrachtet s t Idee: speichere Landmarken-Informationen nur für Knoten mit Reach > R -phasiger Anfrage Algorithmus reiner Reach, relaxiere keine Kanten ausgehend von Knoten mit Reach > R wenn kürzester Weg gefunden, fertig sonst starte REAL Query von allen Knoten mit > R
49 Partielle Landmarken Beobachtung: Landmarken brauchen viel Speicher während Anfragen werden meist Knoten mit hohem Reach betrachtet s t Idee: speichere Landmarken-Informationen nur für Knoten mit Reach > R -phasiger Anfrage Algorithmus reiner Reach, relaxiere keine Kanten ausgehend von Knoten mit Reach > R wenn kürzester Weg gefunden, fertig sonst starte REAL Query von allen Knoten mit > R
50 Partielle Landmarken Beobachtung: Landmarken brauchen viel Speicher während Anfragen werden meist Knoten mit hohem Reach betrachtet s t Idee: speichere Landmarken-Informationen nur für Knoten mit Reach > R -phasiger Anfrage Algorithmus reiner Reach, relaxiere keine Kanten ausgehend von Knoten mit Reach > R wenn kürzester Weg gefunden, fertig sonst starte REAL Query von allen Knoten mit > R
51 Proxy Knoten Problem: REAL braucht Potential von jedem Knoten zu t und s r(s) und/oder r(t) könnten kleiner R sein keine Abstandswerte von den Landmarken zu s und t Lösung: bestimme Proxy-Knoten t für t (s analog), r(t ) R neue Ungleichungen: d(u, t) d(u, l ) d(t, l ) d(t, t ) d(u, t) d(l, t ) d(l, u) d(t, t )
52 Proxy Knoten Problem: REAL braucht Potential von jedem Knoten zu t und s r(s) und/oder r(t) könnten kleiner R sein keine Abstandswerte von den Landmarken zu s und t Lösung: bestimme Proxy-Knoten t für t (s analog), r(t ) R neue Ungleichungen: d(u, t) d(u, l ) d(t, l ) d(t, t ) d(u, t) d(l, t ) d(l, u) d(t, t ) l l u t t
53 Experimente Eingaben: Straßennetzwerke Europa: 8 Mio. Knoten, 4 Mio. Kanten USA: Mio. Knoten, 56 Mio. Kanten Evaluation: Vorberechnung in Minuten und zusätzliche Bytes pro Knoten durchschnittlicher Suchraum (#abgearbeitete Knoten) und Suchzeiten (in ms) von Zufallsanfragen
54 RE mit/ohne Shortcuts Eingabe: BayArea: 330k Knoten Beobachtung: Vorb. Anfrage shortcuts reach time [min] #settled time [ms] nein approx nein exakt ja approx ja exakt Shortcuts reduzieren Vorberechnungszeit beschleunigen Anfragen approximative Vorberechnung deutlich schneller Verlust in Anfragen nicht sehr groß
55 RE: Verfeinerung Beobachtung: USA Vorb. Anfrage δ time [min] #settled time Verfeinerung bringt bis zu 5% aber zu hohe Werte erhöhen Vorberechnungszeit zu massiv
56 Zufallsanfragen: RE und REAL Vorberechnung Anfrage Zeit Platz Such Zeit landmarks sparsity [min] [byte/n] raum [ms] Beobachtungen: Zuschalten von Landmarken zahlt sich aus Partielle Landmarkeninformationen reduziert Platzverbrauch
57 Übersicht: bisherige Techniken Vorberechnung Anfrage Zeit Platz Such Zeit [h:m] [byte/n] raum [ms] Beschl. Dijkstra 0: ALT-6 : ALT-64 : Arc-Flags (8) 7: RE : REAL-(6,) : REAL-(64,6) : Beobachtung: REAL ähnliche Performance wie Arc-Flags deutlich kürzere Vorberechnungszeiten höherer Speicherverbrauch
58 Zusammenfassung Reach prunen von Knoten auf Basis von Zentralitätswerten benötigt Abstand von s und t Abstand zu t durch Potential und/oder mit bidirektionalem Algorithmus Problem: Vorberechnung basiert auf APSP
59 Zusammenfassung RE/REAL Erweiterung von Reach Kanten-Reach Shortcuts iteratives Berechnen von Reach Verfeinerung REAL: Reach + ALT partielle Landmarken
60 Ideensammlung Wie Suche hierarchisch machen? identifiziere wichtige Knoten mit Zentralitätsmaß überspringe unwichtige Teile des Graphen Jetzt: letzteres
61 Hierarchische Techniken Vorläufer Highway Hierarchies (HH), Highway Node Routing (HNR) Idee: Identifiziere Hierarchie im Netzwerk und überspringe Kompliziert Contraction Hierarchies: n-level Hierarchie Hierarchie-Level durch Knotenordnung n Knoten- und Kantenreduktionen massive Vereinfachung gegenüber HH und HNR!
62 Idee Vorgehen ordne Knoten nach Wichtigkeit kontrahier Knoten in dieser Ordnung. Knoten v wird kontrahiert durch 3 KONTRAHIERE(v) für alle Paare (u, v) und (v, w) von Kanten tue wenn (u, v, w) eindeutiger kürzester Weg dann Füge Shortcut (u, w) mit Gewicht len(u, v) + len(v, w) ein Query relaxiert nur Kanten zu wichtigeren Knoten
63 Beispiel: Konstruktion
64 Beispiel: Konstruktion
65 Beispiel: Konstruktion
66 Beispiel: Konstruktion
67 Beispiel: Konstruktion
68 Beispiel: Konstruktion
69 Konstruktion wie identifiziert man nötige Shortcuts? lokale Suchen von allen Knoten u der eingehenden Kanten (u, v) ignoriere Knoten v während der Suche füge shortcut (u, w) ein wenn d(u, w) > w(u, v) + w(v, w) v Optimierungen: limitiere Suchräume der lokalen Suchen limitiere hop-zahl der Suchen Spezialfälle: -hop-suche, -hop-suche
70 Konstruktion wie identifiziert man nötige Shortcuts? lokale Suchen von allen Knoten u der eingehenden Kanten (u, v) ignoriere Knoten v während der Suche füge shortcut (u, w) ein wenn d(u, w) > w(u, v) + w(v, w) v Optimierungen: limitiere Suchräume der lokalen Suchen limitiere hop-zahl der Suchen Spezialfälle: -hop-suche, -hop-suche
71 Konstruktion wie identifiziert man nötige Shortcuts? lokale Suchen von allen Knoten u der eingehenden Kanten (u, v) ignoriere Knoten v während der Suche füge shortcut (u, w) ein wenn d(u, w) > w(u, v) + w(v, w) v Optimierungen: limitiere Suchräume der lokalen Suchen limitiere hop-zahl der Suchen Spezialfälle: -hop-suche, -hop-suche
72 Knotenordnung benutze priority queue, Knoten v wird gewichtet durch lineare Kombination: Kanten-Differenz #shortcuts #Kanten inzident zu v Uniformität e.g. #entfernter Nachbarn Kosten der Kontraktion z.b. Suchraum während Kontraktion Globale Zentralitäts-Maße... Integrierte Konstruktion and Ordnung: entferne Knoten v mit höchster Priorität kontrahiere Knoten v 3 aktualisiere Prioritäten der anderen Knoten v 3 =
73 Anfragen modifizierter bidirektionaler Dijkstra algorithmus upward graph G := (V, E ) with E := {(u, v) E : u < v} downward graph G := (V, E ) with E := {(u, v) E : u > v} Vorwärts-Suche in G and Rückwärtssuche in G node order s t 5
74 Anfragen modifizierter bidirektionaler Dijkstra algorithmus upward graph G := (V, E ) with E := {(u, v) E : u < v} downward graph G := (V, E ) with E := {(u, v) E : u > v} Vorwärts-Suche in G and Rückwärtssuche in G node order s t 5
75 Anfragen modifizierter bidirektionaler Dijkstra algorithmus upward graph G := (V, E ) with E := {(u, v) E : u < v} downward graph G := (V, E ) with E := {(u, v) E : u > v} Vorwärts-Suche in G and Rückwärtssuche in G node order s t 5
76 Anfragen modifizierter bidirektionaler Dijkstra algorithmus upward graph G := (V, E ) with E := {(u, v) E : u < v} downward graph G := (V, E ) with E := {(u, v) E : u > v} Vorwärts-Suche in G and Rückwärtssuche in G node order s t 5
77 Datenstruktur Suchgraph: normalerweise: speichere Kanten (v, w) in den Adjazenz-Arrays von v und w für die Suche reicht es aus, die Kante nur an den Knoten min{v, w} zu speichern durch ungerichtete Kanten negativer Speicherverbrauch möglich (!) node order v shortcut u stored at w w stored at u
78 Ausgabe der Pfade für jeden Shortcut (u, w) eines Pfades (u, v, w), speichere Mittelknoten v an der Kante expandiere Pfade mittels Rekursion node order s t unpack path s t
79 Experimente Eingaben: Straßennetzwerke Europa: 8 Mio. Knoten, 4 Mio. Kanten USA: Mio. Knoten, 56 Mio. Kanten Evaluation: Vorberechnung in Minuten und zusätzliche Bytes pro Knoten durchschnittlicher Suchraum (#abgearbeitete Knoten) und Suchzeiten (in ms) von Zufallsanfragen
80 CH: Vorberechnung node ordering [s] E D L S i V Q W edge difference deleted neighbors limit search space on weight calculation search space size (digits) hop limits for testing shortcuts Voronoi region size upper bound on edges in search path relative betweenness query [µs] E ED EDL EDSL EDS5 EDS35 EVSQL EVSWQL economical aggressive method
81 CH: Knotengradentwicklung average degree hop hops 3 hops 4 hops 5 hops 6 hops no hop limit size of overlay graph / 0 000
82 CH: Search Space Distribution 00 % of searches CH aggr. (max. 884) CH eco. (max. 0) HNR (max. 48) settled nodes
83 Übersicht: bisherige Techniken Vorberechnung Anfrage Zeit Platz Such Zeit [h:m] [byte/n] raum [ms] Beschl. Dijkstra 0: ALT-6 : Arc-Flags (8) 7: RE : REAL-(64,6) : eco CH 0: agg CH 0:
84 Dijkstra Rank query time [µs] CH aggressive CH economical HNR Dijkstra rank
85 Zusammenfassung Contraction Hierarchies: n Hierarchielevel Knotenreduktion durch Kontraktion Kantenreduktion durch Zeugensuche speichere Kanten nur am unwichtigeren Knoten negativer Speicherverbrauch einfaches Konzept hohe Beschleunigung
86 Ende Nächste Vorlesung: Montag, 7. Mai, 4:00 Uhr
87 Ende Literatur (Reach, RE, REAL): Ronald J. Gutman: Reach-Based Routing: A New Approach to Shortest Path Algorithms Optimized for Road Networks In: Proceedings of the 6th Workshop on Algorithm Engineering and Experiments (ALENEX 04), 004 pages 00. Andrew V. Goldberg and Haim Kaplan and Renato F. Werneck: Reach for A*: Shortest Path Algorithms with Preprocessing In: Shortest Paths: Ninth DIMACS Implementation Challenge, 009. Username: routeplanning Passwort: ss0
88 Ende Literatur (Contraction Hierarchies): Dominik Schultes: Route Planning in Road Networks Ph.D. Thesis, Universität Karlsruhe (TH), 009. Daniel Delling, Robert Geisberger, Peter Sanders, Dominik Schultes: Contraction Hierarchies: Faster and Simpler Hierarchical Routing in Road Networks In: Proceedings of the 7th Workshop on Experimental Algorithms (WEA 08), volume 5038 of Lecture Notes in Computer Science, pages Springer, June 008. Username: routeplanning Passwort: ss0
Algorithmen für Routenplanung Vorlesung 4
Algorithmen für Routenplanung Vorlesung 4 Daniel Delling 1/ 39 Letztes Mal (u,v) Geometrische Container Arc-Flags u 2/ 39 Themen Heute + nächste 1-2 Hierarchische Techniken s t 3/ 39 Ideensammlung Wie
MehrAlgorithmen für Routenplanung 2. Sitzung, Sommersemester 2010 Thomas Pajor 26. April 2010
Algorithmen für Routenplanung 2. Sitzung, Sommersemester 2010 Thomas Pajor 26. April 2010 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK I PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg
MehrAlgorithmen für Routenplanung 4. Sitzung, Sommersemester 2010 Thomas Pajor 3. Mai 2010
Algorithmen für Routenplanung 4. Sitzung, Sommersemester 20 Thomas Pajor 3. Mai 20 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK I PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg
MehrAlgorithmen für Routenplanung 12. Sitzung, Sommersemester 2011 Reinhard Bauer, Thomas Pajor 6. Juni 2011
Algorithmen für Routenplanung 12. Sitzung, Sommersemester 2011 Reinhard Bauer, Thomas Pajor 6. Juni 2011 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK I PROF. DR. DOROTHEA WAGNER KIT Universität des
MehrAlgorithmen für Routenplanung Vorlesung 7
Algorithmen für Routenplanung Vorlesung 7 Daniel Delling 1/ 47 Letztes Mal T Many-to-Many Transit-Node Routing S access node s t distances between transit nodes access node 2/ 47 Transit-Node Routing ersetzt
MehrAlgorithmen für Routenplanung 18. Sitzung, Sommersemester 2015 Moritz Baum 13. Juli 2015
Algorithmen für Routenplanung 18. Sitzung, Sommersemester 2015 Moritz Baum 13. Juli 2015 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg
MehrAlgorithmen für Routenplanung Vorlesung 3
Algorithmen für Routenplanung Vorlesung 3 Daniel Delling 1/ 45 Letztes Mal bidirektionale Suche A Suche A mit Landmarken bidirektionale A Suche 2/ 45 Themen Heute Geometrische Container Arc-Flags s t 3/
MehrAlgorithmen für Routenplanung 15. Vorlesung, Sommersemester 2012 Daniel Delling 20. Juni 2012
Algorithmen für Routenplanung 15. Vorlesung, Sommersemester 2012 Daniel Delling 20. Juni 2012 MICROSOFT RESEARCH SILICON VALLEY KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum
MehrAlgorithmen für Routenplanung
Algorithmen für Routenplanung 4. Termin, Sommersemester 2011 Reinhard Bauer 2. Mai 2011 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK I PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg
MehrAlgorithmen für Routenplanung Vorlesung 11
Algorithmen für Routenplanung Vorlesung 11 Daniel Delling 1/ 35 Letztes Mal: Zeitabhängige Netzwerke Szenario: Historische Daten für Verkehrssituation verfügbar Verkehrssituation vorhersagbar berechne
MehrAlgorithmen für Routenplanung 2. Vorlesung, Sommersemester 2014 Andreas Gemsa 20. April 2014
Algorithmen für Routenplanung 2. Vorlesung, Sommersemester 2014 Andreas Gemsa 20. April 2014 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg
MehrAlgorithmen für Routenplanung Vorlesung 10
Algorithmen für Routenplanung Vorlesung 10 Daniel Delling 1/ 42 Letztes Mal: Zeitabhängige Netzwerke (Basics) Szenario: Historische Daten für Verkehrssituation verfügbar Verkehrssituation vorhersagbar
MehrAlgorithmen für Routenplanung 19. und letzte Sitzung, Sommersemester 2012 Thomas Pajor 16. Juli 2012
Algorithmen für Routenplanung 19. und letzte Sitzung, Sommersemester 2012 Thomas Pajor 16. Juli 2012 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes
MehrRoute Planning in Road Networks
D. Schultes: Route Planning in Road Networks 1 Route Planning in Road Networks Dominik Schultes Institut für Theoretische Informatik Algorithmik II Universität Karlsruhe (TH) http://algo2.iti.uka.de/schultes/hwy/
MehrAlgorithmen für Routenplanung
Algorithmen für Routenplanung 3. Termin, Sommersemester 2011 Reinhard Bauer 21.11.2011 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK I PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg
MehrAlgorithmen für Routenplanung 12. Sitzung, Sommersemester 2013 Julian Dibbelt 17. Juni 2013
Algorithmen für Routenplanung 12. Sitzung, Sommersemester 2013 Julian Dibbelt 17. Juni 2013 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg
MehrAlgorithmen für Routenplanung Vorlesung 12
Algorithmen für Routenplanung Vorlesung 12 Daniel Delling 1/ 33 Letztes Mal: Multikriterielle Wege Szenario: schnellste Verbindung häufig nicht die Beste Anzahl Umstiege, Fahrtkosten, Distanz, etc. multikriterielle
MehrAlgorithmen für Routenplanung 10. Sitzung, Sommersemester 2012 Daniel Delling 4. Juni 2012
Algorithmen für Routenplanung 10. Sitzung, Sommersemester 2012 Daniel Delling 4. Juni 2012 MICROSOFT RESEARCH SILICON VALLEY KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum
MehrAlgorithmen für Routenplanung 11. Vorlesung, Sommersemester 2012 Daniel Delling 6. Juni 2012
Algorithmen für Routenplanung 11. Vorlesung, Sommersemester 2012 Daniel Delling 6. Juni 2012 MICROSOFT RESEARCH SILICON VALLEY KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum
MehrSchnelle und genaue Routenplanung
Sanders/Schultes: Routenplanung 1 Schnelle und genaue Routenplanung Peter Sanders Dominik Schultes Institut für Theoretische Informatik Algorithmik II Universität Karlsruhe Tag der Informatik, 15. Juli
MehrSchnelle und genaue Routenplanung
Sanders/Schultes: Routenplanung 1 Schnelle und genaue Routenplanung Peter Sanders Dominik Schultes Institut für Theoretische Informatik Algorithmik II Universität Karlsruhe Uni für Einsteiger, 22. November
MehrAlgorithmen für Routenplanung 1. Vorlesung, Sommersemester 2015 Andreas Gemsa 13. April 2015
Algorithmen für Routenplanung 1. Vorlesung, Sommersemester 015 Andreas Gemsa 13. April 015 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg
MehrAlgorithmen für Routenplanung 13. Vorlesung, Sommersemester 2017 Tobias Zündorf 26. Juni 2017
Algorithmen für Routenplanung 13. Vorlesung, Sommersemester 2017 Tobias Zündorf 26. Juni 2017 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg
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
MehrAlgorithmen für Routenplanung
Algorithmen für Routenplanung Übung 1 Thomas Pajor 8. Mai 2009 1/ 28 Organisatorisches Willkommen zur Übung zur Vorlesung Algorithmen für Routenplanung Euer Übungsleiter Name: Thomas Pajor E-Mail: pajor@ira.uka.de
MehrPraktikum Routenplanung Vorbesprechung, Wintersemester 2013/2014 Moritz Baum, Julian Dibbelt, Ben Strasser 21. Oktober 2013
Praktikum Routenplanung Vorbesprechung, Wintersemester 013/014 Moritz Baum, Julian Dibbelt, Ben Strasser 1. Oktober 013 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK PROF. DR. DOROTHEA WAGNER KIT Universität
MehrGenauer Hochleistungs-Routenplaner
Sanders/Schultes: Routenplanung 1 Genauer Hochleistungs-Routenplaner Prof. Dr. Peter Sanders Dominik Schultes Institut für Theoretische Informatik Algorithmik II Universität Karlsruhe (TH) Heidelberger
MehrAlgorithmen für Routenplanung
Algorithmen für Routenplanung Letzte Sitzung, Sommersemester 2010 Thomas Pajor 09. Juli 2010 I NSTITUT FÜR T HEORETISCHE I NFORMATIK A LGORITHMIK I P ROF. D R. D OROTHEA WAGNER KIT University of the State
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,
MehrFortgeschrittene Routenplanung. Transportnetzen. Advanced Route Planning in Transportation Networks
Fortgeschrittene Routenplanung in Transportnetzen Advanced Route Planning in Transportation Networks Dissertationsvortrag von Dipl.-Inform. Robert Geisberger 1 KIT Robert Universität Geisberger: des Landes
MehrAlgorithmen für Routenplanung 1. Sitzung, Sommersemester 2010 Thomas Pajor 12. April 2010
Algorithmen für Routenplanung. Sitzung, Sommersemester 00 Thomas Pajor. April 00 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK I PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg
MehrAlgorithmen für Routenplanung 10. Vorlesung, Sommersemester 2016 Ben Strasser 25. Mai 2016
Algorithmen für Routenplanung 10. Vorlesung, Sommersemester 2016 Ben Strasser 25. Mai 2016 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg
MehrAlgorithmen für Routenplanung 11. Vorlesung, Sommersemester 2010 Reinhard Bauer 25. Juni 2010
Algorithmen für Routenplanung 11. Vorlesung, Sommersemester 2010 Reinhard Bauer 25. Juni 2010 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK I PROF. DR. DOROTHEA WAGNER KIT University of the State of
MehrKürzeste und Schnellste Wege
Kürzeste und Schnellste Wege Wie funktionieren Navis? André Nusser (Folien inspiriert von Kurt Mehlhorn) Struktur Straßennetzwerke Naiver Algorithmus Dijkstras Algorithmus Transitknoten Nachbemerkungen
MehrPraktikum Routenplanung Vorbesprechung, Wintersemester 2014/2015 Moritz Baum, Julian Dibbelt, Ben Strasser 22. Oktober 2014
Praktikum Routenplanung Vorbesprechung, Wintersemester 014/015 Moritz Baum, Julian Dibbelt, Ben Strasser. Oktober 014 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK PROF. DR. DOROTHEA WAGNER KIT Universität
MehrAlgorithmen für Routenplanung 14. Vorlesung, Sommersemester 2012 Daniel Delling 18. Juni 2012
Algorithmen für Routenplanung 14. Vorlesung, Sommersemester 2012 Daniel Delling 18. Juni 2012 MICROSOFT RESEARCH SILICON VALLEY KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum
MehrMaximale s t-flüsse in Planaren Graphen
Maximale s t-flüsse in Planaren Graphen Vorlesung Algorithmen für planare Graphen 6. Juni 2017 Guido Brückner INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg
MehrAlgorithmen für Routenplanung
Algorithmen für Routenplanung 16. Sitzung, Sommersemester 2011 Thomas Pajor 4. Juli 2011 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK I PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg
Mehr2. Übungsblatt zu Algorithmen II im WS 2016/2017
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders Dr. Christian Schulz, Dr. Simon Gog Michael Axtmann. Übungsblatt zu Algorithmen II im WS 016/017 Aufgabe
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
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 4 Programm des
MehrHighway Hierarchies. Kristian Dannowski, Matthias Hoeschel
Highway Hierarchies Kristian Dannowski, Matthias Hoeschel Gliederung Einleitung / Bidirektional Dijkstra Intuition / Naive Strategie Konstruktion der Highway Hierarchie Suche in der Highway Hierarchie
MehrBerechnung von Abständen
3. Kreis- und Wegeprobleme Abstände in Graphen Abstände in Graphen Definition 3.4. Es sei G = (V, E) ein Graph. Der Abstand d(v, w) zweier Knoten v, w V ist die minimale Länge eines Weges von v nach w.
MehrGraphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47
Graphalgorithmen Dominik Paulus.0.01 Dominik Paulus Graphalgorithmen.0.01 1 / 7 1 Spannbäume Kruskal Prim Edmonds/Chu-Liu Datenstrukturen Fibonacci-Heap Union/Find Kürzeste Pfade Dijkstra Bellman-Ford
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/
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
MehrVorlesung 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!
MehrTheoretische Informatik 1
Theoretische Informatik 1 Approximierbarkeit David Kappel Institut für Grundlagen der Informationsverarbeitung Technische Universität Graz 10.06.2016 Übersicht Das Problem des Handelsreisenden TSP EUCLIDEAN-TSP
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
MehrPraktikum Routenplanung Themenvorstellung & Gruppeneinteilung, Wintersemester 2015/2016 Moritz Baum, Ben Strasser, Tobias Zündorf 19.
Praktikum Routenplanung Themenvorstellung & Gruppeneinteilung, Wintersemester 2015/2016 Moritz Baum, Ben Strasser, Tobias Zündorf 19. Oktober 2015 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK PROF.
MehrDijkstra: Laufzeit. Insgesamt: T Dijkstra = O m T decreasekey (n)+n (T deletemin (n)+t insert (n))
Dijkstra: Laufzeit Function Dijkstra(s : NodeId) : NodeArray NodeArray d = {,..., }; parent[s]:= s; d[s] := 0; Q.insert(s) // O(n) while Q 6= /0 do u := Q.deleteMin // apple n foreach edge e =(u,v) 2 E
MehrAlgorithmen I - Tutorium 28 Nr. 11
Algorithmen I - Tutorium 28 Nr. 11 13.07.2017: Spaß mit Schnitten, Kreisen und minimalen Spannbäumen Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR.
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
Mehr5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)
5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!
MehrEffiziente Algorithmen und Datenstrukturen: Kürzeste Wege
Effiziente Algorithmen und Datenstrukturen: Kürzeste Wege Kürzeste Wege Zentrale Frage: Wie komme ich am schnellsten von A nach B? B A Kürzeste Wege Zentrale Frage: Wie komme ich am schnellsten von A nach
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 00
Mehr8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.
8.4 Digraphen mit negativen Kantengewichten 8.4.1 Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0. k 4 5 1 s 1 3 2 C k 0 k 3 1 1 1 k 1 k 2 v Sollte ein Pfad von s nach C und
MehrSchnellste Wege, Teil II Stable Marriages
Schnellste Wege, Teil II Stable Marriages Kurt Mehlhorn und Kosta Panagiotou Max-Planck-Institut für Informatik Vorlesung Computational Thinking Übersicht Wiederholung: Grundalg und Korrektheit Dijkstras
Mehr9. Übung Algorithmen I
Timo Bingmann, Christian Schulz INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Timo Universität Bingmann, des LandesChristian Baden-Württemberg Schulz und nationales Forschungszentrum in der
MehrErinnerung VL
Erinnerung VL 22.06.2016 Dijkstra: Implementierung, Laufzeit Heute: Negative Kantengewichte (Bellman-Ford) Weitere Variationen (azyklische Graphen) Ausblick: Routenplanung in Straÿennetzwerken Abschluss
MehrAlgorithmen für Routenplanung
Algorithmen für Routenplanung 15. Sitzung, Sommersemester 2011 Thomas Pajor 20. Juni 2011 I NSTITUT FÜR T HEORETISCHE I NFORMATIK A LGORITHMIK I P ROF. D R. D OROTHEA WAGNER KIT Universität des Landes
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 /
MehrSeminar Algorithmen für planare Graphen
Seminar Algorithmen für planare Graphen Reinhard Bauer, Marcus Krug, Ignaz Rutter, Dorothea Wagner Universität Karlsruhe (TH) Institut für Theoretische Informatik Lehrstuhl Algorithmik I 24. Oktober 2008
MehrINSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS
0. Übung Algorithmen I Veit Batz, Timo Bingmann, Christian Schulz, Vitaly Osipov INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 80 xb 0,8 xa + 0,7 xb 00 kg 0,06 xa + 0,2 xb 5 kg 60 xb 70 kg 40 20
MehrAlgorithmen und Datenstrukturen in der Bioinformatik Viertes Übungsblatt WS 05/06 Musterlösung
Konstantin Clemens Johanna Ploog Freie Universität Berlin Institut für Mathematik II Arbeitsgruppe für Mathematik in den Lebenswissenschaften Algorithmen und Datenstrukturen in der Bioinformatik Viertes
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
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
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
MehrRouting A lgorithmen Algorithmen Begriffe, Definitionen Wegewahl Verkehrslenkung
Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über
MehrLokalisierung von inneren und äußeren Grenzen in Sensornetzwerken
Lokalisierung von inneren und äußeren Grenzen in Sensornetzwerken Seminararbeit: Algorithmen für Sensornetzwerke Thomas Gramer 1 Thomas Gramer: KIT Universität des Landes Baden-Württemberg und nationales
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!...
MehrVoronoi Diagrams. Christian Wellenbrock. December 1, 2009
December 1, 2009 Das Voronoi Diagramm Problemstellung Gegeben: Menge der Zentren P = {p 1,..., p n } R 2 Das Voronoi Diagramm Problemstellung Gegeben: Menge der Zentren P = {p 1,..., p n } R 2 Gesucht:
MehrAlgorithmen für Routenplanung 13. Sitzung, Sommersemester 2014 Prof. Christos Zaroliagis 28. Mai 2014
Algorithmen für Routenplanung 13. Sitzung, Sommersemester 2014 Prof. Christos Zaroliagis 28. Mai 2014 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes
MehrAlgorithmentechnik - U bung 7 8. Sitzung Tanja Hartmann 04. Februar 2010
Algorithmentechnik - U bung 7 8. Sitzung Tanja Hartmann 04. Februar 2010 I NSTITUT F U R T HEORETISCHE I NFORMATIK, P ROF. D R. D OROTHEA WAGNER KIT Universita t des Landes Baden-Wu rttemberg und nationales
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
MehrPraktikum Routenplanung Vorbesprechung, Wintersemester 2012/2013 Moritz Baum, Julian Dibbelt, Thomas Pajor, Ben Strasser 17.
Praktikum Routenplanung Vorbesprechung, Wintersemester 01/013 Moritz Baum, Julian Dibbelt, Thomas Pajor, Ben Strasser 17. Oktober 01 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK I PROF. DR. DOROTHEA
MehrSoftwareprojektpraktikum Maschinelle Übersetzung
Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de Vorbesprechung 5. Aufgabe 22. Juni 2017 Human Language Technology
MehrBerechnung minimaler Spannbäume. Beispiel
Minimale Spannbäume Definition Sei G pv, Eq ein ungerichteter Graph und sei w : E Ñ R eine Funktion, die jeder Kante ein Gewicht zuordnet. Ein Teilgraph T pv 1, E 1 q von G heißt Spannbaum von G genau
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2006 5. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Wdhlg.: Dijkstra-Algorithmus I Bestimmung der
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,
MehrKap. 5: Graphen. Carsten Gutwenger Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund. 17. VO DAP2 SS
Kap. 5: Graphen Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 17. VO DAP2 SS 2009 23. Juni 2008 1 Motivation Warum soll ich heute hier bleiben? Graphen sind wichtig und
MehrEffiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume
Effiziente Algorithmen und Datenstrukturen I Kapitel 9: Minimale Spannbäume Christian Scheideler WS 008 19.0.009 Kapitel 9 1 Minimaler Spannbaum Zentrale Frage: Welche Kanten muss ich nehmen, um mit minimalen
MehrPraktikum 4: Delegation
: Delegation 1. Lernziele Die folgenden, in der Vorlesung behandelten Themen sollen vertieft und angewendet werden: Vererbung, abstrakte Klassen, Polymorphie, Delegation sowie das Zeichnen von UML-Klassendiagrammen.
Mehr4. Kreis- und Wegeprobleme Abstände in Graphen
4. Kreis- und Wegeprobleme Abstände in Graphen Abstände in Graphen Definition 4.4. Es sei G = (V,E) ein Graph. Der Abstand d(v,w) zweier Knoten v,w V ist die minimale Länge eines Weges von v nach w. Falls
MehrVoronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie
Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 03.06.2014 1 Das Postamt-Problem b(p, q) = {x 2 R 2 : xp = xq } p q h(p, q) h(q, p) = {x
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr
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),
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
MehrRouting Algorithmen. Begriffe, Definitionen
Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über
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
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
MehrExakte Kürzeste Pfade in Straßennetzwerken mit Highway Hierarchien
Exakte Kürzeste Pfade in Straßennetzwerken mit Highway Hierarchien Andreas Wickert Humboldt-Universität zu Berlin, Institut für Informatik, 10099 Berlin @informatik.hu-berlin.de Zusammenfassung
MehrPraktikum Routenplanung Vorbesprechung, Wintersemester 2011/2012 Julian Dibbelt und Thomas Pajor 2. November 2011
Praktikum Routenplanung Vorbesprechung, Wintersemester 011/01 Julian Dibbelt und Thomas Pajor. November 011 INSTITUT FÜR THEORETISCHE INFORMATIK ALGORITHMIK I PROF. DR. DOROTHEA WAGNER KIT Universität
MehrEin Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.
Graphen Definition: Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Begriffe: Gerichteter Graph: Alle Kanten haben eine Richtung vom Anfangsknoten
MehrZweizusammenhang und starker Zusammenhang
.. Zeizusammenhang und starker Zusammenhang Carsten Gutenger Vorlesung Algorithmen und Datenstrukturen WS /. Januar Zeizusammenhang Betrachte ein Netzerk (Graph) Z.B. Computernetzerk, Flug- oder Schienennetzerk
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 11 (4.6.2014) Binäre Suchbäume II Algorithmen und Komplexität Binäre Suchbäume Binäre Suchbäume müssen nicht immer so schön symmetrisch sein
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
MehrÜbungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 6 Vorlesung Theoretische Grundlagen der Informatik im WS 16/17 Ausgabe 22. Dezember 2016 Abgabe 17. Januar 2017, 11:00 Uhr
MehrFortgeschrittene Netzwerk- und Graph-Algorithmen
Fortgeschrittene Netzwerk- und Graph-Algorithmen Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester 2010/11
MehrZentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)
WS 2013/14 Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza) Dr. Werner Meixner Fakultät für Informatik TU München http://www14.in.tum.de/lehre/2013ws/ds/uebung/ 22. Januar 2014 ZÜ DS ZÜ XIII
Mehr