このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。
非一様パターン検索 (NUPS) アルゴリズム
patternsearch
関数の Algorithm
オプションを "nups"
に設定すると、アルゴリズムは、次の変更を加えて 検索と投票 で説明されているように検索およびポーリングの手順を実行します。
投票では、オプション
MeshContractionFactor
、MeshExpansionFactor
、PollMethod
、PollOrderAlgorithm
、UseCompletePoll
、MeshRotate
の設定は無視されます。メッシュ拡張係数は反復回数に依存します (このリストの後半の「十分な減少」の箇条書きで説明されているとおり)。メッシュ収縮係数は常に 1/2 です。"nups"
アルゴリズムは 16 回の反復サイクルで動作します。各サイクルでは、アルゴリズムはサイクルの最初の部分に GPS (一般化パターン検索) を使用し、残りの部分に MADS (メッシュ適応直接検索) を使用します。各ポーリング方法は、1 サイクルで最大 14 回の反復まで使用できます。将来のサイクルにおけるポーリング方法に使用される反復回数は、現在のサイクルにおける関数評価ごとの目的関数の改善によって決まります。問題に線形制約がない場合、または現在のポイントが線形制約境界上にない場合は、各ポーリングで N+1 個のポイントが使用されます。N 座標の方向と点 [1,1,1,…,1] を交互に使用します。次のポーリングでは、これらの方向の負の値を使用します。MADS は、均一にランダムに選択された直交方向のセットを持つこれらの同じ投票ポイントを使用します。(問題に線形等式制約がある場合、MADS は適用されません。)
問題に線形制約があり、現在のポイントが制約境界にある場合、ポーリングでは線形制約からの接線方向と、ポーリング内の残りの次元からの適切な方向が使用されます。ここで、適切な方向とは、現在の時点から実行可能な方向のことです。
問題に線形制約がある場合、アルゴリズムは必要に応じて直線探索を使用し、ポーリング内のすべてのポイントが制約と境界に関して実行可能であることを確認します。対照的に、潜在的な投票ポイントが
"classic"
アルゴリズムで実行不可能な場合、そのポイントは投票から単純に除外されます。したがって、"nups"
アルゴリズムはより多くの投票ポイントを使用できるため、より効果的な投票が実現される可能性があります。十分な減少とは、投票によって現在の値よりも十分に低い目的関数値を持つポイントが見つかることを意味します。
Fc
を現在のポイントでの目的関数値とし、Fn
を次の提案ポイントでの目的関数値とします。値Fn
が十分な減少条件を満たすのは次の場合です。(
Fc
–Fn
) / max(1,abs(Fc)
) ≥ ImprovementTolerance.提案されたポイントが十分な減少条件を満たすまで、またはすべてのポイントが検査されるまで、投票は続行されます。次に、アルゴリズムは次のリストの最初の適用可能なアクションを実行します。
ポーリングで現在の値を改善するポイントが見つからない場合、ポーリングは失敗したとみなされ、メッシュ サイズは 1/2 に減少します。
ポーリングによって十分な減少条件を満たすポイントが見つかった場合、ポーリングは成功したとみなされ、メッシュ サイズは 2 倍に増加します。
3 回の連続した反復で、ポーリングによって現在の値を改善するポイントが見つかったが、十分な減少条件を満たすには不十分な場合、3 回目のポーリングは成功したとみなされ、メッシュ サイズは 3/2 倍に増加します。
ポーリングによって現在の値を改善するポイントが見つかり、現在のメッシュ サイズがしきい値より大きい場合、ポーリングは成功したとみなされ、メッシュ サイズは 2 倍に増加します。
それ以外の場合、ポーリングは成功したとみなされますが、メッシュ サイズは変更されません。
十分な減少条件の効果は、ステップによって目的関数の値がわずかに改善されるときにメッシュ サイズを小さく保つことです。この動作により、アルゴリズムが目的関数の値の小さな変化に過剰反応するのを防ぎ、収束が速くなる可能性があります。
投票方法を検索方法として使用することはできません。
Algorithm
オプションを "nups-gps"
に設定すると、アルゴリズムは "nups"
と同じですが、すべてのポーリングを GPS を使用して実行します。Algorithm
オプションを "nups-mads"
に設定すると、アルゴリズムは "nups"
と同じですが、OrthoMADS を使用してすべてのポーリングを実行します。
patternsearch
は、パターン探索のための非線形制約ソルバーアルゴリズム で説明されているように、すべてのアルゴリズムに対して非線形制約を同じ方法で処理します。
UseParallel
が true
の場合、patternsearch
はすべてのアルゴリズムに対して完全なポーリングを実行します。