最適化オプション リファレンス
最適化オプション
下記の表では、最適化オプションを説明します。関数 optimoptions
を使用してオプションを作成します。fminbnd
、fminsearch
、fzero
または lsqnonneg
には optimset
を使用します。
使用可能なオプション値と既定値については、個々のリファレンス ページを参照してください。
オプションの既定値は options
を入力引数として呼び出す最適化関数により異なります。任意の最適化関数の既定のオプション値は、optimoptions('
またはそれと等価の solvername
')optimoptions(@
と入力して確認できます。以下に例を示します。solvername
)
optimoptions('fmincon')
オプションのリストと既定の 'interior-point'
fmincon
アルゴリズムに対する既定値が返されます。別の 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′(0) = 1 を除き sign′(x) = sign(x) です。中心有限差分法では
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 は分枝限定検索によって実行可能点を探索することができます。詳細については、実行可能解を求めるためのヒューリスティックな方法を参照してください。 | 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 | 厳密に正の整数。MaxFeasiblePoints 整数実行可能点を見つけると、intlinprog は停止します。 | 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 | 各反復で最適化関数が呼び出すユーザー定義の関数を 1 つ以上指定します。関数ハンドルか、関数ハンドルの cell 配列を渡します。出力関数とプロット関数の構文またはintlinprog の出力関数とプロット関数の構文を参照してください。 |
| |
PlotFcn | アルゴリズム実行時における、進行状態の各種測定値のプロット。定義済みのプロットから選択するか、自身で記述します。関数名は、以下のリストのように、または
プロット関数またはintlinprog の出力関数とプロット関数の構文を参照してください。 |
| 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 | レーベンバーグ・マルカート パラメーターの初期値。 | fsolve , lsqcurvefit , lsqnonlin | optimoptions のみ |
InitTrustRegionRadius | 信頼領域の初期半径。 | fmincon | |
JacobPattern | 有限差分に対するヤコビ スパース パターン。行列のサイズは | ||
LPPreprocess | 緩和された線形計画法の解に対する前処理のタイプ (線形計画法の前処理を参照)
| intlinprog | optimoptions のみ |
MaxPCGIter | 前処理付き共役勾配法の反復最大回数。 |
| |
MaxProjCGIter | 計画された共役勾配の反復回数の許容誤差です。これは内部反復であり、アルゴリズムの反復数ではありません。 | fmincon | |
MaxSQPIter | 逐次二次計画法で可能な反復の最大数。 | ||
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 の非表示オプション
これらのオプションが非表示である理由については、optimoptions で非表示になっているオプション (Global Optimization Toolbox)を参照してください。
optimoptions
で非表示になっているオプション
オプション名 | 使用する関数 |
---|---|
Cache |
|
CacheSize |
|
CacheTol |
|
DisplayInterval |
|
FunValCheck |
|
HybridInterval |
|
InitialPenalty |
|
MaxMeshSize |
|
MeshRotate |
|
MigrationDirection |
|
MigrationFraction |
|
MigrationInterval |
|
PenaltyFactor |
|
PlotInterval |
|
StallTest |
|
TolBind | patternsearch |