smartgrid.wrappers.reward_aggregator.RewardAggregator¶
- class smartgrid.wrappers.reward_aggregator.RewardAggregator(env: SmartGrid)[source]¶
Bases:
ABC,RewardWrapperWraps the multi-objective env into a single-objective by aggregating rewards.
The
smartgrid.environment.SmartGridenvironment supports multiple reward functions; itsSmartGrid.step()method returns a list of dictionaries, one dict for each agent, containing the rewards indexed by their reward function’s name. However, most Reinforcement Learning algorithms expect a scalar reward, or in this case, a list of scalar rewards, one for each agent.Classes that extend the
RewardAggregatorbridge this gap, by aggregating (scalarizing) the multiple rewards into a single one.Methods
__init__(env)Returns the class name of the wrapper.
close()Closes the wrapper and
env.get_wrapper_attr(name)Gets an attribute from the wrapper and lower environments if name doesn't exist in this object.
render()Uses the
render()of theenvthat can be overwritten to change the returned data.reset(*[, seed, options])Uses the
reset()of theenvthat can be overwritten to change the returned data.reward(rewards)Transform multi-objective rewards into single-objective rewards.
step(action)Modifies the
envstep()reward usingself.reward().wrapper_spec(**kwargs)Generates a WrapperSpec for the wrappers.
Attributes
Return the
Envaction_spaceunless overwritten then the wrapperaction_spaceis used.Returns the
Envmetadata.Returns the
Envnp_randomattribute.Return the
Envobservation_spaceunless overwritten then the wrapperobservation_spaceis used.Returns the
Envrender_mode.Return the
Envreward_rangeunless overwritten then the wrapperreward_rangeis used.Returns the
Envspecattribute with the WrapperSpec if the wrapper inherits from EzPickle.Returns the base environment of the wrapper.
- property _np_random¶
This code will never be run due to __getattr__ being called prior this.
It seems that @property overwrites the variable (_np_random) meaning that __getattr__ gets called with the missing variable.
- property action_space: Space[ActType] | Space[WrapperActType]¶
Return the
Envaction_spaceunless overwritten then the wrapperaction_spaceis used.
- close()¶
Closes the wrapper and
env.
- get_wrapper_attr(name: str) Any¶
Gets an attribute from the wrapper and lower environments if name doesn’t exist in this object.
- Args:
name: The variable name to get
- Returns:
The variable with name in wrapper or lower environments
- property observation_space: Space[ObsType] | Space[WrapperObsType]¶
Return the
Envobservation_spaceunless overwritten then the wrapperobservation_spaceis used.
- render() RenderFrame | list[RenderFrame] | None¶
Uses the
render()of theenvthat can be overwritten to change the returned data.
- property render_mode: str | None¶
Returns the
Envrender_mode.
- reset(*, seed: int | None = None, options: dict[str, Any] | None = None) tuple[WrapperObsType, dict[str, Any]]¶
Uses the
reset()of theenvthat can be overwritten to change the returned data.
- abstract reward(rewards: List[Dict[str, float]]) List[float][source]¶
Transform multi-objective rewards into single-objective rewards.
- Parameters:
rewards – A list of dicts, one dict for each learning agent. Each dict contains one or several rewards, indexed by their reward function’s name, e.g.,
{ 'fct1': 0.8, 'fct2': 0.4 }.- Returns:
A list of scalar rewards, one for each agent. The rewards are scalarized from the dict.
- property reward_range: tuple[SupportsFloat, SupportsFloat]¶
Return the
Envreward_rangeunless overwritten then the wrapperreward_rangeis used.
- property spec: EnvSpec | None¶
Returns the
Envspecattribute with the WrapperSpec if the wrapper inherits from EzPickle.
- step(action: ActType) tuple[ObsType, SupportsFloat, bool, bool, dict[str, Any]]¶
Modifies the
envstep()reward usingself.reward().
- property unwrapped: Env[ObsType, ActType]¶
Returns the base environment of the wrapper.
This will be the bare
gymnasium.Envenvironment, underneath all layers of wrappers.
- classmethod wrapper_spec(**kwargs: Any) WrapperSpec¶
Generates a WrapperSpec for the wrappers.