問題ベースの最適化の設定
変数と式を使用して最適化問題を定式化し、逐次評価または並列評価によって解きます
問題ベースの最適化では、最適化変数を作成し、これらの変数で目的関数と制約を表す式または方程式を表す式を作成して、solve
を使用して問題を解きます。最適化問題の場合に実行する問題ベースの手順については、問題ベースの最適化ワークフローを参照してください。方程式の解法については、方程式を解くための問題ベースのワークフローを参照してください。
最適化問題を解く前に、問題ベースかソルバーベースか、適切なアプローチを選択しなければなりません。詳細は、はじめに問題ベース アプローチまたはソルバーベース アプローチを選択を参照してください。
メモ:多項式、有理式、および初等関数 (exp
など) で構成されていない非線形関数がある場合は、その関数をfcn2optimexpr
を使用して最適化式に変換します。詳細は、非線形関数から最適化式への変換と最適化変数および式でサポートされる演算を参照してください。
非線形最適化の基本的な例は、制約付き非線形問題の解法、問題ベースを参照してください。混合整数線形計画法の基本的な例は、混合整数線形計画法の基礎: 問題ベースを参照してください。基本的な方程式の解法の例については、非線形方程式系の解法、問題ベースを参照してください。[最適化]ライブ エディター タスクの使用例については、問題ベースの最適化ライブ エディター タスクの概要を参照してください。
関数
オブジェクト
EquationProblem |
非線形方程式系 |
OptimizationConstraint |
最適化制約 |
OptimizationEquality |
等式と等式制約 |
OptimizationExpression |
最適化変数に関する算術式または関数式 |
OptimizationInequality |
不等式制約 |
OptimizationProblem |
最適化問題 |
OptimizationValues |
最適化問題の値 |
OptimizationVariable |
最適化用の変数 |
ライブ エディター タスク
最適化 | ライブ エディターでの方程式の最適化または解決 |
トピック
問題ベースの手順
- 問題ベースの最適化ワークフロー
最適化問題を解くための問題ベースの手順を学習します。 - 方程式を解くための問題ベースのワークフロー
方程式を解くための問題ベースの手順を学習します。 - 最適化式
目的関数と制約の両方に式を定義します。 - 問題ベースのアプローチでの追加パラメーターの受け渡し
問題ベースのアプローチで追加パラメーター、データ、または固定変数を渡します。 - 問題ベースの最小二乗法の目的関数の記述
問題ベースの最小二乗法の構文ルール。 - 問題ベースの錐計画法の制約の記述
solve
で問題解決にconeprog
を使用する際の要件。 - 最適化変数の名前付きインデックス
変数の名前付きインデックスを作成して使用します。 - 最適化問題の確認または変更
変数や制約などの問題要素を確認または変更します。 - 最適化の解の検証
解とその質を評価します。
オプションの設定
- オプションの設定
最適化オプションの設定 - 問題ベースの最適化の出力関数
問題ベースのアプローチで出力関数を使用して、反復の履歴を記録し、カスタム プロットを作成します。
問題ベースの最適化のヒント
- 効率的な最適化問題の作成
問題に整数制約がある場合に、より迅速または正確に解を得たり、問題作成でループを回避したりします。 - 最適化モデルのデータからの分離
モデルをデータから分離して、再利用可能および拡張可能な問題を作成します。 - 最適化式の初期化
関数の最適化式を初期化する方法、およびそれらの初期化が必要なことを認識する方法。 - 問題ベースの [最適化] ライブ エディター タスクの効果的な使い方
問題ベースの[最適化]ライブ エディター タスクの使用方法と概要。 - 変数名の重複は許可されない
同じ名前の 2 つの最適化変数をもつ問題を解く方法を学習します。 - 名前付きインデックス変数による最適化の初期点の作成
名前付きインデックス変数がある場合に、関数findindex
を使用してsolve
の初期点を作成します。 - 式に Inf または NaN が含まれる
Inf
またはNaN
を含む最適化式は表示できないため、予期しない結果を招くことがあります。 - 共通の関数を持つ目的関数と制約の逐次評価または並列評価、問題ベース
問題ベースのアプローチで目的関数と非線形制約関数が共通の計算を共有する場合の時間を節約します。 - 問題ベースの最適化における自動微分の効果
自動微分によって、問題を解くための関数評価の数が減少します。 - 問題ベースのワークフローへの導関数の供給
自動導関数が適用されない場合に問題ベースの最適化に導関数情報を含める方法。 - 生成された関数詳細の取得
prob2struct
によって作成された非線形関数内の追加のパラメーターの値を見つけます。 - 非線形問題ベースの最適化における整数制約
問題ベースの最適化関数prob2struct
およびsolve
で整数制約を処理する方法を学習します。 - 問題ベースの最適化の出力関数
問題ベースのアプローチで出力関数を使用して、反復の履歴を記録し、カスタム プロットを作成します。
並列計算
- Optimization Toolbox での並列計算とは
最適化に複数のプロセッサを使用します。 - Optimization Toolbox での並列計算の使用
勾配推定を並列で行います。 - Parallel Computing Toolbox を使用した、時間のかかる最適化問題の最小化
2 つのソルバーfmincon
とga
での並列計算の有効性を示す例。 - 並列計算によるパフォーマンスの向上
最適化の高速化のための要因について調べます。
問題ベースのアルゴリズム
- 問題ベースの最適化アルゴリズム
最適化関数とオブジェクトで最適化問題を解く方法を学習します。 - 自動微分の背景
自動微分のしくみを学習します。 - 最適化変数および式でサポートされる演算
最適化変数と式でサポートされている数学的演算とインデックス演算を確認します。