code: def __init__(
      self,
      chain_length=16,
      start_state=1,
      max_steps=None,
      observation_type=ObservationType.Therm,
      left_state_reward=1 / 1000,
      right_state_reward=1,
      simple_render=True,
  ):
      super().__init__()
      if chain_length <= 3:
          raise ValueError(
              "Chain length must be > 3, found {}".format(chain_length)
          )
      if not 0 <= start_state < chain_length:
          raise ValueError(
              "The start state should be within the chain bounds, found {}".format(
                  start_state
              )
          )
      self.chain_length = chain_length
      self.start_state = start_state
      self.max_steps = max_steps
      self.observation_type = observation_type
      self.left_state_reward = left_state_reward
      self.right_state_reward = right_state_reward
      self.simple_render = simple_render
  
      # spaces documentation: https://gym.openai.com/docs/
      self.action_space = spaces.Discrete(
          2
      )  # 0 -> Go left, 1 -> Go right
      self.observation_space = spaces.Box(
          0, 1, shape=(chain_length,)
      )  # spaces.MultiBinary(chain_length)
  
      self.reset()
  
file_path: coach/rl_coach/environments/toy_problems/exploration_chain.py
imports: from enum import Enum
  import gym
  import numpy
  from gym import spaces
label_desc: Use image node_id 1 to create a new ExplorationChain object from inherited base classes: gym with example: obj = ExplorationChain(chain_length, start_state, max_steps, observation_type, left_state_reward, right_state_reward, simple_render)