pub struct NestingProblem { /* private fields */ }Expand description
Problem definition for GA-based 2D nesting.
Implementations§
Source§impl NestingProblem
impl NestingProblem
Sourcepub fn new(
geometries: Vec<Geometry2D>,
boundary: Boundary2D,
config: Config,
cancelled: Arc<AtomicBool>,
) -> Self
pub fn new( geometries: Vec<Geometry2D>, boundary: Boundary2D, config: Config, cancelled: Arc<AtomicBool>, ) -> Self
Creates a new nesting problem.
Sourcepub fn num_instances(&self) -> usize
pub fn num_instances(&self) -> usize
Returns the total number of instances.
Sourcepub fn rotation_options(&self) -> usize
pub fn rotation_options(&self) -> usize
Returns the number of rotation options.
Trait Implementations§
Source§impl GaProblem for NestingProblem
impl GaProblem for NestingProblem
Source§type Individual = NestingChromosome
type Individual = NestingChromosome
The individual type for this problem.
Source§fn evaluate(&self, individual: &mut Self::Individual)
fn evaluate(&self, individual: &mut Self::Individual)
Evaluates the fitness of an individual.
Source§fn initialize_population<R: Rng>(
&self,
size: usize,
rng: &mut R,
) -> Vec<Self::Individual>
fn initialize_population<R: Rng>( &self, size: usize, rng: &mut R, ) -> Vec<Self::Individual>
Creates an initial population.
Source§fn on_generation(
&self,
generation: u32,
best: &Self::Individual,
_population: &[Self::Individual],
)
fn on_generation( &self, generation: u32, best: &Self::Individual, _population: &[Self::Individual], )
Called after each generation (for progress reporting).
Source§fn evaluate_parallel(&self, individuals: &mut [Self::Individual])
fn evaluate_parallel(&self, individuals: &mut [Self::Individual])
Evaluates multiple individuals in parallel.
Default implementation uses rayon for parallel evaluation.
Auto Trait Implementations§
impl Freeze for NestingProblem
impl RefUnwindSafe for NestingProblem
impl Send for NestingProblem
impl Sync for NestingProblem
impl Unpin for NestingProblem
impl UnwindSafe for NestingProblem
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 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.