SI2020/route-planning.md

2.0 KiB

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.

Obroty traktora

Zwrot traktora jest zmieniany pod wpływem niezgodności porządanego kierunku ruchu z obecnym zwrotem w funkcji CorrectMovement

Funkcja isValid

Sprawdza, czy pole nie jest ścianą ('#').

Test celu

Funkcja isDestination sprawdza, czy agent osiągnął zadany cel.

Funkcja aStarSearch

Jest to funkcja zawierająca główną pętlę strategii przeszukiwania.

Najpierw konfigurowane są początkowe parametry potrzebne do prawidłowego działania funkcji. Tworzone są dwie listy:

  • bool closedList[][] , która jest tablicą z początkowymi wartościami False, która przechowuje informacje o tym, czy dana komórka została już odwiedzona.
  • openList, która jest zbiorem par typu <double, pair <int int> > W cellDetails[i][j].parent_i i cellDetails[i][j].parent_j zapisywane będą współrzędne poprzednika danej komórki

Główna pętla pozostaje otwarta, dopóki openList nie będzie pusta