微分進化 (DE) 法によって、境界制約、非線形等式制約、非線形不等式制約を持つ大域的最適化方程式を解きます。


icon

入力/出力

  • cfxdt.png 関数データ

    関数データは実行時にユーザ定義関数で必要なスタティックデータを含みます。

  • csvrn.png 目的および制約関数

    目的および制約関数は、非線形関数、非線形等式制約関数、非線形不等式制約関数をそれぞれ独立した出力として実装するVIへのリファレンスです。リファレンスVIでは、目的関数の出力は空であってはなりませんが、制約関数は任意で使用します。したがって、等式制約出力、不等式制約出力、またはそのどちらかは空にできます。

    このVIは、labview\vi.lib\gmath\GlobalOptimization.llb\Global Optimization_Objective Function.vitにあるVIテンプレートを元に作成できます。

  • c2ddbl.png 初期パラメータ

    初期パラメータは、最適化プロセスを開始する初期パラメータです。初期パラメータは、開始状態が空の場合に使用されます。初期パラメータの各行は、1セットのパラメータです。初期パラメータの列数は境界最小最大の長さと等しくなければなりません。

    初期パラメータの行数が母集団サイズより小さい場合は、残りのパラメータセットが初期化されます。初期パラメータの行数が母集団サイズより大きい場合は、追加パラメータセットが無視されます。

  • ccclst.png 境界

    境界は、最適化するパラメータの上限および下限値を含むクラスタです。

  • c1ddbl.png 最小

    最小は、最適化するパラメータの最小許可値です。最小は空白にできません。最小の長さは、最大の長さと等しくなければなりません。最小は、特殊な値 (Inf–InfNaNなど) を受け入れません。

  • c1ddbl.png 最大

    最大は、最適化されるパラメータの最大許可値をです。最大は空白にできません。最大の長さは、最小の長さと等しくなければなりません。最大は、特殊な値 (Inf–InfNaNなど) を受け入れません。

  • ccclst.png 開始状態

    開始状態は、母集団の初期値とパレト指数です。開始状態は、通常は前回の最適化の終了状態で、最適化のウォームスタートを許可します。開始状態に値がある場合、初期パラメータは無視されます。

  • c1dcclst.png 母集団

    母集団には、パラメータ値、目的関数、等式制約、不等式制約、基準指数などのパラメータのセットが含まれます。

  • c1ddbl.png パラメータ

    パラメータには、候補パラメータの値が含まれます。

  • c1ddbl.png 目的関数

  • c1ddbl.png 等式制約

  • c1ddbl.png 不等式制約

  • c1di32.png パレト指数

    パレト指数は、パラメータ全体から特定のパラメータを選択する指数です。

  • cerrcodeclst.png エラー入力 (エラーなし)

    エラー入力は、このノードを実行する前に発生したエラーの状態を示します。この入力は、標準エラー入力として機能します。

  • cnclst.png DE設定

    DE設定は、微分進化法だけに必要な一連の設定です。

  • ci32.png 母集団サイズ

    母集団サイズは、最適化プロセスの各ループ反復で計算される、パラメータ候補のセットの数です。このサイズは、最適化プロセスの各ループ反復での目的関数の呼び出し回数を示します。母集団サイズが大きいほど、最適化の結果が良好になり、実行時間が長くなります。デフォルトは10です。

  • cdbl.png スケール係数

    スケール係数は、変異パラメータの生成に使用される多様性係数です。スケール係数を大きな値に設定すると、変異パラメータがより多様化します。デフォルトは0.9です。

  • cdbl.png 交差確率

    交叉確率は、変異パラメータから試行パラメータが継承される確率です。交叉確率の値が大きいほど、変異パラメータが受け入れられる確率が高くなります。デフォルトは0.95です。

  • cu16.png 境界マッピング手法

    境界マッピング手法は、試行パラメータを境界にマッピングする方法です。

    0なし
    1境界と値の間のランダム (デフォルト)
    2再度初期化
  • cu16.png 変異手法

    変異手法は、変異パラメータの生成方法です。

    0ランダム (デフォルト)
    1いずれか一方
    2最適
    3target-to-best
  • cu16.png 交叉手法

    交叉手法は、候補パラメータと変異パラメータを交叉する方法です。

    0均一 (デフォルト)
    1指数
  • cnclst.png 停止条件

    停止条件は、最適化プロセスを終了するための条件群です。

  • ci32.png 最大反復

    最大反復は、最適化プロセスのループ反復の最大数です。ループの反復数が最大反復を超えると、最適化プロセスは終了します。デフォルトは50です。

  • ci32.png 最大関数呼び出し

    最大関数呼び出しは、最適化プロセスの終了までに実行可能な目的関数の最大呼び出し回数です。デフォルトは-1です。

    -1は、最適化プロジェクトが、目的関数の呼び出し数に関係なく、終了しないことを示します。目的関数の実際の呼び出し回数は、母集団サイズ * (最大反復 + 1)という式で計算できます。

  • cdbl.png 最大時間 (秒)

    最大時間 (秒) は最適化処理の開始および終了間、LabVIEWが許可する最大時間です。デフォルトは -1 です。-1 は、最適化プロセスがタイムアウトにならないことを示します。

  • ii32.png 関数呼び出し回数

    関数呼び出し回数は、最適化のプロセス中に目的関数が呼び出す回数です。

    最大関数呼び出し-1の場合、関数呼び出し回数母集団サイズ * (最大反復 + 1)で計算されます。

  • i1ddbl.png 最小

    最小は、考えられるすべての最小値の中の大域的最小値です。

  • i1ddbl.png F(最小)

    F(最小) は、目的関数の最小値における関数値です。

  • icclst.png 終了状態

    終了状態は、最適化プロセス終了時の母集団の最終値とパレト指数です。

  • i1dcclst.png 母集団

    母集団には、最適化プロセス終了時にパラメータ値、目的関数、等式制約、不等式制約、基準指数などのパラメータのセットが入ります。

  • i1ddbl.png パラメータ

    パラメータには、最適化プロジェクト終了時の候補パラメータの値が含まれます。

  • i1ddbl.png 目的関数

    目的関数には、パラメータの値における目的関数の値が含まれます。

  • i1ddbl.png 等式制約

    等式制約には、パラメータの値における等式制約の値が含まれます。

  • i1ddbl.png 不等式制約

    不等式制約には、パラメータの値における不等式制約の値が含まれます。

  • i1di32.png パレト指数

    パレト指数は、パラメータ全体から特定のパラメータを選択する指数です。

  • ierrcodeclst.png エラー出力

    エラー出力には、エラー情報が含まれます。この出力は、標準エラー出力として機能します。

  • このVIは、大域的最適化方程式を解くために、以下の制約のもとでf(x)が最小値となるxを決定します。

    境界制約最小x最大
    等式制約g(x) = 0
    不等式制約h(x) ≤ 0

    xは最適化するパラメータのセットです。f(x)は、最小化する目的関数のセットです。等式制約と不等式制約は、この問題では任意で追加します。

    微分進化 (DE) 法は、大域的最適化問題を解くための1つの方法です。候補パラメータを繰り返し変異させ、改善することで、実際の大域的最適値の近似値を求めます。

    メモ DE法では、必ず大域的最適値が見つかるとは限りません。DEの設定と問題自体の選択が適切であれば、最良のパラメータが返されます。

    目的関数の評価に時間がかかる場合、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