Struct vrp_core::prelude::EvolutionConfigBuilder
source · pub struct EvolutionConfigBuilder<C, O, S, K>where
C: HeuristicContext<Objective = O, Solution = S> + Stateful<Key = K> + 'static,
O: HeuristicObjective<Solution = S> + 'static,
S: HeuristicSolution + 'static,
K: Hash + Eq + Clone + Send + Sync + 'static,{ /* private fields */ }
Expand description
Provides configurable way to build evolution configuration using fluent interface style.
Implementations§
source§impl<C, O, S, K> EvolutionConfigBuilder<C, O, S, K>where
C: HeuristicContext<Objective = O, Solution = S> + Stateful<Key = K> + 'static,
O: HeuristicObjective<Solution = S> + 'static,
S: HeuristicSolution + 'static,
K: Hash + Eq + Clone + Send + Sync + 'static,
impl<C, O, S, K> EvolutionConfigBuilder<C, O, S, K>where
C: HeuristicContext<Objective = O, Solution = S> + Stateful<Key = K> + 'static,
O: HeuristicObjective<Solution = S> + 'static,
S: HeuristicSolution + 'static,
K: Hash + Eq + Clone + Send + Sync + 'static,
sourcepub fn with_max_generations(
self,
limit: Option<usize>
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_max_generations( self, limit: Option<usize> ) -> EvolutionConfigBuilder<C, O, S, K>
Sets max generations to be run by evolution. Default is 3000.
sourcepub fn with_max_time(
self,
limit: Option<usize>
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_max_time( self, limit: Option<usize> ) -> EvolutionConfigBuilder<C, O, S, K>
Sets max running time limit for evolution. Default is 300 seconds.
sourcepub fn with_min_cv(
self,
min_cv: Option<(String, usize, f64, bool)>,
key: K
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_min_cv( self, min_cv: Option<(String, usize, f64, bool)>, key: K ) -> EvolutionConfigBuilder<C, O, S, K>
Sets variation coefficient termination criteria. Default is None.
sourcepub fn with_target_proximity(
self,
target_proximity: Option<(Vec<f64>, f64)>
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_target_proximity( self, target_proximity: Option<(Vec<f64>, f64)> ) -> EvolutionConfigBuilder<C, O, S, K>
Sets target fitness and distance threshold as termination criteria.
sourcepub fn with_initial(
self,
max_size: usize,
quota: f64,
operators: Vec<(Box<dyn InitialOperator<Context = C, Solution = S, Objective = O> + Send + Sync>, usize)>
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_initial( self, max_size: usize, quota: f64, operators: Vec<(Box<dyn InitialOperator<Context = C, Solution = S, Objective = O> + Send + Sync>, usize)> ) -> EvolutionConfigBuilder<C, O, S, K>
Sets initial parameters used to construct initial population.
sourcepub fn with_processing(
self,
processing: ProcessingConfig<C, O, S>
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_processing( self, processing: ProcessingConfig<C, O, S> ) -> EvolutionConfigBuilder<C, O, S, K>
Specifies processing configuration.
sourcepub fn with_init_solutions(
self,
solutions: Vec<S>,
max_init_size: Option<usize>
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_init_solutions( self, solutions: Vec<S>, max_init_size: Option<usize> ) -> EvolutionConfigBuilder<C, O, S, K>
Sets initial solutions in population. Default is no solutions in population.
sourcepub fn with_objective(
self,
objective: Arc<dyn HeuristicObjective<Solution = S>>
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_objective( self, objective: Arc<dyn HeuristicObjective<Solution = S>> ) -> EvolutionConfigBuilder<C, O, S, K>
Sets objective.
sourcepub fn with_context(self, context: C) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_context(self, context: C) -> EvolutionConfigBuilder<C, O, S, K>
Sets heuristic context.
sourcepub fn with_termination(
self,
termination: Box<dyn Termination<Context = C, Objective = O>>
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_termination( self, termination: Box<dyn Termination<Context = C, Objective = O>> ) -> EvolutionConfigBuilder<C, O, S, K>
Sets termination.
sourcepub fn with_heuristic(
self,
heuristic: Box<dyn HyperHeuristic<Context = C, Solution = S, Objective = O>>
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_heuristic( self, heuristic: Box<dyn HyperHeuristic<Context = C, Solution = S, Objective = O>> ) -> EvolutionConfigBuilder<C, O, S, K>
Sets a different heuristic replacing initial.
sourcepub fn with_strategy(
self,
strategy: Box<dyn EvolutionStrategy<Solution = S, Context = C, Objective = O>>
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_strategy( self, strategy: Box<dyn EvolutionStrategy<Solution = S, Context = C, Objective = O>> ) -> EvolutionConfigBuilder<C, O, S, K>
Sets a different heuristic replacing initial.
sourcepub fn with_search_operators(
self,
search_operators: Vec<(Arc<dyn HeuristicSearchOperator<Objective = O, Solution = S, Context = C> + Send + Sync>, String, f64)>
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_search_operators( self, search_operators: Vec<(Arc<dyn HeuristicSearchOperator<Objective = O, Solution = S, Context = C> + Send + Sync>, String, f64)> ) -> EvolutionConfigBuilder<C, O, S, K>
Sets search operators for dynamic heuristic.
sourcepub fn with_diversify_operators(
self,
diversify_operators: Vec<Arc<dyn HeuristicDiversifyOperator<Objective = O, Solution = S, Context = C> + Send + Sync>>
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_diversify_operators( self, diversify_operators: Vec<Arc<dyn HeuristicDiversifyOperator<Objective = O, Solution = S, Context = C> + Send + Sync>> ) -> EvolutionConfigBuilder<C, O, S, K>
Sets diversify operators for dynamic heuristic.
sourcepub fn build(self) -> Result<EvolutionConfig<C, O, S>, GenericError>
pub fn build(self) -> Result<EvolutionConfig<C, O, S>, GenericError>
Builds the evolution config.