sinergym.utils.rewards.LinearReward

class sinergym.utils.rewards.LinearReward(energy_weight: float = 0.5, lambda_energy: float = 0.0001, lambda_temperature: float = 1.0)
__init__(energy_weight: float = 0.5, lambda_energy: float = 0.0001, lambda_temperature: float = 1.0)

Simple reward considering absolute difference to temperature comfort.

\[R = - W * lambda_E * power - (1 - W) * lambda_T * (max(T - T_{low}, 0) + max(T_{up} - T, 0))\]
Parameters
  • energy_weight (float, optional) – Weight given to the energy term. Defaults to 0.5.

  • lambda_energy (float, optional) – Constant for removing dimensions from power(1/W). Defaults to 1e-4.

  • lambda_temperature (float, optional) – Constant for removing dimensions from temperature(1/C). Defaults to 1.0.

Methods

__init__([energy_weight, lambda_energy, ...])

Simple reward considering absolute difference to temperature comfort.

calculate(power, temperatures, month, day)

Reward calculus.

calculate(power: float, temperatures: List[float], month: int, day: int) Tuple[float, Dict[str, float]]

Reward calculus.

Parameters
  • power (float) – Power consumption.

  • temperatures (List[float]) – Indoor temperatures (one per zone).

  • month (int) – Current month.

  • day (int) – Current day.

Returns

Reward value.

Return type

Tuple[float, Dict[str, float]]