A hybrid simulation framework integrating Agent-Based Modeling (ABM), System Dynamics, and Discrete-Event Simulation for smart urban mobility systems in metropolitan areas.
This project develops a comprehensive simulation framework for smart urban mobility systems, specifically designed for metropolitan areas like Abuja's Central Business District. The simulation integrates multiple modeling paradigms to provide realistic and scalable analysis of urban transportation dynamics.
- Multi-Paradigm Architecture: Combines ABM, System Dynamics, and Discrete-Event Simulation
- Real-Time Decision Making: AI-powered optimisation and digital twin technology
- Comprehensive Coverage: Traffic, emergency response, pedestrian flow, and infrastructure analysis
- Scalable Design: Handles metropolitan-scale simulations with performance optimisation
-
Traffic Dynamics & Vehicle Routing
- Paradigm: Agent-Based Modeling (ABM)
- Tools: SUMO, NetLogo
- Features: Individual vehicle behavior, route optimisation, traffic pattern analysis
-
Emergency Response Coordination
- Paradigm: Discrete-Event Simulation (DES)
- Tools: SimPy
- Features: Event-driven response modeling, resource allocation, peak hour scenarios
-
Pedestrian Movement
- Paradigm: Agent-Based Modeling (ABM)
- Tools: NetLogo, SUMO
- Features: Crowd dynamics, social force models, congestion analysis
-
Infrastructure Load Management
- Paradigm: System Dynamics (SD)
- Tools: Custom Python/SimPy implementation
- Features: Load balancing, capacity planning, maintenance scheduling
-
AI Decision Making & Digital Twins
- Paradigm: Hybrid (ABM + DES + SD)
- Tools: Python, TensorFlow/PyTorch integration
- Features: Real-time optimisation, predictive analytics, scenario planning
- SUMO: Traffic simulation and vehicle routing
- NetLogo: Agent-based modeling for pedestrians and vehicles
- SimPy: Discrete-event simulation for emergency response
- NS-3: Network simulation for communication infrastructure
- Python: Integration layer and custom components
- Docker: Containerised deployment
- Redis: Real-time data caching
- PostgreSQL: Simulation data storage
- Grafana: Performance monitoring and visualisation
- Git LFS: Large simulation file management
# Python 3.8+
python --version
# Docker (optional but recommended)
docker --version
# Git LFS for large files
git lfs --version-
Clone the repository
git clone https://github.com/imosudi/smart-urban-mobility-sim.git cd smart-urban-mobility-sim -
Set up virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Install simulation tools
# SUMO installation sudo apt-get install sumo sumo-tools sumo-doc # Ubuntu/Debian # NetLogo (download from https://ccl.northwestern.edu/netlogo/) # NS-3 installation instructions in docs/setup-ns3.md
-
Configure environment
cp config/config.example.yml config/config.yml # Edit configuration file with your settings
# Run basic traffic simulation
python src/main.py --scenario basic_traffic --duration 3600
# Run emergency response simulation
python src/main.py --scenario emergency_response --peak-hours
# Run full hybrid simulation
python src/main.py --scenario full_simulation --config config/abuja_cbd.yml-
Basic Traffic Flow
- Duration: 1-4 hours
- Focus: Vehicle routing and congestion analysis
- Output: Traffic density maps, travel time analysis
-
Emergency Response
- Duration: 2-6 hours
- Focus: Emergency vehicle coordination during peak hours
- Output: Response time analysis, resource utilisation
-
Pedestrian Crowd Dynamics
- Duration: 30 minutes - 2 hours
- Focus: High-density pedestrian areas
- Output: Crowd flow analysis, bottleneck identification
-
Infrastructure Load Testing
- Duration: 24 hours - 1 week
- Focus: Long-term infrastructure stress analysis
- Output: Load distribution, maintenance scheduling
-
Full Hybrid Simulation
- Duration: Configurable (typically 4-12 hours)
- Focus: Complete smart city mobility ecosystem
- Output: Comprehensive mobility analytics, optimisation recommendations
smart-urban-mobility-sim/
βββ src/
β βββ agents/ # ABM agent definitions
β βββ events/ # DES event handlers
β βββ dynamics/ # System dynamics models
β βββ integration/ # Hybrid simulation coordination
β βββ ai/ # AI decision-making modules
β βββ main.py # Main simulation runner
βββ config/ # Configuration files
βββ data/ # Input data and scenarios
βββ results/ # Simulation outputs
βββ tests/ # Unit and integration tests
βββ docs/ # Documentation
βββ docker/ # Docker configurations
βββ scripts/ # Utility scripts
- Model Design: Define agents, events, and system components
- Implementation: Develop individual simulation modules
- Integration: Connect different paradigms through coordination layer
- Validation: Compare results with real-world data
- Optimisation: Performance tuning and scalability improvements
- Documentation: Update models and API documentation
# Unit tests
pytest tests/unit/
# Integration tests
pytest tests/integration/
# Performance tests
pytest tests/performance/ --benchmark
# Validation tests (requires real-world data)
pytest tests/validation/ --data-path data/validation/-
Historical Data Comparison
- Traffic pattern validation against Abuja CBD data
- Emergency response time benchmarking
- Infrastructure utilisation verification
-
Expert Review
- Urban planning expert consultation
- Transportation authority feedback
- Emergency services validation
-
Sensitivity Analysis
- Parameter variation testing
- Scenario robustness evaluation
- Model stability assessment
| Component | Key Metrics | Validation Source |
|---|---|---|
| Traffic Flow | Travel time, congestion index | GPS tracking data |
| Emergency Response | Response time, resource utilisation | Emergency services logs |
| Pedestrian Flow | Density, flow rate | Video analytics |
| Infrastructure | Load factor, capacity utilisation | Sensor data |
-
Model Fidelity vs. Performance
- Challenge: High-detail models require significant computational resources
- Mitigation: Hierarchical modeling with variable level-of-detail
- Implementation: Adaptive resolution based on simulation focus areas
-
Large-Scale Simulation Scalability
- Challenge: Metropolitan-scale simulations with millions of agents
- Mitigation: Distributed computing and parallel processing
- Implementation: Message-passing interface (MPI) and cloud deployment
- Parallel Processing: Multi-core agent execution
- Memory Management: Efficient data structures and garbage collection
- Caching Strategy: Redis-based intermediate result caching
- Load Balancing: Dynamic resource allocation across simulation components
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes and add tests
- Run the test suite:
pytest - Submit a pull request
- Follow PEP 8 for Python code
- Include docstrings for all functions and classes
- Maintain test coverage above 80%
- Update documentation for API changes
This project is licensed under the MIT License - see the LICENSE file for details.
- Project Lead: Mosudi I. O.
- Simulation Architecture:
- AI Integration:
- Infrastructure Modeling:
- Urban Mobility Research Group for theoretical foundation
- Open-source simulation community for tools and frameworks
For questions, issues, or suggestions:
- Issues: Use GitHub Issues for bug reports and feature requests
- Discussions: Use GitHub Discussions for general questions
- Email: [mosudii@veritas.edu.ng, imosudi@outlook.com]
Note: This is an academic project developed for educational purposes. For production deployment, additional security and performance considerations may be required.