-
Notifications
You must be signed in to change notification settings - Fork 346
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
Set max number of tasks at vehicle level #421
Comments
Using a capacity component as a way to cap the number of tasks in a route only works when using On the other hand, this does not work with |
@jcoupey, I am a beginner in open source programming and I would like to contribute in this project can you please explain me about this project and how should I proceed further on this issue. |
@AnanyDubey thanks for your interest. The work outline here would be: Handle new input
Make sure the new constraint is used during the heuristic processHeuristics are the way we get initial solutions quickly. We loop through vehicles, then we greedily add tasks into the current route until no more addition is possible. We'd have to change the "no more addition is possible" to "no more addition is possible or vehicle has reached its max number of tasks". This would happen mostly by adjusting the stopping condition for this Make sure the new constraint is used during the local search processThis part is a bit trickier as it requires to dive into the local search process: lookup all existing route modification operators (see this loop) and rule out modifications that would break the max number for one of the vehicles. For more on how the local search works, you can refer to this SotM talk, it's a bit outdated in term of features but the overall solving process is pretty much still the same. |
Hi, First of all, thanks for creating the Vroom project, it's great! Quick question: what's the expected timeline for developing this new feature (max number of tasks at vehicle level)? |
@CosmoVal I'd like to have it included in the next release. @AnanyDubey you were willing to give this a try, are you still in? No pressure of course, I just want to know if you're still interested. |
Sorry @jcoupey actually I have been busy with my college work so I will not be able to attend to the issue. |
Hi! How I understand, every operator has .is_valid() method, should I add this constraint in to it? |
That would be a way to do it but This means that for all operators tested in this loop, we have to early abort the search based on the current number of tasks in source/target routes, and the move. For example to prevent trying relocating a job to an already full target route: vroom/src/algorithms/local_search/local_search.cpp Lines 828 to 833 in 7be0b4f
we should add a condition along the line of @bottorezhan that's great if you're willing to move forward on this! In that case, could you fork the repo and open a PR so we could move the technical talk there? |
We are setting 5 as the capacity but the problem is the system is assigning 5 delivery task and 5 pickup task separately which means 10 task at total. Is there any solution for set capacity regardless of task type(pickup and delivery)?
input:
output:
The text was updated successfully, but these errors were encountered: