22
Der A*-Algorithmus

Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

Embed Size (px)

Citation preview

Page 1: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

Der A*-Algorithmus

Page 2: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

Gliederung1.Uniformierte Suche2.Heuristische Suche

a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion

2.1.A*-Algorithmus

4.Beispiel5.Bemerkungen6.Verbesserungen7.Zusammenfassung

 

Page 3: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

Uniformierte SucheBreitensuche

 Vorteil : Findet Lösung mit minimaler WeglängeNachteil: Suchbaum wächst exponentiell mit der Suchtiefe

   Tiefensuche 

Vorteil : Speicherplatzbedarf ist linearNachteil: Findet kürzesten Weg eher zufällig (blinde Suche)

Page 4: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

Heuristische Suche Die Kostenfunktion g : - ordnet jedem Knoten ein Gewicht g(k) 0 zu

- heißt streng monoton, wenn g(k1) < g(k2) für alle Knoten k1, k2 gilt

- gibt Aufschluss über die Höhe des Suchaufwand vom Startknoten bis zum jeweiligen Knoten des Suchbaumes

Page 5: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

Die heuristische Funktion h

- ordnet jedem Knoten k im Suchraum eine nicht negative Zahl h(k) zu - 0 ≤ h(k) ≤ h*(k) 

- h(k) überschätzt nie die Kosten

- Es gilt h(e) = 0 (Zielknoten)

- Schätzfunktion sollte eine möglichst hohe untere Schranke sein

Page 6: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

Schätzungen

City-Block- bzw. Manhattan-Abstand:

Euklidischer Abstand:

 

Page 7: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

Schätzfunktion f

 

Der A* - Algorithmus vereint die Kostenfunktion g unddie heuristische Funktion h. 

f(k) = g(k) + h(k) wobei g eine streng monotone Kostenfunktion und h einezulässige heuristische Funktion ist.

Page 8: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

Eigenschaften - korrekt, d.h. das Suchergebnis, das die A* -Suche liefert, ist eine

Lösung des Suchproblems.

- vollständig, d.h. wenn es eine Lösung des Suchproblems existiert, so wird diese auch gefunden.

- optimal, d.h. dass die Lösung des Suchproblems der kürzeste Pfad zum Zielknoten ist.

- optimal effizient, d.h. jeder andere optimale und vollständige Algorithmus, der die selbe Heuristik verwendet, muss mindestens so viele Knoten betrachten wie A*, um eine Lösung zu finden.

Page 9: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

Algorithmus

1- Erzeuge eine Menge OPEN und vereine sie mit dem Startknoten 2- Erzeuge eine leere Menge CLOSED

3- Berechne für jeden Knoten aus der Menge OPEN den Schätzwert f(k)

Page 10: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

4- Wähle denjenigen Knoten aus der Menge OPEN mit dem kleinsten Schätzwert

 5- Weiter mit 3)

6- Ist die OPEN Menge leer, so ist das Problem unlösbar

Page 11: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

Soll außer der Länge des kürzesten Pfades auchder Pfad selbst gefunden werden, so kommt einweiterer Schritt hinzu : 7- Es wird die Funktion Gib_kürzesten_Pfad_aus aufgerufen

Page 12: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

BeispielAugsburg: 43 kmErfurt: 342 kmFrankfurt: 353 kmKarlsruhe: 260 kmKassel: 446 kmMannheim: 311 kmMünchen: 0 kmNürnberg: 151 kmStuttgart: 199 kmWürzburg: 229 km

Page 13: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

1.Frankfurt wurde erkundet, als nächstes wird Mannheim untersucht.

Page 14: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

2.Mannheim wurde erkundet, als nächstes wird Karlsruhe untersucht.

Page 15: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

3.Karlsruhe wurde erkundet, als nächstes wird Würzburg untersucht.

Page 16: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

4. Würzburg wurde erkundet, stellte sich aber als eine schlechte Wahl dar, und es wird wieder der ursprüngliche Pfad durch Augsburg verfolgt.

Page 17: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

5. Augsburg wurde erkundet und es wurde ein Weg nach München gefunden der jedoch eventuell länger als nötig ist.

Page 18: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

6.Nürnberg wurde erkundet, und es wurde ein kürzester Pfad nach München gefunden.

Page 19: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

Bemerkungen Der Algorithmus funktioniert nur wenn folgendeBedingungen erfüllt sind: - Jeder Knoten hat nur endlich viele Nachfolger

- Die Heuristikfunktion h überschätzt für keinen Zustand z die Kosten einer Operationenfolge

- keine negativen Gewichte der Knoten

Page 20: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

VerbesserungenEine Möglichkeiten den Algorithmus zu verbessern ist zum Beispiel dasBenutzen einer Heuristik h1 mit h(k) h1(k)

Page 21: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

Zusammenfassung

Page 22: Der A*-Algorithmus. Gliederung 1.Uniformierte Suche 2.Heuristische Suche a) Kostenfunktion b) Heuristische Funktion c) Schätzfunktion 2.1.A*-Algorithmus

Quellenhttp://www.geosimulation.de/umsetzungen/Beschreibungen/

Routenoptinierung_A_Stern_Algorithmus.htm

http://a-stern-algorithmus.lexikona.de/art/A-Stern-Algorithmus.html

http://de.wikipedia.org/wiki/A-Stern-Algorithmus

http://wiki.delphigl.com/index.php/A-Stern

http://www2.informatik.uni-erlangen.de/Lehre/WS200506/GameAlgHS/download/Baur-AStar.pdf?language=de

http://fuzzy.cs.uni-magdeburg.de/studium/ise/txt/ise05k09.pdf