Skip to content

Commit cdc80fa

Browse files
committed
Merge branch 'develop'
2 parents 15a4af5 + f4d2647 commit cdc80fa

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+2096
-284
lines changed

README.md

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@
22
Solver for the Electric Vehicle Routing Problem with Time Windows.
33

44
<p align="center">
5-
<img src="http://ls11-www.cs.tu-dortmund.de/people/chimani/VehicleRouting/vr.png">
5+
<img src="http://ls11-www.cs.tu-dortmund.de/people/chimani/VehicleRouting/vr.png"><br/>
6+
<a href="http://ls11-www.cs.tu-dortmund.de/people/chimani/VehicleRouting/" target="_blank">Image Source<a/>
67
</p>
78

8-
[Image Source](http://ls11-www.cs.tu-dortmund.de/people/chimani/VehicleRouting/)
9-
109
## Problem description
1110
In the E-VRPTW, a set of customers must be served by a fleet of battery electric
1211
vehicles (BEV). The E-VRPTW extends the well-know [VRPTW](https://en.wikipedia.org/wiki/Vehicle_routing_problem),
@@ -20,7 +19,7 @@ More formal, the EVRPTW is defined on a complete directed graph G = (V,A)
2019
consisting of a set of depot, customer, and recharging station nodes and a set of edges.
2120
Each edge _(i, j)_ has a distance _d<sub>ij</sub>_ and a travel time _t<sub>ij</sub>_ associated and each traveled
2221
edge consumes the amount of _r_ x _d<sub>ij</sub>_ of the remaining battery charge of the vehicle,
23-
where _h_ denotes the constant charge consumption rate. Furthermore, a set of homogeneous
22+
where _r_ denotes the constant charge consumption rate. Furthermore, a set of homogeneous
2423
vehicles is given, where each vehicle has a maximal capacity of _C_ and is located, full
2524
loaded at the depot. Each node has a positive demand _q<sub>i</sub>_, a service time _s<sub>i</sub>_ and a time
2625
window [ _e<sub>i</sub>_, _l<sub>i</sub>_ ] assigned. The service must start within the given time window (thus,
@@ -34,13 +33,31 @@ served within their given time window. All routes must begin and end in the depo
3433
the vehicle capacity and battery capacity must be respected. The objective function is
3534
to minimize the total traveled distance.
3635

36+
## Implementation Details
37+
38+
Our E-VRPTW Solver consists of two parts:
39+
1. Construction heuristic: [Time-Oriented, Nearest-Neighbor Heuristic](https://pubsonline.informs.org/doi/abs/10.1287/opre.35.2.254?journalCode=opre) (Solomon 1987)
40+
2. Metaheuristic: For this part, we tried to implement a Hybrid VNS/TS metaheuristic proposed in the paper [The Electric Vehicle-Routing Problem with Time Windows and Recharging Stations](https://pubsonline.informs.org/doi/10.1287/trsc.2013.0490),
41+
however our solution is not the most efficient one and requires further optimizations (especially in route representation)
42+
43+
Model objects like `EVRPTWInstance`, `Customer`, `Node` have been copied from the [E-VRPTW Solution Verifier (Java)](https://github.com/ghiermann/evrptw-verifier) implemented by @ghiermann.
44+
45+
See our [presentation slides](https://docs.google.com/presentation/d/1WnySkapfZkM57kC_8XTIKsyNZOhBhiNAdNTUWY201tQ/edit?usp=sharing) for more details.
46+
3747
## Usage
3848

39-
// to be written
49+
See Main.kt for instance/plotting/performance-recording customizations.
50+
4051

4152
## Contributions
4253
Special thanks to my dear friend and colleague [David Molnar](https://github.com/dmolnar99)
43-
for participating in this project.
54+
for participating in this project:
55+
56+
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
57+
<!-- prettier-ignore -->
58+
| [<img src="https://avatars3.githubusercontent.com/u/16260193?s=400&v=4" width="100px;"/><br /><sub><b>David Molnar</b></sub>](https://github.com/dmolnar99)<br />[🤔](#ideas "Ideas and Planning") [💻](https://github.com/fuvidani/clickbait-defeater/commits?author=dmolnar99 "Code") [⚠️](https://github.com/fuvidani/clickbait-defeater/commits?author=dmolnar99 "Tests") |
59+
| :---: |
60+
<!-- ALL-CONTRIBUTORS-LIST:END -->
4461

4562
## License
4663
This project is licensed under the [MIT License](https://opensource.org/licenses/MIT). Feel free to

build.gradle

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ apply plugin: 'kotlin-allopen'
1717
apply plugin: 'application'
1818

1919
group ='at.ac.tuwien.otl'
20-
version = '1.0-SNAPSHOT'
20+
version = '1.0.0'
2121
mainClassName = 'at.ac.tuwien.otl.Main'
2222

2323
repositories {
@@ -32,6 +32,8 @@ dependencies {
3232
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
3333
ktlint "com.github.shyiko:ktlint:0.23.0"
3434
compile fileTree(dir: 'libs', include: '*.jar')
35+
compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.7'
36+
compile group: 'org.graphstream', name: 'gs-core', version: '1.3'
3537

3638
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.0.3'
3739
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.0.3'

plots/c103_21.png

10.5 KB
Loading

plots/c105_21.png

10.4 KB
Loading

plots/c204_21.png

9.42 KB
Loading

plots/r102_21.png

16.9 KB
Loading

plots/r107_21.png

15.5 KB
Loading

plots/r205_21.png

14.1 KB
Loading

plots/r211_21.png

12.4 KB
Loading

plots/rc101_21.png

15.5 KB
Loading

0 commit comments

Comments
 (0)