pub struct PermutationSolution {
pub sequence: Vec<usize>,
pub rotations: Vec<usize>,
pub rotation_options: usize,
/* private fields */
}Expand description
Permutation-based solution for SA.
Fields§
§sequence: Vec<usize>The permutation (indices).
rotations: Vec<usize>Additional rotation/orientation values.
rotation_options: usizeNumber of rotation options per item.
Implementations§
Source§impl PermutationSolution
impl PermutationSolution
Sourcepub fn random<R: Rng>(size: usize, rotation_options: usize, rng: &mut R) -> Self
pub fn random<R: Rng>(size: usize, rotation_options: usize, rng: &mut R) -> Self
Creates a random permutation solution.
Sourcepub fn apply_swap<R: Rng>(&self, rng: &mut R) -> Self
pub fn apply_swap<R: Rng>(&self, rng: &mut R) -> Self
Applies swap operator: swaps two elements in sequence.
Sourcepub fn apply_relocate<R: Rng>(&self, rng: &mut R) -> Self
pub fn apply_relocate<R: Rng>(&self, rng: &mut R) -> Self
Applies relocate operator: moves an element to a new position.
Sourcepub fn apply_inversion<R: Rng>(&self, rng: &mut R) -> Self
pub fn apply_inversion<R: Rng>(&self, rng: &mut R) -> Self
Applies inversion operator: reverses a segment.
Sourcepub fn apply_rotation<R: Rng>(&self, rng: &mut R) -> Self
pub fn apply_rotation<R: Rng>(&self, rng: &mut R) -> Self
Applies rotation operator: changes rotation of one element.
Sourcepub fn apply_chain<R: Rng>(&self, rng: &mut R) -> Self
pub fn apply_chain<R: Rng>(&self, rng: &mut R) -> Self
Applies chain operator: 3-opt style move.
Trait Implementations§
Source§impl Clone for PermutationSolution
impl Clone for PermutationSolution
Source§fn clone(&self) -> PermutationSolution
fn clone(&self) -> PermutationSolution
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for PermutationSolution
impl Debug for PermutationSolution
Source§impl SaSolution for PermutationSolution
impl SaSolution for PermutationSolution
Auto Trait Implementations§
impl Freeze for PermutationSolution
impl RefUnwindSafe for PermutationSolution
impl Send for PermutationSolution
impl Sync for PermutationSolution
impl Unpin for PermutationSolution
impl UnwindSafe for PermutationSolution
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.