我正在使用 PPO 算法训练 RL 代理来解决控制问题。代理的目的是保持房间的温度。这是一个插曲式任务,每 15 分钟一集长度为 9 小时,步长(正在采取的行动)。在代理训练期间,从给定状态,代理采取行动。然后我检查房间的温度15分钟(步长),如果这个温度在限制范围内,我给这个动作一个非常高的正奖励,如果温度不在他的限制范围内,我给一个负奖励。情节在36个动作(9小时*4个动作)后结束/小时)(步长为15分钟)
我对奖励结构的制定。
zone_temperature = output[4] # temperature of the zone 15 mins after the action is taken
thermal_coefficient = -10
if zone_temperature < self.temp_limit_min:
temp_penalty = self.temp_limit_min - zone_temperature
elif zone_temperature > self.temp_limit_max:
temp_penalty = zone_temperature - self.temp_limit_max
else :
temp_penalty = -100
reward = thermal_coefficient * temp_penalty
的值zone_temperature在 0 到 5 度的范围内变化。因此,当动作不好(温度不在限制范围内)时的奖励从 0 到 -50 变化,但是当动作良好时(温度在限制范围内)奖励是 +1000 。我有这样一个公式,以便代理可以很容易地理解哪个是好的动作,哪个是坏的。我的理解是否正确,是否建议为我的用例设置这样的奖励结构?
谢谢