gtsam
Loading...
Searching...
No Matches
gtsam::DoglegLineSearchImpl Struct Reference

Detailed Description

This class contains an extension of the Dogleg Algorithm where a line search is performed across the Dogleg arc (interpolation of gradient and Gauss-Newton directions).

This algorithm is applicable to cases where the trust region is not correlated between algorithm iterations.

Static Public Member Functions

template<class M, class F, class VALUES>
static DoglegOptimizerImpl::IterationResult Iterate (const Params &params, const VectorValues &dx_u, const VectorValues &dx_n, const M &Rd, const F &f, const VALUES &x0)
 Compute the update point for one iteration of the Dogleg Line Search algorithm, starting with a trust region of |N| * minDelta the algorithm searches trust regions from |N| * minDelta to maxDelta where |N| is the number of variables in the system.

Classes

struct  Params

Member Function Documentation

◆ Iterate()

template<class M, class F, class VALUES>
DoglegOptimizerImpl::IterationResult gtsam::DoglegLineSearchImpl::Iterate ( const Params & params,
const VectorValues & dx_u,
const VectorValues & dx_n,
const M & Rd,
const F & f,
const VALUES & x0 )
static

Compute the update point for one iteration of the Dogleg Line Search algorithm, starting with a trust region of |N| * minDelta the algorithm searches trust regions from |N| * minDelta to maxDelta where |N| is the number of variables in the system.

The algorithm returns the search point with minimum cost that meets the Wolfe Conditions. Evaluation points for the line search are computed according to a geometric series step_{k+1} = stepSize * step_k.

Template Parameters
MThe type of the Bayes' net or tree, currently either BayesNet<GaussianConditional> (or GaussianBayesNet) or BayesTree<GaussianConditional>.
FFor normal usage this will be NonlinearFactorGraph<VALUES>.
VALUESThe Values or TupleValues to pass to F::error() to evaluate the error function.
Parameters
paramsThe parameters for dogleg line search
RdThe Bayes' net or tree as described above.
fThe original nonlinear factor graph with which to evaluate the accuracy of \( M(\delta x) \) to adjust \( \delta \).
x0The linearization point about which \( \bayesNet \) was created
verboseFlag to write debug information.
Returns
A DoglegIterationResult containing the new delta, the linear update dx_d, and the resulting nonlinear error f_error.

The search bounds are scaled by the number of variables in the system


The documentation for this struct was generated from the following file: