diff --git a/agent_ppo/feature/preprocessor.py b/agent_ppo/feature/preprocessor.py index 7e70ee5..90d556f 100644 --- a/agent_ppo/feature/preprocessor.py +++ b/agent_ppo/feature/preprocessor.py @@ -527,8 +527,8 @@ class Preprocessor: prev_low_risk = max(0.0, self.recharge_low_battery_ratio - prev_battery_ratio) prev_low_risk /= max(self.recharge_low_battery_ratio, 1e-6) risk = max(self._recharge_risk_score(), prev_low_risk) - mode_bonus = 0.25 if self.was_recharge_mode or self.prev_low_battery else 0.0 - return float(np.clip(1.2 + 1.1 * risk + mode_bonus, 1.2, 2.6)) + mode_bonus = 0.4 if self.was_recharge_mode or self.prev_low_battery else 0.0 + return float(np.clip(2.0 + 1.8 * risk + mode_bonus, 2.0, 4.2)) def battery_fail_penalty(self): """Adaptive terminal penalty for running out of battery before max steps.""" @@ -951,13 +951,6 @@ class Preprocessor: # Step penalty / 时间惩罚 step_penalty = -0.002 - # Dense guidance: prefer moving toward visible dirt. - # 稠密引导:鼓励向视野内污渍靠近。 - approach_reward = 0.0 - if not self.recharge_mode and (self.last_nearest_dirt_dist < 200.0 or self.nearest_dirt_dist < 200.0): - dist_delta = float(np.clip(self.last_nearest_dirt_dist - self.nearest_dirt_dist, -5.0, 5.0)) - approach_reward = 0.01 * dist_delta if dist_delta > 0 else 0.006 * dist_delta - # Recharge guidance only activates when battery safety is the bottleneck. # 仅在低电量/回充模式下引导靠近充电桩,避免高电量蹲充电桩。 charge_reward = 0.0 @@ -1015,7 +1008,6 @@ class Preprocessor: return ( cleaning_reward - + approach_reward + charge_reward + exploration_reward + stuck_penalty