Feature proposal: activities without location

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.

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.

1 Like

I like it very much. It is probably better to discuss feature requests via the issue tracker. I d only add this to the upcoming release. It would solve some of the issues I have with releasing this new branch. :slight_smile:

as far as I understand, break does not have a fixed location, but it cannot be at any place either. if I’m not mistaken, it can be taken only at a job activity location or the depot, not in the midway between two activities.

is it the same with your proposed activities?

My proposal is a wider idea to have activities without location and therefore without travel time/cost regardless where you are. Technically they are done somewhere (anywhere) undetermined position within its time window. (Because in real life, everyone should be somewhere, it will be done somewhere between the location of the previous and next activity, but we don’t really care. We only care that the vehicle fulfills the activity in the given time.)

As an additional benefit is that breaks fits well into this new type of activity, so the now specially handled breaks could be converted to this which gives higher flexibility to breaks and simpler code because the algorithm doesn’t have to handle breaks specially.

BTW, as Stefan suggested, I moved this issue to the issue tracker.