factorGraphSolverOptions

Solver options for factor graph

Description

The factorGraphSolverOptions object contains solver options for optimizing a factor graph.

Creation

Description

example

Options = factorGraphSolverOptions returns a default factor graph solver options object, Options.

Options = factorGraphSolverOptions(Name=Value) specifies properties using one or more name-value arguments. For example, factorGraphSolverOptions(MaxIterations=150) sets the MaxIterations property of the factorGraphSolverOptions object to 150.

Properties

expand all

Maximum number of solver iterations, specified as a positive integer.

Lower bound of change in the cost function, specified as a positive scalar. The cost function is:

$|newCost-oldCost|

All costs are greater than 0.

Lower bound of the norm of the gradient, specified as positive scalar. The norm function is:

$max_norm\left\{x-\left[x*Oplus-g\left(x\right)\right]\right\}<=GradientTolerance$

Oplus is the manifold version of the plus operation and g(x) is the gradient at x.

Lower bound of step size of the linear solver, specified as a positive scalar. The relationship between the step size and the step tolerance is:

$|deltaX|<=\left(|x|+StepTolerance\right)*StepTolerance$

deltaX is the step size of the linear solver.

Command line verbosity flag, specified as 1, 2, or 3.

• 0 — Do not print to command line

• 1 — Print solver summary

• 2 — Print per-iteration updates and solver summary

Trust region step computation algorithm, specified as 0 or 1.

• 0 — Levenberg Marquardt

• 1 — Dogleg

Examples

collapse all

Create and optimize a factor graph with custom solver options.

Create Factor Graph and Solver Settings

Create a factor graph and solver options with custom settings. Set the maximum number of iterations to 1000 and set the verbosity of the optimize output to 2.

G = factorGraph;
optns = factorGraphSolverOptions(MaxIterations=1000,VerbosityLevel=2)
optns =
factorGraphSolverOptions with properties:

MaxIterations: 1000
FunctionTolerance: 1.0000e-06
StepTolerance: 1.0000e-08
VerbosityLevel: 2
TrustRegionStrategyType: 1

Create a GPS factor with node identification number of 1 with NED ReferenceFrame and add it to the factor graph.

fgps = factorGPS(1,ReferenceFrame="NED");

Optimize Factor Graph

Optimize the factor graph with the custom settings. The results of the optimization are displayed with the level of detail depending on the VerbosityLevel.

optimize(G,optns);
0  0.000000e+00    0.00e+00    0.00e+00   0.00e+00   0.00e+00  1.00e+04        0    4.20e-05    2.45e-04

Solver Summary (v 2.0.0-eigen-(3.3.4)-no_lapack-eigensparse-no_openmp-no_custom_blas)

Original                  Reduced
Parameter blocks                            1                        1
Parameters                                  7                        7
Effective parameters                        6                        6
Residual blocks                             1                        1
Residuals                                   3                        3

Minimizer                        TRUST_REGION

Sparse linear algebra library    EIGEN_SPARSE

Given                     Used
Linear solver          SPARSE_NORMAL_CHOLESKY   SPARSE_NORMAL_CHOLESKY
Linear solver ordering              AUTOMATIC                        1

Cost:
Initial                          0.000000e+00
Final                            0.000000e+00
Change                           0.000000e+00

Minimizer iterations                        1
Successful steps                            1
Unsuccessful steps                          0

Time (in seconds):
Preprocessor                         0.000203

Residual only evaluation           0.000000 (0)
Jacobian & residual evaluation     0.000014 (1)
Linear solver                      0.000000 (0)
Minimizer                            0.003924

Postprocessor                        0.000009
Total                                0.004136

Version History

Introduced in R2022a