Main Content

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

ソルバーオブジェクトの作成

ソルバー オブジェクトとは何ですか?

ソルバー オブジェクトには、最適化のグローバル部分に関する設定が含まれます。

設定する必要はありません。次のようにデフォルト設定で gs という名前の GlobalSearch オブジェクトを作成します。

gs = GlobalSearch;

同様に、次のようにデフォルト設定で ms という名前の MultiStart オブジェクトを作成します。

ms = MultiStart;

ソルバーオブジェクトのプロパティ(グローバルオプション)

グローバル オプションは、GlobalSearch または MultiStart オブジェクトのプロパティです。

GlobalSearch と MultiStart の両方のプロパティ

プロパティ名意味
Display反復表示の詳細レベル。表示しない場合は 'off' に設定し、実行終了時のレポートの場合は 'final' (デフォルト) に設定し、ソルバーの進行中にレポートする場合は 'iter' に設定します。詳細と例は、反復表示 を参照してください。
FunctionToleranceソルバーは、FunctionTolerance 以内の目的関数の値が同一(異なるものではない)であるとみなします。既定の設定: 1e-6。ソルバーは、ソリューションが FunctionToleranceXTolerance の両方の許容値を満たす場合にソリューションをグループ化します。
XToleranceソルバーは、互いに XTolerance 距離以内の解を同一(異なるものではない)とみなします。既定の設定: 1e-6。ソルバーは、ソリューションが FunctionToleranceXTolerance の両方の許容値を満たす場合にソリューションをグループ化します。
MaxTime実行がクロック(プロセッサ秒ではない)で測定された MaxTime 秒を超えると、ソルバーは停止します。既定値: Inf
StartPointsToRun'all' (デフォルト) 開始点を実行するか、'bounds' を満たす点のみを実行するか、'bounds-ineqs' で境界と不等式制約に関して実行可能な点のみを実行するかを選択します。例については、実行可能な開始点のみを使用して最適化するを参照してください。
OutputFcn各ローカル ソルバーの実行後に実行される関数。GlobalSearch および MultiStart の出力関数を参照してください。既定値: []
PlotFcn各ローカル ソルバーの実行後に実行するプロット関数。GlobalSearch と MultiStart のプロット関数を参照してください。既定値: []

GlobalSearch のプロパティ

プロパティ名意味
NumTrialPoints検査する試行ポイントの数。既定値: 1000
BasinRadiusFactor

これらのプロパティの詳細な説明については、GlobalSearch プロパティ を参照してください。

DistanceThresholdFactor
MaxWaitCycle
NumStageOnePoints
PenaltyThresholdFactor

MultiStart のプロパティ

プロパティ名意味
UseParalleltrueMultiStart の場合、ローカル ソルバーの開始点を複数のプロセッサに分散しようとします。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);

関連するトピック