====== Specifikace ======
Podrobná specifikace toho, co musí agent umět a jak musí vypadat, aby mohl být otestován automatickým evaluačním systémem.
==== Kuimaze prostředí ====
Stáhněte si testovací prostředí {{:courses:b3b33kui:cviceni:prohledavani_stavoveho_prostoru:kuimaze_search.zip|kuimaze_search.zip}}.
Doinstalujte zavislosti pomocí příkazů:
pip3 install gym numpy
sudo apt-get install python3-pil.imagetk
Ke všem metodám a funkcím ve studentském balíčku {{:courses:b3b33kui:cviceni:prohledavani_stavoveho_prostoru:kuimaze_search.zip|kuimaze_search.zip}} je k dispozici dokumentace v podsložce '/kuimaze_doc/'. Tato dokumentace je také dostupná online na [[https://cw.felk.cvut.cz/cmp/courses/be5b33kui/kuimaze_doc/index.html|Dokumentace link]].
==== Soubor k odevzdání ====
* Agent musí fungovat v **Pythonu 3**, který bude nainstalován na strojích pro automatické hodnocení! Jinak se může stát, že vaše kódy nebudou fungovat správně!
Odevzdávat budete ZIP archív s vaším modulem ''agent.py'' a případně se všemi moduly, které tento modul importuje. **Tyto soubory musí být v
kořeni archívu, archív nesmí obsahovat žádné adresáře!** ZIP archív (a jen tento soubor) nahrajete do
[[https://cmp.felk.cvut.cz/ulohy/|upload systému]].
=== Třída Agent a její metody ===
Balíček obsahuje soubor ''easy_example.py'', který slouží jako předloha pro vytvoření vašeho agenta a také i jako ukázka zacházení s daným prostředím. Rychlý přehled základních metod:
import kuimaze # package import
MAP = 'maps/normal/normal9.bmp'
env = kuimaze.InfEasyMaze(map_image=MAP) # create the environment
observation = self.environment.reset() # returns start_pos, goal_pos
positions_with_costs = env.expand(position) # returns [(pos, cost)] list
Vašeho agenta (v souboru 'agent.py') implementujete ve formě třídy ''BaseAgent'' (soubor '/kuimaze/baseagent.py' v {{:courses:b3b33kui:cviceni:prohledavani_stavoveho_prostoru:kuimaze_search.zip|kuimaze_search.zip}}), která bude poskytovat tyto metody:
^ metoda ^ vstupní parametry ^ výstupní parametry ^vysvětlení ^
| ''%%__%%init%%__%%'' | ''environmnent'' | //žádné// | Vytvoření agenta.|
| ''find_path'' | //žádné// | cesta | Vygenerování cesty. Metoda vrací list se souřadnicemi cesty ve tvaru [(x1, y1), (x2, y2), ... ]. Musí začínat z počátečního stavu a končit v cílovém stavu. Pokud žádná cesta neexistuje, vraťte ''None''.|
=== Visualizace ===
V případě úspěchu, můžete vidět na konci např.
{{:courses:b3b33kui:cviceni:prohledavani_stavoveho_prostoru:normal9.png|}}