Main Content

Escoja entre optimoptions y optimset

Anteriormente, la forma recomendada para configurar las opciones de optimización 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 de optimización y Consultar las opciones de optimización.

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 ('quasi-newton'):
   (Other available algorithms: 'trust-region')

   Set properties:
    SpecifyObjectiveGradient: 1

   Default properties:
                   Algorithm: 'quasi-newton'
                     Display: 'final'
    FiniteDifferenceStepSize: 'sqrt(eps)'
        FiniteDifferenceType: 'forward'
        HessianApproximation: 'bfgs'
      MaxFunctionEvaluations: '100*numberOfVariables'
               MaxIterations: 400
              ObjectiveLimit: -1.0000e+20
         OptimalityTolerance: 1.0000e-06
                   OutputFcn: []
                     PlotFcn: []
               StepTolerance: 1.0000e-06
                    TypicalX: 'ones(numberOfVariables,1)'
                 UseParallel: 0

   Options not used by current Algorithm ('quasi-newton')
   Default properties:
      FunctionTolerance: 1.0000e-06
             HessianFcn: []
     HessianMultiplyFcn: []
    SubproblemAlgorithm: 'cg'


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: []
       SubproblemAlgorithm: []
                    TolCon: []
                 TolConSQP: []
                TolGradCon: []
                    TolPCG: []
                 TolProjCG: []
              TolProjCGAbs: []
                  TypicalX: []
               UseParallel: []

Consulte también

|

Temas relacionados