69 lines
2.0 KiB
Markdown
69 lines
2.0 KiB
Markdown
|
# 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
|
||
|
|
||
|
---
|