このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
surrogateopt
時間のかかる目的関数の大域的最小化のためのサロゲート最適化
構文
説明
surrogateopt
は、時間のかかる目的関数のグローバル ソルバーです。
surrogateopt
は次のような形式の問題を解決しようとします。
ソルバーは、境界、オプションの線形制約、オプションの整数制約、およびオプションの非線形不等式制約に従って、複数の次元で実数値目的関数の大域的最小値を探索します。surrogateopt
は、評価に長い時間を要する目的関数に最適です。目的関数は滑らかでない場合があります。ソルバーはすべての変数に対して有限の境界を必要とします。ソルバーは、オプションでチェックポイント ファイルを維持して、クラッシュや部分的な実行からの回復、または停止条件を満たした後の最適化の継続を可能にすることができます。目的関数 f(x) は空 ([]
) になる可能性があり、その場合、surrogateopt
はすべての制約を満たす点を見つけようとします。
は、領域 x
= surrogateopt(objconstr
,lb
,ub
)lb <= x <= ub
内で objconstr(x)
の大域的最小値を探索します。objconstr(x)
が構造体を返す場合、surrogateopt
は objconstr(x).Ineq <= 0
を条件として objconstr(x).Fval
の最小値を探索します。
メモ
追加パラメーターの受け渡し は、必要に応じて目的関数に追加のパラメーターを渡す方法について説明します。
は、保存されたチェックポイント ファイルの状態から最適化の実行を継続します。チェックポイントファイルの操作を参照してください。x
= surrogateopt(checkpointFile
)
は保存されたチェックポイント ファイルの状態から最適化の実行を継続し、x
= surrogateopt(checkpointFile
,opts
)checkpointFile
のオプションを opts
のオプションに置き換えます。チェックポイントファイルを参照してください。
例
入力引数
出力引数
アルゴリズム
surrogateopt
は次の手順を繰り返し実行します。
境界内で
MinSurrogatePoints
個のランダム ポイントをサンプリングして試行ポイントのセットを作成し、試行ポイントで目的関数を評価します。すべてのランダム試行ポイントを通るラジアル基底関数を補間することにより、目的関数のサロゲート モデルを作成します。
サロゲートにいくらかの重みを与え、試行ポイントからの距離にいくらかの重みを与えるメリット関数を作成します。現行ポイント(最後のサロゲート リセット以降に見つかった最良のポイント)の周囲の領域でメリット関数をランダムにサンプリングして、メリット関数の小さな値を見つけます。適応ポイントと呼ばれるこの点を、新しい試行ポイントとして使用します。
適応ポイントで目的を評価し、この点とその値に基づいてサロゲートを更新します。目的関数の値が、以前に観測された最高(最低)値よりも十分に低い場合は「成功」とカウントし、そうでない場合は「失敗」とカウントします。
max(nvar,5)
回の失敗の前に 3 回の成功が発生した場合、サンプル分布の分散を上方に更新します。ここで、nvar
は次元数です。3 回の成功の前にmax(nvar,5)
回の失敗が発生した場合は、分散を下方に更新します。すべての試行ポイントが評価ポイントの
MinSampleDistance
以内になるまで、手順 3 から続行します。その時点で、サロゲートからすべての適応ポイントを破棄してサロゲートをリセットし、スケールをリセットして、ステップ 1 に戻り、評価用のMinSurrogatePoints
個の新しいランダム試行ポイントを作成します。
詳細は、サロゲート最適化アルゴリズムを参照してください。
代替機能
アプリ
[最適化] ライブ エディター タスクが surrogateopt
にビジュアル インターフェイスを提供します。