smartgrid.rewards.reward_constraints

RewardConstraints allow to activate a reward function only when certain conditions are met.

Two intuitive type of constraints are:

Time-based constraints: enabling a reward function only during certain time steps. This allows, for example, adding progressively new reward functions, by enabling some only after a given number of time steps. This simulates a kind of “evolving” ethical considerations, through this addition of reward functions. See the TimeConstrainedReward for details.

Agent-based constraints: enabling a reward function only for certain agents. This allows, for example, comparing the behaviour of two populations of agents in the same simulation, driven by different objectives. See the AgentConstrainedReward for details.

Constraints can be combined, e.g., a reward function can be both time-constrained and agent-constrained, and extended, e.g., users can add their own constraints.

members:

Classes

AgentConstrainedReward(base_reward, agents)

Enable or disable a reward function based on learning agents.

TimeConstrainedReward(base_reward[, ...])

Enable or disable a reward function based on the current time step.