This repository contains the code implementation for the paper "A Reward-Based, Scalable Charging Scheduling Algorithm for Community-Based Ride-Sharing Services". The algorithm integrates multiple constraints including energy usage, vehicle distribution, route planning, passenger-to-vehicle matching, and charging station availability to optimise the number of trips served and improve energy efficiency.
The SmartMobility algorithm operates on a proactive, community-based, carbon-neutral ride-sharing model. It leverages reward-based mechanisms and integrates a vehicle routing algorithm with a vehicle charging algorithm. The system is designed to be highly scalable and efficient, handling large volumes of trip petitions and electric vehicles (EVs) in urban environments.
- Python 3.7 or higher
-
Clone the repository:
git clone https://github.com/Nasheor/EcoRideScheduler.git cd ride_sharing_framework/3_Code
-
Create a virtual environment:
python3 -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
- Execute the Ride-Sharing Algorithm:
Run the ride-sharing algorithm to generate initial EV schedules and the charging scheduling algorithm to optimise EV
routes with strategic charging decisions:
python run_experiments.py
- The simulation results, including the initial and optimised schedules, will be saved in the
output
directory. - Detailed logs and performance metrics will be available in the
logs
directory.
The repository includes scripts to preprocess and adapt public datasets for the simulation:
-
Google Hashcode Dataset:
- 10,000 trip petitions
- 400 EVs
-
NYC Taxi Dataset:
- 50,000 trip petitions
- 1,000 EVs
The datasets are parameterised to fit the community-based ride-sharing context and can be accessed or generated through the data_preprocessing.py
script.
This project is licensed under the MIT License - see the LICENSE file for details.
For questions, issues, or contributions, please contact the project maintainers:
- Lead Author: Avinash Nagarajan
- GitHub: nasheor
We appreciate your feedback and contributions to improve this project.