An insertion-based heuristic for the constrained pickup and delivery problem

In this research, we consider a practical application of the pickup and delivery (P&D) problem incorporating several extensions such as time windows, capacitated non-homogeneous vehicles and on-line request speci cation. Pickup and delivery problems with each of these extensions are well-studied in literature, resulting in specialised and e cient algorithms. However, combining these techniques is not straightforward as the combined problem setting often prohibits the use of several modi cations. In this research, we propose a practical heuristic algorithm for the P&D problem combined with all these extensions. To show the need for a combined algorithm and test our heuristic, we focused on the practical viewpoint of a delivery company, resulting in the following use case scenario. Consider a set of packets that have to be picked up and delivered within prede ned time windows. Each packet has a speci ed weight along with a pickup and a delivery location. The packets can only be picked up and dropped o during prede ned time intervals. To deliver these packets, a set of heterogeneous transport drivers is available. Each transport driver is characterised by a transportation type, a maximum capacity and a base of operations. The transportation type of the transport driver determines the kind of transport (e.g. van driver, truck chau eur,...) and how the travel times from one pickup/delivery event to another are calculated. The geographical pickup/delivery locations are rst mapped, using a KD-tree, on the corresponding nodes in a graph representation of the Belgian road network (1.8 million nodes, 1.9 million links). All distances are then calculated by running Dijkstra's algorithm from each node to all other nodes. We started with a simple insertion-based algorithm that iteratively adds new tasks to the schedule found so-far. In each of these iterations, a new task is considered for inclusion in the schedule. This allows the tasks to be speci ed online. When multiple tasks are available for scheduling, the task to be scheduled next is determined based on a compatibility metric. For each combination of a scheduled task with an unscheduled one, the compatibility metric denotes the compatibility of both tasks based on the corresponding time windows and the pickup and delivery locations. This allows for similar tasks to be combined and scheduled simultaneously, speeding up calculation times. Once the next task to be scheduled is selected, the best driver among all drivers needs to be determined. Per driver, a cost estimate is generated based on the current driver's schedule. These estimates can be calculated in parallel as