synapse-x / env /echo.py
Nithin1026's picture
Initial submission Synapse-X
cb330aa
Raw
History Blame Contribute Delete
1.11 kB
"""
ECHO future prediction module.
"""
from env.models import Task
def _clamp(value: float, lower: float, upper: float) -> float:
return max(lower, min(upper, value))
def predict_future(task: Task, current_time: int, max_deadline: float = 20.0) -> dict[str, float]:
capped_deadline = max(max_deadline, 1.0)
future_risk = _clamp(task.risk * (1.0 + 0.1 * current_time), 0.0, 1.0)
deadline_pressure = 1.0 - (_clamp(task.deadline, 0.0, capped_deadline) / capped_deadline)
return {
"future_risk": round(future_risk, 4),
"deadline_pressure": round(_clamp(deadline_pressure, 0.0, 1.0), 4),
}
class ECHO:
"""
Environment change oracle for future risk and deadline pressure.
"""
def __init__(self, max_deadline: float = 20.0):
self.max_deadline = max_deadline
def predict(self, task: Task, current_time: int) -> Task:
values = predict_future(task, current_time=current_time, max_deadline=self.max_deadline)
task.future_risk = values["future_risk"]
task.deadline_pressure = values["deadline_pressure"]
return task