このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
最適化
説明
[最適化] タスクを使用すれば、問題を対話的に最適化する、または非線形方程式系を解く 2 つの方法から選択することができます。
問題ベース (推奨) — シンボリック最適化変数とシンボリック最適化式を作成して、目的関数と制約、または方程式を表します。
ソルバーベース — 標準の MATLAB® コードを使用して、目的関数と制約、または方程式を表します。
このタスクは、自動的に、ライブ スクリプト用の MATLAB コードを生成します。
このタスクの問題ベースのバージョンを使用して、次の操作を行うことができます。
最適化変数配列およびその範囲と初期値を指定します。
問題のタイプ (最小化、最大化、実行可能性、または方程式の解法) を指定します。
式を記述するか、関数を参照することによって、目的関数と制約関数を指定します。
オプションで、ソルバーを選択し、既定以外のオプションを指定します。
最適化を実行します。
このタスクのソルバーベースのバージョンを使用して、次の操作を行うことができます。
問題の特性に基づいてソルバーを選択します。Global Optimization Toolbox をお持ちの場合は、そのソルバーを使用するように選択することもできます。
関数を記述するか、関数を参照することによって、目的関数と制約関数を指定します。
ソルバー オプションを指定します。
最適化を実行します。
[最適化] の使用を開始するには、ソルバーベースの最適化ライブ エディター タスクの概要および問題ベースの最適化ライブ エディター タスクの概要を参照してください。[最適化] の使用方法に関する提案については、ソルバーベースの [最適化] ライブ エディター タスクの効果的な使い方または問題ベースの [最適化] ライブ エディター タスクの効果的な使い方を参照してください。現在、[最適化] で fseminf
ソルバー、GlobalSearch
ソルバー、または MultiStart
ソルバーを使用することはできません。
ライブ エディター タスクに関する一般情報については、ライブ スクリプトへの対話型タスクの追加を参照してください。
タスクを開く
MATLAB エディターでライブ スクリプトに [最適化] タスクを追加するには、[挿入] タブで、[タスク]、[最適化] を選択します。
または、スクリプト内のコード ブロックに、optim
や fmincon
などの関連キーワードを入力します。コマンドの補完候補から [最適化] を選択します。
例
- ソルバーベースの最適化ライブ エディター タスクの概要
- 問題ベースの最適化ライブ エディター タスクの概要
- [最適化] ライブ エディター タスクまたはソルバーを使用した制約付き非線形問題
- 問題ベースの Optimize ライブ エディター タスクを使用した実行可能性
- fmincon ソルバーを使用した最適化ライブ エディター タスク
- lsqlin ソルバーを使用した最適化ライブ エディター タスク
- Optimize Using the GPS Algorithm (Global Optimization Toolbox)
- Minimize Function with Many Local Minima (Global Optimization Toolbox)
- Pareto Front for Two Objectives (Global Optimization Toolbox)
- 問題ベースの [最適化] ライブ エディター タスクの効果的な使い方
- ソルバーベースの [最適化] ライブ エディター タスクの効果的な使い方
- ソルバーベースの最適化問題の設定
- How to Use the Solver-Based Optimize Live Editor Task
- How to Use the Problem-Based Optimize Live Editor Task
パラメーター
制限
現在、[最適化] には次の多目的最適化の制限があります。
複数の出力をもつ単一の関数を使用して目的関数を指定する必要があります。言い換えると、目的関数は値のベクトル、すなわち目的ごとに 1 つのエントリを出力する必要があります。
すべての目的関数は、同じ意味、ソルバーベースのタスクの最小化、および問題ベースのタスクの最小化または最大化を使用する必要があります。
ヒント
追加の入力を伴う関数の場合は、ソルバーベースと問題ベースの [最適化] タスクの要件がやや異なります。
"ソルバーベース": 最適化変数を選択し、固定データ入力を含むワークスペース変数を指定します。例については、あるベクトルへの最適化変数の配置と他の変数へのデータの配置を参照してください。この例には、3 つの関数入力が含まれています。
[最適化] では、すべての関数入力が指定されるまでコードが生成されません。
"問題ベース": 各関数の入力の最適化変数またはワークスペース変数を指定します。関数シグネチャ内の入力引数名が既存の最適化変数名またはワークスペース変数名に一致する場合、[最適化] は自動的にその名前を選択します。
[最適化] では、すべての関数入力が指定されるまでコードが生成されません。
[最適化] では、
varargin
入力を含む関数またはエラーを含む関数を解析できません。ファイルから関数を選択すると、[最適化] がそのファイルの場所を MATLAB パスに追加します。
[最適化] で解析エラーが発生した場合や複数のローカル関数の名前が重複している場合は、使用可能なローカル関数のリストが空になります。
バージョン履歴
R2020b で導入
参考
関数
fmincon
|intlinprog
|surrogateopt
(Global Optimization Toolbox) |patternsearch
(Global Optimization Toolbox)