大域的最適化
- 更新日2025-07-30
- 10分で読める
微分進化 (DE) 法によって、境界制約、非線形等式制約、非線形不等式制約を持つ大域的最適化方程式を解きます。

入力/出力
関数データ
—
関数データは実行時にユーザ定義関数で必要なスタティックデータを含みます。
目的および制約関数
—
目的および制約関数は、非線形関数、非線形等式制約関数、非線形不等式制約関数をそれぞれ独立した出力として実装するVIへのリファレンスです。リファレンスVIでは、目的関数の出力は空であってはなりませんが、制約関数は任意で使用します。したがって、等式制約出力、不等式制約出力、またはそのどちらかは空にできます。 このVIは、labview\vi.lib\gmath\GlobalOptimization.llb\Global Optimization_Objective Function.vitにあるVIテンプレートを元に作成できます。
初期パラメータ
—
初期パラメータは、最適化プロセスを開始する初期パラメータです。初期パラメータは、開始状態が空の場合に使用されます。初期パラメータの各行は、1セットのパラメータです。初期パラメータの列数は境界の最小と最大の長さと等しくなければなりません。 初期パラメータの行数が母集団サイズより小さい場合は、残りのパラメータセットが初期化されます。初期パラメータの行数が母集団サイズより大きい場合は、追加パラメータセットが無視されます。
境界
—
境界は、最適化するパラメータの上限および下限値を含むクラスタです。
開始状態
—
開始状態は、母集団の初期値とパレト指数です。開始状態は、通常は前回の最適化の終了状態で、最適化のウォームスタートを許可します。開始状態に値がある場合、初期パラメータは無視されます。
エラー入力 (エラーなし)
—
エラー入力は、このノードを実行する前に発生したエラーの状態を示します。この入力は、標準エラー入力として機能します。
DE設定
—
DE設定は、微分進化法だけに必要な一連の設定です。
停止条件
—
停止条件は、最適化プロセスを終了するための条件群です。
関数呼び出し回数
—
関数呼び出し回数は、最適化のプロセス中に目的関数が呼び出す回数です。 最大関数呼び出しが-1の場合、関数呼び出し回数は母集団サイズ * (最大反復 + 1)で計算されます。
最小
—
最小は、考えられるすべての最小値の中の大域的最小値です。
F(最小)
—
F(最小) は、目的関数の最小値における関数値です。
終了状態
—
終了状態は、最適化プロセス終了時の母集団の最終値とパレト指数です。
エラー出力
—
エラー出力には、エラー情報が含まれます。この出力は、標準エラー出力として機能します。 |
このVIは、大域的最適化方程式を解くために、以下の制約のもとでf(x)が最小値となるxを決定します。
| 境界制約 | 最小 ≤ x ≤ 最大 |
| 等式制約 | g(x) = 0 |
| 不等式制約 | h(x) ≤ 0 |
xは最適化するパラメータのセットです。f(x)は、最小化する目的関数のセットです。等式制約と不等式制約は、この問題では任意で追加します。
微分進化 (DE) 法は、大域的最適化問題を解くための1つの方法です。候補パラメータを繰り返し変異させ、改善することで、実際の大域的最適値の近似値を求めます。
目的関数の評価に時間がかかる場合、DE法を使用すると母集団の大きさによっては最適化プロセスの各ループ反復で目的関数を数回呼び出す必要があります。このVIは、Forループで並列ループ反復で目的関数を呼び出せるため、マルチプロセッサ使用時には有益です。並列ループ反復の利点を活用するためには、以下を行う必要があります。
- 目的関数を実装するVIを、クローンを共有する再入可能VIに変更する。
- 以下の図で示すように、オプション0x40でVIへのリファレンスを開く。

以下の図は、このVIでグローバル最適化の式の解が求められる様子を示しています。

サンプルプログラム
LabVIEWに含まれている以下のサンプルファイルを参照してください。
- labview\examples\Mathematics\Optimization\Find Global Min on Surface.vi
- labview\examples\Mathematics\Optimization\Two Circles Optimization.vi
関数データ
—
目的および制約関数
—
初期パラメータ
—
境界
—
最小
—
母集団
—
パレト指数
—
エラー入力 (エラーなし)
—
DE設定
—
母集団サイズ
—
スケール係数
—
境界マッピング手法
—
関数呼び出し回数
—
最小
—
終了状態
—
母集団
—
パレト指数
—
エラー出力
—