pub enum Merit {
L1,
AugmentedLagrangian,
}Expand description
Merit function of the line search.
Variants§
L1
f + Σ μᵢ·violationᵢ with Powell’s per-row penalties
μᵢ ← max(1.1|λᵢ|, ½(μᵢ + 1.1|λᵢ|)) (default).
AugmentedLagrangian
SNOPT’s augmented Lagrangian f − πᵀ(c − s) + ½Σρᵢ(cᵢ − sᵢ)²,
searched jointly in the variables, the multiplier estimate π and
the slacks s (Gill, Murray and Saunders 2005, §2.7). The penalties
ρ are the smallest for which the linear model of the merit falls by
½pᵀBp over the unit step, twice the paper’s slope rule, and may
decrease under its damping rule. It is differentiable, so it
needs no second-order correction; the combination is rejected.
Steps whose elastic QP leaves rows violated use the ℓ1 merit.
Implementations§
Trait Implementations§
impl Copy for Merit
impl Eq for Merit
impl StructuralPartialEq for Merit
Auto Trait Implementations§
impl Freeze for Merit
impl RefUnwindSafe for Merit
impl Send for Merit
impl Sync for Merit
impl Unpin for Merit
impl UnsafeUnpin for Merit
impl UnwindSafe for Merit
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> Scalar for T
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.