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.