이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
최적화 옵션 참조
최적화 옵션
다음 표에는 최적화 옵션에 대한 설명이 나와 있습니다. optimoptions
함수를 사용하거나 fminbnd
, fminsearch
, fzero
, lsqnonneg
의 경우 optimset
을 사용하여 옵션을 만듭니다.
사용 가능한 옵션 값과 디폴트 값에 대한 정보는 개별 함수 도움말 페이지를 참조하십시오.
옵션의 디폴트 값은 options
를 입력 인수로 사용하여 호출하는 최적화 함수가 무엇인지에 따라 달라집니다. optimoptions('
또는 이에 상응하는 solvername
')optimoptions(@
을 입력하여 원하는 최적화 함수의 디폴트 옵션 값을 확인할 수 있습니다. 예를 들면 다음을 입력합니다.solvername
)
optimoptions('fmincon')
그러면 옵션 목록과 fmincon
의 디폴트 알고리즘인 'interior-point'
에 대한 디폴트 값들이 반환됩니다. 다른 fmincon
알고리즘의 디폴트 값을 확인하려면 Algorithm
옵션을 설정하십시오. 예를 들면 다음을 입력합니다.
opts = optimoptions('fmincon','Algorithm','sqp')
optimoptions
는 일부 옵션을 “숨깁니다”. 즉, 해당 값을 표시하지 않습니다. 이러한 옵션은 아래 표에 나와 있지 않습니다. 대신, 숨겨진 옵션에 나와 있습니다.
최적화 옵션
옵션 이름 | 설명 | 사용하는 함수 | 제한 사항 |
---|---|---|---|
AbsoluteGapTolerance | 음이 아닌 실수입니다. 목적 함수에 대해 내부적으로 계산된 상한(
| intlinprog | optimoptions 만 가능 |
AbsoluteMaxObjectiveCount | 최악의 경우의 절댓값을 최소화하는 F(x)의 개수입니다. | ||
Algorithm | 솔버에 사용되는 알고리즘을 선택합니다. | fmincon , fminunc , fsolve , linprog , lsqcurvefit , lsqlin , lsqnonlin , quadprog | |
BarrierParamUpdate |
| fmincon | |
BranchRule | 분기 생성을 위한 성분을 선택하는 규칙:
| intlinprog | optimoptions 만 가능 |
CheckGradients | 사용자가 제공하는 해석적 도함수(선택한 솔버에 따라 기울기 또는 야코비 행렬)를 유한 차분 도함수와 비교합니다.
| optimoptions 만 가능. optimset 의 경우 DerivativeCheck 를 사용합니다. | |
ConstraintTolerance | 제약 조건 위반에 대한 허용오차입니다. |
| optimoptions 만 가능. optimset 의 경우 TolCon 을 사용합니다. |
CutGeneration | 절단 생성의 수준입니다(절단 생성 참조).
| intlinprog | optimoptions 만 가능 |
CutMaxIterations | 1 에서 50 사이의 정수로, 분기한정 단계에 진입하기 전에 모든 절단 생성 방법을 거치는 패스의 횟수입니다. CutGeneration 옵션을 'none' 으로 설정하여 절단 생성을 비활성화할 수 있습니다. | intlinprog | optimoptions 만 가능 |
Display | 표시 수준입니다.
| 전체. 적용되는 값은 개별 함수 도움말 페이지를 참조하십시오. | |
EnableFeasibilityMode |
| fmincon | |
EqualityGoalCount | 목적 함수 | optimoptions 만 가능. optimset 의 경우 GoalsExactAchieve 를 사용합니다. | |
FiniteDifferenceStepSize | 유한 차분에 대한 스칼라 또는 벡터 스텝 크기 인자입니다.
sign′(x) = sign(x) 입니다(단, sign′(0) = 1 임). 중심 유한 차분은 다음과 같습니다.
FiniteDifferenceStepSize 는 벡터로 확장됩니다. 디폴트 값은 전향 유한 차분의 경우 sqrt(eps) 이고 중심 유한 차분의 경우 eps^(1/3) 입니다. |
| optimoptions 만 가능. optimset 의 경우 FinDiffRelStep 을 사용합니다. |
FiniteDifferenceType | 기울기를 추정하는 데 사용되는 유한 차분으로, |
| optimoptions 만 가능. optimset 의 경우 FinDiffType 을 사용합니다. |
FunctionTolerance | 함수 값에 대한 종료 허용오차입니다. |
| optimoptions 만 가능. optimset 의 경우 TolFun 을 사용합니다. |
HessianApproximation | 헤세 행렬 근사 방법으로,
| optimoptions 만 가능. optimset 의 경우 Hessian 을 사용합니다. | |
HessianFcn | 사용자 제공 헤세 행렬로, 함수 핸들로 지정됩니다(헤세 행렬 포함시키기 참조). | fmincon , fminunc | optimoptions 만 가능. optimset 의 경우 HessFcn 을 사용합니다. |
HessianMultiplyFcn | 사용자 제공 헤세 행렬의 곱셈 함수로, 함수 핸들로 지정됩니다.
| optimoptions 만 가능. optimset 의 경우 HessMult 를 사용합니다. | |
Heuristics | 실현가능점을 찾기 위한 알고리즘입니다(실현 가능한 해를 구하는 데 활용할 수 있는 발견법 참조).
| intlinprog | optimoptions 만 가능 |
HeuristicsMaxNodes | intlinprog 가 실현가능점에 대한 분기한정 탐색에서 탐색할 수 있는 노드 수의 범위를 지정하는 순양수(Strictly Positive) 정수입니다. 실현 가능한 해를 구하는 데 활용할 수 있는 발견법 항목을 참조하십시오. | intlinprog | optimoptions 만 가능 |
HonorBounds | 디폴트 값 | fmincon | optimoptions 만 가능. optimset 의 경우 AlwaysHonorConstraints 를 사용합니다. |
IntegerPreprocess | 정수 전처리 유형입니다(혼합 정수 계획 전처리 참조).
| intlinprog | optimoptions 만 가능 |
IntegerTolerance | 1e-6 에서 1e-3 사이의 실수로, 해 x 의 성분이 정수로 간주될 수 있는 최대 편차입니다. IntegerTolerance 는 중지 기준이 아닙니다. | intlinprog | optimoptions 만 가능 |
JacobianMultiplyFcn | 사용자 정의 야코비 행렬의 곱셈 함수로, 함수 핸들로 지정됩니다. | ||
LinearSolver | 알고리즘의 내부 선형 솔버 유형입니다.
|
| |
LPMaxIterations | 순양수 정수로, 분기한정 과정 중에 실행되는 단체 알고리즘의 노드당 최대 반복 횟수입니다. | intlinprog | optimoptions 만 가능 |
LPOptimalityTolerance | 음이 아닌 실수입니다. 여기서 감소된 비용은 기저로 사용되는 변수에 대한 LPOptimalityTolerance 를 초과해야 합니다. | intlinprog | optimoptions 만 가능 |
MaxFunctionEvaluations | 허용되는 함수 실행의 최대 횟수입니다. |
| optimoptions 만 가능. optimset 의 경우 MaxFunEvals 를 사용합니다. |
MaxIterations | 허용되는 최대 반복 횟수입니다. | optimoptions 만 가능. optimset 의 경우 MaxIter 을 사용합니다. | |
MaxFeasiblePoints | 순양수(Strictly Positive) 정수입니다. intlinprog 는 MaxFeasiblePoints 정수 실현가능점을 구한 경우 중지됩니다. | intlinprog | optimoptions 만 가능 |
MaxNodes | 분기한정 과정에서 솔버가 탐색하는 노드의 최대 개수를 나타내는 순양수 정수입니다. | ||
MaxTime | 알고리즘에 허용되는 최대 시간(단위: 초)입니다. | ||
NodeSelection | 다음으로 탐색할 노드를 선택합니다.
| intlinprog | optimoptions 만 가능 |
ObjectiveCutOff | -Inf 보다 큰 실수입니다. 디폴트 값은 Inf 입니다. | intlinprog | optimoptions 만 가능 |
ObjectiveImprovementThreshold | 음이 아닌 실수입니다. intlinprog 는 목적 함수 값이 적어도 ObjectiveImprovementThreshold 보다 낮은, 즉 다음을 충족하는 다른 해를 찾은 경우에만 현재 실현 가능 해를 변경합니다. (fold – fnew)/(1 + |fold|) > ObjectiveImprovementThreshold. | intlinprog | optimoptions 만 가능 |
ObjectiveLimit | 목적 함수 값이 | fmincon , fminunc , lsqlin , quadprog | |
OptimalityTolerance | 1차 최적성에 대한 종료 허용오차입니다. |
| optimoptions 만 가능. optimset 의 경우 TolFun 을 사용합니다. |
OutputFcn | 각 반복마다 최적화 함수가 호출하는 사용자 정의 함수를 하나 이상 지정합니다. 함수 핸들 또는 함수 핸들 셀형 배열을 전달합니다. Output Function and Plot Function Syntax 항목 또는 intlinprog Output Function and Plot Function Syntax 항목을 참조하십시오. |
| |
PlotFcn | 알고리즘이 실행되는 동안 다양한 진행률 측정값을 플로팅합니다. 미리 정의된 플롯에서 선택하거나 사용자가 직접 작성할 수 있습니다. 함수 이름을 아래 나열된 대로 제공하거나
플롯 함수 항목 또는 intlinprog Output Function and Plot Function Syntax 항목을 참조하십시오. |
| optimoptions 만 가능. optimset 의 경우 PlotFcns 를 사용합니다. |
RelativeGapTolerance |
| intlinprog | optimoptions 만 가능 |
RootLPAlgorithm | 다음과 같은 선형 계획 문제를 풀기 위한 알고리즘입니다.
| intlinprog | optimoptions 만 가능 |
RootLPMaxIterations | 음이 아닌 정수로, 초기 선형 계획법 문제를 풀기 위해 실행되는 최대 단체 알고리즘 반복 횟수입니다. | intlinprog | optimoptions 만 가능 |
ScaleProblem |
| fmincon | |
SpecifyConstraintGradient | 비선형 제약 조건에 대한 사용자 정의 기울기입니다. | optimoptions 만 가능. optimset 의 경우 GradConstr 을 사용합니다. | |
SpecifyObjectiveGradient | 목적 함수에 대한 사용자 정의 기울기 또는 야코비 행렬입니다. |
| optimoptions 만 가능. optimset 의 경우 GradObj 또는 Jacobian 을 사용합니다. |
StepTolerance | x에 대한 종료 허용오차입니다. | ||
SubproblemAlgorithm | 반복 스텝이 계산되는 방식을 결정합니다. | fmincon , fminunc , fsolve , lsqcurvefit , lsqlin , lsqnonlin | |
TypicalX | 파라미터 |
| |
UseParallel |
|
|
숨겨진 옵션
optimoptions
는 일부 옵션을 “숨깁니다”. 즉, 해당 값을 표시하지 않습니다. 이러한 옵션을 보는 방법을 알아보려면 최적화 옵션 보기 항목을 참조하십시오.
함수 도움말 페이지에 이러한 옵션은 기울임꼴로 나열되어 있습니다.
숨겨진 Optimization Toolbox 옵션
다음 표에는 숨겨진 Optimization Toolbox™ 옵션이 나열되어 있습니다.
optimoptions
가 숨기는 옵션
옵션 이름 | 설명 | 사용하는 함수 | 제한 사항 |
---|---|---|---|
Diagnostics | 최소화하거나 풀려는 함수에 대한 진단 정보를 표시합니다. |
| |
DiffMaxChange | 유한 차분에 대한 변수의 최대 변화량입니다. |
| |
DiffMinChange | 유한 차분에 대한 변수의 최소 변화량입니다. |
| |
FunValCheck | 목적 함수 값과 제약 조건 값이 유효한지 여부를 확인합니다. 참고
|
| |
HessPattern | 유한 차분에 대한 헤세 행렬의 희소성 패턴입니다. 행렬의 크기는 n×n이며, 여기서 n은 시작점 | ||
HessUpdate | 준뉴턴 업데이트 방식입니다. | ||
InitBarrierParam | 초기 장벽 값입니다. | fmincon | |
InitDamping | 초기 Levenberg-Marquardt 파라미터입니다. | fsolve , lsqcurvefit , lsqnonlin | optimoptions 만 가능 |
InitTrustRegionRadius | 신뢰 영역의 초기 반지름입니다. | fmincon | |
JacobPattern | 유한 차분을 위한 야코비 행렬의 희소성 패턴입니다. 행렬의 크기는 | ||
LPPreprocess | 완화된 선형 계획의 해에 사용할 전처리 유형입니다(선형 계획 전처리 참조).
| intlinprog | optimoptions 만 가능 |
MaxPCGIter | 선조건 적용 켤레 기울기 방법에 대해 허용되는 최대 반복 횟수입니다. |
| |
MaxProjCGIter | 투영된 켤레 기울기 반복 횟수에 대한 허용오차로, 이는 알고리즘의 반복 횟수가 아니라 내부 반복 횟수입니다. | fmincon | |
MaxSQPIter | 순차적 2차 계획법 방법에 대해 허용되는 최대 반복 횟수입니다. | ||
MeritFunction | 목표 달성/최대최소화 이득 함수(다중 목적 함수) 또는 | ||
PrecondBandWidth | PCG에 대한 선조건자의 상부 대역폭입니다. |
| |
Preprocess | 단체 또는 쌍대 문제 단체 알고리즘 반복 전 LP 전처리의 수준입니다. | optimoptions 만 가능 | |
RelLineSrchBnd | 직선 탐색 스텝 길이에 대한 상대적 범위입니다. | ||
RelLineSrchBndDuration |
| ||
ScaleProblem |
| fsolve , lsqcurvefit , lsqnonlin | |
TolConSQP | 내부 SQP 반복에 대한 제약 조건 위반 허용오차입니다. | fgoalattain , fmincon , fminimax , fseminf | |
TolPCG | PCG 반복에 대한 종료 허용오차입니다. |
| |
TolProjCG | 투영된 켤레 기울기 알고리즘에 대한 상대 허용오차로, 이는 알고리즘 반복이 아니라 내부 반복에 대한 것입니다. | fmincon | |
TolProjCGAbs | 투영된 켤레 기울기 알고리즘에 대한 절대 허용오차로, 이는 알고리즘 반복이 아니라 내부 반복에 대한 것입니다. | fmincon |
숨겨진 Global Optimization Toolbox 옵션
이러한 옵션이 숨겨진 이유는 Options that optimoptions Hides (Global Optimization Toolbox) 항목을 참조하십시오.
optimoptions
가 숨기는 옵션
옵션 이름 | 사용하는 함수 |
---|---|
Cache |
|
CacheSize |
|
CacheTol |
|
DisplayInterval |
|
FunValCheck |
|
HybridInterval |
|
InitialPenalty |
|
MaxMeshSize |
|
MeshRotate |
|
MigrationDirection |
|
MigrationFraction |
|
MigrationInterval |
|
PenaltyFactor |
|
PlotInterval |
|
StallTest |
|
TolBind | patternsearch |