Main Content

optimoptionsoptimset 중에서 선택하기

이전에 최적화 옵션을 설정할 때 권장되는 방법은 optimset 항목을 사용하는 것이었습니다. 이제는 optimoptions 항목을 사용하는 것이 일반적으로 권장되며, 이 경우 아래 나열된 사항에 주의해야 합니다.

optimset는 여전히 사용할 수 있으며, Optimization Toolbox™ 라이선스 없이 사용 가능한 솔버(fminbnd, fminsearch, fzero, lsqnonneg)의 경우 이것이 옵션을 설정할 수 있는 유일한 방법입니다.

참고: 그 외 일부 툴박스에서도 최적화 옵션이 사용되는데, optimoptions가 아닌 optimset를 사용하여 생성된 옵션을 전달해야 합니다. 툴박스에 관한 문서를 확인하십시오.

optimoptions는 솔버별로 옵션을 구성하며, optimset보다 좀 더 집중적이면서도 포괄적으로 내용을 표시합니다.

  • 솔버에 적용되는 옵션만 생성 및 수정

  • 특정 솔버/알고리즘에 대한 옵션 선택 항목 및 디폴트 값 표시

  • 솔버 옵션과 기타 사용 가능한 솔버 알고리즘에 대한 자세한 내용으로 연결되는 링크 표시

intlinprog에는 optimoptions 옵션만 사용됩니다.

옵션 생성과 관련된 주된 차이점은 다음과 같습니다.

  • optimoptions에서는 솔버 이름을 첫 번째 인수로 포함합니다.

options = optimoptions(SolverName,Name,Value,...)
  • optimset에서는 구문에 솔버 이름을 포함하지 않습니다.

options = optimset(Name,Value,..)

두 경우 모두 점 표기법을 사용하여 옵션을 쿼리하거나 변경할 수 있습니다. 최적화 옵션 설정 및 변경하기 항목과 최적화 옵션 보기 항목을 참조하십시오.

예를 들어 optimoptions의 표시 내용과 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: []

참고 항목

|

관련 항목