====== HardMaze ====== ===== Příklad použití ===== Vytvoření instance prostředí je prakticky shodné s ''[[courses:b3b33kui:kuimaze:2_mdpmaze|MDPMaze]]'', jediný rozdíl je použití třídy ''HardMaze'', např. >>> env = kuimaze.HardMaze(MAP1, probs=(0.8, 0.1, 0.1, 0.0)) Prostředí neumožňuje zjistit, jaké akce jsou přípustné pro daný stav. Existuje jen obecná množina akcí, z níž můžete např. akci náhodně vybírat: >>> action = env.action_space.sample() **Hlavní metoda** pro práci s prostředím je ''step(action)'': >>> observation, reward, done, _ = env.step(action) >>> new_state = observation[0:2] První dvě čísla v ''observation'' jsou nový stav. Před vlastním použitím prostředí je třeba jej resetovat: >>> obs = env.reset() (1, 0, 0.0) Vidíme, že začínáme ve stavu (1,0). Zkusme udělat 3 kroky doprava (akce 1) a 2 kroky dolů (akce 2), abychom se dostali na cílový stav. (Pro ukázku chování metody ''step()'' to udělat to můžeme protože víme, kde v mapě cíl je. Prostředí samotné nám ale neřekne, kde cíl leží.) >>> env.step(1) ((2, 0, 0.0), -0.04, False, None) >>> env.step(1) ((3, 0, 0.0), -0.04, False, None) >>> env.step(1) ((4, 0, 0.0), -0.04, False, None) >>> env.step(2) ((4, 1, 0.0), -0.04, False, None) >>> env.step(2) ((4, 2, 0.0), 0.96, True, None) Skrz stavy (2,0), (3,0), (4,0), (4,1) jsme se dostali do cílového stavu (4,2). * V neterminálních stavech byl náš ''reward'' -0.04 a prostředí indikovalo pomocí třetí vrácené hodnoty (''False''), že jsme ještě nedosáhli cílového stavu. * V cílovém stavu (4,2) jsme dostali odměnu 0.96 (-0.04 + 1, tj. součet odměny za přechod z předchozího do cílového stavu a odměny za dosažení cílového stavu). Prostředí také indikuje, že bylo dosažené cíle (''True'' jako třetí vrícená hodnota). Když je dosaženo cílového stavu, již není možné dělat další akci: >>> env.step(2) ... AssertionError: Episode finished, no more actions possible. Call reset() to start a new episode.