# yasmeensarah-2312/traffic-signal-optimization-using-rl architecture

> Architecture diagram of the GitHub repository yasmeensarah-2312/traffic-signal-optimization-using-rl, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/yasmeensarah-2312/traffic-signal-optimization-using-rl
- Repository: https://github.com/yasmeensarah-2312/traffic-signal-optimization-using-rl

## Overview

This repository presents an intelligent traffic-signal optimization project using DQN, SUMO, adaptive control, and ambulance priority. The evidenced runtime path is scenario selection, SUMO simulation, traffic-state observation, and traffic-light phase control; a separate perception script detects vehicles in video and writes lane counts to CSV. The tree advertises RL and ambulance subsystems, but their implementation and connections are not shown in the sampled source, so those links are omitted.

Main entry points: [`simulation/sumo/sumo_runner.py`](https://github.com/yasmeensarah-2312/traffic-signal-optimization-using-rl/blob/main/simulation/sumo/sumo_runner.py) (Scenario Runner), [`perception/day2_video_detection.py`](https://github.com/yasmeensarah-2312/traffic-signal-optimization-using-rl/blob/main/perception/day2_video_detection.py) (YOLO Lane Detection), [`simulation/sumo/traffic_interface.py`](https://github.com/yasmeensarah-2312/traffic-signal-optimization-using-rl/blob/main/simulation/sumo/traffic_interface.py) (Traffic Interface), [`simulation/sumo/scenarios`](https://github.com/yasmeensarah-2312/traffic-signal-optimization-using-rl/tree/main/simulation/sumo/scenarios) (SUMO Scenarios)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_simulation["Traffic Simulation"]
  node_scenarios["SUMO Scenarios"]
  node_network["SUMO Network"]
  node_runner["Scenario Runner<br/>[sumo_runner.py]"]
  node_interface["Traffic Interface"]
  node_sumo["SUMO / TraCI"]
end

subgraph group_control["Control and Priority"]
  node_rl["DQN Control"]
  node_ambulance["Ambulance Priority"]
  node_baseline["Baseline Control"]
end

subgraph group_perception["Video Perception"]
  node_video["Traffic Video"]
  node_detector["YOLO Lane Detection"]
  node_yolo["YOLO Model"]
end

subgraph group_outputs["Traffic Data"]
  node_csv["Lane Counts CSV"]
end

node_user(("Operator"))

node_user -->|"selects scenario"| node_runner
node_runner -->|"loads config"| node_scenarios
node_runner -->|"starts simulation"| node_sumo
node_sumo -->|"provides state"| node_runner
node_runner -->|"sets phase"| node_sumo
node_interface -->|"loads config"| node_scenarios
node_interface -->|"starts simulation"| node_sumo
node_sumo -->|"provides state"| node_interface
node_interface -->|"sets phase"| node_sumo
node_sumo -->|"loads network"| node_network
node_user -->|"runs analysis"| node_detector
node_detector -->|"reads frames"| node_video
node_detector -->|"tracks vehicles"| node_yolo
node_detector -->|"writes counts"| node_csv

click node_scenarios "https://github.com/yasmeensarah-2312/traffic-signal-optimization-using-rl/tree/main/simulation/sumo/scenarios"
click node_network "https://github.com/yasmeensarah-2312/traffic-signal-optimization-using-rl/blob/main/simulation/sumo/single-intersection.net.xml"
click node_runner "https://github.com/yasmeensarah-2312/traffic-signal-optimization-using-rl/blob/main/simulation/sumo/sumo_runner.py"
click node_interface "https://github.com/yasmeensarah-2312/traffic-signal-optimization-using-rl/blob/main/simulation/sumo/traffic_interface.py"
click node_rl "https://github.com/yasmeensarah-2312/traffic-signal-optimization-using-rl/tree/main/rl"
click node_ambulance "https://github.com/yasmeensarah-2312/traffic-signal-optimization-using-rl/tree/main/ambulance"
click node_baseline "https://github.com/yasmeensarah-2312/traffic-signal-optimization-using-rl/tree/main/baseline"
click node_detector "https://github.com/yasmeensarah-2312/traffic-signal-optimization-using-rl/blob/main/perception/day2_video_detection.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_scenarios,node_network,node_runner,node_interface,node_sumo toneBlue
class node_rl,node_ambulance,node_baseline toneAmber
class node_video,node_detector,node_yolo toneMint
class node_csv toneRose
class node_user toneIndigo
```

## Components

### Traffic Simulation

- [SUMO Scenarios](https://github.com/yasmeensarah-2312/traffic-signal-optimization-using-rl/tree/main/simulation/sumo/scenarios): `simulation/sumo/scenarios`
- [SUMO Network](https://github.com/yasmeensarah-2312/traffic-signal-optimization-using-rl/blob/main/simulation/sumo/single-intersection.net.xml): `simulation/sumo/single-intersection.net.xml`
- [Scenario Runner](https://github.com/yasmeensarah-2312/traffic-signal-optimization-using-rl/blob/main/simulation/sumo/sumo_runner.py): `simulation/sumo/sumo_runner.py`
- [Traffic Interface](https://github.com/yasmeensarah-2312/traffic-signal-optimization-using-rl/blob/main/simulation/sumo/traffic_interface.py): `simulation/sumo/traffic_interface.py`
- **SUMO / TraCI**

### Control and Priority

- [DQN Control](https://github.com/yasmeensarah-2312/traffic-signal-optimization-using-rl/tree/main/rl): `rl`
- [Ambulance Priority](https://github.com/yasmeensarah-2312/traffic-signal-optimization-using-rl/tree/main/ambulance): `ambulance`
- [Baseline Control](https://github.com/yasmeensarah-2312/traffic-signal-optimization-using-rl/tree/main/baseline): `baseline`

### Video Perception

- **Traffic Video**
- [YOLO Lane Detection](https://github.com/yasmeensarah-2312/traffic-signal-optimization-using-rl/blob/main/perception/day2_video_detection.py): `perception/day2_video_detection.py`
- **YOLO Model**

### Traffic Data

- **Lane Counts CSV**

### Other components

- **Operator**

## Connections

- Operator → Scenario Runner: selects scenario
- Scenario Runner → SUMO Scenarios: loads config
- Scenario Runner → SUMO / TraCI: starts simulation
- SUMO / TraCI → Scenario Runner: provides state
- Scenario Runner → SUMO / TraCI: sets phase
- Traffic Interface → SUMO Scenarios: loads config
- Traffic Interface → SUMO / TraCI: starts simulation
- SUMO / TraCI → Traffic Interface: provides state
- Traffic Interface → SUMO / TraCI: sets phase
- SUMO / TraCI → SUMO Network: loads network
- Operator → YOLO Lane Detection: runs analysis
- YOLO Lane Detection → Traffic Video: reads frames
- YOLO Lane Detection → YOLO Model: tracks vehicles
- YOLO Lane Detection → Lane Counts CSV: writes counts
