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
Last synced: 6 months ago · JSON representation ·

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
Created 10 months ago · Last pushed 10 months ago
Metadata Files
Readme Citation

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:

arXiv:2505.14544


🧪 Project Setup

Prerequisites

  • Python 3.8+
  • pip (Python package installer)

Installation

  1. Clone the repository:

bash git clone https://github.com/codesaahil/OptiTraffic.git cd OptiTraffic

  1. Create and activate a virtual environment:

bash python3 -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate`

  1. 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:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-name).
  3. Make your changes and commit them (git commit -am 'Add new feature').
  4. Push to the branch (git push origin feature-name).
  5. Create a new Pull Request.

Owner

  • Name: Saahil Mahato
  • Login: saahilmahato
  • Kind: user
  • Location: Nepal

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

requirements.txt pypi
  • 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