Download - Der A*-Algorithmus
![Page 1: Der A*-Algorithmus](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/1.jpg)
Der A*-Algorithmus
![Page 2: Der A*-Algorithmus](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/3.jpg)
Uniformierte Suche
Breitensuche
Vorteil : Findet Lösung mit minimaler Weglänge
Nachteil: Suchbaum wächst exponentiell mit der Suchtiefe
Tiefensuche
Vorteil : Speicherplatzbedarf ist linear
Nachteil: Findet kürzesten Weg eher zufällig (blinde Suche)
![Page 4: Der A*-Algorithmus](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/6.jpg)
Schätzungen
City-Block- bzw. Manhattan-Abstand:
Euklidischer Abstand:
![Page 7: Der A*-Algorithmus](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/7.jpg)
Schätzfunktion f
Der A* - Algorithmus vereint die Kostenfunktion g und
die heuristische Funktion h.
f(k) = g(k) + h(k)
wobei g eine streng monotone Kostenfunktion und h eine
zulässige heuristische Funktion ist.
![Page 8: Der A*-Algorithmus](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/11.jpg)
Soll außer der Länge des kürzesten Pfades auch
der Pfad selbst gefunden werden, so kommt ein
weiterer Schritt hinzu :
7- Es wird die Funktion Gib_kürzesten_Pfad_aus aufgerufen
![Page 12: Der A*-Algorithmus](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/12.jpg)
Beispiel
Augsburg: 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](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/13.jpg)
1.Frankfurt wurde erkundet, als nächstes wird Mannheim untersucht.
![Page 14: Der A*-Algorithmus](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/14.jpg)
2.Mannheim wurde erkundet, als nächstes wird Karlsruhe untersucht.
![Page 15: Der A*-Algorithmus](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/15.jpg)
3.Karlsruhe wurde erkundet, als nächstes wird Würzburg untersucht.
![Page 16: Der A*-Algorithmus](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/18.jpg)
6.Nürnberg wurde erkundet, und es wurde ein kürzester Pfad nach München gefunden.
![Page 19: Der A*-Algorithmus](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/19.jpg)
Bemerkungen
Der Algorithmus funktioniert nur wenn folgende
Bedingungen 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](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/20.jpg)
Verbesserungen
Eine Möglichkeiten den Algorithmus zu verbessern ist zum Beispiel das
Benutzen einer Heuristik h1 mit h(k) h1(k)
![Page 21: Der A*-Algorithmus](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/21.jpg)
Zusammenfassung
![Page 22: Der A*-Algorithmus](https://reader036.vdocuments.mx/reader036/viewer/2022062322/5681440f550346895db0abb7/html5/thumbnails/22.jpg)
Quellen
http://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