Optimization Toolbox

線形、二次、円錐、整数、非線形の最適化問題を求解

Optimization Toolbox™ には、制約を満たしながら目的を最小化または最大化するパラメーターを見つけるための関数が用意されています。このツールボックスには、線形計画法 (LP) や混合整数線形計画法 (MILP)、二次計画法 (QP)、二次錐計画法 (SOCP)、非線形計画法 (NLP)、制約付き線形最小二乗法、非線形最小二乗法、非線形方程式のソルバーが含まれます。

最適化問題を定義するには、関数や行列を使用するか、基礎となる数学が反映された変数式を指定します。目的関数や制約関数の自動微分を使用することで、迅速かつ正確に求解できます。

このツールボックスのソルバーでは、連続問題や離散問題の最適解を見つけたり、トレードオフ解析を行ったりするほか、最適化手法をアルゴリズムやアプリケーションに組み込むことができます。また、このツールボックスを使用して、パラメーターの推定やコンポーネントの選択、パラメーターの調整といった、設計の最適化タスクを行うこともできます。その結果、ポートフォリオの最適化、エネルギー管理および取引、生産計画などの用途で最適解を見つけることができます。

詳細を見る:

最適化問題の定義

設計問題や決定問題を最適化問題としてモデル化します。設計パラメーターと決定を最適化変数として設定します。それらを目的関数の定義に使用して最適化し、制約を使用して変数値を制限します。

モデル化

変数や目的、制約を定義して問題記述を数学形式に変換し、最適化手法で求解できるようにします。

問題ベースの最適化

最適化変数の式を使用して、目的や制約を記述します。非線形式の自動微分によって、より速く、よりロバストに求解します。自動選択されたソルバーを適用します。

ソルバーベースの最適化

関数を使用して非線形の目的や制約を記述し、係数行列を使用して線形の目的や制約を記述します。ライブエディターの最適化タスクで問題を対話的に作成および求解し、アプリケーションで共有または使用するためのコードを生成します。

最適化問題の解法

最適解 (目的関数の最適値があればそれを生成し、制約があればそれを満たす最適化変数の値のセット) を見つけるソルバーを最適化問題に適用します。

ソルバーの選択

ライブエディターの最適化タスクを使用することで、ソルバーベースのアプローチを使用する際、問題の種類に適したソルバーを選択しやすくなります。問題ベースのアプローチでは、ソルバーは自動選択されます。

オプションの設定

最適化オプションを設定して、最適化プロセスを調整します。たとえば、ソルバーが使用する最適化アルゴリズムを選択するか、一連の終了条件を設定します。最適化ソルバーの進行状況を監視してプロットするオプションを設定します。

結果のレビューと改善

終了メッセージ、最適性測定、反復表示を確認して、解を評価します。自動微分や、勾配の指定、並列計算による勾配の推定により、非線形問題における性能を改善します。

反復表示によるソルバーの進捗状況の監視。

非線形計画法

非線形の目的や制約がある最適化問題を求解します。

ソルバー

制約なしの問題を解くには、準ニュートン、信頼領域、Nelder-Mead シンプレックス アルゴリズムを適用します。制約付きの問題を解決するには、内点法、逐次二次計画法 (SQP)、または信頼領域 Reflective 法アルゴリズムを適用します。

用途

非線形最適化は、パラメーターの推定と調整、最適な設計の探索、最適な軌道の計算、ロバストなポートフォリオの構築など、変数間に非線形関係がある用途に使用します。

線形計画法、二次計画法、および円錐計画法

線形目的または二次目的を持ち、線形制約または二次錐制約がある凸最適化問題を求解します。

線形計画法のソルバー

線形計画を解くには、双対シンプレックス法または内点法アルゴリズムを適用します。

線形計画の実行可能領域と最適解

二次計画法と二次錐計画法のソルバー

二次計画法を解くには、内点法、有効制約法、または信頼領域 Reflective 法アルゴリズムを適用します。二次錐計画問題を解くには、内点法を適用します。

二次計画の実行可能領域と最適解

用途

