SZI-Smieciarka/route-planning.md

69 lines
2.0 KiB
Markdown
Raw Normal View History

# Sztuczna Inteligencja
**Temat projektu:** Inteligenta Śmieciarka
**Zespół:** Kacper Borkowski, Adam Borowski, Adam Osiowy
---
## 1. Ogólne działanie:
![gif](resources/screenShots/route-planning.gif)
- Śmieciarka zaczyna ruch z pozycji (10, 10), po czym odwiedza wszystkie domy,
których współrzędne zostały wylosowane, następnie jedzie na wysypisko do najbliższego kontenera,
po czym wybiera następny najbliższy nieodwiedzony kontener.
- Droga między domami jest wyznaczana przez algorytm A*.
- Każdy następny dom jest najbliższym, jeszcze nieodwiedzonym domem.
---
## 2. Pętla główna strategii przeszukiwania:
![petla](resources/screenShots/petlaGlowna.png)
- w pętli głównej wykorzystujemy przeszukiwanie grafu (graphsearch)
- tworzymy kolejkę priorytetową, po czym dodajemy do niej bieżący węzeł
- przeprowadzamy test osiągnięcia celu:
- jeżeli cel został osiągnięty, to odtwarzamy ścieżkę przechodząc po rodzicach
- do listy odwiedzonych elementów dodajemy bieżący element
- wybieramy następnika
- następnikowi przypisujemy rodzica
- wyznaczamy priorytet następnika
- dodajemy go do kolejki zgodnie z priorytetem
---
## 3. Funkcja następnika:
![succ](resources/screenShots/funkcjaNastepnika.png)
gdzie sąsiedzi to:
```
sasiedzi = [(0, 1), (0, -1), (1, 0), (-1, 0)]
```
- następnik jest wyznaczany spośród pól sąsiadujących z danym polem (z pominięciem pól po skosie)
- następnie sprawdzane jest czy nie znajduje się on poza mapą
- potem sprawdzane jest czy wybrany punkt nie jest przeszkodą
---
## 4. Przyjęta heurystyka:
![heurystyka](resources/screenShots/heurystyka.png)
- Heurystyka to suma odległości Manhattan
---
## 5. Koszt wjechania na pole
![stepcost](resources/screenShots/stepcost.png)
- Koszt wjechania na pole, na którym jest dom wynosi 3
- Koszt wjechania na pole, które jest wysypiskiem wynosi 2
- Koszt wjechania na pole, które jest kontenerem wynosi 3
- Koszt wjechania na zwyczajne pole wynosi 1
---