|
GTSAM
4.0.2
C++ library for smoothing and mapping (SAM)
|
#include <LevenbergMarquardtParams.h>


Public Types | |
| enum | VerbosityLM { SILENT = 0, SUMMARY, TERMINATION, LAMBDA, TRYLAMBDA, TRYCONFIG, DAMPED, TRYDELTA } |
| using | OptimizerType = LevenbergMarquardtOptimizer |
| enum | Verbosity { SILENT, TERMINATION, ERROR, VALUES, DELTA, LINEAR } |
| enum | LinearSolverType { MULTIFRONTAL_CHOLESKY, MULTIFRONTAL_QR, SEQUENTIAL_CHOLESKY, SEQUENTIAL_QR, Iterative, CHOLMOD } |
| using | IterationHook = std::function< void(size_t, double, double)> |
Public Member Functions | |
| void | print (const std::string &str="") const override |
| size_t | getMaxIterations () const |
| double | getRelativeErrorTol () const |
| double | getAbsoluteErrorTol () const |
| double | getErrorTol () const |
| std::string | getVerbosity () const |
| void | setMaxIterations (int value) |
| void | setRelativeErrorTol (double value) |
| void | setAbsoluteErrorTol (double value) |
| void | setErrorTol (double value) |
| void | setVerbosity (const std::string &src) |
| bool | equals (const NonlinearOptimizerParams &other, double tol=1e-9) const |
| bool | isMultifrontal () const |
| bool | isSequential () const |
| bool | isCholmod () const |
| bool | isIterative () const |
| GaussianFactorGraph::Eliminate | getEliminationFunction () const |
| std::string | getLinearSolverType () const |
| void | setLinearSolverType (const std::string &solver) |
| void | setIterativeParams (const std::shared_ptr< IterativeOptimizationParameters > params) |
| void | setOrdering (const Ordering &ordering) |
| std::string | getOrderingType () const |
| void | setOrderingType (const std::string &ordering) |
Getters/Setters, mainly for wrappers. Use fields above in C++. | |
| bool | getDiagonalDamping () const |
| double | getlambdaFactor () const |
| double | getlambdaInitial () const |
| double | getlambdaLowerBound () const |
| double | getlambdaUpperBound () const |
| bool | getUseFixedLambdaFactor () |
| std::string | getLogFile () const |
| std::string | getVerbosityLM () const |
| void | setDiagonalDamping (bool flag) |
| void | setlambdaFactor (double value) |
| void | setlambdaInitial (double value) |
| void | setlambdaLowerBound (double value) |
| void | setlambdaUpperBound (double value) |
| void | setUseFixedLambdaFactor (bool flag) |
| void | setLogFile (const std::string &s) |
| void | setVerbosityLM (const std::string &s) |
Clone | |
| std::shared_ptr< NonlinearOptimizerParams > | clone () const |
Static Public Member Functions | |
| static VerbosityLM | verbosityLMTranslator (const std::string &s) |
| static std::string | verbosityLMTranslator (VerbosityLM value) |
| static void | SetLegacyDefaults (LevenbergMarquardtParams *p) |
| static void | SetCeresDefaults (LevenbergMarquardtParams *p) |
| static LevenbergMarquardtParams | LegacyDefaults () |
| static LevenbergMarquardtParams | CeresDefaults () |
| static LevenbergMarquardtParams | EnsureHasOrdering (LevenbergMarquardtParams params, const NonlinearFactorGraph &graph) |
| static LevenbergMarquardtParams | ReplaceOrdering (LevenbergMarquardtParams params, const Ordering &ord) |
| static Verbosity | verbosityTranslator (const std::string &s) |
| static std::string | verbosityTranslator (Verbosity value) |
Public Attributes | |
| double | lambdaInitial |
| The initial Levenberg-Marquardt damping term (default: 1e-5) | |
| double | lambdaFactor |
| The amount by which to multiply or divide lambda when adjusting lambda (default: 10.0) | |
| double | lambdaUpperBound |
| The maximum lambda to try before assuming the optimization has failed (default: 1e5) | |
| double | lambdaLowerBound |
| The minimum lambda used in LM (default: 0) | |
| VerbosityLM | verbosityLM |
| The verbosity level for Levenberg-Marquardt (default: SILENT), see also NonlinearOptimizerParams::verbosity. | |
| double | minModelFidelity |
| Lower bound for the modelFidelity to accept the result of an LM iteration. | |
| std::string | logFile |
| an optional CSV log file, with [iteration, time, error, lambda] | |
| bool | diagonalDamping |
| if true, use diagonal of Hessian | |
| bool | useFixedLambdaFactor |
| if true applies constant increase (or decrease) to lambda according to lambdaFactor | |
| double | minDiagonal |
| when using diagonal damping saturates the minimum diagonal entries (default: 1e-6) | |
| double | maxDiagonal |
| when using diagonal damping saturates the maximum diagonal entries (default: 1e32) | |
| size_t | maxIterations = 100 |
| The maximum iterations to stop iterating (default 100) | |
| double | relativeErrorTol = 1e-5 |
| The maximum relative error decrease to stop iterating (default 1e-5) | |
| double | absoluteErrorTol = 1e-5 |
| The maximum absolute error decrease to stop iterating (default 1e-5) | |
| double | errorTol = 0.0 |
| The maximum total error to stop iterating (default 0.0) | |
| Verbosity | verbosity = SILENT |
| The printing verbosity during optimization (default SILENT) | |
| Ordering::OrderingType | orderingType = Ordering::COLAMD |
| The method of ordering use during variable elimination (default COLAMD) | |
| IterationHook | iterationHook |
| LinearSolverType | linearSolverType = MULTIFRONTAL_CHOLESKY |
| The type of linear solver to use in the nonlinear optimizer. | |
| std::optional< Ordering > | ordering |
| The optional variable elimination ordering, or empty to use COLAMD (default: empty) | |
| IterativeOptimizationParameters::shared_ptr | iterativeParams |
| The container for iterativeOptimization parameters. used in CG Solvers. | |
Parameters for Levenberg-Marquardt optimization. Note that this parameters class inherits from NonlinearOptimizerParams, which specifies the parameters common to all nonlinear optimization algorithms. This class also contains all of those parameters.
|
inherited |
Type for an optional user-provided hook to be called after each internal optimizer iteration. See iterationHook below.
|
inherited |
|
inherited |
|
inline |
|
inherited |
Optional user-provided iteration hook to be called after each optimization iteration (Default: none). Note that IterationHook is defined as a std::function<> with this signature:
which allows binding by means of a reference to a regular function:
or to a C++11 lambda (preferred if you need to capture additional context variables, such that the optimizer object itself, the factor graph, etc.):
or to the result of a properly-formed std::bind call.
1.8.13