-
Notifications
You must be signed in to change notification settings - Fork 339
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow defining immutable tasks in initial route plan #800
Comments
Thanks for the comprehensive description! To be honest, I've already thought of this as a potential interesting addition for the situation where (a lot of) replanning occurs. The raw sketch of the changes for the solving approach would be:
As a result, immutable tasks would stay in their initial vehicle and in their respective input order while other tasks (either in
Note that the "already fixed" part here is somehow subjective. Consider the example of a task with a [8:00, 12:00] TW that is first pinned to a vehicle in a given order, say first in the day with a 8:00 ETA. Then if you submit that exact same task in a next solving round, you could potentially pack the morning shift with new tasks before that one and have it end up happening at 12:00, albeit prior to the other immutable next tasks.
I think this should be a case of error (it is currently when using |
Of course, this is completely logical in the context of VROOM. It would not be a problem for our special use-case in particular, since we would always give a time-window of exactly one second for those fixed tasks. Like in my example:
For us, "fixed" means that we have communicated the exact time of arrival to both the driver and the passenger (since we are transporting people), that is why we would not give VROOM any margin to work with here. |
This feature would solve us a lot of headaches! We have on our end the challenge that we have a route which needs to stay roughly the same. (Small switches are okay but the broad picture has to stay because the vehicles are already loaded and the can’t get resorted when two or three late tasks are added). A tour has usually around 100 stops to make the picture clear. So the timing doesn‘t matter - it is just about the rough stop order and inserting new stops appropriately. (Switching geographically near stops which each other is also fine - or would even be better!) It is just about the big picture which should stay the same. |
Agree this would be a great addition. Not sure how /if this is progressing but we have a similar use case where we use the solver to determine the vehicle's initial route (containing both jobs and shipments). We want to answer the question - "What vehicles can deliver this new shipment based on their existing routes within the time windows (10-11,11-12,12-1,1-2-3....8-9.)?" Currently, this requires a lot of pre-processing of the data by making use of skills and sending large data sets to vroom (which ultimately impacts performance). I had hoped Our use case differs slightly from the initial one described by @fbaierl as we don't mind if |
Motivation
I think VROOM would greatly benefit from the possibility to be used in more dynamic environments. What I mean by this is that VROOM is very well suited for making a complete plan for one day, which is not deviated from. However, with the current solution, it is difficult to schedule new requests while part of the plan is already fixed/immutable. Because of this use-case, it would be very beneficial if we could define vehicle steps as input that are already fixed. VROOM should no longer change these steps (apart from maybe picking up more loads along the way if they fit into the time-window restrictions) but use the remaining free time-slots to plan the other given shipments.
Previously, I thought that
steps
onvehicles
are used for exactly this use-case - which is not the case. Previous discussion: 753.Feature
It would be great if we could somehow define steps for vehicles that are already immutable, e.g. like this:
Here,
vehicle0
already hasjob 0
andjob 1
that is has to do and vroom should check if the additionalshipment
can additionally be added to this vehicles schedule.To discuss
Current workaround
My current workaround is described here.
This workaround seems to work at the moment, but it is:
The text was updated successfully, but these errors were encountered: