pub struct MultiObjectiveOptimizer {
pub config: MultiObjectiveConfig,
pub pareto_frontier: ParetoFrontier,
pub scalarizers: Vec<Scalarizer>,
pub constraint_handlers: Vec<ConstraintHandler>,
pub decision_maker: DecisionMaker,
}Expand description
Multi-objective optimizer
Fields§
§config: MultiObjectiveConfigConfiguration
pareto_frontier: ParetoFrontierPareto frontier
scalarizers: Vec<Scalarizer>Scalarization methods
constraint_handlers: Vec<ConstraintHandler>Constraint handlers
decision_maker: DecisionMakerDecision maker
Implementations§
Source§impl MultiObjectiveOptimizer
impl MultiObjectiveOptimizer
pub fn new(config: MultiObjectiveConfig) -> Self
Sourcepub fn add_solution(
&mut self,
solution: MultiObjectiveSolution,
) -> ApplicationResult<bool>
pub fn add_solution( &mut self, solution: MultiObjectiveSolution, ) -> ApplicationResult<bool>
Add solution to Pareto frontier
Sourcepub fn scalarize_weighted_sum(
&self,
solution: &MultiObjectiveSolution,
weights: &[f64],
) -> f64
pub fn scalarize_weighted_sum( &self, solution: &MultiObjectiveSolution, weights: &[f64], ) -> f64
Scalarize objectives using weighted sum
Sourcepub fn select_solution(&mut self) -> ApplicationResult<Option<String>>
pub fn select_solution(&mut self) -> ApplicationResult<Option<String>>
Select best solution using decision maker preferences
Sourcepub const fn get_statistics(&self) -> &FrontierStatistics
pub const fn get_statistics(&self) -> &FrontierStatistics
Get frontier statistics
Sourcepub const fn get_pareto_solutions(&self) -> &Vec<MultiObjectiveSolution>
pub const fn get_pareto_solutions(&self) -> &Vec<MultiObjectiveSolution>
Get all solutions in Pareto frontier
Sourcepub fn clear_frontier(&mut self)
pub fn clear_frontier(&mut self)
Clear Pareto frontier
Auto Trait Implementations§
impl Freeze for MultiObjectiveOptimizer
impl RefUnwindSafe for MultiObjectiveOptimizer
impl Send for MultiObjectiveOptimizer
impl Sync for MultiObjectiveOptimizer
impl Unpin for MultiObjectiveOptimizer
impl UnsafeUnpin for MultiObjectiveOptimizer
impl UnwindSafe for MultiObjectiveOptimizer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.