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", so this trait is not object safe.