Struct vrp_core::solver::search::AdjustedStringRemoval
source · pub struct AdjustedStringRemoval { /* private fields */ }Expand description
Adjusted string removal ruin strategy based on “Slack Induction by String Removals for Vehicle Routing Problems” by Jan Christiaens, Greet Vanden Berghe.
Some definitions from the paper:
- string is a sequence of consecutive nodes in a tour.
- cardinality is the number of customers included in a string or tour.
Implementations§
source§impl AdjustedStringRemoval
impl AdjustedStringRemoval
sourcepub fn new(lmax: usize, cavg: usize, alpha: f64, limits: RemovalLimits) -> Self
pub fn new(lmax: usize, cavg: usize, alpha: f64, limits: RemovalLimits) -> Self
Creates a new instance of AdjustedStringRemoval.
sourcepub fn new_with_defaults(limits: RemovalLimits) -> Self
pub fn new_with_defaults(limits: RemovalLimits) -> Self
Creates a new instance of AdjustedStringRemoval with some defaults.
Trait Implementations§
source§impl Ruin for AdjustedStringRemoval
impl Ruin for AdjustedStringRemoval
source§fn run(
&self,
_: &RefinementContext,
insertion_ctx: InsertionContext,
) -> InsertionContext
fn run( &self, _: &RefinementContext, insertion_ctx: InsertionContext, ) -> InsertionContext
Ruins given solution and returns a new one with less jobs assigned.
Auto Trait Implementations§
impl Freeze for AdjustedStringRemoval
impl RefUnwindSafe for AdjustedStringRemoval
impl Send for AdjustedStringRemoval
impl Sync for AdjustedStringRemoval
impl Unpin for AdjustedStringRemoval
impl UnwindSafe for AdjustedStringRemoval
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
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more