Page 1 of 1

Tour Optimization: using Drones

Posted: Mon Jan 23, 2023 12:15 pm
by Bernd Welter
Cheers,

these days I've been asked whether and how a tour planning call could consider a fleet that also uses drones.
Here are my thoughts / clarifications:
  • The main aspect of a drone in my eyes is that it simply performs it's distances based on airline with a static flight speed. So if you simply want to plan with DirectDistance you should keep in mind that the purpose of such an approach is a combination of an approximated detour where you would have to set the factor to 1.0 in combination with the estimated flight speed.
  • Therefore I'd recommend to use a routed distance matrix (ExistingDistanceMatrix) which is based on the built in fallback to geometric distance. For this you could apply a routing profile which "fails by design", e.g. by setting a ridiculous geographic restriction (meaningless bounding rectangle, wrong allowed_countries).
  • Such a distance matrix allows you to assemble a fleet based on regular vehicles (sprinters, cars...) and such drones via ExistingDistanceMatrixPerVehicle.
  • Keep in mind that drones probably have a maximum distance to serve due to battery capacities. Therefore the usage of a proper restriction such as Vehicle.MaximumDistance sounds meaningful.
  • As drones might come into use as some kind of a local satellite in the last mile context please be aware that the PTV xTour2 does not consider to handle the flow of an order via more than a single vehicle. You could try to modell this anyway with iterative strategies and business logic such as described in this article about the search for parking spots.
  • PS: for the usage of the simple routing API there's no fallback - just use airline geometries to display drone flights on a map.
Please let me know if you are aware of further aspects of drone based optimization tasks. It will be a pleasure to provide feedback or hints.

Bernd

Re: Tour Optimization: using Drones

Posted: Mon Jan 23, 2023 12:37 pm
by Joost
Bernd Welter wrote:
  • Therefore I'd recommend to use a routed distance matrix (ExistingDistanceMatrix) which is based on the built in fallback to geometric distance. For this you could apply a routing profile which "fails by design", e.g. by setting a ridiculous geographic restriction (meaningless bounding rectangle, wrong allowed_countries).
Better is to pre-calculate the dima your self and use createDistanceMatrix with an ImportDistanceMatrixRequest payload to get it into the xServer. This gives you more control over distance and travel time calculation.

(Post: Import own distance matrix data)

For real world usage you also might need to take drone no-fly zones into account.