Skip to content
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

Vroom not finding a possible high priority route #1161

Open
JeremyCollinsMPI opened this issue Sep 24, 2024 · 3 comments
Open

Vroom not finding a possible high priority route #1161

JeremyCollinsMPI opened this issue Sep 24, 2024 · 3 comments

Comments

@JeremyCollinsMPI
Copy link

I am submitting an input (input 1) to vroom using version 1.14. It is failing to find a route which has total priority 1200, instead finding a route of priority 0 (output 1). It does however find the high priority route when only the high priority orders are submitted (input 2, output 2). Is vroom first trying to optimise for priority, and if so why doesn't it find the high priority route?
input_2.json
output_2.json
input_1.json
output_1.json

@jcoupey
Copy link
Collaborator

jcoupey commented Sep 24, 2024

Thanks for sharing the data. What happens here is that for some reason none of the initial heuristic solutions we build contain shipments with priority. I can't really understand why since it's hard to reason on instances without locations (if you can share full instances, that would help).

Then the local search phases do not manage to increase the priority score. This is very similar to the problem addressed back in #988 for job-based instances. The best way to make that happen on this kind of instance would be to extend the current PriorityReplace operator: it is designed to handle jobs but could serve the same purpose for re-inserting higher-priority shipments.

Funny note: the changes made for #1155 favor priority when re-inserting stuff in ruined routes, so current master does reach the 1200 priority solution. Not in a very satisfactory manner though.

@JeremyCollinsMPI
Copy link
Author

Thanks very much for the fast response! I will try out the master branch version.
To provide some context for my use case, it may be because I constrained the distance matrix in many cells to be above the maximum distance that the vehicle can travel (an experimental attempt to force the vehicle to do a particular route since our vehicles have pre-planned routes and we are trying to insert orders around them); when having a softer version of this constraint where violating the route has a high cost but is not impossible, then it does find the high priority routes.

@jcoupey
Copy link
Collaborator

jcoupey commented Sep 25, 2024

As you mention, the matrix adjustments probably prevent to "normally" reach the high-priority solution in the first place. I was quite surprised that none of the heuristic solutions did include a non-zero priority shipments, that would be the reason.

Related: if you want to use pre-planned routes, you should check out the steps key for vehicles.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants