Optimization Toolbox

線形、二次、整数および非線形の最適化問題の解決

Optimization Toolbox™ は、制約を満たしながら目標を最小化または最大化するパラメーターを見つけるための機能を提供します。このツールボックスには、線形計画法 (LP)、混合整数線形計画法 (MILP)、二次計画法 (QP)、 非線形計画法 (NLP)、制約付き線形最小二乗法、非線形最小二乗法、および非線形方程式などのソルバーが含まれています。関数と配列を使用して、あるいは基礎的な数学が反映された変数式を指定することにより、最適化問題を定義できます。

このツールボックスのソルバーを使用して、連続および離散問題の最適解の検出、トレードオフ解析の実行、アルゴリズムやアプリケーションへの最適化手法の組み込みを行うことができます。また、パラメーターの推定、コンポーネントの選択、およびパラメーターの調整を含む、設計最適化タスクを実行できます。ポートフォリオ最適化、リソース割り当て、運用計画とスケジューリングなどの用途で最適なソリューションを見つけることができます。

詳細を見る:

最適化問題の定義

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

モデリング

最適化変数、目的、および制約を定義して問題の記述を数学の形式に変換し、最適化の手法による解決を可能にします。

問題ベースでの最適化

目的と制約を MATLAB で、数式を反映する式で記述します。最適化変数、数学的演算子、行列演算、および変数の関数を用いてこれらを構築します。自動的に選択されたソルバーが適用されます。

ソルバーベースの最適化

目的と制約を MATLAB で、非線形の場合は関数を、線形の場合は係数行列を使用して記述します。行列演算、数学的演算子、および関数を用いてこれらを構築します。最適なソルバーを適用します。

最適化問題の解決

ソルバーを最適化問題に適用し最適解を得ます。それは目的関数がある場合は算出された最適値、また制約がある場合それに合致する一連の最適化変数値です。

ソルバーの選択

最適化問題における目的と制約のタイプに従って、非線形、2 次多項式、線形、最小二乗、または多目的ソルバーを使用して解決します。問題ベースのアプローチにおいて、ソルバーが自動的に選択されます。

オプションの設定

最適化オプションを設定して最適化プロセスを調整します。たとえば、ソルバーによって選択された最適化アルゴリズムを選択、または一連の終了条件を選択します。オプションを設定して最適化ソルバーの進捗を監視してプロットします。

結果のレビューと改善

最適化の測定値と反復表示をレビューして解決方法を評価します。終了メッセージのリンクを使用して詳細を確認します。勾配を入力する、または勾配推定のため並列演算を使用することで、非線形問題における性能を改善します

反復表示によりソルバーの進捗を監視

非線形計画法

非線形目的を持つ、または非線形制約に制限される最適化問題を解決します。

ソルバー

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

用途

パラメーターの見積もりと調整、最適化設計の探索、最適軌跡の算出、頑強なポートフォリオの構築、および変数間に非線形の関係があるその他の用途に非線形最適化を使用します。

線形計画法および二次計画法

非線形または凸二次目的を持つ、および非線形制約に制限される最適化問題を解決します。

線形計画法ソルバー

双対シンプレックス法、内点法アルゴリズムを適用して線形問題を解決します。

線形問題の実行可能領域および最適化ソリューション

二次計画法ソルバー

内点法、または信頼領域 Reflective 法を適用して二次問題を解決します。

二次問題の実行可能領域および最適化ソリューション

用途

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

二次計画法によって算出された最適化制御戦略

混合整数線形計画法

一部またはすべての変数が整数値でなければならない追加の制約と共に、線形制約のある、線形目的を持つ最適化問題を解決します。

ソルバー

前処理、可能な点を生成するヒューリスティック、面の切断を含む、分岐限定法アルゴリズムを使用して混合整数線形問題を解決します。

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

混合整数線形計画法アルゴリズム

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

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

用途

変数値が整数でなければならない場合に加え、オン/オフの決定または論理制約がある場合は整数変数でモデル化します。ルート決定、スケジュール、計画、割り当て、および予算編成などがよくある用途です。

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

多目的最適化

一連の制約のある多目的関数を持つ最適化問題を解決します。

ソルバー

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

fgoalattain を用いて目的の重み付けを探索した結果。

用途

2 つ以上の矛盾する目的の間でトレードオフが必要な場合は、多目的最適化を使用します。構造設計での重量と強度、およびポートフォリオ最適化でのリスクとリターンが一例になります。

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

最小二乗と数式の解決

非線形最小二乗問題と範囲制約のある数式の非線形システムを解決します。範囲制約と線形制約のある線形最小二乗問題を解決します。

ローカルおよびグローバル アプローチの比較

線形最小二乗の用途

パラメーターが範囲制約と線形制約を持つ場合など、データ取得のために線形モデルを近似させる、または線形数式のシステムを解決するために線形最小二乗ソルバーを使用します。

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

非線形最小二乗の用途

パラメーターが範囲制約を持つ場合など、データ取得のために非線形モデルを近似させる、または非線形数式のシステムを解決するため、非線形最小二乗ソルバーを使用します。

常微分方程式の Lorenz システムに円形パスを近似

展開

最適化ベースの決定補助と設計ツールを構築します。

MATLAB Compiler のサポート

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

最適化された発電スケジュールを算出するアプリ

コード生成 

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

軌跡最適化関数についての MATLAB Coder レポート。

新機能

Optimize Live Editor Task

Interactively create and solve optimization problems

Automatic Differentiation

Solve problems faster and more accurately using automatically computed gradients of objective and constraint functions

Second-Order Cone Programming

Solve convex optimization problems with second-order cone constraints, linear constraints, and a linear objective

Code Generation

Generate C/C++ code to solve systems of nonlinear equations with fsolve (requires MATLAB Coder)

Code Generation

Generate C/C++ code to solve nonlinear least-squares problems with lsqcurvefit or lsqnonlin (requires MATLAB Coder)

See release notes for details on any of these features and corresponding functions.