Main Content

反復表示

はじめに

反復表示とは、ソルバーの各反復における計算を示す統計表です。統計はソルバーとソルバー アルゴリズムの両方によって異なります。この表は、ソルバーを適切なオプションで実行した際に 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-05 
    4          12             -1             1             0 

Local minimum found.

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

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

  • lsqlin 'trust-region-reflective' アルゴリズム

  • lsqnonneg

  • quadprog 'trust-region-reflective' アルゴリズム

一般的な見出し

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

見出し表示される情報

f(x) または Fval

現在の目的関数値

First-order optimality

1 次の最適性の尺度です (1 次の最適性の尺度を参照)。

Func-count または F-count

関数評価の回数です (反復と関数カウントを参照)。

Iteration または Iter

反復回数です (反復と関数カウントを参照)。

Norm of step

現在のステップのサイズ (サイズはユークリッド ノルムまたは 2 ノルム) です。'trust-region' アルゴリズムおよび 'trust-region-reflective' アルゴリズムでは、制約がある場合、Norm of stepD*s のノルムになります。ここで、s はステップ、D は対角スケーリング行列であり、アルゴリズムの説明で信頼領域の部分問題のセクションに記述されています。

関数特有の見出し

このセクションの表では、使用する最適化関数によって意味が異なる、反復表示の見出しを説明します。

fgoalattain、fmincon、fminimax、fseminf

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

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

Attainment factor

fgoalattain の到達因子の値です。

CG-iterations

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

Directional derivative

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

Feasibility

最大制約違反。ここで満たされる不等式制約の数は 0 です。

Line search steplength

探索方向をスケールする乗法係数です (式 29を参照)。

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

探索方向をスケールする乗法係数です (式 29を参照)。

Trust-region radius

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

fminbnd と fzero

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

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

Procedure

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

  • initial

  • golden (黄金分割探索)

  • parabolic (放物線内挿法)

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

  • initial (初期点)

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

  • bisection

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

x

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

fminsearch

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

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

Procedure

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

  • initial simplex

  • expand

  • reflect

  • shrink

  • contract inside

  • contract outside

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

fminunc

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

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

CG-iterations

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

Line search steplength

探索方向をスケールする乗法係数です (式 11を参照)。

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

fsolve

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

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

||f(x)||^2

現在の目的関数値。目的関数ベクトルのユークリッド ノルムの二乗

Lambda

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

Trust-region radius

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

intlinprog

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

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

nodes explored

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

total time (s)

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

num int solution

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

integer fval

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

relative gap (%)

100(ba)|b|+1,

ここで、

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

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

メモ

RelativeGapTolerance を 10 進数として指定しても、反復表示はそのギャップをパーセントでレポートします。これは、測定された相対ギャップの 100 倍であることを意味します。終了メッセージが相対ギャップを示している場合、この値は測定された相対ギャップで、割合ではありません。

linprog

この表は、linprog に特有の見出しを示します。各アルゴリズムには独自の反復表示があります。

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

Primal Infeas A*x-b または Primal Infeas

主問題の実行不可能性です。制約違反の尺度は、解においてゼロになります。

定義については、予測子修正子 ('interior-point')、メイン アルゴリズム ('interior-point-legacy') またはレガシ双対シンプレックス法アルゴリズムを参照してください。

Dual Infeas A'*y+z-w-f または Dual Infeas

双対問題の実行不可能性です。ラグランジュ関数の導関数の尺度は、解においてゼロになります。

ラグランジュ関数の定義については、予測子修正子を参照してください。双対問題の実行不可能性の定義については、予測子修正子 ('interior-point')、メイン アルゴリズム ('interior-point-legacy') またはレガシ双対シンプレックス法アルゴリズムを参照してください。

Upper Bounds {x}+s-ub

実行可能上限です。{x} は、有限の上限があるそれらの x を意味します。この値は、レガシ内点線形計画法における ru 残差です。

Duality Gap x'*z+s'*w

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

Total Rel Error

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

Complementarity

ラグランジュ乗数の尺度と範囲からの距離の積で、解においてゼロになります。停止条件の変数 rc を参照してください。

Time

linprog の実行時間 (秒) です。

lsqlin

lsqlin'interior-point' 反復表示は、quadprog 反復表示から継承されます。これらの関数の関係は、線形最小二乗法: 内点法または有効制約法で説明されています。反復表示の詳細については、quadprogを参照してください。反復表示の唯一の違いは、lsqlinquadprog のタイトル f(x) の代わりに Resnorm というタイトルの列を表示することです。

lsqnonlin と lsqcurvefit

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

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

Lambda

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

Resnorm

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

Feasibility

最大制約違反。ここで満たされる不等式制約の数は 0 ('interior-point' アルゴリズム) です。

quadprog

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

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

Primal Infeas

主問題の実行不可能性。max( norm(Aeq*x - beq, inf), abs(min(0, min(A*x-b))) ) と定義されます。

Dual Infeas

双対問題の実行不可能性。norm(H*x + f - A*lambda_ineqlin - Aeq*lambda_eqlin, inf) と定義されます。

Complementarity

非アクティブな不等式のラグランジュ乗数の最大絶対値の尺度。解においてゼロになります。この数量は、実行不可能性の検出における g です。

Feasibility

最大制約違反。ここで満たされる不等式制約の数は 0 ('active-set' アルゴリズム) です。