This repository contains the code used in the labelling algorithm for an ESPPRC, presented in "Pricing for the EVRPTW with Piecewise Linear
This repository contains the code for the work presented in "Pricing for the EVRPTW with Piecewise Linear Charging by a Bounding-Based Labelling Algorithm" by J. Enerbäck, L. Eveborn and E. Rönnberg. The paper can be found at: https://doi.org/10.4230/OASIcs.ATMOS.2024.3
Charging by a Bounding-Based Labelling Algorithm" by J. Enerbäck, L. Eveborn and E. Rönnberg, title of journal, pages, 2024.
If you use the code from this repository, please cite
If you use the code from this repository, please cite
For questions, please contact lukas.eveborn@liu.se
For questions, please contact lukas.eveborn@liu.se
### Electric Vehicle Routing Problem with Time Windows and Piecewise Linear Charging Function
The instances that we use were introduced by M. Schneider, A. Stenger and D. Goeke *The Electric Vehicle-Routing Problem with Time Windows and Recharging Stations*, and can be found at https://data.mendeley.com/datasets/h3mrm5dhxw/1
The instances that we use were introduced by M. Schneider, A. Stenger and D. Goeke *The Electric Vehicle-Routing Problem with Time Windows and Recharging Stations*, and can be found at https://data.mendeley.com/datasets/h3mrm5dhxw/1
These instances are based on the benchmark instances for the VRP of M.M. Solomon *Algorithms for the Vehicle Routing and Scheduling Problems with Time Window Constraints*.
These instances are based on the benchmark instances for the VRP of M.M. Solomon *Algorithms for the Vehicle Routing and Scheduling Problems with Time Window Constraints*.
...
@@ -28,19 +32,23 @@ These instances are based on the benchmark instances for the VRP of M.M. Solomon
...
@@ -28,19 +32,23 @@ These instances are based on the benchmark instances for the VRP of M.M. Solomon
The code that was used in the paper is found in this repository.
The code that was used in the paper is found in this repository.
To run the solver clone or download the repository.
To run the solver clone or download the repository.
The first time running the code, the following commands are required:\
The first time running the code, the following commands are required:
mkdir build \
```sh
cd build\
mkdir build
cmake ..\
cd build
make\
cmake ..
make
./evrp ../(path to data file)
./evrp ../(path to data file)
```
This creates a new build directory (mkdir build) and the build-files (cmake ..), and runs the code.
This creates a new build directory (mkdir build) and the build-files (cmake ..), and runs the code.
When the build directory and build-files exist, the code can be executed with these commands:\
When the build directory and build-files exist, the code can be executed with these commands:
cd build\
```sh
make\
cd build
make
./evrp ../(path to data file)
./evrp ../(path to data file)
```
When the algorithm terminates, the solution (the nodes visited in the shortest path) is printed in the terminal along with some data from the algorithm, such as computational time, number of labels left at the end of the algorithm, number of complete paths found, number of elementary paths among the 100 best paths (when using ng-routes).
When the algorithm terminates, the solution (the nodes visited in the shortest path) is printed in the terminal along with some data from the algorithm, such as computational time, number of labels left at the end of the algorithm, number of complete paths found, number of elementary paths among the 100 best paths (when using ng-routes).
...
@@ -54,7 +62,5 @@ In the folder "data" the charging curves for each data instance in the C100, RC1
...
@@ -54,7 +62,5 @@ In the folder "data" the charging curves for each data instance in the C100, RC1
The charging function is defined in the funtion: create_problem_graph() of the class ERVP_data_subproblem, and can be changed there.
The charging function is defined in the funtion: create_problem_graph() of the class ERVP_data_subproblem, and can be changed there.
## Paper
## Licence
## Licence
The content residing in this repository is licensed under "Creative Commons Zero v1.0 Universal", see [LICENSE](LICENSE).
The content residing in this repository is licensed under "Creative Commons Zero v1.0 Universal", see [LICENSE](LICENSE).