このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。
問題ベースのグローバル最適化のセットアップ
最適化変数を作成し、目的と制約を持つ問題を作成し、
solve
を呼び出しますGlobal Optimization Toolbox には、問題ベースとソルバー ベースの 2 つの最適化アプローチがあります。問題ベースのアプローチとソルバーベースのアプローチのどちらを選択するかを参照してください。問題ベースの最適化では、シンボリック スタイルの最適化変数を作成します。次に、これらの変数内に目的と制約を表す式を作成します。最後に、solve
を使用して問題を解決します。詳細については、問題ベースの最適化ワークフロー を参照してください。
メモ: 多項式、有理式、および初等関数 (exp
など) で構成されていない非線形関数がある場合は、その関数を fcn2optimexpr
を使用して最適化式に変換します。非線形関数から最適化式への変換および最適化変数および式でサポートされる演算を参照してください。
基本的な例については、複数のグローバルソルバーを比較する、問題ベースを参照してください。
関数
オブジェクト
OptimizationConstraint | 最適化制約 |
OptimizationEquality | 等式と等式制約 |
OptimizationExpression | 最適化変数に関する算術式または関数式 |
OptimizationInequality | 不等式制約 |
OptimizationProblem | 最適化問題 |
OptimizationValues | 最適化問題の値 (R2022a 以降) |
OptimizationVariable | 最適化用の変数 |
トピック
問題ベースのステップ
- 問題ベースの最適化ワークフロー
最適化問題を解くための問題ベースの手順を学習します。 - 最適化式
目的関数と制約の両方に式を定義します。 - 問題ベースのアプローチでの追加パラメーターの受け渡し
問題ベースのアプローチで追加パラメーター、データ、または固定変数を渡します。 - 最適化変数の名前付きインデックス
変数の名前付きインデックスを作成して使用します。 - 最適化問題の確認または変更
変数や制約などの問題要素を確認または変更します。 - 最適化の解の検証
解とその質を評価します。
グローバルソルバーの手順
- 問題ベースのアプローチとソルバーベースのアプローチのどちらを選択するか
Global Optimization Toolbox ソルバーを使用した問題ベースおよびソルバーベースの最適化に関する考慮事項について説明します。 - Global Optimization Toolbox デフォルトのソルバーと問題の種類
問題ベースのアプローチで解決できる問題の種類と、それに関連するデフォルトのソルバーを特定します。 - Global Optimization Toolbox ソルバーの初期ポイント
問題ベースのアプローチにおける Global Optimization Toolbox ソルバーの初期ポイントを指定します。 - 非線形問題ベースの最適化における整数制約
問題ベースの最適化関数prob2struct
およびsolve
で整数制約を処理する方法を学習します。
グローバル最適化オプションを設定する
- Global Optimization Toolbox ソルバーの問題ベースの最適化オプションを設定する
Global Optimization Toolbox の問題ベースアプローチで最適化オプションを設定および変更する方法。 - varindex を使用した問題ベースアプローチでのオプションの設定
いくつかのコンテキストでオプションを設定するには、varindex
を使用して問題ベースの変数をソルバーベースにマッピングします。 - パターン検索オプション
パターン検索のオプションを調べます。 - 遺伝的アルゴリズムのオプション
遺伝的アルゴリズムのオプションを調べます。 - パーティクルスウォームオプション
パーティクルスウォームのオプションを調べます。 - 代理最適化オプション
アルゴリズム制御、停止基準、コマンドライン表示、出力およびプロット関数など、代理最適化のオプションを調べます。 - シミュレーテッドアニーリングオプション
シミュレーテッドアニーリングのオプションを調べます。
問題ベースの最適化のヒント
- 効率的な最適化問題の作成
問題に整数制約がある場合に、より迅速または正確に解を得たり、問題作成でループを回避したりします。 - 最適化モデルのデータからの分離
モデルをデータから分離して、再利用可能および拡張可能な問題を作成します。 - 変数名の重複は許可されない
同じ名前の 2 つの最適化変数をもつ問題を解く方法を学習します。 - 名前付きインデックス変数による最適化の初期点の作成
名前付きインデックス変数がある場合に、関数findindex
を使用してsolve
の初期点を作成します。 - 式に Inf または NaN が含まれる
Inf
またはNaN
を含む最適化式は表示できないため、予期しない結果を招くことがあります。 - 共通の関数を持つ目的関数と制約の逐次評価または並列評価、問題ベース
問題ベースのアプローチで目的関数と非線形制約関数が共通の計算を共有する場合の時間を節約します。 - 生成された関数詳細の取得
prob2struct
によって作成された非線形関数内の追加のパラメーターの値を見つけます。 - 問題ベースの最適化の出力関数
問題ベースのアプローチで出力関数を使用して、反復の履歴を記録し、カスタム プロットを作成します。
並列計算
- ソルバーが並列計算を行う仕組み
ソルバーが並列コンピューティングのために作業を分散する方法を学びます。 - Global Optimization Toolbox で並列処理を使用する方法
ソルバーまたはハイブリッド関数に複数のプロセスを使用するように指示します。 - Parallel Computing Toolbox を使用した、時間のかかる最適化問題の最小化
2 つのソルバーfmincon
とga
での並列計算の有効性を示す例。 - 並列計算によるパフォーマンスの向上
最適化の高速化のための要因について調べます。
問題ベースのアルゴリズム
- 問題ベースの最適化アルゴリズム
最適化関数とオブジェクトで最適化問題を解く方法を学習します。 - 最適化変数および式でサポートされる演算
最適化変数と式でサポートされている数学的演算とインデックス演算を確認します。