このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。
GlobalSearch および MultiStart プロパティ (オプション)
プロパティの設定方法
デフォルト以外のプロパティを持つ GlobalSearch
または MultiStart
オブジェクトを作成するには、名前と値のペアを使用します。たとえば、反復表示を持ち、境界と不等式に関して実行可能な点からのみ実行されるGlobalSearch
オブジェクトを作成するには、次のように入力します。
gs = GlobalSearch("Display","iter", ... "StartPointsToRun","bounds-ineqs");
既存の GlobalSearch
または MultiStart
オブジェクトのプロパティを設定するには、ドット表記を使用します。たとえば、ms
がMultiStart
オブジェクトで、Display
プロパティを"iter"
に設定する場合は、次のように入力します。
ms.Display = "iter";
既存のオブジェクトの複数のプロパティを同時に設定するには、名前と値の引数を持つコンストラクター (GlobalSearch
または MultiStart
) を使用します。たとえば、Display
プロパティを"iter"
に設定し、MaxTime
プロパティを100
に設定するには、次のように入力します。
ms = MultiStart(ms,Display="iter",MaxTime=100);
プロパティの設定の詳細については、グローバルオプションの変更 を参照してください。
両方のオブジェクトのプロパティ
GlobalSearch
オブジェクトから MultiStart
オブジェクトを作成でき、その逆も可能です。
既存のオブジェクトから新しいオブジェクトを作成するための構文は次のとおりです。
ms = MultiStart(gs); or gs = GlobalSearch(ms);
新しいオブジェクトには、古いオブジェクトに適用されるプロパティが含まれます。このセクションでは、共有プロパティについて説明します。
表示
Display
プロパティの値は次のとおりです。
"final"
(デフォルト) — 最後のソルバー実行後の要約結果をコマンド ラインに出力します。"off"
— コマンドラインに出力はありません。"iter"
— 各ローカル ソルバーの実行後にコマンド ラインに要約結果を表示します。
FunctionTolerance
FunctionTolerance
プロパティは、ローカル ソリューションのベクトルを作成するためにソルバーが 2 つの目的関数の値を同一と見なすために、それらの値がどれだけ近い必要があるかを表します。すべてのローカル ソルバー実行の結果を取得するには、FunctionTolerance
を 0
に設定します。結果を少なくするには、FunctionTolerance
を大きい値に設定します。
ソルバーは、2 つのソリューションが互いに XTolerance
距離以内であり、目的関数の値が互いに FunctionTolerance
以内である場合に、それらのソリューションを同一と見なします。両方の条件が満たされない場合、ソルバーはソリューションを別個のものとして報告します。許容範囲は絶対的なものではなく、相対的なものです。詳細については、GlobalSearch
については fmincon の実行時 を、MultiStart
については GlobalOptimSolution オブジェクトを作成する を参照してください。
最大時間
MaxTime
プロパティは、ソルバーが実行を開始してからの秒数の許容範囲を表します。ソルバーは、実行開始から MaxTime
秒が経過すると停止します。時間はプロセッサ サイクルではなく、壁時計 を意味します。既定値は Inf
です。
出力関数
OutputFcn
プロパティは、各ローカル ソルバーの実行が完了した後に、グローバル ソルバーに 1 つ以上の出力関数を実行するように指示します。出力関数は、グローバル ソルバーの開始時と終了時にも実行されます。適切な構文で記述された出力関数へのハンドルを含めるか、そのようなハンドルのセル配列を含めます。デフォルトは空のエントリ ([]
) です。見つかったすべてのローカルソリューションを収集する組み込み出力関数が 1 つあります。これを使用するには、ソルバーパラメータ OutputFcn=@savelocalsolutions
を設定します。GlobalSearch および MultiStart の出力関数を参照してください。
出力関数の構文は次のとおりです。
stop = outFcn(optimValues,state)
stop
はブール値です。true
の場合、アルゴリズムは停止します。false
の場合、アルゴリズムは続行されます。メモ
ローカル ソルバーには出力関数を設定できます。ローカル ソルバー出力関数によってローカル ソルバーの実行が停止しても、グローバル ソルバーは必ずしも停止するわけではありません。この場合にグローバル ソルバーを停止したい場合は、
optimValues.localsolution.exitflag=-1
のときにグローバル ソルバー出力関数を停止します。optimValues
は、 optimValues 構造 で説明される構造体です。state
はグローバル アルゴリズムの現在の状態です。"init"
— グローバル ソルバーがローカル ソルバーを呼び出していません。optimValues
構造のフィールドは空ですが、localrunindex
(0
) と、目的関数と制約関数の評価回数を含むfunccount
は除きます。"iter"
— グローバル ソルバーは、ローカル ソルバーの実行ごとに出力関数を呼び出します。"done"
— グローバル ソルバーがローカル ソルバーの呼び出しを終了しました。optimValues
内のフィールドは通常、state
="iter"
を使用した最終出力関数呼び出しの値と同じになります。ただし、GlobalSearch
アルゴリズムがローカル ソルバーの一部ではない関数評価を実行した可能性があるため、GlobalSearch
のoptimValues.funccount
の値は、"iter"
を使用した最後の関数呼び出しの値よりも大きくなる可能性があります。詳細については、グローバルサーチアルゴリズムを参照してください。
出力関数の使用例については、カスタム GlobalSearch 出力関数 を参照してください。
メモ
MultiStart
の UseParallel
オプションが true
に設定され、開いている parpool
がある場合、出力関数とプロット関数は実行されません。
optimValues 構造. optimValues
構造には次のフィールドが含まれています。
bestx
— 現在のベストポイントbestfval
—bestx
での目的関数値constrviolation
— 最大制約違反。制約違反がない場合はゼロ。funccount
— 関数評価の合計回数localrunindex
— ローカルソルバー実行のインデックスlocalsolution
— ローカル ソルバー呼び出しの出力の一部を含む構造体:X
、Fval
、Exitflag
プロット関数
PlotFcn
プロパティは、各ローカル ソルバーの実行が完了した後に、グローバル ソルバーに 1 つ以上のプロット関数を実行するように指示します。適切な構文で記述されたプロット関数へのハンドルを含めるか、そのようなハンドルのセル配列を含めます。デフォルトは空のエントリ ([]
) です。
プロット関数の構文は出力関数の構文と同じです。詳細については、出力関数 を参照してください。
グローバル ソルバーには、次の 2 つの定義済みプロット関数があります。
@gsplotbestf
は最適な目的関数値をプロットします。@gsplotfunccount
は関数評価の回数をプロットします。
プロット関数の使用例については、MultiStart プロット関数 を参照してください。
複数のプロット関数を指定すると、すべてのプロットが同じウィンドウにサブプロットとして表示されます。任意のサブプロットを右クリックすると、別の図ウィンドウで拡大バージョンが表示されます。
メモ
MultiStart
の UseParallel
オプションが true
に設定され、開いている parpool
がある場合、出力関数とプロット関数は実行されません。
実行開始ポイント
StartPointsToRun
プロパティは、特定の開始ポイントを実行から除外するようにソルバーに指示します。
all
— すべての開始点を受け入れます。bounds
— 境界を満たさない開始点を拒否します。bounds-ineqs
— 境界または不等式制約を満たさない開始点を拒否します。
Xトレランス
XTolerance
プロパティは、ローカル ソリューションのベクトルを作成するためにソルバーが 2 つのポイントを同一と見なすために、それらのポイントがどれだけ近い必要があるかを表します。すべてのローカル ソルバー実行の結果を取得するには、XTolerance
を 0
に設定します。結果を少なくするには、XTolerance
を大きい値に設定します。ソルバーは、ユークリッド距離である norm
を使用して 2 つのポイント間の距離を計算します。
ソルバーは、2 つのソリューションが互いに XTolerance
距離以内であり、目的関数の値が互いに FunctionTolerance
以内である場合に、それらのソリューションを同一と見なします。両方の条件が満たされない場合、ソルバーはソリューションを別個のものとして報告します。許容範囲は絶対的なものではなく、相対的なものです。詳細については、GlobalSearch
については fmincon の実行時 を、MultiStart
については GlobalOptimSolution オブジェクトを作成する を参照してください。
グローバルサーチプロパティ
トライアルポイント数
problem
構造の x0
に加えて検査する潜在的な開始ポイントの数。GlobalSearch
は、複数のテストに合格した潜在的な開始ポイントのみを実行します。詳細については、グローバルサーチアルゴリズムを参照してください。
既定値: 1000
ステージワンポイント数
ステージ 1 のスタート ポイントの数。詳細については、ステージ1スタートポイントを取得して実行 を参照してください。
既定値: 200
最大待機サイクル
アルゴリズム内のいくつかのポイントに現れる正の整数許容値。
MaxWaitCycle
回の連続試行ポイントの観測されたペナルティ関数が少なくともペナルティしきい値である場合は、ペナルティしきい値を上げます (ペナルティしきい値係数 を参照)。MaxWaitCycle
連続する試行ポイントが盆地内にある場合は、その盆地の半径を更新します (流域半径係数 を参照)。
既定値: 20
流域半径係数
連続する開始点が MaxWaitCycle
個盆地内に入ると、盆地の半径は減少します。盆地の半径は1-BasinRadiusFactor
倍に減少します。
既定値: 0.2
距離閾値係数
試行ポイントが既存の吸引域内にあるかどうかを判断するための乗数。詳細については、ステージ2のトライアルポイントを調べてfminconが実行されるかどうかを確認します を参照してください。既定値: 0.75
ペナルティしきい値係数
ペナルティしきい値の増加を決定します。詳細については、「大きなカウンター値への対応」を参照してください。
既定値: 0.2
マルチスタートプロパティ
UseParallel
UseParallel
プロパティは、ソルバーが開始点を複数のプロセッサに分散するかどうかを決定します。
false
(デフォルト) — 並列実行しません。true
— 並列で実行します。
ソルバーを並列実行するには、parpool
を使用して並列環境を設定する必要があります。詳細については、Global Optimization Toolbox で並列処理を使用する方法 を参照してください。