Main Content

Escoja entre optimoptions y optimset

Anteriormente, la forma recomendada para establecer las opciones era utilizar optimset. Ahora la recomendación general es utilizar optimoptions, con algunas advertencias que se enumeran debajo.

optimset sigue funcionando y es la única forma de establecer opciones para solvers que están disponibles sin una licencia de Optimization Toolbox™: fminbnd, fminsearch, fzero y lsqnonneg.

Nota

Algunas otras toolboxes utilizan opciones de optimización y necesitan que pase opciones creadas utilizando optimset, no optimoptions. Compruebe la documentación de sus toolboxes.

optimoptions organiza las opciones por solver, con una visualización más centrada y completa que optimset:

  • Crea y modifica únicamente las opciones que se aplican a un solver

  • Muestra las opciones que ha seleccionado y los valores predeterminados para un solver/algoritmo específico.

  • Muestra enlaces para obtener más información sobre opciones de solver y otros algoritmos de solver disponibles

intlinprog utiliza únicamente opciones optimoptions.

La principal diferencia a la hora de crear opciones es:

  • En el caso de optimoptions, se incluye el nombre de solver como primer argumento.

    options = optimoptions(SolverName,Name,Value,...)
  • En el caso de optimset, la sintaxis no incluye el nombre de solver.

    options = optimset(Name,Value,...)

En ambos casos, puede consultar o cambiar las opciones utilizando notación de puntos. Consulte Establecer y modificar opciones y Visualizar opciones.

Por ejemplo, compare la visualización de optimoptions con la de optimset.

options = optimoptions(@fminunc,'SpecifyObjectiveGradient',true)
options = 

  fminunc options:

   Options used by current Algorithm ('trust-region'):
   (Other available algorithms: 'quasi-newton')

   Set properties:
    SpecifyObjectiveGradient: 1

   Default properties:
                   Algorithm: 'trust-region'
              CheckGradients: 0
                     Display: 'final'
    FiniteDifferenceStepSize: 'sqrt(eps)'
        FiniteDifferenceType: 'forward'
           FunctionTolerance: 1.0000e-06
                  HessianFcn: []
          HessianMultiplyFcn: []
      MaxFunctionEvaluations: '100*numberOfVariables'
               MaxIterations: 400
         OptimalityTolerance: 1.0000e-06
                   OutputFcn: []
                     PlotFcn: []
               StepTolerance: 1.0000e-06
         SubproblemAlgorithm: 'cg'
                    TypicalX: 'ones(numberOfVariables,1)'

   Show options not used by current Algorithm ('trust-region')
options = optimset('GradObj','on')
options = 

  struct with fields:

                   Display: []
               MaxFunEvals: []
                   MaxIter: []
                    TolFun: []
                      TolX: []
               FunValCheck: []
                 OutputFcn: []
                  PlotFcns: []
           ActiveConstrTol: []
                 Algorithm: []
    AlwaysHonorConstraints: []
           DerivativeCheck: []
               Diagnostics: []
             DiffMaxChange: []
             DiffMinChange: []
            FinDiffRelStep: []
               FinDiffType: []
         GoalsExactAchieve: []
                GradConstr: []
                   GradObj: 'on'
                   HessFcn: []
                   Hessian: []
                  HessMult: []
               HessPattern: []
                HessUpdate: []
          InitBarrierParam: []
     InitTrustRegionRadius: []
                  Jacobian: []
                 JacobMult: []
              JacobPattern: []
                LargeScale: []
                  MaxNodes: []
                MaxPCGIter: []
             MaxProjCGIter: []
                MaxSQPIter: []
                   MaxTime: []
             MeritFunction: []
                 MinAbsMax: []
        NoStopIfFlatInfeas: []
            ObjectiveLimit: []
      PhaseOneTotalScaling: []
            Preconditioner: []
          PrecondBandWidth: []
            RelLineSrchBnd: []
    RelLineSrchBndDuration: []
              ScaleProblem: []
                   Simplex: []
       SubproblemAlgorithm: []
                    TolCon: []
                 TolConSQP: []
                TolGradCon: []
                    TolPCG: []
                 TolProjCG: []
              TolProjCGAbs: []
                  TypicalX: []
               UseParallel: []

Temas relacionados