Driver scheduling
Once you have run Transportation Optimization to produce routes, you can use driver scheduling to assign a sequence of routes to specific drivers, minimizing costs within the applicable constraints. Drivers are defined using driver classes, which determine the asset types the driver supports, the scheduling constraints for the driver, such as maximum duty time per shift and maximum distance per driver, and the cost associated with the scheduling of the specific driver.
Driver availability further constrains the driver classes at each site in terms of numbers of drivers and time windows.
Driver scheduling is a post process to transportation optimization. While transportation optimization considers shipments and equipment availability, driver scheduling considers routes and driver availability.
Driver scheduling inputs
Driver scheduling takes inputs of routes, drivers, and the driver availability to produce schedules. It uses these three input tables:
-
Routes – Populate this table with a subset of the information from the Route Summary output table. Specifically, you define the Route ID, the asset assigned to the route, the start and end time of the route, the total distance and the origin of the asset used for the route.
-
Drivers – Populate this table with the definitions for the available driver classes. The definition includes constraints such as maximum number of routes, minimum time between routes, and allowed asset types. There are also costs at the driver level, the route level and the hours incurred per route.
-
Driver Availability – Populate this table with the drivers that are available at each asset origin from the Routes table. For each asset origin site, you may list the available driver classes, their available and minimum quantities, and their start and end date times to indicate when they are available.
Route considerations
Driver scheduling currently assumes the following:
-
All routes are defined as round trip routes; that is, the driver returns to the source at the end of the route.
-
Routes can be completed within a single shift. Routes with durations exceeding the Max Duty Time Per Shift of a driver class will not be scheduled for the driver.
You can populate the Routes table by exporting from the Route Summary output table.
Driver scheduling outputs
The results of driver scheduling are reported in five output tables:
-
Driver Schedule – This table reports each scheduled route, including the assigned driver and equipment, the route start and end times, and the total distance of the route.
-
Driver Summary – This table provides information about each scheduled driver: the cost incurred, number of scheduled routes and overall schedule statistics.
-
Driver Scheduling Summary – This table is a high level summary of the scheduling results, such as total number of drivers, total cost, and the number of scheduled and unscheduled routes.
-
Driver Utilization – This table summarizes the quantities of the different driver classes that are used at each asset origin site.
-
Unscheduled Routes – The routes that cannot be assigned to a driver are reported in this table.
Driver scheduling algorithm
At a high level, the driver scheduling algorithm has these major steps:
-
All feasible schedules are enumerated. Feasibility is determined by conditions, such as:
-
Each route has an asset assigned and the driver class must have the correct Allowed Assets.
-
In a route sequence, the first route must end before the second route begins.
-
-
The solver runs a set-partitioning MIP that ensures each route is covered by exactly one schedule and the number of available drivers is not exceeded.
Driver scheduling seeks to minimize total cost within the constraints. It does not try to assign work to all drivers. If it cannot assign a driver to a route, that route is reported in the Unscheduled Routes table.
Running driver scheduling
Driver scheduling uses routes that are generated by Transportation Optimization.
If you are using Transportation Optimization to set up the initial routes, start with step 1, otherwise start with step 4.
-
From the Launch Pad, select “Transportation Optimization” as the Technology and “Transportation Optimization” as the Problem Type, then click Run.
-
Once Transportation Optimization is complete, use the Route Summary table to identify the routes you want to schedule. You can populate the Routes input table using the results in the Route Summary table.
For example, you can export some or all routes to Excel. See Route considerations. Export the Routes input table to provide a template for the required information. You can then transfer required Route information from the Route Summary Excel file to the Routes file and import the routes into the Routes input table. -
In the Routes input table set the Status to “Include” for those routes you want driver scheduling to consider. Keep in mind that all the routes you include should be round trip routes and the duration of each should fit within a single driver shift.
-
Ensure that you have populated the Routes, Drivers and Driver Availability input tables.
-
From the Launch Pad, select “Transportation Optimization” as the Technology and “Driver Scheduling” as the Problem Type, then click Run.
-
Once Driver Scheduling is complete, review the results in the various output tables. See Driver scheduling outputs.
Last modified: Wednesday May 15, 2024