TexPoint fonts used in EMF.

Slides:



Advertisements
Ähnliche Präsentationen
Vortrag von Stephanie Weirauch Jens Pleger Peter Jancke Frank Wejmelka
Advertisements

Algorithmen für das Erfüllbarkeitsproblem SAT
Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
Berechne den optimalen (kürzesten, schnellsten) Weg
Kapitel 3 Arithmetische Schaltkreise
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
Wiederholung TexPoint fonts used in EMF.
Wiederholung TexPoint fonts used in EMF.
Wiederholung: Ziehen von Elementen
Übungsbetrieb Di neuer Raum HZO 60
Wiederholung Operationen auf Mengen Relationen, Abbildungen/Funktionen
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Approximationsalgorithmen …liefern in polynomieller.
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts
Kapitel 3 Elementare Datenstrukturen TexPoint fonts used in EMF.
Wiederholung Formale Potenzreihen
Minimum Spanning Tree: MST
Kürzeste Wege in Straßennetzwerken Problemstellung –von einem Start zu einem Ziel (point-to-point) –(un)gerichteter Graph, Kantenkosten = Reisezeiten.
Diplomarbeit von Daniel Tameling
Ideen der Informatik Suchen und Sortieren [Ordnung muss sein…]
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
Effiziente Algorithmen
Effiziente Algorithmen
Chromatische Zahl.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Institut für Theoretische Informatik
Institut für Theoretische Informatik
Institut für Theoretische Informatik
Institut für Theoretische Informatik
Institut für Theoretische Informatik
Jan Hinzmann – – GIS Praxis II – Slide 1/10 Der Algorithmus von Dijkstra (Berechnung kürzester Wege in bewerteten Graphen) GIS Praxis II, Jan Hinzmann,
Algorithmen für das Erfüllbarkeitsproblem SAT
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms.
Analyse der Laufzeit von Algorithmen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Suche des kürzesten Weges in einem Netz.
Diskrete Mathematik Angelika Steger Institut für Theoretische Informatik TexPoint fonts used in EMF. Read the TexPoint manual before.
Gliederung der Vorlesung
Das Problem des Handlungsreisenden
Algorithmen für Geographische Informationssysteme
zur Vorlesung Datenbanksysteme, Prof. R. Bayer, WS 2000/01
Der Algorithmus nach Dijkstra
Der Dijkstra-Algorithmus
Wiederholung Größte gemeinsame Teiler Satz von Bezout:
Wiederholung TexPoint fonts used in EMF.
TexPoint fonts used in EMF.
Übungen Übungsanmeldung Übungskorrektur
Wiederholung Breitensuche BFS mit Startknoten s Tiefensuche
Fragestunden & Übungsschein
TexPoint fonts used in EMF.
Klausurtermin Klausur Diskrete Mathematik I Do stündig
Zusammenfassung Königsberger Brückenproblem Planare Graphen
Wiederholung Verband Ungerichtete Graphen Partielle Ordnung
Übung 01 Erstellen Sie eine neue Tabelle TBL_Lieferanten
3. Die Datenstruktur Graph 3.3 Durchlaufen von Graphen
 Präsentation transkript:

TexPoint fonts used in EMF. Schnellste Wege Wie funktioniert ein Navi? Kurt Mehlhorn und Adrian Neumann Max-Planck-Institut für Informatik Vorlesung Ideen der Informatik TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAAA

Schnellste Wege Routenfinden im Navi Karten und Graphen Algorithmen für schnellste Wege Erster Versuch Dijkstras Algorithmus Aktuelle Forschung: Schnellste Wege in Straßengraphen

Landkarten Landkarten enthalten sehr viel Information; nur Straßengraph ist wichtig

Graphen als Abstraktion Graphen bestehen aus Knoten und Kanten. Jede Kante hat eine Fahrzeit. Kante Knoten G = (V,E), E Teilmenge V x V

Straßennetzwerke Europa: 24 Millionen Knoten, 58 Millionen Kanten Schnellste Wege kann man trotzdem in Sekunden berechnen Oder in Millisekunden nachschlagen

Grundidee Wenn ich vom Startknoten in 30 Minuten nach X komme und von X nach Y in 5 Minuten, dann komme ich in 35 Minuten vom Startknoten nach Y.

Ein erster Algorithmus Fahrzeit von Start nach Start = 0 Minut. Für alle anderen Knoten, weiß ich noch keinen Weg: also Fahrzeit = unendlich Falls Fahrzeit nach A = X Min und Straße A→B braucht Y Min, dann Fahrzeit nach B = min(X+Y,schon bekannte Fahrzeit nach B). Wiederhole 3. solange noch eine Fahrzeit verbessert werden kann

Beispiel b 35 20 a 10 Ende 10 33 10 Start 5 c

Fragen Finden wir so immer den schnellsten Weg? Wie lange dauert das?

Korrektheit Zu jeder Knotenmarkierung gibt es einen Pfad der entsprechenden Länge Solange die schnellste Verbindung nicht gefunden wurde, ist die Situation nicht stabil, denn auf dem kürzesten Weg von Start nach Ziel muss es einen ersten Knoten geben, für den berechnete Fahrzeit noch nicht minimal. Dort gibt es Verbesserungsmöglichkeit.

Effizienz S T Fahrzeit nach T wird 8 mal geändert 4 2 1 S T Fahrzeit nach T wird 8 mal geändert Ein Ort mehr: Laufzeit verdoppelt sich 11/16/2018

