Slight reward tweaks
Browse files
server/fin_auditor_environment.py
CHANGED
|
@@ -102,7 +102,7 @@ class FinAuditorEnvironment(Environment):
|
|
| 102 |
return FinAuditorObservation(
|
| 103 |
features=[],
|
| 104 |
message="Fin Auditor engine ready.",
|
| 105 |
-
reward=0.
|
| 106 |
done=False
|
| 107 |
)
|
| 108 |
|
|
@@ -110,17 +110,17 @@ class FinAuditorEnvironment(Environment):
|
|
| 110 |
self._state.step_count += 1
|
| 111 |
|
| 112 |
# FIX: OpenEnv grader:reward evaluates EACH step's reward independently.
|
| 113 |
-
# Must be strictly in (0.
|
| 114 |
if action and action.decisions:
|
| 115 |
action_array = np.array(action.decisions, dtype=np.uint8)
|
| 116 |
raw_reward = float(self.engine.compute_reward(action_array))
|
| 117 |
# Map raw bounds [-4.0, 40.0] -> [0.0, 1.0]
|
| 118 |
normalized_raw = (raw_reward + 4.0) / 44.0
|
| 119 |
-
# Clamp strictly inside (0.
|
| 120 |
-
step_reward = max(0.
|
| 121 |
else:
|
| 122 |
# Empty decisions (no-op step) - return safe floor, NOT 0.0
|
| 123 |
-
step_reward = 0.
|
| 124 |
|
| 125 |
self.engine.generate_batch(self.difficulty, self._INGEST_CHUNK_SIZE, self.sim_time_ns)
|
| 126 |
|
|
|
|
| 102 |
return FinAuditorObservation(
|
| 103 |
features=[],
|
| 104 |
message="Fin Auditor engine ready.",
|
| 105 |
+
reward=0.01, # Safe minimum floor, not divided
|
| 106 |
done=False
|
| 107 |
)
|
| 108 |
|
|
|
|
| 110 |
self._state.step_count += 1
|
| 111 |
|
| 112 |
# FIX: OpenEnv grader:reward evaluates EACH step's reward independently.
|
| 113 |
+
# Must be strictly in (0.01, 0.99) for every step, no exceptions.
|
| 114 |
if action and action.decisions:
|
| 115 |
action_array = np.array(action.decisions, dtype=np.uint8)
|
| 116 |
raw_reward = float(self.engine.compute_reward(action_array))
|
| 117 |
# Map raw bounds [-4.0, 40.0] -> [0.0, 1.0]
|
| 118 |
normalized_raw = (raw_reward + 4.0) / 44.0
|
| 119 |
+
# Clamp strictly inside (0.01, 0.999)
|
| 120 |
+
step_reward = max(0.01, min(0.99, normalized_raw))
|
| 121 |
else:
|
| 122 |
# Empty decisions (no-op step) - return safe floor, NOT 0.0
|
| 123 |
+
step_reward = 0.01
|
| 124 |
|
| 125 |
self.engine.generate_batch(self.difficulty, self._INGEST_CHUNK_SIZE, self.sim_time_ns)
|
| 126 |
|