pub trait MultiObjectiveOptimizer<T: Float + Debug + Send + Sync + 'static>: Send + Sync {
// Required methods
fn initialize(&mut self, config: &MultiObjectiveConfig<T>) -> Result<()>;
fn update_pareto_front(
&mut self,
results: &[SearchResult<T>],
) -> Result<ParetoFront<T>>;
fn get_pareto_front(&self) -> &ParetoFront<T>;
fn select_candidates(
&mut self,
population: &[OptimizerArchitecture<T>],
objectives: &[T],
) -> Result<Vec<OptimizerArchitecture<T>>>;
fn name(&self) -> &str;
fn get_statistics(&self) -> MultiObjectiveStatistics<T>;
}Expand description
Base trait for multi-objective optimizers
Required Methods§
Sourcefn initialize(&mut self, config: &MultiObjectiveConfig<T>) -> Result<()>
fn initialize(&mut self, config: &MultiObjectiveConfig<T>) -> Result<()>
Initialize the optimizer
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 get_pareto_front(&self) -> &ParetoFront<T>
fn get_pareto_front(&self) -> &ParetoFront<T>
Get current Pareto front
Sourcefn select_candidates(
&mut self,
population: &[OptimizerArchitecture<T>],
objectives: &[T],
) -> Result<Vec<OptimizerArchitecture<T>>>
fn select_candidates( &mut self, population: &[OptimizerArchitecture<T>], objectives: &[T], ) -> Result<Vec<OptimizerArchitecture<T>>>
Select next candidates for evaluation
Sourcefn get_statistics(&self) -> MultiObjectiveStatistics<T>
fn get_statistics(&self) -> MultiObjectiveStatistics<T>
Get optimization statistics
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".