Struct vrp_core::prelude::EvolutionConfigBuilder
source · [−]pub struct EvolutionConfigBuilder<C, O, S, K>where
C: 'static + HeuristicContext<Objective = O, Solution = S> + Stateful<Key = K>,
O: 'static + HeuristicObjective<Solution = S>,
S: 'static + HeuristicSolution,
K: 'static + Hash + Eq + Clone + Send + Sync,{ /* private fields */ }Expand description
Provides configurable way to build evolution configuration using fluent interface style.
Implementations
sourceimpl<C, O, S, K> EvolutionConfigBuilder<C, O, S, K>where
C: 'static + HeuristicContext<Objective = O, Solution = S> + Stateful<Key = K>,
O: 'static + HeuristicObjective<Solution = S>,
S: 'static + HeuristicSolution,
K: 'static + Hash + Eq + Clone + Send + Sync,
impl<C, O, S, K> EvolutionConfigBuilder<C, O, S, K>where
C: 'static + HeuristicContext<Objective = O, Solution = S> + Stateful<Key = K>,
O: 'static + HeuristicObjective<Solution = S>,
S: 'static + HeuristicSolution,
K: 'static + Hash + Eq + Clone + Send + Sync,
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, Global>, f64)>
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_target_proximity(
self,
target_proximity: Option<(Vec<f64, Global>, 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<Objective = O, Context = C, Solution = S> + Sync + Send + 'static, Global>, usize), Global>
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_initial(
self,
max_size: usize,
quota: f64,
operators: Vec<(Box<dyn InitialOperator<Objective = O, Context = C, Solution = S> + Sync + Send + 'static, Global>, usize), Global>
) -> 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, Global>,
max_init_size: Option<usize>
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_init_solutions(
self,
solutions: Vec<S, Global>,
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> + 'static>
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_objective(
self,
objective: Arc<dyn HeuristicObjective<Solution = S> + 'static>
) -> 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> + 'static, Global>
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_termination(
self,
termination: Box<dyn Termination<Context = C, Objective = O> + 'static, Global>
) -> EvolutionConfigBuilder<C, O, S, K>
Sets termination.
sourcepub fn with_heuristic(
self,
heuristic: Box<dyn HyperHeuristic<Solution = S, Objective = O, Context = C> + 'static, Global>
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_heuristic(
self,
heuristic: Box<dyn HyperHeuristic<Solution = S, Objective = O, Context = C> + 'static, Global>
) -> 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> + 'static, Global>
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_strategy(
self,
strategy: Box<dyn EvolutionStrategy<Solution = S, Context = C, Objective = O> + 'static, Global>
) -> 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, Context = C, Solution = S> + Sync + Send + 'static>, String), Global>
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_search_operators(
self,
search_operators: Vec<(Arc<dyn HeuristicSearchOperator<Objective = O, Context = C, Solution = S> + Sync + Send + 'static>, String), Global>
) -> EvolutionConfigBuilder<C, O, S, K>
Sets search operators for dynamic heuristic.
sourcepub fn with_diversify_operators(
self,
diversify_operators: Vec<Arc<dyn HeuristicDiversifyOperator<Solution = S, Context = C, Objective = O> + Sync + Send + 'static>, Global>
) -> EvolutionConfigBuilder<C, O, S, K>
pub fn with_diversify_operators(
self,
diversify_operators: Vec<Arc<dyn HeuristicDiversifyOperator<Solution = S, Context = C, Objective = O> + Sync + Send + 'static>, Global>
) -> EvolutionConfigBuilder<C, O, S, K>
Sets diversify operators for dynamic heuristic.
sourcepub fn build(self) -> Result<EvolutionConfig<C, O, S>, String>
pub fn build(self) -> Result<EvolutionConfig<C, O, S>, String>
Builds the evolution config.