Search
Vaším úkolem je naprogramovat algoritmus A* k prohledávání stavového prostoru State_space_search.
Naprogramujte algoritmus A*, který najde optimální cestu do cílového stavu. Pokud cesta neexistuje, výsledné řešení je None. K dispozici máte prostředí-bludiště kuimaze2.SearchProblem.
None
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.
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.
03-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