ドキュメンテーション

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

反復と関数計算回数

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 が増加します。

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