My team and I are using the ArcGIS API to generate routes for our service vehicles to use. Our routes are collections of service addresses, of which some have serviceable time windows that we are bound quite strictly to.
We are already taking advantage of the TimeWindowStart and TimeWindowEnd attributes for stops, but have recently noticed some odd behavior in the suggested order of stops from ArcGIS.
In our system, a “route” is defined as a service vehicle leaving the depot, servicing a collection of stops, and then returning to the depot.
Take for example a route in which our service vehicle is to leave the start depot at 7am and has three stops, one of which (Stop C) has a time window. The time window for Stop C is 8:45am to 3:00pm. The other two stops (Stop A and Stop B) can be serviced at any time.
In this scenario, ArcGIS would suggest that we service Stop C as soon as its time window begins, and then go service A and B. This results in a much longer total route time, as opposed to taking care of A and B, and then servicing C.
The core of our question essentially boils down to: is there a way to, at the same time:
We currently have time_window_factor set to High to encourage the highest level of adherence to time windows, but I understand from the documentation that this reduces the weight of minimizing total route time.