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§
Sourcefn optimize<F>(
&mut self,
objective_function: F,
) -> Result<MultiObjectiveResult, OptimizeError>
fn optimize<F>( &mut self, objective_function: F, ) -> Result<MultiObjectiveResult, OptimizeError>
Optimize the problem
Sourcefn initialize_population(&mut self) -> Result<(), OptimizeError>
fn initialize_population(&mut self) -> Result<(), OptimizeError>
Initialize the population
Sourcefn evolve_generation<F>(
&mut self,
objective_function: &F,
) -> Result<(), OptimizeError>
fn evolve_generation<F>( &mut self, objective_function: &F, ) -> Result<(), OptimizeError>
Perform one generation/iteration
Sourcefn check_convergence(&self) -> bool
fn check_convergence(&self) -> bool
Check convergence criteria
Sourcefn get_population(&self) -> &Population
fn get_population(&self) -> &Population
Get current population
Sourcefn get_generation(&self) -> usize
fn get_generation(&self) -> usize
Get current generation number
Sourcefn get_evaluations(&self) -> usize
fn get_evaluations(&self) -> usize
Get number of function evaluations
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".