Use case:
Now each activity has to have a location and when fulfilling the activity, the vehicle has to move to it. However, there are real life tasks which don’t reqire associated location to be done on. They can be completed en route. Such activities are mostly administrative tasks, but breaks could be regarded as such activities as well.
Proposal:
It would be useful to have jobs/activities with no defined location. In any other way, they would be and behave the same way as the regular jobs/activities: could have priorities, have capacities, have time windows. They could be inserted in the route the same way, but the insertation won’t move the vehicle.
Open questions:
(1) Should it be on job or on activity level? (I think, they should be on job level in current version – if implemented – and on activity level in the upcoming release.)
(2) How hard to implement it in the current algoritm? (The interface is simple. To guess the impact on the engine part is above my knowledge at the moment, but they would behave quite similarly as the break activities.)
Compatibility impact
It would be an extension and can be implemented as a backward compatible feature. May deprecate and replace the break function.
Additional benefits
With this new feature and with the mandatory job feature, the current break implementation could be replaced with a more flexible one, where there could be any number of breaks for a vehicle with time window (the break should be taken within a given time period); it would behave the same way as normal jobs, could be proirized (making them optional), could be constrained by capacity (for example, no break within shipments), etc.