Warning
This page is located in archive. Go to the latest version of this course pages.

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).

  • 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.

courses/b3b33kui/kuimaze/3_hardmaze.txt · Last modified: 2023/04/15 21:22 by xposik