Wyszukiwanie ścieżek w grafach - Algorytm A*

Algorytm a*

algorytm heurystyczny znajdowania najkrótszej ścieżki w grafie ważonym z dowolnego wierzchołka do wierzchołka spełniającego określony warunek zwany testem celu.

Algorytm a*

Algorytm A* od wierzchołka początkowego tworzy ścieżkę, za każdym razem wybierając wierzchołek x z dostępnych w danym kroku niezbadanych wierzchołków tak, by minimalizować funkcję f(x) zdefiniowaną:

f(x) = g(x) + h(x)

gdzie:

g(x) to droga pomiędzy wierzchołkiem początkowym a x. Dokładniej: suma wag krawędzi, które należą już do ścieżki plus waga krawędzi łączącej aktualny węzeł z x.

f(x) przewidywana przez heurystykę droga od x do wierzchołka docelowego.

W każdym kroku algorytm dołącza do ścieżki wierzchołek o najniższym współczynniku f. Kończy w momencie natrafienia na wierzchołek będący wierzchołkiem docelowym.

Algorytm a*

Algorytm a*

Wartość h

Wartość f

Wartość G

wartość H + wartość G

Odległość z A

Odległość z B

Algorytm a*

Przykłady

źródło: https://sebastian.itch.io/

Algorytm a*

Przykłady

źródło: https://sebastian.itch.io/

Algorytm a*

Przykłady

źródło: https://sebastian.itch.io/

Historia

W 1968 Nils Nilsson pracował nad udoskonaleniem wyszukiwania ścieżek w robocie Shakey.

Shakey to mobilny robot wielozadaniowy ogólnego wykorzystania.

Poruszał problemy robotyki, widzenia komputerowego i przetwarzania języka naturalnego

Rozwijany w latach 1966-1972.

Programowany w języku LIPS.

Historia

Potrafił przemieszczać się z jednego pokoju do drugiego, wyłączać i włączać światło w pomieszczeniu, zamykać i otwierać drzwi, wjeżdżać i zjeżdżać z powierzchni pochyłych przesuwać przedmioty i je omijać

Do pomiarów i prawidłowego
działania wykorzystywał

- antenę radiową
- sonar
- kamerę
- sensory kolizji
-silniczki sterujące kołami i kamerą

 

Historia

Podczas pierwszych badań nad wyszukiwaniem ścieżek dla robota powstał zmodyfikowany algorytm Dijkstry, nazwany A1.

A1 nie był optymalnym algorytmem dla robota, ze względu na długi czas pracy.

A2 był algorytmem wykorzystującym heurystykę pozwalająca na ocenienie odległości do mety

Po udowodnieniu optymalności algorytmu A2 zmieniono jego nazwę na A*

Zmienny koszt ruchu

Więcej niż dwa stany ("Można przejść", "Nie można przejść)

Koszt ruchu może wpłynąć na znalezioną najkrótszą ścieżkę

"Influence mapping" - dynamiczna mapa kosztów

Przestrzeń poszukiwania z polami niekwadratowymi

Możliwość użycia pól o dowolnym kształcie

Należy przechowywać informacje o sąsiedztwie

G uzależniamy od przejścia z jednej krainy do drugiej

H możemy wyliczyć jako odległość w linii prostej

Przestrzeń poszukiwania z polami niekwadratowymi

Zoptymalizowana przestrzeń poszukiwań

Ucinanie ślepych zaułków

Ucinanie miejsc niedostępnych

Większe i mniejsze pola

Zastosowania

Planowanie ścieżek robotów

i...

Aplikacje do poszukiwania najkrótszych połączeń kolejowych pomiędzy miastami

Zastosowania

Gry wideo...

Zastosowanie,

Modyfikacje Algorytmu A*

Modyfikacje Algorytmu A*

A*Range

Dziękuję za uwagę

Wyszukiwanie ścieżek w grafach - Algorytm A*

By Piotr Grobelny

Wyszukiwanie ścieżek w grafach - Algorytm A*

  • 1,271