HardMaze

Příklad použití

Vytvoření instance prostředí je prakticky shodné s 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).

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.