Spaces:
Sleeping
Sleeping
| id: traffic-control | |
| name: Autonomous Traffic Control Environment | |
| version: "1.0.0" | |
| description: > | |
| A 4-way intersection RL environment where an AI agent controls traffic lights | |
| to maximise vehicle throughput and prioritise emergency vehicles. | |
| Compliant with the OpenEnv reset / step / state API specification. | |
| author: OpenEnv Hackathon Submission | |
| tags: | |
| - reinforcement-learning | |
| - traffic-control | |
| - emergency-vehicles | |
| - autonomous-systems | |
| - openenv | |
| # --------------------------------------------------------------------------- | |
| # Observation space | |
| # --------------------------------------------------------------------------- | |
| observation_space: | |
| type: object | |
| properties: | |
| current_phase: | |
| type: integer | |
| enum: [0, 1, 2, 3, 4] | |
| description: > | |
| Active traffic-light phase. | |
| 0=NS_GREEN | 1=EW_GREEN | 2=ALL_RED | 3=NS_YELLOW | 4=EW_YELLOW | |
| time_in_phase: | |
| type: integer | |
| minimum: 0 | |
| description: Steps elapsed since the last phase change. | |
| queue_lengths: | |
| type: array | |
| items: { type: integer, minimum: 0 } | |
| minItems: 4 | |
| maxItems: 4 | |
| description: "Regular vehicle queue depth per approach [N, S, E, W]." | |
| emergency_queue: | |
| type: array | |
| items: { type: integer, minimum: 0 } | |
| minItems: 4 | |
| maxItems: 4 | |
| description: "Emergency vehicle count per approach [N, S, E, W]." | |
| emergency_urgency: | |
| type: array | |
| items: { type: integer, minimum: 0, maximum: 10 } | |
| minItems: 4 | |
| maxItems: 4 | |
| description: "Max urgency of waiting emergency vehicles per approach (0 = none)." | |
| vehicles_passed: | |
| type: integer | |
| minimum: 0 | |
| description: Regular vehicles that cleared the intersection this step. | |
| emergency_passed: | |
| type: integer | |
| minimum: 0 | |
| description: Emergency vehicles that cleared the intersection this step. | |
| total_waiting_time: | |
| type: number | |
| description: Sum of per-vehicle waiting increments accumulated this step. | |
| collision: | |
| type: boolean | |
| description: True if a gridlock-induced collision occurred this step. | |
| reward: | |
| type: number | |
| description: Step reward computed by the environment. | |
| done: | |
| type: boolean | |
| description: True when the episode has ended. | |
| metadata: | |
| type: object | |
| description: Auxiliary info (step_count, task_id, …). | |
| # --------------------------------------------------------------------------- | |
| # Action space | |
| # --------------------------------------------------------------------------- | |
| action_space: | |
| type: object | |
| properties: | |
| light_phase: | |
| type: integer | |
| enum: [0, 1, 2] | |
| description: > | |
| Desired traffic-light phase. | |
| 0=NS_GREEN | 1=EW_GREEN | 2=ALL_RED | |
| # --------------------------------------------------------------------------- | |
| # Tasks | |
| # --------------------------------------------------------------------------- | |
| tasks: | |
| - id: basic_flow | |
| name: Basic Traffic Flow Management | |
| difficulty: easy | |
| description: > | |
| Optimise vehicle throughput at a 4-way intersection with moderate, | |
| consistent traffic and no emergency vehicles. | |
| max_steps: 200 | |
| grading: | |
| throughput_weight: 0.60 | |
| efficiency_weight: 0.40 | |
| target_throughput_per_step: 1.8 | |
| - id: emergency_priority | |
| name: Emergency Vehicle Prioritisation | |
| difficulty: medium | |
| description: > | |
| Manage mixed traffic while prioritising occasional emergency vehicles | |
| that arrive from random directions with high urgency. | |
| max_steps: 300 | |
| grading: | |
| throughput_weight: 0.30 | |
| emergency_weight: 0.35 | |
| delay_weight: 0.20 | |
| efficiency_weight: 0.15 | |
| target_emergency_delay_steps: 3 | |
| - id: dynamic_scenarios | |
| name: Dynamic and Complex Scenarios | |
| difficulty: hard | |
| description: > | |
| Handle high traffic density, traffic-surge events, and multiple | |
| simultaneous emergency vehicles. Robustness and collision avoidance | |
| are critical evaluation criteria. | |
| max_steps: 400 | |
| grading: | |
| throughput_weight: 0.25 | |
| emergency_weight: 0.30 | |
| delay_weight: 0.20 | |
| efficiency_weight: 0.15 | |
| adaptability_weight: 0.10 | |
| # --------------------------------------------------------------------------- | |
| # Server | |
| # --------------------------------------------------------------------------- | |
| server: | |
| port: 8000 | |
| module: traffic_control.server.app | |
| app: app | |
| workers: 2 | |
| # --------------------------------------------------------------------------- | |
| # Docker | |
| # --------------------------------------------------------------------------- | |
| docker: | |
| base_image: python:3.11-slim | |
| exposed_port: 8000 | |