47 lines
1.7 KiB
Markdown
47 lines
1.7 KiB
Markdown
# Opis dokumentu
|
|
Ten dokument to raport z wykonanego drugiego zadania projektu zespołowego na przedmiot Sztuczna Inteligencja. Celem zadania jestzastosowanie strategii przeszukiwania stanów `A*` do problemu planowania ruchu agenta na kracie. Tematem projektu jest inteligentny traktor.
|
|
|
|
# Zespół
|
|
W skład zespołu wchodzą:
|
|
Tomasz Dzierzbicki,
|
|
Szymon Parafiński,
|
|
Karol Piotrowski,
|
|
Jarosław Zbąski.
|
|
|
|
# Zasady poruszania się agenta po planszy
|
|
* Agent nie może wejść na pole oznaczone jako '#', gdyż jest to granica mapy.
|
|
* Koszt wejścia na pole bez buraków oznaczone jako '.' wynosi 1.
|
|
* Koszt wejścia na pole buraków oznaczone jako 'B' wynosi 9.
|
|
* Agent może poruszać się do przodu i obracać się w lewo/prawo.
|
|
|
|
# Heurystyka i koszt w algorytmie przeszukiwania
|
|
Koszt f obliczany jest ze wzoru f=g+h, gdzie:
|
|
* g - suma wag należących do ścieżki
|
|
* h obliczne jest funkcją *calculateHValue*, która oblicza odległość w metryce Manhattan.
|
|
|
|
![](images/calculateHValue.png)
|
|
|
|
# Obroty traktora
|
|
Zwrot traktora jest zmieniany pod wpływem niezgodności porządanego kierunku ruchu z obecnym zwrotem w funkcji *CorrectMovement*
|
|
|
|
![](images/CorrectMovement.png)
|
|
|
|
# Funkcja isValid
|
|
Sprawdza, czy pole nie jest ścianą ('#').
|
|
|
|
![](images/isValid.png)
|
|
|
|
# Test celu
|
|
Funkcja isDestination sprawdza, czy agent osiągnął zadany cel.
|
|
|
|
|
|
![](images/isDestination.png)
|
|
|
|
# Funkcja aStarSearch
|
|
Jest to funkcja zawierająca główną pętlę strategii przeszukiwania.
|
|
|
|
![](images/aStarSearch.png)
|
|
|
|
Najpierw konfigurowane są początkowe parametry potrzebne do prawidłowego działania funkcji. Tworzone są dwie listy:
|
|
* **bool** *closedList* z początkowymi wartościami False, która przechowuje informacje o tym, czy dana komórka została już odwiedzona.
|
|
* |