Bug: Closest Facility solver may provide a slightly different route, depending on the travel direction option used
The route returned is different when solving a Closest Facility problem while using hierarchies with the "Travel from Incident to Facility" option, as compared to using the "Travel from Facility to Incident" option for the same origin/destination pair.
For example, in ArcMap:
1) A Closest Facility operation is performed with "Travel From" = "Incident to Facility". The Hierarchy option is checked. One incident has been loaded (Location A) and one facility has been loaded (Location B). The computed route (from Location A to Location B) is equal to X1.
2) A Closest Facility operation is performed with "Travel From" = "Facility to Incident". The Hierarchy option is checked. One incident has been loaded (Location B) and one facility has been loaded (Location A). The computed route (from Location A to Location B) is equal to X2.
Even though the same locations (from A to B) have been specified for both routes, route X1 is different from route X2. One would expect to get the same result from both routes.
When solving using the Hierarchy option, a set of parameters (numTransitionToHierarchy, available through the Network Analyst Objects) is used to constrain the search on local roads and secondary roads:
- The numTransitionToHierarchy(1) parameter controls the number transitions from the middle hierarchy to the highest hierarchy. Its default value is 9.
- The numTransitionToHierarchy(2) parameter controls the number transitions from the lowest hierarchy to the middle hierarchy. Its default value is 6.
These parameter values, as well as the direction of travel, can affect which routes are omitted from consideration.
This solver uses a heuristic approach which does not guarantee to compute the exact same route when traveling from 'incident to facility' as compared to traveling 'from facility to incident'.
Occasionally, to get the same route for both directions of travel as explained in the Description section above, the numTransitionToHierarchy parameters need to be increased. Increasing these values reduces the number of routes omitted from consideration.
When using ArcMap or the geoprocessing tools, the numTransitionToHierarchy parameters cannot be changed. To get the same route for both directions of travel is to solve the route without using the Hierarchy option.
Developers building custom applications through ArcObjects can adjust these parameters as follows:
Increase numTransitionToHierarchy(1) one unit at a time. For example, use numTransitionToHierarchy(1) equal to 10 and check if the same route is computed when traveling from 'incident to facility' as compared to traveling 'from facility to incident'. If so, this may be the best numTransitionToHierarchy(1) value for this network's hierarchy. If not, increase numTransitionToHierarchy(1) to 11 and check the routes again, or increase numTransitionToHierarchy(2) one unit to 7. Continue to solve with different numTransitionToHierarchy values until you get the desired results.
Using a numTransitionToHierarchy(1) value greater than 15 or a numTransitionToHierarchy(2) value greater than 10 may drastically impact the performance of the solver.