pub trait MultiObjectiveOptimizer<T: Float + Debug + Send + Sync + 'static>: Send + Sync {
// Required methods
fn update_pareto_front(
&mut self,
results: &[SearchResult<T>],
) -> Result<ParetoFront<T>>;
fn select_candidates(
&self,
candidates: &[SearchResult<T>],
population_size: usize,
) -> Result<Vec<SearchResult<T>>>;
fn calculate_diversity(&self, population: &[SearchResult<T>]) -> f64;
}Expand description
Multi-objective optimization trait
Required Methods§
Sourcefn update_pareto_front(
&mut self,
results: &[SearchResult<T>],
) -> Result<ParetoFront<T>>
fn update_pareto_front( &mut self, results: &[SearchResult<T>], ) -> Result<ParetoFront<T>>
Update Pareto front with new results
Sourcefn select_candidates(
&self,
candidates: &[SearchResult<T>],
population_size: usize,
) -> Result<Vec<SearchResult<T>>>
fn select_candidates( &self, candidates: &[SearchResult<T>], population_size: usize, ) -> Result<Vec<SearchResult<T>>>
Select next generation candidates
Sourcefn calculate_diversity(&self, population: &[SearchResult<T>]) -> f64
fn calculate_diversity(&self, population: &[SearchResult<T>]) -> f64
Calculate diversity metrics
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".