Exponentielles Wachstum ist ein Killer 4 Orte: 8 Änderungen 5 Orte: 16 Änderungen 6 Orte: 32 7 Orte: 64 21 Orte: mehr als 1.000.000 41 Orte: mehr als 1.000.000.000.000 Mein Rechner kann 109 Operationen/sec. 11/16/2018

Geschicktes Auswählen Nach S in 0 Wenn A in X und A→B braucht Y, dann B in X+Y Min Wiederhole 2. solange nicht stabil Wende 2. immer auf alle Kanten A→B aus dem Knoten A mit der kleinsten Fahrzeit an (auf den wir das nicht schon vorher angewendet haben) Dijkstras Algorithmus (1959) Turing Award (1972) 11/16/2018

Fahrzeit wird über jede Kante Beispiel 4 2 1 S T Fahrzeit wird über jede Kante nur einmal propagiert 11/16/2018

Pseudocode Dijkstra(s): dist[v] = beste bekannte Fahrzeit nach v dist[s] = 0 für alle v ≠ s: dist[v] = unendlich markiere v als aktiv solange es aktiven Knoten gibt: u = der aktive Knoten mit kleinstem Wert dist[u] markiere u als nicht aktiv fuer alle Kanten (u,v) tue: falls dist[u] + Zeit(u,v) < dist[v]: dist[v] = dist[u] + Zeit(u,v) 11/16/2018

Speicherlayout Knoten = Zahlen 0 bis n-1 11/16/2018

Anmerkungen u = der aktive Knoten mit kleinstem Wert dist[u] ist auführlicher mindist = unendlich Für i = 0 bis n – 1 tue falls (aktiv[i] und dist[i] < mindist) dann mindist = dist[i]; u = i; Pfade mitberechnen Wellenausbreitung 11/16/2018

Korrektheit Immer: dist[v] ≥ kürzeste Fahrzeit von s nach v Beh: dist[v] = …, wenn v deaktiviert wird Bew durch Induktion über Anzahl der Kanten im schnellsten Weg nach v Anzahl = 0, dann v = s, also Beh. richtig Anzahl > 0, sei uv die letzte Kante auf schnellstem Weg nach v. Dann stimmt Beh. für u. Wenn u deaktiviert wird, gilt dist[u] = Fahrzeit nach u < Fahrzeit nach v ≤ dist[v]. Also ist v noch aktiv, wenn u deaktiviert wird. Wenn u deaktiviert wird, setzen wir dist[v] = dist[u] + Fahrzeit(u,v) = Fahrzeit(v) 11/16/2018

Laufzeit ~n ~n ~m_u n = #Knoten, m = #Kanten, m_u = Kanten aus u heraus Dijkstra(s): dist[s] = 0 für alle v ≠ s: dist[v] = unendlich markiere v als aktiv solange es aktiven Knoten gibt: u = der aktive Knoten mit kleinstem Wert dist[u] markiere u als nicht aktiv fuer alle Kanten (u,v) tue: falls dist[u] + Zeit(u,v) < dist[v]: dist[v] = dist[u] + Zeit(u,v) ~n ~n ~m_u 11/16/2018

Laufzeit n mal Minimum finden: n mal n = n² Alle Kanten verfolgen: m Insgesamt: m + n² Kann verbessert werden auf m + n log n 11/16/2018

Nachschlagen statt Denken Idee: Alle Wege vorberechnen Europa: 24*106 Knoten  ~1013 Wege 24 Millionen mal Dijkstra  10 Jahre rechnen 1 kB/Weg  10 Petabyte Speicherplatz Ungefähr 1% von Googles gesamter Speicherkapazität Ganz so einfach geht es nicht 11/16/2018

Transitknoten (Bast-Funke) Kurze Wege: on-the-fly mit Dijkstra Alle weiten Wege passieren eine kleine Menge von Transitknoten Gesamtmenge der Transitknoten ist klein Für jeden festen Startpunkt gibt es nur sehr wenige Transitknoten Hannah Bast, Stefan Funke Saar LB Preis 11/16/2018

Transitknoten KM wohnt in Scheidt Meine Transitknoten nach Osten: Autobahn St. Ingbert Nach Süden: Kleinblittersdorf Nach Westen: goldene Bremm Nach Norden-Westen: Stadtautobahn Nach Norden und Nordosten: Autobahn Sulzbach Alle Bewohner von Scheidt benutzen die gleichen Transitknoten 11/16/2018

Transitknoten Gitter über die Welt legen Für jede Zelle C Wege nach “outer” ausrechnen Die Knoten aus “inner”, die benutzt werden sind Transitknoten für C 11/16/2018

Vorberechnen Für jeden Knoten zu seinen Transitknoten Ungefähr 10/Knoten  24*107 Wege 10kb/Weg  250 GB Zwischen allen Transitknoten paarweise Ungefähr 10000 Knoten  108 Wege 100kb/Weg  10 TB Passt auf einen Server! 11/16/2018

Wege Finden Kurze Wege: Dijkstra Lange Wege: A nach B Zerlegen in A – T1 – T2 – B wobei T1 Transitknoten für A und T2 für B Probiere alle Möglichkeiten für T1 und T2 (jeweils etwa 10) und bestimme den minimalen Wert von dist(A,T1) + dist(T1,T2) + dist(T2,B) Das sind 10 + 10 + 100 Speicherzugriffe 11/16/2018

Zusammenfassung Dijkstra ist ein sehr schneller Alg für kürzeste Wege (wenige Sekunden in Graph mit 10 Mio Knoten und 30 Mio Kanten. Straßengraphen haben Struktur (Hierarchie der Straßen, Fast-Planarität) Vorberechnen ist eine gute Idee, wenn man viele Anfragen zu beantworten hat. 11/16/2018