optitraffic
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.3%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: saahilmahato
- Language: Python
- Default Branch: main
- Size: 602 KB
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
🚦 Multi-Intersection Traffic Signal Simulation
This project simulates and compares two traffic signal control strategies— Fixed-Time based, and Multi-Agent Reinforcement Learning (MARL)—across multiple intersections. The goal is to evaluate their performance in managing urban traffic congestion.
📄 Research Paper
For an in-depth analysis and results, refer to the research paper:
🧪 Project Setup
Prerequisites
- Python 3.8+
- pip (Python package installer)
Installation
- Clone the repository:
bash
git clone https://github.com/codesaahil/OptiTraffic.git
cd OptiTraffic
- Create and activate a virtual environment:
bash
python3 -m venv venv
source venv/bin/activate # On Windows, use `venv\Scripts\activate`
- Install dependencies:
bash
pip install -r requirements.txt
🚀 Running the Simulation
To execute the simulation:
bash
python3 -m src.main
Optional parameter controllerType
By default the script will use fixed controller.
For MARL controller you can use:
bash
python3 -m src.main --controllerType marl
This command initializes the simulation environment and begins the traffic signal control processes.
🧪 Running Multiple Simulations
To run a series of simulations and record various results:
bash
./run_simulations.sh
This will run simulations 40 times. Each run will be for 10 minutes. The first 20 runs will be for fixed controller and the later 20 will be for MARL controller.
Ensure the script has execute permissions:
bash
chmod +x run_simulations.sh
This script automates the execution of multiple simulation scenarios, capturing performance metrics for analysis.
📊 Evaluating Results
After collecting simulation data, use the following script to process records and perform hypothesis tests:
bash
python3 evaluate.py
This script analyzes the recorded data, providing statistical insights into the performance of each traffic signal control strategy.
🧩 Project Structure
Here's an overview of the project's directory structure:
plaintext
your-repo/
├── src/ # Source code for the simulation
│ ├── main.py # Entry point for the simulation
│ └── ... # Additional modules
├── run_simulations.sh # Shell script to run multiple simulations
├── evaluate.py # Script to process results and perform analysis
├── requirements.txt # Python dependencies
└── README.md # Project documentation
🧑💻 Contributing
Contributions are welcome! To contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature-name). - Make your changes and commit them (
git commit -am 'Add new feature'). - Push to the branch (
git push origin feature-name). - Create a new Pull Request.
Owner
- Name: Saahil Mahato
- Login: saahilmahato
- Kind: user
- Location: Nepal
- Website: https://codesaahil.github.io/my-portfolio/
- Repositories: 1
- Profile: https://github.com/saahilmahato
Sentient evolved hydrogen atoms
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Mahato"
given-names: "Saahil"
title: "Traffic Light Simulation"
version: 1.0.0
date-released: 2025-05-12
url: "https://github.com/codesaahil/OptiTraffic"
GitHub Events
Total
Last Year
Dependencies
- Farama-Notifications ==0.0.4
- Jinja2 ==3.1.6
- Markdown ==3.8
- MarkupSafe ==3.0.2
- PyYAML ==6.0.2
- Pygments ==2.19.1
- Werkzeug ==3.1.3
- absl-py ==2.2.2
- ale-py ==0.11.0
- cloudpickle ==3.1.1
- contourpy ==1.3.2
- cycler ==0.12.1
- filelock ==3.18.0
- fonttools ==4.57.0
- fsspec ==2025.3.2
- graphviz ==0.20.3
- grpcio ==1.71.0
- gym ==0.26.2
- gym-notices ==0.0.8
- gymnasium ==1.1.1
- kiwisolver ==1.4.8
- markdown-it-py ==3.0.0
- matplotlib ==3.10.1
- mdurl ==0.1.2
- mpmath ==1.3.0
- networkx ==3.4.2
- numpy ==2.2.5
- nvidia-cublas-cu12 ==12.6.4.1
- nvidia-cuda-cupti-cu12 ==12.6.80
- nvidia-cuda-nvrtc-cu12 ==12.6.77
- nvidia-cuda-runtime-cu12 ==12.6.77
- nvidia-cudnn-cu12 ==9.5.1.17
- nvidia-cufft-cu12 ==11.3.0.4
- nvidia-cufile-cu12 ==1.11.1.6
- nvidia-curand-cu12 ==10.3.7.77
- nvidia-cusolver-cu12 ==11.7.1.2
- nvidia-cusparse-cu12 ==12.5.4.2
- nvidia-cusparselt-cu12 ==0.6.3
- nvidia-nccl-cu12 ==2.26.2
- nvidia-nvjitlink-cu12 ==12.6.85
- nvidia-nvtx-cu12 ==12.6.77
- opencv-python ==4.11.0.86
- packaging ==25.0
- pandas ==2.2.3
- patsy ==1.0.1
- pillow ==11.2.1
- protobuf ==6.30.2
- psutil ==7.0.0
- pycodestyle ==2.13.0
- pygame ==2.6.1
- pyparsing ==3.2.3
- python-dateutil ==2.9.0.post0
- pytz ==2025.2
- rich ==14.0.0
- ruff ==0.11.9
- scipy ==1.15.3
- seaborn ==0.13.2
- setuptools ==80.3.0
- six ==1.17.0
- stable_baselines3 ==2.6.0
- statsmodels ==0.14.4
- sympy ==1.14.0
- tensorboard ==2.19.0
- tensorboard-data-server ==0.7.2
- torch ==2.7.0
- tqdm ==4.67.1
- triton ==3.3.0
- typing_extensions ==4.13.2
- tzdata ==2025.2