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

RouteShift operator #798

Open
jcoupey opened this issue Oct 7, 2022 · 0 comments · May be fixed by #799
Open

RouteShift operator #798

jcoupey opened this issue Oct 7, 2022 · 0 comments · May be fixed by #799

Comments

@jcoupey
Copy link
Collaborator

jcoupey commented Oct 7, 2022

The current 2-opt implementation for a pair of routes works as follow.

Before After
2_opt_before 2_opt_after

In the above schema, it's possible that one of the route ends after the last non-changed node in which case we exchange a route end with an empty leg. So in particular this covers transferring the end of the route to the end of another route.

What is impossible on the other hand with the current setup is that one whole route is transferred to the end of the other route. It would be interesting to test this option as a separate RouteShift operator that could move a whole route to the beginning or end of another route.
Some specific cases we should exclude: if the target route is empty, that would already be covered by RouteExchange; if the source route has only 1 or 2 jobs, this would already be covered by Relocate or OrOpt. Maybe due to those restrictions the odds of such a move are quite low but it would be interesting to check.

@jcoupey jcoupey linked a pull request Oct 7, 2022 that will close this issue
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant