Search
Implementujte funkci learn_policy(env) v souboru rl_agent.py který nahrajte do Brute. env je tentokrát typu HardMaze. Očekávaným výstupem je policy, slovník klíčovaný stavy, hodnoty mohou být z [0,1,2,3], což odpovídá up, right, down, left (N,E,S,W). Limit na učení na jednom postředí je 20 sekund. Nezapomeňte před odevzdáním vypnout vizualizace, viz VERBOSITY v rl_sandbox.py.
learn_policy(env)
rl_agent.py
env
HardMaze
policy
rl_sandbox.py
Opět budeme používat kostičkový svět. Stahněte si aktualizovaný balík kuimaze_rl.zip. Vizualizační metody jsou stejné, rovněž i inicializace, ale základní filozofie práce s prostředím je odlišná. Nemáme mapu a prostředí můžeme prozkoumávat pomocí hlavní metody env.step(action). Prostředí-simulátor ví, jaký je aktuální stav. Hledáme co nejlepší cestu ze startu do cíle. Chceme cestu s co nejvyšším očekávaným součtem zlevněných odměn.
kuimaze_rl.zip
env.step(action)
observation, reward, done, _ = env.step(action) state = observation[0:2]
Akci můžete získat třeba náhodným výběrem:
action = env.action_space.sample()
Součástí balíku je i rl_sandbox.py, kde je vidět základní náhodné procházení, možná inicializace tabulky Q hodnot, vizualizace atp.
Váš kód bude hodnoticím skriptem volán cca takto:
import rl_agent env = kuimaze.HardMaze(...) # tady skript vytvoří prostředí policy = rl_agent.learn_policy(env) # limit 20 sekund obv = env.reset() state = obv[0:2] is_done = False while not is_done: action = int(policy[state]) obv, reward, is_done, _ = env.step(action) nextstate = obv[0:2] total_reward += reward state = nextstate
Další příklady na stránce AI-Gym. Připomeňme z přednášky, že akce je nutná, abychom se o prostředí vůbec něco dozvěděli.
Termín odevzdání úlohy lze vidět v Upload systému.
Hodnocení je rozděleno následovně:
Kvalita kódu (1 body):
Můžete následovat pro Python určený PEP8. Většina editorů (jistě PyCharm) na nedostatky s ohledem na PEP8 i sama upozorňuje. Můžete se také inspirovat např. zde nebo si přečíst o idiomatickém pythonu na mediu či u pythonu.