wegsuchealgorithmen in routenplanungssystemen n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Wegsuchealgorithmen in Routenplanungssystemen PowerPoint Presentation
Download Presentation
Wegsuchealgorithmen in Routenplanungssystemen

Loading in 2 Seconds...

play fullscreen
1 / 18

Wegsuchealgorithmen in Routenplanungssystemen - PowerPoint PPT Presentation


  • 77 Views
  • Uploaded on

Wegsuchealgorithmen in Routenplanungssystemen. Vortrag von Markus Schäfer Projektgruppe Intelligente Datenbanken 8.7.2003. Gliederung. Worum es heute geht – Routenplanung Motivation und Ziel Straßenkarten Algorithmen Iterative Breitensuche Dijkstras Algorithmus Bewertungsfunktionen A*

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Wegsuchealgorithmen in Routenplanungssystemen' - judd


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
wegsuchealgorithmen in routenplanungssystemen

Wegsuchealgorithmen in Routenplanungssystemen

Vortrag von Markus Schäfer

Projektgruppe Intelligente Datenbanken

8.7.2003

gliederung
Gliederung
  • Worum es heute geht – Routenplanung
  • Motivation und Ziel
  • Straßenkarten
  • Algorithmen
    • Iterative Breitensuche
    • Dijkstras Algorithmus
    • Bewertungsfunktionen
    • A*
  • Experimentelle Analyse der Laufzeit
    • Synthetischer Graph
    • Minneapolis

6. Zusammenfassung

worum es heute geht routenplanung
Worum es heute geht - Routenplanung
  • Das heutige Verkehrsaufkommen verlangt ein effizientes Management des Verkehrs.
  • Eine Studie in den USA hat abgeschätzt, daß sich durch geschickte Routenplanung 6% der Fahrzeiten vermeiden lassen könnten.
  • Routenplanungssysteme bestehen aus drei Einheiten: Routenberechnung, Routenbewertung und Routendarstellung
  • Wir beschäftigen uns heute aber nur mit der Routenberechnung (in Folge auch Wegsuche genannt).
motivation und ziel
Motivation und Ziel
  • Traditionelle Wegsuche-Algorithmen berechnen mehr Wege als für unsere Zielsetzung notwendig sind.
  • Sie sind auch nicht an dynamische Kantenkosten (Verkehrsstau) angepasst.
  • Außerdem nehmen sie häufig an, daß die Daten im Hauptspeicher bearbeitet werden; das tatsächliche Datenaufkommen ist aber so groß, daß es sinnvoll nur mit Hilfe von Datenbankmanagmentsystemen verwaltet werden kann.
stra enkarten
Straßenkarten
  • Wir wollen die Straßenkarten durch einen Graph charakterisieren, dessen Kanten sowohl statische als auch dynamische Attribute besitzen.
  • Die Attribute können nun durch drei verschiedene Verteilungen kategorisiert werden: gleichmäßig, leicht-variiert und unregelmäßig
  • Die Algorithmen lassen sich in drei Klassen einteilen: alle-Paare-Probleme, einzel-Quelle-Probleme und einzel-Paar-Probleme
algorithmen
Algorithmen
  • Im folgenden werden drei Algorithmen vorgestellt, die jeweils die jeweils eine Klasse repräsentieren: Iterative Breitensuche (alle-Paare-Wegsuche), Dijkstras Algorithmus (einzel-Quelle-Wegsuche) und A* (einzel-Paar-Wegsuche)
  • Ziel der Algorithmen ist es zu einem Paar (Quelle, Ziel) den schnellsten Weg zu suchen.
  • Da dynamische Attribute vorliegen, können wir nicht einfach alle kürzesten Wege vorausberechnen und speichern.
algorithmen iterative breitensuche
Algorithmen – Iterative Breitensuche

