Spaces:
Sleeping
Sleeping
| import os | |
| from env.delivery_env import DeliveryEnv | |
| from graders.grader import compute_score | |
| TASK = os.getenv("TASK", "easy") | |
| env = DeliveryEnv() | |
| state = env.reset(TASK) | |
| print(f"[START] task={TASK} env=food_delivery model=smart-urgency-agent") | |
| rewards = [] | |
| step_count = 0 | |
| while True: | |
| orders = [o for o in state["orders"] if not o["assigned"]] | |
| riders = state["riders"] | |
| if not orders: | |
| break | |
| best_score = float("inf") | |
| best_action = None | |
| # 🔥 Evaluate all (order, rider) pairs | |
| for order in orders: | |
| for rider in riders: | |
| distance = abs(rider["location"] - order["location"]) | |
| urgency = order["deadline"] - state["time"] | |
| score = distance + urgency # lower is better | |
| if score < best_score: | |
| best_score = score | |
| best_action = (order, rider) | |
| order, rider = best_action | |
| action = f"assign_{order['id']}_to_{rider['id']}" | |
| state, reward, done, info = env.step(action) | |
| rewards.append(reward) | |
| step_count += 1 | |
| error = info["error"] if info["error"] else "null" | |
| print(f"[STEP] step={step_count} action={action} reward={reward:.2f} done={str(done).lower()} error={error}") | |
| if done: | |
| break | |
| max_possible = len(rewards) * 1.5 # adjusted for bonus rewards | |
| score = compute_score(sum(rewards), max_possible) | |
| print(f"[END] success=true steps={step_count} score={score:.2f} rewards={','.join(f'{r:.2f}' for r in rewards)}") |