オプティマイザのオプション
Optimization ステップ > Configure
Optimization Algorithm ドロップダウンリストで、設定をカスタマイズしたい最適化アルゴリズムを選択します:
Default
With time-delay Code Generation
オンにすると、ファンクションからCコードが生成され、コンパイルされたCコードに対して最適化が行われます。これはファンクションが外部モデルを使用しない場合にのみ機能します。ファンクション内で timeDelay メソッドが使用されている場合は最適化が高速化され、それ以外の場合は一般的に低速化します。
Iterations
最適化実行中に実施する最大の反復回数を入力します。
Multistart
異なる初期値でオプティマイザを実行する回数を入力します。
1より大きい値を設定すると、オプティマイザは複数回実行されます。1回目の最適化は現在のワーキングパラメータセットで開始され、それ以降の最適化はランダムなパラメータ値で開始されます。これはグローバル最適解の探索に使用されます。
Save every nth result
n回目ごとの反復のみを一時パラメータセットとして保存します。一般的な値の範囲は[1, 100]で、デフォルトは1です。
Tolerance
最適化の終了条件です。一般的な値の範囲は1e-9~1e-16です。
この値は、以下のようなケースで最適化を終了させる際に使用されます:
最適化アルゴリズムによるパラメータの変化がこの値よりも小さくなる。
コスト関数の変化がこの値より小さくなる。最適化が収束した。
Finite Difference Factor
外部モデル(FMUなど)の勾配が有限勾配によって計算されます。
Gradient = (f(x+e) - f(x)) / e
(e = Finite Difference Factor * Normalized Parameter Range * 1.5e-8)
モデルの出力が上記のような小さな値で変化しない場合、オプティマイザは最初の反復で停止します。その場合は、Finite Difference Factor を大きくする必要があります。典型的な値は 10, 100, 1000, 10,000,... です。
1.5e-8 は、倍精度浮動小数点数で表示できる最小数の平方根です。モデルが単精度浮動小数点数を使用している場合は、精度の低下を考慮して係数を10,000に設定してください。
Respect Constraints
With time-delay Code Generation
オンにすると、ファンクションからCコードが生成され、コンパイルされたCコードに対して最適化が行われます。これはファンクションが外部モデルを使用しない場合にのみ機能します。ファンクション内で timeDelay メソッドが使用されている場合は最適化が高速化され、それ以外の場合は一般的に低速化します。
Iterations
最適化実行中に実施する最大の反復回数を入力します。
Multistart
異なる初期値でオプティマイザを実行する回数を入力します。
1より大きい値を設定すると、オプティマイザは複数回実行されます。1回目の最適化は現在のワーキングパラメータセットで開始され、それ以降の最適化はランダムなパラメータ値で開始されます。これはグローバル最適解の探索に使用されます。
Save every nth result
n回目ごとの反復のみを一時パラメータセットとして保存します。一般的な値の範囲は[1, 100]で、デフォルトは1です。
Tolerance
最適化の終了条件です。一般的な値の範囲は1e-9~1e-16です。
この値は、以下のようなケースで最適化を終了させる際に使用されます:
最適化アルゴリズムによるパラメータの変化がこの値よりも小さくなる。
コスト関数の変化がこの値より小さくなる。最適化が収束した。
Finite Difference Factor
外部モデル(FMUなど)の勾配が有限勾配によって計算されます。
Gradient = (f(x+e) - f(x)) / e
(e = Finite Difference Factor * Normalized Parameter Range * 1.5e-8)
モデルの出力が上記のような小さな値で変化しない場合、オプティマイザは最初の反復で停止します。その場合は、Finite Difference Factor を大きくする必要があります。典型的な値は 10, 100, 1000, 10,000,... です。
1.5e-8 は、倍精度浮動小数点数で表示できる最小数の平方根です。モデルが単精度浮動小数点数を使用している場合は、精度の低下を考慮して係数を10,000に設定してください。
Gradient-free Optimizer
With time-delay Code Generation
オンにすると、ファンクションからCコードが生成され、コンパイルされたCコードに対して最適化が行われます。これはファンクションが外部モデルを使用しない場合にのみ機能します。ファンクション内で timeDelay メソッドが使用されている場合は最適化が高速化され、それ以外の場合は一般的に低速化します。
Iterations
最適化実行中に実施する最大の反復回数を入力します。
Multistart
異なる初期値でオプティマイザを実行する回数を入力します。
1より大きい値を設定すると、オプティマイザは複数回実行されます。1回目の最適化は現在のワーキングパラメータセットで開始され、それ以降の最適化はランダムなパラメータ値で開始されます。これはグローバル最適解の探索に使用されます。
Save every nth result
n回目ごとの反復のみを一時パラメータセットとして保存します。一般的な値の範囲は[1, 100]で、デフォルトは1です。
Tolerance
最適化の終了条件です。一般的な値の範囲は1e-9~1e-16です。
この値は、以下のようなケースで最適化を終了させる際に使用されます:
最適化アルゴリズムによるパラメータの変化がこの値よりも小さくなる。
コスト関数の変化がこの値より小さくなる。最適化が収束した。
Surrogate Optimization
With time-delay Code Generation
オンにすると、ファンクションからCコードが生成され、コンパイルされたCコードに対して最適化が行われます。これはファンクションが外部モデルを使用しない場合にのみ機能します。ファンクション内で timeDelay メソッドが使用されている場合は最適化が高速化され、それ以外の場合は一般的に低速化します。
Iterations
最適化実行中に実施する最大の反復回数を入力します。
Multistart
異なる初期値でオプティマイザを実行する回数を入力します。
1より大きい値を設定すると、オプティマイザは複数回実行されます。1回目の最適化は現在のワーキングパラメータセットで開始され、それ以降の最適化はランダムなパラメータ値で開始されます。これはグローバル最適解の探索に使用されます。
Save every nth result
n回目ごとの反復のみを一時パラメータセットとして保存します。一般的な値の範囲は[1, 100]で、デフォルトは1です。
Tolerance
最適化の終了条件です。一般的な値の範囲は1e-9~1e-16です。
この値は、以下のようなケースで最適化を終了させる際に使用されます:
最適化アルゴリズムによるパラメータの変化がこの値よりも小さくなる。
コスト関数の変化がこの値より小さくなる。最適化が収束した。
Min. Surrogate Points
サロゲートモデルは放射状基底関数モデルであり、モデルで使用される基底関数の最小数がここで定義されます。初期モデルは、これらの基底関数の位置において評価されます。
Genetic Algorithm
With time-delay Code Generation
オンにすると、ファンクションからCコードが生成され、コンパイルされたCコードに対して最適化が行われます。これはファンクションが外部モデルを使用しない場合にのみ機能します。ファンクション内で timeDelay メソッドが使用されている場合は最適化が高速化され、それ以外の場合は一般的に低速化します。
Use Vectorized
オンにすると、MOCAファンクションは、1回のベクトル化された呼び出しにおいてすべての候補解を使用して評価されます。このファンクションのメモリ使用量は、評価処理中に母集団の個体数に比例して増加します。
Iterations
最適化実行中に実施する最大の反復回数を入力します。
Multistart
異なる初期値でオプティマイザを実行する回数を入力します。
1より大きい値を設定すると、オプティマイザは複数回実行されます。1回目の最適化は現在のワーキングパラメータセットで開始され、それ以降の最適化はランダムなパラメータ値で開始されます。これはグローバル最適解の探索に使用されます。
Tolerance
最適化の終了条件です。一般的な値の範囲は1e-9~1e-16です。
この値は、以下のようなケースで最適化を終了させる際に使用されます:
最適化アルゴリズムによるパラメータの変化がこの値よりも小さくなる。
コスト関数の変化がこの値より小さくなる。最適化が収束した。
Population Size
最適化処理中に利用できる候補解の数です。母集団サイズを大きくすると、より良い解が得られますが、処理時間が長くなり、メモリ使用量も増えます。この値の一般的な範囲は100~1000です。
Elite Count
変更せずに次の反復に持ち越される良い候補解の数。この数を小さくすると、アルゴリズムの収束速度が遅ります。一般的な値は、全体の母集団サイズの5~20%です。
Crossover Fraction
交叉候補解は、2つの候補を組み合わせることによって生成されます。候補をランダムに変更することで突然変異候補解が作成されますこの交叉率(範囲は0~1)が交叉と突然変異の量を制御します。値を0.8にすると、候補の20%が突然変異を起こし、80%が交叉によって生成されます。一般的な値の範囲は0.5~0.9です。
Simulated Annealing
With time-delay Code Generation
オンにすると、ファンクションからCコードが生成され、コンパイルされたCコードに対して最適化が行われます。これはファンクションが外部モデルを使用しない場合にのみ機能します。ファンクション内で timeDelay メソッドが使用されている場合は最適化が高速化され、それ以外の場合は一般的に低速化します。
Iterations
最適化実行中に実施する最大の反復回数を入力します。
Multistart
異なる初期値でオプティマイザを実行する回数を入力します。
1より大きい値を設定すると、オプティマイザは複数回実行されます。1回目の最適化は現在のワーキングパラメータセットで開始され、それ以降の最適化はランダムなパラメータ値で開始されます。これはグローバル最適解の探索に使用されます。
Save every nth result
n回目ごとの反復のみを一時パラメータセットとして保存します。一般的な値の範囲は[1, 100]で、デフォルトは1です。
Tolerance
最適化の終了条件です。一般的な値の範囲は1e-9~1e-16です。
この値は、以下のようなケースで最適化を終了させる際に使用されます:
最適化アルゴリズムによるパラメータの変化がこの値よりも小さくなる。
コスト関数の変化がこの値より小さくなる。最適化が収束した。
Initial Temperature
この値は、最適化処理において、より悪い解を受け入れる確率を制御します。一般的な値の範囲は50~200です。
初期温度は反復ごとに Initial Temperature * 0.95Iterations だけ減少します。温度が下がるにつれて、より悪い解を受け入れる確率が下がります。
Reannealing Interval
この回数の反復を行った後、温度が上昇します。一般的な値の範囲は50~200です。
Particle Swarm
With time-delay Code Generation
オンにすると、ファンクションからCコードが生成され、コンパイルされたCコードに対して最適化が行われます。これはファンクションが外部モデルを使用しない場合にのみ機能します。ファンクション内で timeDelay メソッドが使用されている場合は最適化が高速化され、それ以外の場合は一般的に低速化します。
Iterations
最適化実行中に実施する最大の反復回数を入力します。
Multistart
異なる初期値でオプティマイザを実行する回数を入力します。
1より大きい値を設定すると、オプティマイザは複数回実行されます。1回目の最適化は現在のワーキングパラメータセットで開始され、それ以降の最適化はランダムなパラメータ値で開始されます。これはグローバル最適解の探索に使用されます。
Save every nth result
n回目ごとの反復のみを一時パラメータセットとして保存します。一般的な値の範囲は[1, 100]で、デフォルトは1です。
Swarm Size
最適化処理中に利用できる候補解の数です。群サイズを大きくすると最適化時間が長くなり、メモリ使用量も増えますが、より良い解が得られる可能性があります。一般的な値の範囲は50~200です。
各最適化アルゴリズムについての説明は、最適化アルゴリズムを参照してください。






