Search
V prostředí Prohledávání stavového prostoru naprogramujte nalezení nejlevnější cesty. Nezapomeňte, že cena přechodu mezi pozicemi nemusí být nutně všude stejná.
kuimaze.InfEasyMaze
maps/easy_intro/easy_intro_1.bmp
>>> import kuimaze >>> MAP = 'maps/easy_intro/easy_intro_1.bmp' >>> env = kuimaze.InfEasyMaze(map_image=MAP)
render()
>>> env.render()
Okno s obrázkem si zatím nechte otevřené, nezavírejte ho!
reset()
>>> env.reset() ((1, 0, 0.0), (4, 2, 0.0))
expand()
>>> env.expand((1,0)) [[(2, 0), 1.0], [(0, 0), 1.0]]
env.render()
easy_example.py
Agent.find_path()
Ačkoli mnozí jste již netrpěliví skočit na implementaci algoritmu A*, zkuste napřed hledání cesty v jednoduchém bludišti. Je to menší problém, bude se vám snáz krokovat a debugovat, ověříte si správné zacházení s prostředím na jednodušším problému. Základní komunikační rozhraní je stejné, tedy
import kuimaze MAP = 'maps/easy_intro/easy_intro_1.bmp' env = kuimaze.InfEasyMaze(map_image=MAP) observation = env.reset() # returns start_pos, goal_pos position = observation[0][0:2] # start position positions_with_costs = env.expand(position) # list of lists [pos,cost], i.e. [[pos1, cost1],[pos2,cost2],...]
agent.py
Rozmyslete si trochu nad papírem datové struktury, které budete potřebovat.