Search
Vaším úkolem je naprogramovat algoritmus A* k prohledávání stavového prostoru.
Naprogramujte algoritmus A*, který
None
K dispozici máte prostředí-bludiště kuimaze2.SearchProblem.
kuimaze2.SearchProblem
Pro správnou funkčnost algoritmu je zapotřebí zvolit takzvanou heuristickou funkci. Popis jaký dopad mají různé návrhy této funkce na výsledné řešení je velice pěkně zpracován zde. Cena přechodu mezi dvěma sousedními políčky je vždy větší nebo rovna euklidovské vzdálenosti souřadnic těchto políček a obecně není stejná pro všechny páry políček.
kuimaze2
example_search.py
agent.py
V modulu (souboru) agent.py implementujte třídu Agent, která bude poskytovat tyto metody:
Agent
__init__
environmnent: SearchProblem
find_path
State
Následující moduly Pythonu mohou být užitečné při implementaci jistých částí A* algoritmu: queue, heapq.
02-search
Bodové ohodnocení za rešení úlohy lze vidět v hodnoceni.
Když úlohu úspěšně vyřešíte, měli byste v závislosti na zvolené mapě být schopni vygenerovat obrázek podobný následujícímu. (Tento konkrétní obrázek pochází z předchozí verze balíčku kuimaze. Aktuální verze generuje obrázky mírně jiné.)
kuimaze