pub trait MultiObjectiveFunction<T: Float> {
// Required methods
fn num_objectives(&self) -> usize;
fn num_variables(&self) -> usize;
fn evaluate(&self, variables: &[T]) -> Vec<T>;
fn variable_bounds(&self) -> Vec<(T, T)>;
// Provided methods
fn evaluate_constraints(&self, _variables: &[T]) -> Vec<T> { ... }
fn ideal_point(&self) -> Option<Vec<T>> { ... }
fn nadir_point(&self) -> Option<Vec<T>> { ... }
}Expand description
Trait for multi-objective function evaluation
Required Methods§
Sourcefn num_objectives(&self) -> usize
fn num_objectives(&self) -> usize
Number of objectives
Sourcefn num_variables(&self) -> usize
fn num_variables(&self) -> usize
Number of decision variables
Sourcefn variable_bounds(&self) -> Vec<(T, T)>
fn variable_bounds(&self) -> Vec<(T, T)>
Get variable bounds (min, max) for each variable
Provided Methods§
Sourcefn evaluate_constraints(&self, _variables: &[T]) -> Vec<T>
fn evaluate_constraints(&self, _variables: &[T]) -> Vec<T>
Evaluate constraints (return violations, ≤ 0 means feasible)
Sourcefn ideal_point(&self) -> Option<Vec<T>>
fn ideal_point(&self) -> Option<Vec<T>>
Get ideal point (best possible values for each objective)
Sourcefn nadir_point(&self) -> Option<Vec<T>>
fn nadir_point(&self) -> Option<Vec<T>>
Get nadir point (worst values in current Pareto set)