ドキュメンテーション

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

反復と関数計算回数

一般的に、Optimization Toolbox™ のソルバーは最適解の検索を反復します。すなわち、ソルバーは開始値 x0 で開始し、中間の計算を実行し、新しい点 x1 に到達します。そして局所的最小値の近似 x2, x3 を見つける処理を反復します。k 回反復した後、処理を停止します。

どのステップでも中間の計算で目的関数と制約の評価を行います。現在の反復 xi の近くの点であっても評価を行います。たとえば、ソルバーは有限差分によって勾配を推定する場合があります。これらの各近傍点で、関数計算回数 (F-count) が 1 ずつ増加します。

  • 制約がない場合、F-count は目的関数評価の合計数を示します。

  • 制約がある場合、F-count は制約関数評価の合計数ではなく関数評価される点の数のみを示します。

  • 制約が多数ある場合、F-count は関数評価の合計数より大幅に小さくなります。

F-count は、多くのソルバーの反復表示のヘッダーにあります。例は、結果の解釈を参照してください。

F-count は、出力構造体の output.funcCount に現れます。これにより、プログラムから計算回数にアクセスすることができます。出力構造体の情報は 出力構造体 を参照してください。

時には、ソルバーはステップを試み、その試みを拒否します。trust-regiontrust-region-reflectivetrust-region-dogleg のアルゴリズムは、この失敗した試みを反復として数え、反復表示でその結果 (変化のない) を報告します。interior-pointactive-setlevenberg-marquardt のアルゴリズムは、このような試みを反復として数え、反復表示でその試みを報告しません。試行されたすべてのステップにより、アルゴリズムに関係なく F-count が増加します。

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