28 class LevenbergMarquardtOptimizer;
40 SILENT = 0, SUMMARY, TERMINATION, LAMBDA, TRYLAMBDA, TRYCONFIG, DAMPED, TRYDELTA
43 static VerbosityLM verbosityLMTranslator(
const std::string &s);
44 static std::string verbosityLMTranslator(
VerbosityLM value);
62 : verbosityLM(SILENT),
63 diagonalDamping(false),
66 SetLegacyDefaults(
this);
102 SetLegacyDefaults(&p);
108 SetCeresDefaults(&p);
126 void print(
const std::string& str =
"")
const override;
130 bool getDiagonalDamping()
const {
return diagonalDamping; }
131 double getlambdaFactor()
const {
return lambdaFactor; }
132 double getlambdaInitial()
const {
return lambdaInitial; }
133 double getlambdaLowerBound()
const {
return lambdaLowerBound; }
134 double getlambdaUpperBound()
const {
return lambdaUpperBound; }
135 bool getUseFixedLambdaFactor() {
return useFixedLambdaFactor; }
136 std::string getLogFile()
const {
return logFile; }
137 std::string getVerbosityLM()
const {
return verbosityLMTranslator(verbosityLM);}
139 void setDiagonalDamping(
bool flag) { diagonalDamping = flag; }
140 void setlambdaFactor(
double value) { lambdaFactor = value; }
141 void setlambdaInitial(
double value) { lambdaInitial = value; }
142 void setlambdaLowerBound(
double value) { lambdaLowerBound = value; }
143 void setlambdaUpperBound(
double value) { lambdaUpperBound = value; }
144 void setUseFixedLambdaFactor(
bool flag) { useFixedLambdaFactor = flag;}
145 void setLogFile(
const std::string& s) { logFile = s; }
146 void setVerbosityLM(
const std::string& s) { verbosityLM = verbosityLMTranslator(s);}
152 std::shared_ptr<NonlinearOptimizerParams>
clone()
const {
Definition: LevenbergMarquardtParams.h:35
Factor Graph consisting of non-linear factors.
double lambdaFactor
The amount by which to multiply or divide lambda when adjusting lambda (default: 10.0)
Definition: LevenbergMarquardtParams.h:50
std::shared_ptr< NonlinearOptimizerParams > clone() const
Definition: LevenbergMarquardtParams.h:152
Definition: Ordering.h:37
double maxDiagonal
when using diagonal damping saturates the maximum diagonal entries (default: 1e32) ...
Definition: LevenbergMarquardtParams.h:59
double minModelFidelity
Lower bound for the modelFidelity to accept the result of an LM iteration.
Definition: LevenbergMarquardtParams.h:54
Definition: LevenbergMarquardtOptimizer.h:35
double absoluteErrorTol
The maximum absolute error decrease to stop iterating (default 1e-5)
Definition: NonlinearOptimizerParams.h:44
double relativeErrorTol
The maximum relative error decrease to stop iterating (default 1e-5)
Definition: NonlinearOptimizerParams.h:43
std::string logFile
an optional CSV log file, with [iteration, time, error, lambda]
Definition: LevenbergMarquardtParams.h:55
GTSAM_EXPORT void print(const Matrix &A, const std::string &s, std::ostream &stream)
bool useFixedLambdaFactor
if true applies constant increase (or decrease) to lambda according to lambdaFactor ...
Definition: LevenbergMarquardtParams.h:57
Definition: NonlinearFactorGraph.h:55
Definition: chartTesting.h:28
double lambdaLowerBound
The minimum lambda used in LM (default: 0)
Definition: LevenbergMarquardtParams.h:52
bool diagonalDamping
if true, use diagonal of Hessian
Definition: LevenbergMarquardtParams.h:56
double minDiagonal
when using diagonal damping saturates the minimum diagonal entries (default: 1e-6) ...
Definition: LevenbergMarquardtParams.h:58
Definition: NonlinearOptimizerParams.h:35
VerbosityLM
Definition: LevenbergMarquardtParams.h:39
double lambdaUpperBound
The maximum lambda to try before assuming the optimization has failed (default: 1e5) ...
Definition: LevenbergMarquardtParams.h:51
Parameters for nonlinear optimization.
Ordering::OrderingType orderingType
The method of ordering use during variable elimination (default COLAMD)
Definition: NonlinearOptimizerParams.h:47
VerbosityLM verbosityLM
The verbosity level for Levenberg-Marquardt (default: SILENT), see also NonlinearOptimizerParams::ver...
Definition: LevenbergMarquardtParams.h:53
std::optional< Ordering > ordering
The optional variable elimination ordering, or empty to use COLAMD (default: empty) ...
Definition: NonlinearOptimizerParams.h:108
size_t maxIterations
The maximum iterations to stop iterating (default 100)
Definition: NonlinearOptimizerParams.h:42
double lambdaInitial
The initial Levenberg-Marquardt damping term (default: 1e-5)
Definition: LevenbergMarquardtParams.h:49