Skip to main content

MultiObjectiveOptimizer

Trait MultiObjectiveOptimizer 

Source
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§

Source

fn initialize(&mut self, config: &MultiObjectiveConfig<T>) -> Result<()>

Initialize the optimizer

Source

fn update_pareto_front( &mut self, results: &[SearchResult<T>], ) -> Result<ParetoFront<T>>

Update Pareto front with new results

Source

fn get_pareto_front(&self) -> &ParetoFront<T>

Get current Pareto front

Source

fn select_candidates( &mut self, population: &[OptimizerArchitecture<T>], objectives: &[T], ) -> Result<Vec<OptimizerArchitecture<T>>>

Select next candidates for evaluation

Source

fn name(&self) -> &str

Get algorithm name

Source

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".

Implementors§