Skip to main content

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

Implementors§