Procedure Iterative(N,E,s,d) {

foreach u in N do { C(s,u)=∞; C(u,u)=0;

path(u,v):=null }

frontierSet:=[s];

while not_empty(frontierSet) do {

foreach u in frontierSet do {

frontierSet:=frontierSet-[u];

fetch(u.adjacencyList);

foreach <v,C(u,v)> in u.adjacencyList {

if C(s,v)>C(s,u)+C(u,v) then {

C(s,v):=C(s,u)+C(u,v);

path(s,v):=path(s,u)+edge((u,v);

if not_in(v,frontierSet) then

frontierSet:=frontierSet+[v];}}}}}

algorithmen dijkstras algorithmus
Algorithmen – Dijkstras Algorithmus

Procedure Dijkstra(N,E,s,d) {

foreach u in N do {C(s,u)=∞;

C(u,u)=0;path(u,v):=null;}

frontierSet:=[s]; exploredSet:=emptySet;

while not_empty(frontierSet) do {

select u from frontierSet with minimum C(s,u);

frontierSet:=frontierSet-[u];

exploredSet:=exploredSet+[u]

if (u=d) then terminateelse {

fetch(u.adjacencyList);

foreach <v,C(u,v)> in u.adjacencyList

if C(s,v)>C(s,u)+C(u,v) then {

C(s,v):=C(s,u)+C(u,v);

path(s,v):=path(s,u)+(u,v);

if not_in(v,frontierSet∪exploredSet) then

frontierSet:=frontierSet+[v]}}}}

algorithmen bewertungsfunktionen
Algorithmen – Bewertungsfunktionen
  • Bewertungsfunktionen benutzen wir um auszusuchen, welcher der vielversprechendste Knoten im aktuellen Rechenschritt ist.

Wir betrachten zwei Bewertungsfunktionen:

Euklidische Distanz:

Manhattan Distanz:

algorithmen a
Algorithmen – A*

Procedure A*(N,E,s,d,f) {

foreach u in N do { C(s,u)=∞; C(u,u)=0;

path(u,v):=null;}

frontierSet:=[s]; exploredSet:=emptySet;

while not_empty(frontierSet) do {

select u from frontierSetwith min(C(s,u)+f(u,d));

frontierSet:=frontierSet-[u];

exploredSet:=exploredSet+[u];

if (u=d) then terminateelse {

fetch(u.adjacencyList);

foreach <v,C(u,v)> in u.adjacencyList {

if C(s,v)>C(s,u)+C(u,v) then {

C(s,v):=C(s,u)+C(u,v);

path(s,v):=path(s,u)+(u,v);

if not_in(v,frontierSet) then

frontierSet:=frontierSet+[v];}}}}}

experimentelle analyse der laufzeit synthetischer graph 1 5
Experimentelle Analyse der Laufzeit – Synthetischer Graph 1/5
  • Zum Vergleichen von A* mit den anderen Algorithmen, wollen wir nun die Laufzeit der Algorithmen auf einem künstlichen Graph untersuchen:
  • Rechteckiger ungerichteter

Graph

  • Jeder Knoten hat 4 Nachbarn

(außer den Randknoten)

  • Wir betrachten drei verschiedene

Quelle-Ziel-Paare:

experimentelle analyse der laufzeit synthetischer graph 2 5
Experimentelle Analyse der Laufzeit – Synthetischer Graph 2/5
  • Wir untersuchen die drei im ersten Teil vorgestellten Algorithmen und wählen die Manhattan-Distanz als Bewertungsfunktion für A*
  • Für unser Testgraph gibt es nun drei Variable Parameter:

- Größe des Graphen: 10*10, 20*20, 30*30

- Pfadlänge

- Kostenmodell:

gleichmäßig – Jeder Kante wird der Wert 1 als Kosten zugewiesen

leicht-variiert – Jeder Kante wird 1+0,2*U[0,1] zugewiesen

unregelmäßig – Den Kanten [(i,1),(i+1,1)] und [(k,i),(k,i+1)]

werden kleine Kosten zugewiesen

experimentelle analyse der laufzeit synthetischer graph 3 5
Experimentelle Analyse der Laufzeit – Synthetischer Graph 3/5

Auswirkungen der Größe des

Graphen

  • Es wurde der diagonale Pfad

ausgewählt, um das worst-case

Verhalten zu untersuchen

  • Die Größe des Graphen beeinflusst

die Laufzeit von A* und Dijkstra

linear

  • Die Breitensuche wächst nur sublinear

mit der Graphengröße

experimentelle analyse der laufzeit synthetischer graph 4 5
Experimentelle Analyse der Laufzeit – Synthetischer Graph 4/5

Auswirkungen der Pfadlänge

  • Für horizontale Pfade ist A*

besser als die anderen beiden

Algorithmen, ansonsten die

Breitensuche

  • Bei A* und Dijkstra steigt die

Ausführungszeit mit der

Pfadlänge

  • Die Laufzeit verschlechtert sich

bei A* am stärksten mit der

Pfadlänge

experimentelle analyse der laufzeit synthetischer graph 5 5
Experimentelle Analyse der Laufzeit – Synthetischer Graph 5/5

Auswirkungen des

Kostenmodels

Da A* und Dijkstra die Kantenkosten

in ihre Berechnung einbeziehen,

reagieren sie auf unterschiedliche

Kostenmodelle.

Aber auch die Breitensuche verhält

sich je nach Kostenmodell unter-

schiedlich.

experimentelle analyse der laufzeit minneapolis 1 2
Experimentelle Analyse der Laufzeit – Minneapolis 1/2
  • Als nächsten Schritt wollen wir jetzt die

Laufzeit der Algorithmen an einem

konkreten Fallbeispiel untersuchen.

Wir benutzen einen Ausschnitt

einer tatsächlichen Straßenkarte, die

die Autobahnen und Schnellstraßen

von Minneapolis zeigt

  • Sie hat:

1089 Knoten

3300 Kanten (Straßensegmente)

und deckt eine Fläche von 20

Quadratmeilen ab

experimentelle analyse der laufzeit minneapolis 2 2
Experimentelle Analyse der Laufzeit – Minneapolis 2/2

Der Graph ist ein wenig größer als

der synthetische 30*30 Graph

(1089 gegenüber 900 Knoten)

Wir wollen vier Pfade betrachten:

  • 2 diagonale: A nach B

C nach D

  • 2 kurze: D nach G

E nach F

Die Ergebnisse decken sich

mit den Ergebnissen auf den

künstlichen Graphen

zusammenfassung
Zusammenfassung

Wir haben gesehen, daß aus verschiedenen Gründen der A*-Algorithmus für unsere Anwendung ein sehr aussichtsvoller Kandidat ist:

  • Er arbeitet auf kurzen Wegen schneller als die anderen Algorithmen und in der Anwendung werden die meisten Weganfragen nicht quer über den ganzen Graphen gestellt
  • Beim unregelmäßigen Kostenmodell, welches wir in der Praxis erwarten, ist er der optimalste Algorithmus

Außerdem haben wir gesehen, daß der Algorithmus von Dijkstra in der Praxis nicht so große Bedeutung hat