An order is a request to transport goods consisting of a pickup and a delivery task. The main goal of the optimization is to effectively schedule these tasks onto routes. We differentiate among three types of orders based on whether the pickup or delivery task is specific to the order, or is executed at a depot.
- Pickup orders — An order to collect goods from a designated location and transport them to a depot. The pickup task is specific to the order while the delivery task is determined by the depot, chosen by the optimization.
- Delivery orders — An order to transport goods from a depot and distribute them to a designated location. The delivery task is specific to the order while the pickup task is determined by the depot, chosen by the optimization.
- Pickup-delivery orders — An order to transport goods between designated locations. Both the pickup and delivery tasks are specific to the order and depots are irrelevant for this type of order. When the optimization request contains pickup-delivery orders, all the orders must be of the same type.
An order defines the properties of the good that needs to be transported as well as its tasks specific to the order.
Not every order fits into every vehicle. The loads of an order specify its dimensions such as weight, volume or pallets. The optimization will make sure that the order combination loaded into the vehicle will not exceed the maximum loads of the vehicle for each dimension.
The outsourcing cost associated with an order indicates an additional expense in the event that the optimization does not incorporate the order into a route. The optimization will refrain from scheduling the order if the additional cost of including it in a route exceeds the outsourcing cost.
When omitted, the optimization will try to plan the order regardless of the cost. In this case, the order does not contribute to the cost when unscheduled.
Certain constraints are not only specific to the order but entail different entities such as vehicles or depots. These constraints are typically expressed based on categories, which are often functional properties of the order itself. Examples of order categories might be whether an order requires to be cooled, contains hazardous goods or possesses any other essential property associated with the order.
The scheduling of an order requires the scheduling of two tasks: the pickup and the delivery of the order. Certain order properties, like load or outsourcing cost, remain task-independent. However, differences arise in other properties between the pickup and delivery task. Examples of properties that are specific to the task are, for instance, the location, available time slots or duration of the task.
Depending on the order type, the properties of the pickup and delivery task are either defined on the order itself or on the depot where the task can take place.
- A pickup order only defines its pickup task. Its delivery task is executed at any suitable depot and the properties of the delivery task depend on the depot selected by the optimization.
- A delivery order only defines its delivery task. Its pickup task is executed at any suitable depot and the properties of the pickup task depend on the depot selected by the optimization.
- A pickup-delivery order defines both its pickup and delivery tasks. Both are at a designated location specified by the order and no tasks need to be executed at a depot. As such, depots are irrelevant for this type of orders.
The tasks that are defined on order level include the following properties.
A task specific to the order is to be executed at a designated location. Pickup (resp. delivery) orders define a pickup (resp. delivery) location while pickup-delivery orders define both.
A location establishes time slots, determining when tasks can be scheduled for execution at that specific place. A task can further restrict which of these available time slots can be used for scheduling an appointment to execute the task.
The duration of the task defines how long it takes to be executed. This includes the time required for the order to be loaded or unloaded.
While some constraints can be expressed with respect to the order, other constraints apply only to the pickup or delivery task. Therefore, categories can be defined not only for orders, but also for their tasks. Such task categories are often functional properties of the task itself. Examples of task categories might indicate the region in which a task should be executed, a preferred position in the route or any other essential property associated with the task.