Optimization Toolbox™ には、制約を満たしながら目的を最小化または最大化するパラメーターを見つけるための関数が用意されています。このツールボックスには、線形計画法 (LP) や混合整数線形計画法 (MILP)、二次計画法 (QP)、二次錐計画法 (SOCP)、非線形計画法 (NLP)、制約付き線形最小二乗法、非線形最小二乗法、非線形方程式のソルバーが含まれます。
最適化問題を定義するには、関数や行列を使用するか、基礎となる数学が反映された変数式を指定します。目的関数や制約関数の自動微分を使用することで、迅速かつ正確に求解できます。
このツールボックスのソルバーでは、連続問題や離散問題の最適解を見つけたり、トレードオフ解析を行ったりするほか、最適化手法をアルゴリズムやアプリケーションに組み込むことができます。また、このツールボックスを使用して、パラメーターの推定やコンポーネントの選択、パラメーターの調整といった、設計の最適化タスクを行うこともできます。その結果、ポートフォリオの最適化、エネルギー管理および取引、生産計画などの用途で最適解を見つけることができます。
詳細を見る:
モデル化
変数や目的、制約を定義して問題記述を数学形式に変換し、最適化手法で求解できるようにします。
問題ベースの最適化
最適化変数の式を使用して、目的や制約を記述します。非線形式の自動微分によって、より速く、よりロバストに求解します。自動選択されたソルバーを適用します。ライブエディターの [最適化] タスクで問題を対話的に作成および求解し、アプリケーションで共有または使用するためのコードを生成します。
ソルバーベースの最適化
関数を使用して非線形の目的や制約を記述し、係数行列を使用して線形の目的や制約を記述します。ライブエディターの最適化タスクで問題を対話的に作成および求解し、アプリケーションで共有または使用するためのコードを生成します。
ソルバーの選択
問題ベースまたはソルバーベースのアプローチを用いたライブエディターの [最適化] タスクを使用することで、問題の種類に適したソルバーを選択しやすくなります。
オプションの設定
最適化オプションを設定して、最適化プロセスを調整します。たとえば、ソルバーが使用する最適化アルゴリズムを選択するか、一連の終了条件を設定します。最適化ソルバーの進行状況を監視してプロットするオプションを設定します。
結果のレビューと改善
終了メッセージ、最適性測定、反復表示を確認して、解を評価します。自動微分や、勾配の指定、並列計算による勾配の推定により、非線形問題における性能を改善します。
ソルバー
制約なしの問題を解くには、準ニュートン、信頼領域、Nelder-Mead シンプレックス アルゴリズムを適用します。制約付きの問題を解決するには、内点法、逐次二次計画法 (SQP)、または信頼領域 Reflective 法アルゴリズムを適用します。
用途
非線形最適化は、パラメーターの推定と調整、最適な設計の探索、最適な軌道の計算、ロバストなポートフォリオの構築など、変数間に非線形関係がある用途に使用します。
二次計画法と二次錐計画法のソルバー
二次計画法を解くには、内点法、有効制約法、または信頼領域 Reflective 法アルゴリズムを適用します。二次錐計画問題を解くには、内点法を適用します。
用途
リソース割り当て、生産計画、配合計画、投資計画などの問題に対して、線形計画法を使用します。設計最適化、ポートフォリオ最適化、水力発電ダムの制御などの問題に対して、二次計画法や二次錐計画法を使用します。
ソルバー
分枝限定法アルゴリズムを使用して、混合整数線形計画法の問題を解きます。たとえば、前処理や実行可能点を生成するためのヒューリスティックな方法、切除平面法などがあります。
混合整数線形計画法ベースのアルゴリズム
混合整数線形計画法のソルバーを使用して、特定の目的のアルゴリズムを構築します。。
用途
オン/オフの決定や論理的制約がある場合や、変数値を積分する必要がある場合は、整数変数でモデル化します。一般的な用途としては、ルーティングやスケジューリング、計画、割り当て、資本予算の問題などがあります。
ソルバー
目標計画法またはミニマックスとして問題を定式化します。各目的に対して目標値 (オプションで重み付け済み) がある場合は、目標計画法を使用します。一連の目的関数の最悪値を最小化するには、ミニマックスを使用します。
用途
矛盾した目的に対してトレードオフが必要な場合は、多目的最適化を使用します。一例として、構造設計における重量や強度、ポートフォリオ最適化におけるリスクとリターンなどがあります。
ソルバー
レーベンバーグ・マルカートや信頼領域、有効制約法、または内点法アルゴリズムを適用します。
線形最小二乗法の用途
線形最小二乗ソルバーを使用して、取得したデータへの線形モデルのあてはめや、線形方程式系の解法を行うことができます (パラメーターが範囲制約や線形制約をもつ場合など)。
非線形最小二乗法の用途
非線形最小二乗ソルバーを使用して、取得したデータへの非線形モデルのあてはめや、非線形方程式系の求解を行うことができます (パラメーターが範囲、線形、および非線形制約をもつ場合など)。
MATLAB Compiler のサポート
MATLAB Compiler™ や MATLAB Compiler SDK™ を使用して、MATLAB® 最適化モデルをスタンドアロンの実行可能ファイルや Web アプリケーション、C/C++ 共有ライブラリ、Microsoft® .NET アセンブリ、Java® クラス、Python® パッケージとして展開します。
コード生成
MATLAB Coder™ を使用して、移植可能で可読性に優れた C コードまたは C++ コードを生成して、最適化問題を求解します。組み込みシステムなどの任意のハードウェア向けに生成されたコードをコンパイルします。