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.