====== 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 ''SearchAgent'' (soubor '/kuimaze/searchagent.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.| | ''heuristic_function'' | ''position'', ''goal''| value | Metoda vrátí hodnotu přípustné heuristické funkce ze stavu ''position'' do stavu cílového stavu ''goal''.| | ''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|}}