pub struct Dogleg<F> { /* private fields */ }
Expand description
Dogleg method
The Dogleg method computes the intersection of the trust region boundary with a path given by the unconstraind minimum along the steepest descent direction and the optimum of the quadratic approximation of the cost function at the current point.
Requirements on the optimization problem
The optimization problem is required to implement Gradient
and Hessian
.
Reference
Jorge Nocedal and Stephen J. Wright (2006). Numerical Optimization. Springer. ISBN 0-387-30303-0.
Implementations
Trait Implementations
sourceimpl<'de, F> Deserialize<'de> for Dogleg<F> where
F: Deserialize<'de>,
impl<'de, F> Deserialize<'de> for Dogleg<F> where
F: Deserialize<'de>,
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl<F: PartialEq> PartialEq<Dogleg<F>> for Dogleg<F>
impl<F: PartialEq> PartialEq<Dogleg<F>> for Dogleg<F>
sourceimpl<F: PartialOrd> PartialOrd<Dogleg<F>> for Dogleg<F>
impl<F: PartialOrd> PartialOrd<Dogleg<F>> for Dogleg<F>
sourcefn partial_cmp(&self, other: &Dogleg<F>) -> Option<Ordering>
fn partial_cmp(&self, other: &Dogleg<F>) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
sourceimpl<O, F, P, H> Solver<O, IterState<P, P, (), H, F>> for Dogleg<F> where
O: Gradient<Param = P, Gradient = P> + Hessian<Param = P, Hessian = H>,
P: Clone + ArgminMul<F, P> + ArgminL2Norm<F> + ArgminDot<P, F> + ArgminAdd<P, P> + ArgminSub<P, P>,
H: ArgminInv<H> + ArgminDot<P, P>,
F: ArgminFloat,
impl<O, F, P, H> Solver<O, IterState<P, P, (), H, F>> for Dogleg<F> where
O: Gradient<Param = P, Gradient = P> + Hessian<Param = P, Hessian = H>,
P: Clone + ArgminMul<F, P> + ArgminL2Norm<F> + ArgminDot<P, F> + ArgminAdd<P, P> + ArgminSub<P, P>,
H: ArgminInv<H> + ArgminDot<P, P>,
F: ArgminFloat,
sourcefn next_iter(
&mut self,
problem: &mut Problem<O>,
state: IterState<P, P, (), H, F>
) -> Result<(IterState<P, P, (), H, F>, Option<KV>), Error>
fn next_iter(
&mut self,
problem: &mut Problem<O>,
state: IterState<P, P, (), H, F>
) -> Result<(IterState<P, P, (), H, F>, Option<KV>), Error>
sourcefn terminate(&mut self, state: &IterState<P, P, (), H, F>) -> TerminationReason
fn terminate(&mut self, state: &IterState<P, P, (), H, F>) -> TerminationReason
Used to implement stopping criteria, in particular criteria which are not covered by
(terminate_internal
. Read more
sourcefn init(
&mut self,
_problem: &mut Problem<O>,
state: I
) -> Result<(I, Option<KV>), Error>
fn init(
&mut self,
_problem: &mut Problem<O>,
state: I
) -> Result<(I, Option<KV>), Error>
Initializes the algorithm. Read more
sourcefn terminate_internal(&mut self, state: &I) -> TerminationReason
fn terminate_internal(&mut self, state: &I) -> TerminationReason
Checks whether basic termination reasons apply. Read more
sourceimpl<F: ArgminFloat> TrustRegionRadius<F> for Dogleg<F>
impl<F: ArgminFloat> TrustRegionRadius<F> for Dogleg<F>
sourcefn set_radius(&mut self, radius: F)
fn set_radius(&mut self, radius: F)
Set current radius.
Needed by TrustRegion
.
Example
use argmin::solver::trustregion::{Dogleg, TrustRegionRadius};
let mut dl: Dogleg<f64> = Dogleg::new();
dl.set_radius(0.8);
impl<F: Copy> Copy for Dogleg<F>
impl<F: Eq> Eq for Dogleg<F>
impl<F> StructuralEq for Dogleg<F>
impl<F> StructuralPartialEq for Dogleg<F>
Auto Trait Implementations
impl<F> RefUnwindSafe for Dogleg<F> where
F: RefUnwindSafe,
impl<F> Send for Dogleg<F> where
F: Send,
impl<F> Sync for Dogleg<F> where
F: Sync,
impl<F> Unpin for Dogleg<F> where
F: Unpin,
impl<F> UnwindSafe for Dogleg<F> where
F: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more