Skip to content

Problem data

Instances

Public benchmark instances for the DPDP.

The factory info file, factory_info.csv, contains data for factories (e.g., number of docking ports). The route info file, route_info.csv, contains the pre-calculated distances and travel times for all origin-destination pairs. Vehicle info files, e.g., vehicle_info_5.csv, contain data for vehicles (e.g., capacity). Order info files, e.g., 50_1.csv , contain data for orders, which will be requested in the planning horizon (e.g., pickup factory, delivery factory, set of order items, request time, due date, ...).

Conversion

Procedure read_dpdp_problem converts instances to the following structure.

probdata = {
    'locations': {},       # location id -> location data
    'orders': {},          # order id    -> order data
    'vehicles': {},        # vehicle id  -> vehicle data

    'travel_times': {},    # (location id, location id) -> travel seconds
    'distances': {},       # (location id, location id) -> distance

    'docking_time': 1800,  # seconds
    'loading_time': 240,   # seconds per order quantity
    'unloading_time': 240, # seconds per order quantity
}

The location data consists of the unique id of the location, and the number of its docking ports.

location_data = {
    'id': '9829a9e1f6874f28b33b57a7a42bb49f',
    'docking_ports': 6
}

The vehicle data consists of the unique id of the vehicle, its capacity (in terms of order quantity), and the id of its initial location. Initial location are not given for the original instances, but randomly generated with a given procedure.

vehicle_data = {
    'id': 'V_1',
    'capacity':  15,
    'initial_location': 'e2d5093fbe36431f8986ddb0e1c586be'
}

In case of the original problem formulation, each request consists of a set of order items. Therefore, a separate order is created for each item.

order_data = {
    'id': '0003480001-1',
    'original_id': '0003480001',
    'pickup_location': '2445d4bd004c457d95957d6ecf77f759',
    'delivery_location': 'b6dd694ae05541dba369a2a759d2c2b9',
    'quantity': 0.5,
    'release_date': 228, # seconds
    'due_date': 14628    # seconds
}