factorGraphSolverOptions
Description
The factorGraphSolverOptions
object contains solver options for
optimizing a factor graph.
Creation
Description
returns
a default factor graph solver options object, Options
= factorGraphSolverOptionsOptions
.
specifies properties using one or more name-value arguments. For example,
Options
= factorGraphSolverOptions(Name=Value
)factorGraphSolverOptions(MaxIterations=150)
sets the
MaxIterations
property of the
factorGraphSolverOptions
object to 150
.
Properties
MaxIterations
— Maximum number of solver iterations
200
(default) | positive integer
Maximum number of solver iterations, specified as a positive integer.
FunctionTolerance
— Lower bound of change in cost function
1e-6
(default) | positive scalar
Lower bound of change in the cost function, specified as a positive scalar. The cost function is:
All costs are greater than 0.
GradientTolerance
— Lower bound of norm of gradient
1e-10
(default) | positive scalar
Lower bound of the norm of the gradient, specified as positive scalar. The norm function is:
Oplus is the manifold version of the plus operation and g(x) is the gradient at x.
StepTolerance
— Lower bound of step size
1e-8
(default) | positive integer
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 is the step size of the linear solver.
VerbosityLevel
— Command line verbosity flag
0
(default) | 1
| 2
Command line verbosity flag, specified as 1
,
2
, or 3
.
0
— Do not print to command line1
— Print solver summary2
— Print per-iteration updates and solver summary
TrustRegionStrategyType
— Trust region step computation algorithm
1
(default) | 0
Trust region step computation algorithm, specified as 0
or
1
.
0
— Levenberg Marquardt1
— Dogleg
Examples
Create and Optimize Factor Graph with Custom Options
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 GradientTolerance: 1.0000e-10 StepTolerance: 1.0000e-08 VerbosityLevel: 2 TrustRegionStrategyType: 1
Add GPS Factor
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");
addFactor(G,fgps);
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);
iter cost cost_change |gradient| |step| tr_ratio tr_radius ls_iter iter_time total_time 0 0.000000e+00 0.00e+00 0.00e+00 0.00e+00 0.00e+00 1.00e+04 0 1.08e-03 8.65e-03 Terminating: Gradient tolerance reached. Gradient max norm: 0.000000e+00 <= 1.000000e-10 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 Trust region strategy DOGLEG (TRADITIONAL) Given Used Linear solver SPARSE_NORMAL_CHOLESKY SPARSE_NORMAL_CHOLESKY Threads 1 1 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.007575 Residual only evaluation 0.000000 (0) Jacobian & residual evaluation 0.000983 (1) Linear solver 0.000000 (0) Minimizer 0.010046 Postprocessor 0.000010 Total 0.017631 Termination: CONVERGENCE (Gradient tolerance reached. Gradient max norm: 0.000000e+00 <= 1.000000e-10)
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Version History
Introduced in R2022a
Open Example
You have a modified version of this example. Do you want to open this example with your edits?
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)