Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

factorGraphSolverOptions

Options du solveur pour le graphique de facteurs

Depuis R2022a

Description

L'objet factorGraphSolverOptions contient des options de solveur pour optimiser un graphique factoriel.

Création

Description

exemple

Options = factorGraphSolverOptions renvoie un objet d'options de résolution de graphique factoriel par défaut, Options.

Options = factorGraphSolverOptions(Name=Value) spécifie les propriétés en utilisant un ou plusieurs arguments nom-valeur. Par exemple, factorGraphSolverOptions(MaxIterations=150) définit la propriété MaxIterations de l'objet factorGraphSolverOptions sur 150.

Propriétés

développer tout

Nombre maximum d'itérations du solveur, spécifié sous la forme d'un entier positif.

Limite inférieure de changement de la fonction de coût, spécifiée sous forme de scalaire positif. La fonction de coût est :

|newCostoldCost|<FunctionTolerance*oldCost

Tous les coûts sont supérieurs à 0.

Limite inférieure de la norme du gradient, spécifiée comme scalaire positif. La fonction norme est :

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

Oplus est la version multiple de l'opération plus et g(x) est le gradient à x.

Limite inférieure de la taille du pas du solveur linéaire, spécifiée comme un scalaire positif. La relation entre la taille du pas et la tolérance du pas est la suivante :

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

deltaX est la taille du pas du solveur linéaire.

Indicateur de verbosité de la ligne de commande, spécifié comme 1, 2 ou 3.

  • 0 — Ne pas imprimer sur la ligne de commande

  • 1 — Imprimer le résumé du solveur

  • 2 — Imprimer les mises à jour par itération et le résumé du solveur

Algorithme de calcul par étapes de région de confiance, spécifié comme 0 ou 1.

  • 0 — Levenberg Marquardt

  • 1 — Dogleg

Exemples

réduire tout

Créez et optimisez un graphique factoriel avec des options de solveur personnalisées.

Créer un graphique de facteurs et des paramètres de solveur

Créez un graphique factoriel et des options de solveur avec des paramètres personnalisés. Définissez le nombre maximum d'itérations sur 1000 et définissez la verbosité de la sortie optimize sur 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

Ajouter un facteur GPS

Créez un facteur GPS avec le numéro d'identification de nœud 1 avec NED ReferenceFrame et ajoutez-le au graphique du facteur.

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

Optimiser le graphique des facteurs

Optimisez le graphique factoriel avec les paramètres personnalisés. Les résultats de l'optimisation sont affichés avec le niveau de détail en fonction du 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.29e-05    4.42e-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.004376

  Residual only evaluation           0.000000 (0)
  Jacobian & residual evaluation     0.000021 (1)
  Linear solver                      0.000000 (0)
Minimizer                            0.002280

Postprocessor                        0.000035
Total                                0.006691

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

Capacités étendues

Génération de code C/C++
Générez du code C et C++ avec MATLAB® Coder™.

Historique des versions

Introduit dans R2022a