リソース割り当て、生産計画、配合計画、投資計画などの問題に対して、線形計画法を使用します。設計最適化、ポートフォリオ最適化、水力発電ダムの制御などの問題に対して、二次計画法や二次錐計画法を使用します。

二次計画法による最適制御戦略

混合整数線形計画法

線形制約だけでなく、一部またはすべての変数が整数値でなければならない追加制約がある、線形目的を含む最適化問題を求解します。

ソルバー

分枝限定法アルゴリズムを使用して、混合整数線形計画法の問題を解きます。たとえば、前処理や実行可能点を生成するためのヒューリスティックな方法、切除平面法などがあります。

分枝限定法アルゴリズムの適 

混合整数線形計画法ベースのアルゴリズム

混合整数線形計画法のソルバーを使用して、特定の目的のアルゴリズムを構築します。。

各都市を一度のみ訪問する最も短い移動方法

用途

オン/オフの決定や論理的制約がある場合や、変数値を積分する必要がある場合は、整数変数でモデル化します。一般的な用途としては、ルーティングやスケジューリング、計画、割り当て、資本予算の問題などがあります。

変動する電気料金のもとでの 2 つの発電機のスケジュール

多目的最適化

一連の制約がある多目的関数を含む最適化問題を求解します。

ソルバー

目標計画法またはミニマックスとして問題を定式化します。各目的に対して目標値 (オプションで重み付け済み) がある場合は、目標計画法を使用します。一連の目的関数の最悪値を最小化するには、ミニマックスを使用します。

関数 fgoalattain を使用して計算されたパレートフロント

用途

矛盾した目的に対してトレードオフが必要な場合は、多目的最適化を使用します。一例として、構造設計における重量や強度、ポートフォリオ最適化におけるリスクとリターンなどがあります。

初期状態と最適化されたフィルター係数での振幅応答

最小二乗法と方程式の解法

非線形最小二乗問題と、範囲制約のある連立非線形方程式を求解します。範囲制約や線形制約のある線形最小二乗問題を求解します。

ソルバー

レーベンバーグ・マルカートや信頼領域、有効制約法、または内点法アルゴリズムを適用します。

ローカルアプローチとグローバルアプローチの比較

線形最小二乗法の用途

線形最小二乗ソルバーを使用して、取得したデータへの線形モデルのあてはめや、線形方程式系の解法を行うことができます (パラメーターが範囲制約や線形制約をもつ場合など)。

線形最小二乗問題の解法によるブレ画像の修復

非線形最小二乗法の用途

非線形最小二乗ソルバーを使用して、取得したデータへの非線形モデルのあてはめや、非線形方程式系の解法を行うことができます (パラメーターが範囲制約をもつ場合など)。

常微分方程式のローレンツ系への円形パスのあてはめ

展開

最適化ベースの意思決定サポートおよび設計ツールの構築、企業システムとの統合、組み込みシステムへの最適化アルゴリズムの展開を行います。

MATLAB Compiler のサポート

MATLAB Compiler™MATLAB Compiler SDK™ を使用して、MATLAB® 最適化モデルをスタンドアロンの実行可能ファイルや Web アプリケーション、C/C++ 共有ライブラリ、Microsoft® .NET アセンブリ、Java® クラス、Python® パッケージとして展開します。

最適な発電スケジュールを計算するアプリ

コード生成

MATLAB Coder™ を使用して、移植可能で可読性に優れた C コードまたは C++ コードを生成して、最適化問題を求解します。組み込みシステムなどの任意のハードウェア向けに生成されたコードをコンパイルします。

軌跡最適化関数の MATLAB Coder レポート

新機能

最適化ライブエディター タスク

対話的に最適化問題を作成および求解

自動微分

目的関数および制約関数の自動計算された勾配を使用して、問題をすばやく正確に求解

二次錐計画法

二次錐制約、線形制約、線形オブジェクティブを使用して凸最適化問題を求解

コード生成

fsolve を使って非線形方程式系を解くための C/C++ コードを生成 (MATLAB Coder が必要)

コード生成

lsqcurvefit または lsqnonlin を使って非線形最小二乗問題を解くための C/C++ コードを生成 (MATLAB Coder が必要)

これらの機能や対応する関数の詳細については、リリースノートを参照してください。