This readme file explains the format of the instances created.

Assumptions
- Every driver is compatible with one unique vehicle.
- Each pickup request has a successor delivery request.
- Pickup requests are denoted by type 0, deliveries with type 1.
- A depot address is represented with type 0, all others with type 1.
- Pickups always take place at depots.
- A request can have a service time.
- During loading, transporting and unloading a request, a trailer is required.
- During transporting and unloading a request, a vehicle and driver are required.
- Each pickup request and its successive deliver request must be executed by the same trailer.
- A driver/vehicle combination may swap trailers at the depot.
- After leaving a depot, the driver/vehicle and the trailer combination stays together, until the trailer is completely unloaded and returned to a depot.
- A trailer starts with a load equal to zero.
- During its trip, the quantity of the load on board may never exceed the trailer's capacity.
- A driver starts at the start location of its corresponding vehicle and ends at the end location of this vehicle.
- A driver might have a time-window in which he must start at his start location and end at his end location.
- Trailers cannot exchange goods.
- A driver can have a max_work_time (in his workload_profile), which implies that the time difference between
  the end of his last activity and the start of his first activity may not be greater than this max_work_time.
- A driver has a custom-element, which contains certain driver legislation rules. 
- If the custom-element field working_time_till_break is set, the driver needs to take a break of at least break_duration 
  after at most maximum_time duration has passed since the last break of break_duration.
- A trailer can have a custom-element where its time window is specified.
- A trailer can have a custom-element where its start and end location are specified. 
- A break can take place at any location (any nodes or anywhere on a link).
- A break may never interrupt a request. However, it may interrupt a travel. 

Optimisation
There are two criteria to consider:
- first, service as many requests as possible
- second, obtain the lowest cost