最適化の意思決定表
以下の表はソルバ―の選択の手助けを目的としています。ここでは、多目的最適化や方程式の解法には触れていません。以下のすべてのソルバーの詳細については、Optimization Toolbox の関数が扱う問題を参照してください。
以下の表では、
* は、該当するソルバーが Global Optimization Toolbox (Global Optimization Toolbox) の関数 (Optimization Toolbox™ ソルバーとは別ライセンス) 内にあることを意味します。
fminconは、滑らかな制約をもつ滑らかな目的関数のほとんどに適用できます。表にリストされたソルバーの方が一般的に効率が良いため、fmincon は最小二乗法と線形/二次計画法の推奨ソルバーとしてはリストされていません。表には推奨される関数が示されていますが、選択の幅を過度に制限するものではありません。たとえば
fminconは、ある種の滑らかでない問題に効果的な場合があります。Global Optimization Toolbox
ga(Global Optimization Toolbox) 関数とsurrogateopt(Global Optimization Toolbox) 関数は、混合整数非線形計画問題を扱うことができます。Statistics and Machine Learning Toolbox™ の関数
bayesopt(Statistics and Machine Learning Toolbox) は、連続変数、整数変数、categorical 変数の組み合わせを使用して、低次元の確定的または確率的な最適化問題を扱うことができます。
目的関数と制約によるソルバーの分類
| 制約タイプ | 目的の種類 | ||||
|---|---|---|---|---|---|
| 線形 | 二次 | 最小二乗法 | 滑らかな非線形 | 滑らかでない | |
| なし | N/A (f = const または min = ) | quadprog, 詳細 | mldivide, lsqcurvefit, lsqnonlin, 詳細 | fminsearch, fminunc, 詳細 | fminsearch, * |
| 範囲 | linprog, 詳細 | quadprog, 詳細 | lsqcurvefit, lsqlin, lsqnonlin, lsqnonneg, 詳細 | fminbnd, fmincon, fseminf, 詳細 | fminbnd, * |
| 線形 | linprog, 詳細 | quadprog, 詳細 | lsqcurvefit, lsqlin, lsqnonlin, 詳細 | fmincon, fseminf, 詳細 | * |
| 円錐 | coneprog, 詳細 | fmincon, 詳細 | lsqcurvefit, fmincon, lsqnonlin, 詳細 | fmincon, 詳細 | * |
| 全体に滑らか | fmincon, 詳細 | fmincon, 詳細 | lsqcurvefit, fmincon, lsqnonlin, 詳細 | fmincon, fseminf, 詳細 | * |
| 範囲制約または線形制約のある離散 | intlinprog, 詳細 | * | * | * | * |
メモ
この表は、多目的関数のソルバーと方程式を解くソルバーはリストしていません。Optimization Toolbox の関数が扱う問題の全リストは Optimization Toolbox の関数が扱う問題 を参照してください。
メモ
一部のソルバーは複数のアルゴリズムをもっています。選択については、アルゴリズムの選択を参照してください。