このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。
ソルバーオブジェクトの作成
ソルバー オブジェクトとは何ですか?
ソルバー オブジェクトには、最適化のグローバル部分に関する設定が含まれます。
設定する必要はありません。次のようにデフォルト設定で gs
という名前の GlobalSearch
オブジェクトを作成します。
gs = GlobalSearch;
同様に、次のようにデフォルト設定で ms
という名前の MultiStart
オブジェクトを作成します。
ms = MultiStart;
ソルバーオブジェクトのプロパティ(グローバルオプション)
グローバル オプションは、GlobalSearch
または MultiStart
オブジェクトのプロパティです。
GlobalSearch と MultiStart の両方のプロパティ
プロパティ名 | 意味 |
---|---|
Display | 反復表示の詳細レベル。表示しない場合は 'off' に設定し、実行終了時のレポートの場合は 'final' (デフォルト) に設定し、ソルバーの進行中にレポートする場合は 'iter' に設定します。詳細と例は、反復表示 を参照してください。 |
FunctionTolerance | ソルバーは、FunctionTolerance 以内の目的関数の値が同一(異なるものではない)であるとみなします。既定の設定: 1e-6 。ソルバーは、ソリューションが FunctionTolerance と XTolerance の両方の許容値を満たす場合にソリューションをグループ化します。 |
XTolerance | ソルバーは、互いに XTolerance 距離以内の解を同一(異なるものではない)とみなします。既定の設定: 1e-6 。ソルバーは、ソリューションが FunctionTolerance と XTolerance の両方の許容値を満たす場合にソリューションをグループ化します。 |
MaxTime | 実行がクロック(プロセッサ秒ではない)で測定された MaxTime 秒を超えると、ソルバーは停止します。既定値: Inf |
StartPointsToRun | 'all' (デフォルト) 開始点を実行するか、'bounds' を満たす点のみを実行するか、'bounds-ineqs' で境界と不等式制約に関して実行可能な点のみを実行するかを選択します。例については、実行可能な開始点のみを使用して最適化するを参照してください。 |
OutputFcn | 各ローカル ソルバーの実行後に実行される関数。GlobalSearch および MultiStart の出力関数を参照してください。既定値: [] |
PlotFcn | 各ローカル ソルバーの実行後に実行するプロット関数。GlobalSearch と MultiStart のプロット関数を参照してください。既定値: [] |
GlobalSearch のプロパティ
プロパティ名 | 意味 |
---|---|
NumTrialPoints | 検査する試行ポイントの数。既定値: 1000 |
BasinRadiusFactor | これらのプロパティの詳細な説明については、 |
DistanceThresholdFactor | |
MaxWaitCycle | |
NumStageOnePoints | |
PenaltyThresholdFactor |
MultiStart のプロパティ
プロパティ名 | 意味 |
---|---|
UseParallel | true 、MultiStart の場合、ローカル ソルバーの開始点を複数のプロセッサに分散しようとします。false (デフォルト) に設定して無効にします。詳細については、Global Optimization Toolbox で並列処理を使用する方法 を参照してください。例については、並列マルチスタートを参照してください。 |
デフォルト以外の GlobalSearch オブジェクトの作成
次のような問題を解決したいとします。
ローカル ソリューションが互いに 0.01 以内であり、関数値がデフォルトの
FunctionTolerance
許容値内にある場合は、ローカル ソリューションが同一であると見なします。計算には 2000 秒以上かけないでください。
この問題を解決するには、次のように GlobalSearch
オブジェクト gs
を作成します。
gs = GlobalSearch('XTolerance',0.01,'MaxTime',2000);
デフォルト以外の MultiStart オブジェクトの作成
次のような問題を解決したいとします。
ローカル ソリューションが互いに 0.01 以内であり、関数値がデフォルトの
FunctionTolerance
許容値内にある場合は、ローカル ソリューションは同一であるとみなされます。計算には 2000 秒以上はかかりません。
この問題を解決するには、次のように MultiStart
オブジェクト ms
を作成します。
ms = MultiStart('XTolerance',0.01,'MaxTime',2000);