MultiObjectiveOptimizer

Trait MultiObjectiveOptimizer 

Source
pub trait MultiObjectiveOptimizer {
    // Required methods
    fn optimize<F>(
        &mut self,
        objective_function: F,
    ) -> Result<MultiObjectiveResult, OptimizeError>
       where F: Fn(&ArrayView1<'_, f64>) -> Array1<f64> + Send + Sync;
    fn initialize_population(&mut self) -> Result<(), OptimizeError>;
    fn evolve_generation<F>(
        &mut self,
        objective_function: &F,
    ) -> Result<(), OptimizeError>
       where F: Fn(&ArrayView1<'_, f64>) -> Array1<f64> + Send + Sync;
    fn check_convergence(&self) -> bool;
    fn get_population(&self) -> &Population;
    fn get_generation(&self) -> usize;
    fn get_evaluations(&self) -> usize;
    fn name(&self) -> &str;
}
Expand description

Trait for multi-objective optimization algorithms

Required Methods§

Source

fn optimize<F>( &mut self, objective_function: F, ) -> Result<MultiObjectiveResult, OptimizeError>
where F: Fn(&ArrayView1<'_, f64>) -> Array1<f64> + Send + Sync,

Optimize the problem

Source

fn initialize_population(&mut self) -> Result<(), OptimizeError>

Initialize the population

Source

fn evolve_generation<F>( &mut self, objective_function: &F, ) -> Result<(), OptimizeError>
where F: Fn(&ArrayView1<'_, f64>) -> Array1<f64> + Send + Sync,

Perform one generation/iteration

Source

fn check_convergence(&self) -> bool

Check convergence criteria

Source

fn get_population(&self) -> &Population

Get current population

Source

fn get_generation(&self) -> usize

Get current generation number

Source

fn get_evaluations(&self) -> usize

Get number of function evaluations

Source

fn name(&self) -> &str

Get algorithm name

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§