Vaším úkolem je implementovat metody value iteration a policy iteration pro řešení zadaného MDP.
Stáhněte si archiv kuimaze.zip (Aktualizováno 21.4.2023)
V modulu mdp_agent.py
implementujte funkce
find_policy_via_value_iteration(problem, discount_factor, epsilon)
a
find_policy_via_policy_iteration(problem, discount_factor)
.
Funkce mají následující parametry:
problem
je prostředí, tj. objekt typu kuimaze.MDPMaze
discount_factor
je z rozmezi (0,1)
epsilon
je maximalní povolená chyba pro Value jednotlivých stavů (pouze pro value iteration)
Očekávaný výstup: obě funkce by měly vracet strategii (policy) reprezentovanou jako slovník, kde klíčem je buď instance třídy State
nebo tuple (x,y) a hodnotou je optimální akce pro daný stav. Stačí uvažovat dosažitelné stavy a pro terminální stavy nechť je výstup None
.
Modul mdp_agent.py
odevzdejte do BRUTE.
Timeout: na jednotlivé běhy value/policy iteration pro danou instanci problému máte časový limit 30s.
MDPMaze
.
mdp_sandbox.py
, který ukazuje základní práci s MDPMaze, a můžete ho použít jako start k další implementaci.