ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

反復表示

はじめに

反復表示とは、ソルバーの各反復における計算を示す統計表です。統計はソルバーとソルバー アルゴリズムの両方によって異なります。反復の詳細については、反復と関数計算回数を参照してください。この表は、ソルバーを適切なオプションで実行した際に MATLAB® コマンド ウィンドウに表示されます。

反復表示を開くには、optimoptions を使用し、Display オプションを 'iter' または 'iter-detailed' に設定してオプションを作成します。以下に例を示します。

options = optimoptions(@fminunc,'Display','iter','Algorithm','quasi-newton');
[x fval exitflag output] = fminunc(@sin,0,options);

                                                  First-order 
Iteration  Func-count     f(x)       Step-size     optimality
    0           2              0                           1
    1           4      -0.841471             1          0.54 
    2           8             -1      0.484797      0.000993 
    3          10             -1             1     5.62e-005 
    4          12             -1             1             0 

Local minimum found.

Optimization completed because the size of the gradient
is less than the default value of the function tolerance.

最適化アプリケーションを使用して反復表示を開くこともできます。[コマンド ウィンドウに表示]、[表示レベル] から [各反復] または [各反復と詳細メッセージを表示] を選択します。

反復表示は、次のものを除くすべてのソルバーで使用できます。

  • linprog 中規模有効制約法アルゴリズム

  • lsqlin

  • lsqnonneg

  • quadprog trust-region-reflective および active-set アルゴリズム

一般的な見出し

以下の表は、反復表示における一般的な見出しの一部を示しています。

見出し表示される情報

f(x)

現在の目的関数の値

First-order optimality

1 次の最適性の尺度です (1 次の最適性の尺度 を参照してください)。

Func-count または F-count

関数評価数です。反復と関数計算回数 を参照してください。

Iteration または Iter

反復数です。反復と関数計算回数 を参照してください。

Norm of step

現在のステップのサイズ (サイズはユークリッド ノルムまたは 2 ノルム)

関数特有の見出し

以下の節では、使用する最適化関数によって意味が異なる、反復表示の見出しを説明します。

fgoalattain、fmincon、fminimax、fseminf

以下の表は、fgoalattainfminconfminimaxfseminf に特有の見出しを示します。

fgoalattain、fmincon、fminimax、fseminf の見出し表示される情報

Attainment factor

fgoalattain の到達因子の値です。

CG-iterations

現在の反復に用いられる共役勾配法の反復数です (「前処理付き共役勾配法」を参照してください)。

Directional derivative

探索方向に沿った目的関数の勾配です。

Feasibility

満たされている不等式制約が 0 としてカウントされる場合の、最大制約違反です。

Line search steplength

探索方向をスケールする乗法係数です (「式 6-46」を参照してください)。

Max constraint

すべての制約 (内部で作成された制約とユーザー指定の制約の両方) の最大違反です。制約がない場合は、負になる場合もあります。

Objective value

fminimax のミニマックス問題を変更した非線形計画法の目的関数値です。

Procedure

ヘッセ行列の更新手順:

  • Infeasible start point

  • Hessian not updated

  • Hessian modified

  • Hessian modified twice

詳細は、「ヘッセ行列の更新」を参照してください。

QP 部分問題の手順:

  • dependent — ソルバーによって検出または削除された、依存する (冗長な) 等式制約があります。

  • Infeasible — 線形化された制約をもつ QP 部分問題は実行不可能です。

  • Overly constrained — 線形化された制約をもつ QP 部分問題は実行不可能です。

  • Unbounded — QP 部分問題は大きな負の曲率で実行可能です。

  • Ill-posed — QP 部分問題の探索方向が小さすぎます。

  • Unreliable — QP 部分問題が悪条件になっているようです。

Steplength

探索方向をスケールする乗法係数です (「式 6-46」を参照してください)。

Trust-region radius

現在の信頼領域の半径です。

fminbnd と fzero

以下の表は、fminbndfzero に特有の見出しを示します。

fminbnd または fzero の見出し表示される情報

Procedure

fminbnd の処理は以下になります。

  • initial

  • golden (黄金分割探索)

  • parabolic (放物線内挿法)

fzero の処理は以下になります。

  • initial (初期点)

  • search (ゼロを含む区間の探索)

  • bisection

  • interpolation (線形内挿または逆 2 次内挿)

x

アルゴリズムの現在点です。

fminsearch

以下の表は、fminsearch に特有の見出しを示します。

fminsearch の見出し表示される情報

min f(x)

現在のシンプレックスの最小関数値です。

Procedure

現在の反復でのシンプレックス処理です。手順は次のとおりです。

  • initial simplex

  • expand

  • reflect

  • shrink

  • contract inside

  • contract outside

詳細は、「fminsearch アルゴリズム」を参照してください。

fminunc

以下の表は、fminunc に特有の見出しを示します。

fminunc の見出し表示される情報

CG-iterations

現在の反復に用いられる共役勾配法の反復数です (「前処理付き共役勾配法」を参照してください)。

Step-size

探索方向をスケールする乗法係数です (「式 6-12」を参照してください)。

fminunc 中規模アルゴリズムは、skipped update メッセージを First-order optimality 列の右側に発行できます。このメッセージは、結果の行列が正定ではなかったため、fminunc はヘッセ行列の推定を更新しなかったことを意味します。通常、このメッセージは現在の点における目的関数が滑らかでないことを示します。

fsolve

以下の表は、fsolve に特有の見出しを示します。

fsolve の見出し表示される情報

Directional derivative

探索方向に沿った関数の勾配です。

Lambda

λk の値。次で定義されています。 レーベンバーグ・マルカート法

Residual

関数の残差 (二乗和) です。

Trust-region radius

現在の信頼領域の半径 (信頼領域の半径のノルム変位) です。

intlinprog

以下の表は、intlinprog に特有の見出しを示します。

linprog の見出し表示される情報

nodes explored

探索されたノードの累積数です。

total time (s)

intlinprog を開始してからの時間 (秒単位) です。

num int solution

検出された整数実行可能点の数です。

integer fval

検出された最良の整数実行可能点に対する目的関数値です。これは目的関数の最終値の上限です。

relative gap (%)

100(ba)|b|+1,

ここで、

  • b は最良の整数実行可能点の目的関数値です。

  • a は目的関数値の最良の下限です。

linprog

以下の表は、linprog に特有の見出しを示します。

linprog の見出し表示される情報

Dual Infeas A'*y+z-w-f

双対問題が実行不可能です。

Duality Gap x'*z+s'*w

主目的関数と 双対目的関数間の双対性ギャップです (内点線形計画法 を参照してください)。sw は有限な上限がある場合のみこの式に使用されます。

Objective f'*x

現在の目的関数値です。

Primal Infeas A*x-b

主問題が実行不可能です。

Total Rel Error

メイン アルゴリズム の終わりに記述されている合計相対誤差です。

lsqnonlin と lsqcurvefit

以下の表は、lsqnonlinlsqcurvefit に特有の見出しを示します。

lsqnonlin または lsqcurvefit の見出し表示される情報

Directional derivative

探索方向に沿った関数の勾配です。

Lambda

λk の値。次で定義されています。 レーベンバーグ・マルカート法

Resnorm

x における残差の 2 乗ノルム値です。

Residual

関数の残差ベクトルです。

quadprog

以下の表は、quadprog に特有の見出しを示します。

quadprog の見出し表示される情報

Feasibility

満たされている不等式制約が 0 としてカウントされる場合の、最大制約違反です。

Total relative error

合計相対誤差」に定義されているように、合計相対誤差は実行不可能性の尺度です。

この情報は役に立ちましたか?