Gym Environments#
Note that both InnerEnv
and
OuterEnv
deviate from the OpenAI Gym
interface, which has become a standard in RL research and the associated
software. This is due to internal design decisions which required additional
and/or separate functionality compared to that of OpenAI Gym. Nonetheless, we
recognize that many (most?) users will want an interface consistent with that
provided by OpenAI Gym. For this purpose, we provide two Gym-compliant
wrappers.
GymEnvironment#
GymEnvironment
is a wrapper around an outer
environment, which makes it compatible with the OpenAI Gym interface. This is
the type of environment returned by gym.make()
if one of the GV
predefined environment ids is used. Compared to a standard OpenAI Gym
environment, GymEnvironment
provides additional
state information via attributes
state_space
and
state
.
GymStateWrapper#
Despite providing state information,
GymEnvironment
is still meant to represent
partially observable control problem, which is reflected by the fact that the
reset()
and
step()
methods return the
observation representations. GymStateWrapper
changes the reset()
and
step()
methods to return the state
representations, and thus truly represents underlying fully observable version
of the control problem.