as the tour optimization model seems to be one of the more challenging ones (compared to other PTV APIs such as geocoding) I'd like to provide a special view to the topic which is supposed to help you understanding our model. Therefore I wrote this article about "constraints" in tour optimization. Here we go: usually I define tour optimization as follows from a meta perspective:
- give us a set of orders you'd like to fullfil (aka workload)
- give us a fleet we can utilize for that (aka ressources)
- define the required constraints
- we then let you know "what ressource takes care of which order in what sequence"
- quantity based :
- orders may occupy a specific capacity
- ressources may be able to handle a specific capacity at a time...
- time based
- opening times at locations (or service start times, to be more precise)
- drivers availabilities (operating hours)
- break- and rest rules
- skill / equipment
- orders may require a specific set of equipment or a drivers skill set
- ressources may offer a set of equipment or skills
- An order can only be served by a ressource which offers all required skills/equipment
- Structural dependencies
- an order may have to be served as first or last stop on a tour
- an order of a specific category of goods may not be server with another category of goods at the same time
- a tour may be enforced to be based on a single trip
- a tour may be served only by a single depot
- a customer site can only be approached once within a tour plan
- Maximumm values :
- maximum number of customers per tour
- maximum driving time, travel time, distance
- Handling of routing restrictions related to underlying distance matrix:
- approach customer stop in driving direction
- acceptance of routinhg violations / reachability violations
- level of fixation of an (optional) input plan:
- orders assigned to a specific vehilce can't be shifted to another vehicle
- a trip that has been assigned to a vehicle can't be shifted to another vehicle and the inner structure of the trip can't be changed (no additional orders, no change of stop sequence)
- loading patterns are dealing with quanitities and structure
- maximum travel times belongs to maximum values and time based constraints