Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

factorGraphSolverOptions

Opciones de solución para el gráfico de factores

Desde R2022a

Descripción

El objeto factorGraphSolverOptions contiene opciones de solver para optimizar un gráfico de factores.

Creación

Descripción

ejemplo

Options = factorGraphSolverOptions devuelve un objeto de opciones de solver de gráficos de factores predeterminado, Options.

Options = factorGraphSolverOptions(Name=Value) especifica propiedades utilizando uno o más argumentos de nombre-valor. Por ejemplo, factorGraphSolverOptions(MaxIterations=150) establece la propiedad MaxIterations del objeto factorGraphSolverOptions en 150.

Propiedades

expandir todo

Número máximo de iteraciones del solver , especificado como un entero positivo.

Límite inferior de cambio en la función de costes, especificado como un escalar positivo. La función de coste es:

|newCostoldCost|<FunctionTolerance*oldCost

Todos los costes son mayores que 0.

Límite inferior de la norma del gradiente, especificado como escalar positivo. La función norma es:

max_norm{x[x*Oplusg(x)]}<=GradientTolerance

Oplus es la versión múltiple de la operación plus y g(x) es el gradiente en x.

Límite inferior del tamaño de paso del solver lineal, especificado como un escalar positivo. La relación entre el tamaño del paso y la tolerancia del paso es:

|deltaX|<=(|x|+StepTolerance)*StepTolerance

deltaX es el tamaño de paso del solver lineal.

Marca de detalle de la línea de comando, especificada como 1, 2 o 3.

  • 0 — No imprimir en la línea de comando

  • 1 — Imprimir resumen del solver

  • 2 — Imprimir actualizaciones por iteración y resumen del solver

Algoritmo de cálculo de pasos de región de confianza, especificado como 0 o 1.

  • 0 — Levenberg Marquardt

  • 1 — Pata de perro

Ejemplos

contraer todo

Cree y optimice un gráfico de factores con opciones de solver personalizadas.

Crear gráfico de factores y configuración del solucionador

Cree un gráfico de factores y opciones de solver con configuraciones personalizadas. Establezca el número máximo de iteraciones en 1000 y establezca la detalle de la salida optimize en 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

Agregar factor GPS

Cree un factor GPS con número de identificación de nodo de 1 con NED ReferenceFrame y agréguelo al gráfico de factores.

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

Optimizar gráfico de factores

Optimice el gráfico de factores con la configuración personalizada. Los resultados de la optimización se muestran con el nivel de detalle dependiendo del 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    4.01e-05    6.36e-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.006323

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

Postprocessor                        0.000004
Total                                0.008695

Termination:                      CONVERGENCE (Gradient tolerance reached. Gradient max norm: 0.000000e+00 <= 1.000000e-10)

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido en R2022a