Routing Improvements

The following improvements have been made to Routing.

Here is the list of improvements:

  • Routing quality has been improved for those high load runs that don't have highly utilized Service Window or Access Hours constraints, but do have thousand of nearby activities similar to each other based on service windows, skills and zones by having routing always try an option to travel from one activity to the next closest one. As a result of these implemented changes to the routing engine, you may see improvements in both activity assignments and travel savings, though the amount of improvement will in part depend on activity and travel duration, as well as the number of activities and resources.
  • Routing runs quality was additionally improved for those high load runs with thousand of activities that highly utilize the Service Windows or Access Hours constraints. Now, routing also tries an option to travel from an activity to the closest one with compatible Service Window/Access Hours. As a result of these implemented changes to the routing engine, you may see improvements in both activity assignments and travel savings, though the amount of improvement will in part depend on activity and travel duration, as well as the number of activities and resources.
  • Routing performance have been improved by automatically switching to "faster" algorithms for those routing runs which include a lot of activities per a lot of providers for a rather short period of time - either due to routing service high load or due to mis-configuration of routing plan. As a result of these implemented changes to the routing engine, you may see improvements in both activity assignments and travel savings, though the amount of improvement will in part depend on activity and travel duration, as well as the number of activities and resources.
  • In the case where one recurrent routing run is an exact duplicate of another run (meaning that activities and resources are the same or indistinguishable from a routing perspective), instead of re-running it thru the routing engine and spending routing time on it, we're taking the result from cache. This improvement is intended to slow down the consumption of High Priority routing time, which in turn leads to more routing requests being processed with priority.