We are using v1.15.0. Compare the following request/response pairs:
- One shipment and one vehicle with a break that starts after the shipment pickup and delivery time windows. The stops are not assigned to the vehicle.
{
"vehicles": [
{
"description": "vehicle",
"id": 1,
"end_index": 2,
"time_window": [
0,
7200
],
"breaks": [
{
"id": 1,
"description": "break",
"time_windows": [
[
6800,
6800
]
],
"service": 300
}
],
"end": [
0,
0
]
}
],
"shipments": [
{
"pickup": {
"id": 1,
"description": "pickup",
"location_index": 0,
"service": 5,
"time_windows": [
[
0,
3600
]
],
"location": [
0,
0
]
},
"delivery": {
"id": 2,
"description": "delivery",
"location_index": 1,
"service": 5,
"time_windows": [
[
0,
3600
]
],
"location": [
0,
0
]
}
}
],
"matrices": {
"car": {
"durations": [
[
0,
300,
0
],
[
300,
0,
0
],
[
0,
0,
0
]
]
}
}
}
{
"code": 0,
"summary": {
"cost": 0,
"routes": 0,
"unassigned": 2,
"setup": 0,
"service": 0,
"duration": 0,
"waiting_time": 0,
"priority": 0,
"violations": [],
"computing_times": {
"loading": 0,
"solving": 1,
"routing": 0
}
},
"unassigned": [
{
"id": 2,
"location": [
0.0,
0.0
],
"location_index": 1,
"type": "delivery",
"description": "delivery"
},
{
"id": 1,
"location": [
0.0,
0.0
],
"location_index": 0,
"type": "pickup",
"description": "pickup"
}
],
"routes": []
}
- Same as the first request except with the break removed. The stops are assigned to the vehicle.
{
"vehicles": [
{
"description": "vehicle",
"id": 1,
"end_index": 2,
"time_window": [
0,
7200
],
"end": [
0,
0
]
}
],
"shipments": [
{
"pickup": {
"id": 1,
"description": "pickup",
"location_index": 0,
"service": 5,
"time_windows": [
[
0,
3600
]
],
"location": [
0,
0
]
},
"delivery": {
"id": 2,
"description": "delivery",
"location_index": 1,
"service": 5,
"time_windows": [
[
0,
3600
]
],
"location": [
0,
0
]
}
}
],
"matrices": {
"car": {
"durations": [
[
0,
300,
0
],
[
300,
0,
0
],
[
0,
0,
0
]
]
}
}
}
{
"code": 0,
"summary": {
"cost": 300,
"routes": 1,
"unassigned": 0,
"setup": 0,
"service": 10,
"duration": 300,
"waiting_time": 0,
"priority": 0,
"violations": [],
"computing_times": {
"loading": 0,
"solving": 1,
"routing": 0
}
},
"unassigned": [],
"routes": [
{
"vehicle": 1,
"cost": 300,
"description": "vehicle",
"setup": 0,
"service": 10,
"duration": 300,
"waiting_time": 0,
"priority": 0,
"steps": [
{
"type": "start",
"location": [
0.0,
0.0
],
"location_index": 0,
"setup": 0,
"service": 0,
"waiting_time": 0,
"arrival": 0,
"duration": 0,
"violations": []
},
{
"type": "pickup",
"description": "pickup",
"location": [
0.0,
0.0
],
"location_index": 0,
"id": 1,
"setup": 0,
"service": 5,
"waiting_time": 0,
"job": 1,
"arrival": 0,
"duration": 0,
"violations": []
},
{
"type": "delivery",
"description": "delivery",
"location": [
0.0,
0.0
],
"location_index": 1,
"id": 2,
"setup": 0,
"service": 5,
"waiting_time": 0,
"job": 2,
"arrival": 305,
"duration": 300,
"violations": []
},
{
"type": "end",
"location": [
0.0,
0.0
],
"location_index": 2,
"setup": 0,
"service": 0,
"waiting_time": 0,
"arrival": 310,
"duration": 300,
"violations": []
}
],
"violations": []
}
]
}
- Same as the first request except with two jobs instead of a shipment. The stops are assigned to the vehicle.
{
"vehicles": [
{
"description": "vehicle",
"id": 1,
"end_index": 2,
"time_window": [
0,
7200
],
"breaks": [
{
"id": 1,
"description": "break",
"time_windows": [
[
6800,
6800
]
],
"service": 300
}
],
"end": [
0,
0
]
}
],
"jobs": [
{
"id": 1,
"description": "job",
"location_index": 0,
"service": 5,
"time_windows": [
[
0,
3600
]
],
"location": [
0,
0
]
},
{
"id": 2,
"description": "job",
"location_index": 1,
"service": 5,
"time_windows": [
[
0,
3600
]
],
"location": [
0,
0
]
}
],
"matrices": {
"car": {
"durations": [
[
0,
300,
0
],
[
300,
0,
0
],
[
0,
0,
0
]
]
}
}
}
{
"code": 0,
"summary": {
"cost": 300,
"routes": 1,
"unassigned": 0,
"setup": 0,
"service": 310,
"duration": 300,
"waiting_time": 3195,
"priority": 0,
"violations": [],
"computing_times": {
"loading": 0,
"solving": 1,
"routing": 0
}
},
"unassigned": [],
"routes": [
{
"vehicle": 1,
"cost": 300,
"description": "vehicle",
"setup": 0,
"service": 310,
"duration": 300,
"waiting_time": 3195,
"priority": 0,
"steps": [
{
"type": "start",
"location": [
0.0,
0.0
],
"location_index": 1,
"setup": 0,
"service": 0,
"waiting_time": 0,
"arrival": 3295,
"duration": 0,
"violations": []
},
{
"type": "job",
"description": "job",
"location": [
0.0,
0.0
],
"location_index": 1,
"id": 2,
"setup": 0,
"service": 5,
"waiting_time": 0,
"job": 2,
"arrival": 3295,
"duration": 0,
"violations": []
},
{
"type": "job",
"description": "job",
"location": [
0.0,
0.0
],
"location_index": 0,
"id": 1,
"setup": 0,
"service": 5,
"waiting_time": 0,
"job": 1,
"arrival": 3600,
"duration": 300,
"violations": []
},
{
"type": "break",
"description": "break",
"id": 1,
"setup": 0,
"service": 300,
"waiting_time": 3195,
"arrival": 3605,
"duration": 300,
"violations": []
},
{
"type": "end",
"location": [
0.0,
0.0
],
"location_index": 2,
"setup": 0,
"service": 0,
"waiting_time": 0,
"arrival": 7100,
"duration": 300,
"violations": []
}
],
"violations": []
}
]
}
Also, the demo server (http://solver.vroom-project.org) actually does assign the stops for the first request. Is it running v1.15.0?
We are using v1.15.0. Compare the following request/response pairs:
Also, the demo server (http://solver.vroom-project.org) actually does assign the stops for the first request. Is it running v1.15.0?