Skip to content

RouteShift operator #798

@jcoupey

Description

@jcoupey

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions