GTSAM
4.0.2
C++ library for smoothing and mapping (SAM)
|
#include <DoglegOptimizer.h>
Public Types | |
typedef std::shared_ptr< DoglegOptimizer > | shared_ptr |
Public Member Functions | |
Standard interface | |
DoglegOptimizer (const NonlinearFactorGraph &graph, const Values &initialValues, const DoglegParams ¶ms=DoglegParams()) | |
DoglegOptimizer (const NonlinearFactorGraph &graph, const Values &initialValues, const Ordering &ordering) | |
Advanced interface | |
~DoglegOptimizer () override | |
GaussianFactorGraph::shared_ptr | iterate () override |
const DoglegParams & | params () const |
double | getDelta () const |
Standard interface | |
virtual const Values & | optimize () |
const Values & | optimizeSafely () |
double | error () const |
return error in current optimizer state | |
size_t | iterations () const |
return number of iterations in current optimizer state | |
const Values & | values () const |
return values in current optimizer state | |
const NonlinearFactorGraph & | graph () const |
return the graph with nonlinear factors | |
Advanced interface | |
virtual VectorValues | solve (const GaussianFactorGraph &gfg, const NonlinearOptimizerParams ¶ms) const |
Protected Member Functions | |
const NonlinearOptimizerParams & | _params () const override |
DoglegParams | ensureHasOrdering (DoglegParams params, const NonlinearFactorGraph &graph) const |
void | defaultOptimize () |
Protected Attributes | |
DoglegParams | params_ |
NonlinearFactorGraph | graph_ |
The graph with nonlinear factors. | |
std::unique_ptr< internal::NonlinearOptimizerState > | state_ |
PIMPL'd state. | |
This class performs Dogleg nonlinear optimization
gtsam::DoglegOptimizer::DoglegOptimizer | ( | const NonlinearFactorGraph & | graph, |
const Values & | initialValues, | ||
const DoglegParams & | params = DoglegParams() |
||
) |
Standard constructor, requires a nonlinear factor graph, initial variable assignments, and optimization parameters. For convenience this version takes plain objects instead of shared pointers, but internally copies the objects.
graph | The nonlinear factor graph to optimize |
initialValues | The initial variable assignments |
params | The optimization parameters |
gtsam::DoglegOptimizer::DoglegOptimizer | ( | const NonlinearFactorGraph & | graph, |
const Values & | initialValues, | ||
const Ordering & | ordering | ||
) |
Standard constructor, requires a nonlinear factor graph, initial variable assignments, and optimization parameters. For convenience this version takes plain objects instead of shared pointers, but internally copies the objects.
graph | The nonlinear factor graph to optimize |
initialValues | The initial variable assignments |
|
inlineoverride |
Virtual destructor
|
inlineoverrideprotectedvirtual |
Access the parameters (base class version)
Implements gtsam::NonlinearOptimizer.
|
protectedinherited |
A default implementation of the optimization loop, which calls iterate() until checkConvergence returns true.
|
protected |
Internal function for computing a COLAMD ordering if no ordering is specified
double gtsam::DoglegOptimizer::getDelta | ( | ) | const |
Access the current trust region radius delta
|
overridevirtual |
Perform a single iteration, returning GaussianFactorGraph corresponding to the linearized factor graph.
Implements gtsam::NonlinearOptimizer.
|
inlinevirtualinherited |
Optimize for the maximum-likelihood estimate, returning a the optimized variable assignments.
This function simply calls iterate() in a loop, checking for convergence with check_convergence(). For fine-grain control over the optimization process, you may call iterate() and check_convergence() yourself, and if needed modify the optimization state between iterations.
Reimplemented in gtsam::NonlinearConjugateGradientOptimizer.
|
inherited |
Optimize, but return empty result if any uncaught exception is thrown Intended for MATLAB. In C++, use above and catch exceptions. No message is printed: it is up to the caller to check the result
optimizer | a non-linear optimizer |
|
inline |
Read-only access the parameters
|
virtualinherited |
Default function to do linear solve, i.e. optimize a GaussianFactorGraph