Fleet Routing with the VRP Solver: How to Balance the Workloads

1164
4
02-28-2019 01:00 AM
HeatherMoe
Esri Contributor
1 4 1,164

As a route planner or manager, it can be critical to consider the human component when planning.  The perception of fair division of labor is key to keeping a happy workforce.  In this post we will examine how to balance the workloads across routes.

The many ways to fairly balance workloads

Here are a few ways to balance routes:

  • Total Time - Hourly pay
  • Total Service Time - Amount of work time at order locations
  • Order Count - Commission or tip-based compensation
  • Total Distance - Wear on the vehicle

I’m sure I have only touched the tip of the balancing iceberg.  Tell us how you would like to balance your workloads.  Currently we can encourage the VRP Solver to balance based on total time.

Steps for balancing workloads based on total time

1. The first step in balancing workloads is to know what the average route total time should be for the problem. Set the problem up without worrying about the balancing and solve it.

Initial solve of the VRP

2. In the above example you can see that the total time is not well balanced between these four routes, although is typically the best total time for all routes.  The next step is to understand what the average total time should be for the routes.  This gives you a goal for completely equal division of work time.  The statistics for the TotalTime field will give you this information.

Route Total Time statistics from the initial solve

3. Now that you know what the average should be add that time (or rounded down to a whole number) to the OvertimeStartTime field. You will also need to add overtime cost.  A good rule of thumb is double the CostPerUnitTime field.  However, the higher you make the CostPerUnitOvertime value the more the solver will try to keep the TotalTime under the OvertimeStartTime.

Add overtime values to the Routes

4. Finally, resolve the problem to see the changes.  Although this results in a slightly bigger total time for all routes, it is now a more balanced solution.

Final balanced routes solution

To see this example in action, watch this demo.

Get Involved

We would love to know how you would like to balance your routes.  Answer this poll to share with us your preferences.

Tags (2)
4 Comments
HenryPeng
New Contributor II

Is there a similar set of instructions for balancing by order count? Thanks!

HeatherMoe
Esri Contributor

Hello,

It would be great to know a bit more about the problem you are trying to solve with balancing the order count.

If you are expecting the routes modeled in the problem to all be used, then you could take the total number of orders and divide by the number of routes to understand what a completely even distribution would be. From there you could add a few to that number and set it as your MaxOrderCount for all routes. That would give the solver a little play in the number of orders on a route but would mostly balance the count among routes.

Hope this helps,

Heather

dylan_onfleet
New Contributor

@HeatherMoeThanks for this article, I really like the approach. I am curious about balancing routes for total distance. Do you have any recommendations?

HeatherMoe
Esri Contributor

@dylan_onfleet For balancing on distance you might try a similar approach of solving the problem first to understand what the cumulative total distance is for the problem. Make sure to use the CostPerUnitDistance field on the Routes since the distance is an important parameter for your use case. Once you know what the total distance used by all routes you can determine the average and set the MaxTotalDistance value on the Routes to something slightly larger then the average based on the acceptable variability between routes. You will want to make sure to give a MaxTotalDistance value larger then the average so that there is enough flexibility in the routes to continue to route everything.

It is also worth taking a few minutes to look at the unbalanced distance solution from the first solve to see what other constraints the routes are running into when they are particularly short or extra long distances. It could be that some of the short routes are spending a lot of time at orders working and so evening up the number of orders by lowering the MaxOrderCount could help.