within SAP and PTV engines there's often a mix between components that apply for a proper solving of tour optimization tasks. I'd like to gather some core information about this topic in this article. As I am not a SAP guy by myself it would be great if you can return some valuable feedback about this topic - either 1:1 or as a response to the article.
Usually you have to approach a tour optimization problem via the following steps:
- Geocodes: Ensure to know the coordinates of each involved location, may it be a vehicle location, a depot or a customer facility... for this a geocoding engine is required. As this is a standard topic below tour optimization I won't dive into details here.
- Distances & traveltimes: Next step is to gather the travel times and distances from each involved coordinate to each involved coordinate. Usually this underlying data is called a distance matrix ([N rows] x [N columns]) or a flat relation table ([N²] rows). You may need several such structures if your fleet is based on vehicles with different means of transport, e.g. 40t trucks versus vans.
- Optimization itself: Once the traveltimes and distances are available the real optimization takes place. The involved algorithms may need to query the distance matrix aka the relation table millions of times even for small optimization sizes (<100 stops).
| Task | SAP | PTV xServer 2 | PTV Developer |
|---|---|---|---|
| Distance / Traveltimes | Distance and Duration Determination (DDD) | PTV XDima2 | Matrix Routing API (HERE) / Matrix Routing API (OSM) |
| Optimization | VSR Optimizer | PTV xTour2 | Sequence Optimization API / Route Optimization API |
| Scenario | Components |
|---|---|
| You have your own distances but want to benefit from a PTV Optimization engine |
|
| You don't have your own routing engine or optimizer |
|
| You want to use SAP VSR Optimizer but need PTV routing? |
|