VRP: Call for Data - pgRouting/pgrouting GitHub Wiki

Introduction

Currently VRP pickup delivery problem is being rewritten, benchmark tests data is being used to test the algorithm, but my experience is that the when real data is used, with real problems, adjustments have to be done.

I want to create a benchmark test with real data. Something that happened on the past, so there is information about the problem to be solved, and the solution used. (Expected Result)

Data

As a start I will mention the data needed, without mentioning any particular column name for the data or any particular format.

The closer the tables look to a real life problem the better.

That is, if you already have this information, that I am asking for, in a series of tables, I prefer a dump, and I will figure out the manipulation.

Map Bounding Box

I will use Overpass_API to download the data. To limit the area:

left, bottom, right,top

I will be using the car configuration to import the Map data to the database

Vehicles & drivers

About the fleet of vehicles, even that the configuration used to import the data:

  • Maybe the vehicle is a lorry, and it happens that in the area of interest the speed limit of a lorry is different.
  • Maybe there are 5 vehicles in the fleet and 3 are small and 2 are large
  • Maybe the drivers have an schedule that is different between them, therefore the vehicles have a different time window for working.
  • Maybe there are 10 vehicles but only 5 drivers.

I must point out that for the data I am asking air planes are not considered.

Vehicles table

  • identifier: unique number
  • shift start: the time of the day when the vehicle starts its shift (can be multiple columns for (day, hour))
  • shift end: the time of the day when the vehicle ends its shift (can be multiple columns for (day, hour))
  • Start location: identifier of a location or (x,y) pair
  • End location: identifier of a location or (x,y) pair
  • Speed: All speed values with the same units. Can be km/hour or mts/sec
  • Capacity: All capacity values with the same units: Can be for example kg, persons, cubic meters, packages

Orders

  • identifier: unique number
  • Demand: An order demands capacity on the vehicle, so the demand must be in the same units as "capacity" of the vehicle
  • pick up
    • pick up location: identifier of a location or (x,y) pair
    • pick up open time: it will be not valid to pick up before this time
    • pick up close time: it will be not valid to pick up after this time
    • pick up service duration: how much time it takes to do the pick up. (can be proportional to the Demand)
  • drop off
    • drop off location: identifier of a location or (x,y) pair
    • drop off open time: it will be not valid to drop off before this time
    • drop off close time: it will be not valid to drop off after this time
    • drop off service duration: how much time it takes to do the pick up. (can be proportional to the Demand)

Locations

In case identifiers are used for the locations in the previous tables.

  • identifier: unique number
  • location: (x,y)

Expected results

Information that indicates the vehicle and the orders it served:

  • vehicle identifier: the vehicle that served the order
  • order sequence: (stop type, order number)

for example:

  • vehicle 1: (pick, 1) (pick, 3) (drop, 3) (pick, 4) (drop, 1) (drop 4)
  • vehicle 2: (pick, 2) (drop, 2) (pick, 5) (drop, 5)