class_docstr: Implements HRL Hindsight Experience Replay as described in the following paper:  https://arxiv.org/abs/1805.08180
  
  This is the memory you should use if you want a shared hindsight experience replay buffer between multiple workers
docstr: :param max_size: The maximum size of the memory. should be defined in a granularity of Transitions
  :param hindsight_transitions_per_regular_transition: The number of hindsight artificial transitions to generate
                                                       for each actual transition
  :param hindsight_goal_selection_method: The method that will be used for generating the goals for the
                                          hindsight transitions. Should be one of HindsightGoalSelectionMethod
  :param goals_space: A GoalsSpace  which defines the properties of the goals
  :param do_action_hindsight: Replace the action (sub-goal) given to a lower layer, with the actual achieved goal
docstr_tok: [":","param","max_size",":","The","maximum","size","of","the","memory",".","should","be","defined","in","a","granularity","of","Transitions",":","param","hindsight_transitions_per_regular_transition",":","The","number","of","hindsight","artificial","transitions","to","generate","for","each","actual","transition",":","param","hindsight_goal_selection_method",":","The","method","that","will","be","used","for","generating","the","goals","for","the","hindsight","transitions",".","Should","be","one","of","HindsightGoalSelectionMethod",":","param","goals_space",":","A","GoalsSpace","which","defines","the","properties","of","the","goals",":","param","do_action_hindsight",":","Replace","the","action","(","sub-goal",")","given","to","a","lower","layer",",","with","the","actual","achieved","goal"]
code: def __init__(
      self,
      max_size: Tuple[MemoryGranularity, int],
      hindsight_transitions_per_regular_transition: int,
      hindsight_goal_selection_method: HindsightGoalSelectionMethod,
      goals_space: GoalsSpace,
  ):
      """
      :param max_size: The maximum size of the memory. should be defined in a granularity of Transitions
      :param hindsight_transitions_per_regular_transition: The number of hindsight artificial transitions to generate
                                                           for each actual transition
      :param hindsight_goal_selection_method: The method that will be used for generating the goals for the
                                              hindsight transitions. Should be one of HindsightGoalSelectionMethod
      :param goals_space: A GoalsSpace  which defines the properties of the goals
      :param do_action_hindsight: Replace the action (sub-goal) given to a lower layer, with the actual achieved goal
      """
      super().__init__(
          max_size,
          hindsight_transitions_per_regular_transition,
          hindsight_goal_selection_method,
          goals_space,
      )
  
file_path: coach/rl_coach/memories/episodic/episodic_hrl_hindsight_experience_replay.py
imports: from typing import Tuple
  from rl_coach.core_types import Episode, Transition
  from rl_coach.memories.episodic.episodic_hindsight_experience_replay import HindsightGoalSelectionMethod, EpisodicHindsightExperienceReplay, EpisodicHindsightExperienceReplayParameters
  from rl_coach.memories.non_episodic.experience_replay import MemoryGranularity
  from rl_coach.spaces import GoalsSpace
label_desc: Use image node_id 1 to create a new EpisodicHRLHindsightExperienceReplay object from inherited base classes: EpisodicHindsightExperienceReplay with example: obj = EpisodicHRLHindsightExperienceReplay(max_size, hindsight_transitions_per_regular_transition, hindsight_goal_selection_method, goals_space)