メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

探索とポーリング

探索の定義

patternsearch では、探索 はポーリングの前に実行されるアルゴリズムです。探索では、現在のポイントよりも良いポイントを見つけようとします。(より良いというのは、目的関数の値が低いことを意味します。)探索でより良いポイントが見つかった場合、そのより良いポイントが現在のポイントになり、その反復ではポーリングは実行されません。探索でより良いポイントが見つからない場合、patternsearch はポーリングを実行します。

デフォルトでは、patternsearch は探索を使用しません。探索するには、「探索方法の使い方」を参照してください。

探索方法を使用した patternsearch には、探索方法の使用を含む直接探索のフローチャートが含まれています。

探索方法を使用した patternsearch

反復制限は、ポーリングメソッドを除くすべての組み込み探索方法に適用されます。探索方法に反復制限を選択した場合、反復制限に達するまで探索が有効になります。その後、patternsearch は探索を停止し、ポーリングのみを実行します。

探索方法の使い方

patternsearch で探索を使用するには:

  • ライブ エディターの最適化 タスクで、[ソルバー オプションの指定] > [アルゴリズムの設定] > [探索関数] の探索機能を選択します。

  • コマンドラインで、optimoptions を使用した探索方法でオプションを作成します。たとえば、ラテンハイパーキューブ探索を使用するには、次のようにします。

    opts = optimoptions("patternsearch","SearchFcn",@searchlhs);

    すべての組み込み探索方法のリストを含む詳細については、patternsearch 関数リファレンス ページと、オプション リファレンスの 探索オプション セクションを参照してください。

独自の探索方法を記述できます。探索機能の構造 で説明されている構文を使用します。パターン探索で探索方法を使用するには、その関数ハンドルを カスタム 関数 (SearchFcn) オプションとして指定します。

組み込み探索タイプ

  • ポーリング方法 — "classic" アルゴリズムでは、任意のポーリング方法を探索アルゴリズムとして使用できます。patternsearch は、探索として 1 つのポーリング ステップを実行します。このタイプの探索が効果的であるためには、探索タイプがアンケートタイプと異なる必要があります。(patternsearch は、選択された探索方法がアンケートタイプと同じ場合、探索を行いません。)したがって、MADS 探索を GSS または GPS ポーリングとともに使用するか、GSS または GPS 探索を MADS ポーリングとともに使用します。

    メモ

    Algorithm オプションが "classic" の場合にのみ、ポーリング方式を探索方法として使用できます。

  • fminsearch は Nelder-Mead とも呼ばれ、fminsearch は制約のない問題にのみ使用されます。fminsearch は自然な停止基準まで実行され、1 ステップだけ実行することはありません。したがって、fminsearch は 1 回の反復にのみ使用します。これは既定の設定です。設定を変更するには、探索オプション を参照してください。

  • gaga は自然な停止基準に従って実行されます。1 ステップだけ実行するのではなく、したがって、ga は 1 回の反復にのみ使用します。これは既定の設定です。設定を変更するには、探索オプション を参照してください。

  • ラテンハイパーキューブ探索 — 探索オプション で説明されています。デフォルトでは、15 個の n ポイントを探索します。ここで、n は変数の数であり、最初の反復中にのみ探索されます。設定を変更するには、探索オプション を参照してください。

  • "rbfsurrogate"探索オプション で説明されているように、surrogateopt サロゲート (サロゲート最適化アルゴリズム を参照) に似たラジアル基底関数サロゲートを使用して探索します。この探索は関数評価の回数を減らすことができますが、比較的時間がかかるため、時間のかかる目的関数に最適です。

探索を使用する場合

探索方法を使用する主な理由は 2 つあります。

速度向上のための探索方法

通常、探索方法が最適化を高速化するかどうかは事前にわかりません。そのため、次の場合には探索方法を試してください。

  • 類似の問題、または異なるパラメーターを持つ同じ問題に対して繰り返し最適化を実行しています。

  • さまざまな探索方法を試して、より短い解決時間を見つけることができます。

探索によって最適化が必ずしも高速化されるわけではありません。それが当てはまる例については、探索とポーリング を参照してください。

より良い解決策のための探索方法

探索メソッドはポーリングメソッドの前に実行されるため、探索を使用することは最適化のために別の開始点を選択することと同じになります。このコメントは、Nelder-Mead、ga、およびラテンハイパーキューブ探索メソッドに当てはまります。これらのメソッドはすべて、デフォルトで最適化の開始時に 1 回実行されます。ga およびラテンハイパーキューブ探索は確率的であり、複数の 引き込み領域 を探索できます。

参考

トピック