Struct vrp_core::solver::search::ExchangeSwapStar
source · pub struct ExchangeSwapStar { /* private fields */ }
Expand description
Implements a SWAP* algorithm described in “Hybrid Genetic Search for the CVRP: Open-Source Implementation and SWAP* Neighborhood” by Thibaut Vidal.
The key idea is described by the following theorem:
In a best Swap* move between customers v and v0 within routes r and r0 , the new insertion
position of v in r0 is either:
i) in place of v0 , or
ii) among the three best insertion positions in r0 as evaluated prior to the removal of v0.
A symmetrical argument holds for the new insertion position of v0 in r.
For more details, see <https://arxiv.org/abs/2012.10384>
Implementations§
Trait Implementations§
source§impl LocalOperator for ExchangeSwapStar
impl LocalOperator for ExchangeSwapStar
source§fn explore(
&self,
refinement_ctx: &RefinementContext,
insertion_ctx: &InsertionContext
) -> Option<InsertionContext>
fn explore( &self, refinement_ctx: &RefinementContext, insertion_ctx: &InsertionContext ) -> Option<InsertionContext>
Applies local search operator to passed solution in order to explore possible
small move in solution space which leads to a different solution.
Auto Trait Implementations§
impl !RefUnwindSafe for ExchangeSwapStar
impl Send for ExchangeSwapStar
impl Sync for ExchangeSwapStar
impl Unpin for ExchangeSwapStar
impl !UnwindSafe for ExchangeSwapStar
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more