コンテンツにスキップ

RUN

最適化の実行と評価方法

OASIS AI のアルゴリズムは確率的であるため、最適化を複数回実行し総合的に結果を検証することをお勧めしています。

以下の例のように OASIS AI は実行毎に結果が異なります。複数回の最適化を実行することで統計的に有意な結果を評価できます。 ランダムシードについても併せてご参照ください。

oasis_runs

既知の設計データから最適化の実行

計算済みのCAEデータや実験データなどの既知の設計データを使用して効率的に最適設計を探査できます。

Import point listで設計データを OASIS AI にインポートし、最適化を実行します。

  1. 設計データを用意します

    • Excel(xlsx, xls), csv, txtファイル形式でインポートできます
    • インポートするデータにはモデルに設定した変数(設計、目的、制約)を全て格納します
    • 先頭行にモデルと同じ変数名を記述します

    import_run_01

  2. 最適化モデルを作成します

    • 設計データのデータ名と変数名が一致している必要があります
  3. File > Import point list でデザインデータをインポートします

    • VISUALIZE にインポートしたデータが表示されます

    import_run_02

  4. 最適化を実行します

    • Objective Iteration Count をインポートしたデザイン数以上の値を入力します
    • Continue Optimization をオンにします
    • Optimize で最適化を継続実行します

    import_run_03 import_run_04

ランダムシードと使い方

OASIS AI のアルゴリズムは確率的であるため、実行ごとに結果が異なります。

  • デフォルトで最適化の実行毎にランダムシードが変わります
  • 統計的に有意な結果を得るために、異なるランダムシードで最適化を複数回実行し、結果を検証してください

Random Seed(ランダムシード)に値を指定すると同じ結果を再現できます。

  • 任意の値をランダム シードとして定義できます
  • 同じランダムシードで実行すると同じ結果を再現できます

random_seed

検証ツールの使い方

DESIGN VERIFICATION で設計値を指定して実行できます。 シミュレーションなどのテストに使用できます。

任意の設計値で結果を評価後、 OPTIMIZER の[Continue]で最適化を継続できます。

verification_01 verification_02

  1. DESIGN VERIFICATION を開きます
  2. Value に値を入力します

    • 確認したい設計値を入力します

    verification_03

  3. [Add] で設計値を登録します

    • [View points] で登録した設計値を確認できます
    • 複数設定できます
  4. [Output] を選択します

    • [Evaluate] が有効になります

    verification_04

  5. [Evaluate] でシミュレーションを実行します

  6. VISUALIZE の RESULTS SHEET で値を確認できます

    verification_05

シミュレーションの実行確認

目的関数などの出力変数(Outputs) に “Infinity” と表示される場合は以下が原因です。

  • 出力パラメータが取得できなかった
  • Executable の戻り値が Accepted Exit Codes で指定した値ではなかった(異常終了)

infinity_01

“Infinity”のケースは最適化結果として使用されません。

“Infinity”となった入力変数でシミュレーションを実行し、正常終了するかを確認ください。RESULTS SHEET から再実行し、確認することができます。

  1. バックアップを保存するように設定します
  2. シミュレーションを再実行して、作業フォルダーを確認します

Example

まずは出力ファイル(Output File)が正常に作成されているかを確認することをお勧めします。

infinity_02

再実行と確認手順

  1. Simulation の Executable Configuration で、Backup の Every Point をオンにします

    • バックアップはsim archiveフォルダーに格納されます

    infinity_031

  2. RESULTS SHEET で “Infinity” のケースを選択し、Rerun Selected Pointsで再実行します

    infinity_032

  3. シミュレーションの実行を確認します

    1. 作業フォルダーを確認します

      • sim archive 内の最新のフォルダー内に格納されます
      • [Simulation名][d番号(Point No.-1)]フォルダーを確認します
      • working dir がシミュレーションの作業フォルダーです
      • output フォルダーに Executive Configuration の Output File で指定したファイルが保存されます

      infinity_033

    2. Output Parameter で指定した値が正常に出力されているかを確認します

Note

Backup の Every Point は、シミュレーションのフォルダー内に20MiB以上のファイルが存在すると、メッセージを表示します。 詳細はこちらを参照ください。

Error Log の浮動小数点の警告

最適化の実行中のエラーは Error Log にポップアップされます。

以下のメッセージは IEEE 754 浮動小数点表現に起因する警告です。 最適化の実行には影響しませんのでご安心ください。

The exception was handled by 'com.empowerops.algorithms.OptimizableFunctionsBlackBoxImpl'.

java.lang.Exception: {des_1=0.3, des_2=1.4531700739687605E-18, des_3=0.0, des_4=-0.1, des_5=1.5404189021551612E-31, des_6=0.05000000000000002, des_7=-0.08983502529374213, des_8=-0.1, des_9=-0.1, des_10=-0.03, des_11=0.065, des_12=1.1, des_13=-6.938893903907228E-18, des_14=-0.15, des_15=0.15, des_16=0.1, des_17=-0.1, des_18=0.003156939983991803, des_19=1.804741676596496E-18, des_20=-0.2, des_21=1.3935972011326792E-19, des_22=0.27254059904532013, des_23=-0.1, des_24=0.02515522032659198, des_25=-0.05, des_26=0.04793572400209328, des_27=0.02017501447617029, des_28=-0.03883819653477849, des_29=-0.05} not in [des_1]: { 0.0-0.3 }, [des_2]: { 0.0-0.2 }, [des_3]: { -0.05-0.0 }, [des_4]: { -0.1-0.05 }, [des_5]: { 0.0-0.2 }, [des_6]: { -0.1-0.05 }, [des_7]: { -0.1-0.1 }, [des_8]: { -0.1-0.1 }, [des_9]: { -0.1-0.1 }, [des_10]: { -0.03-0.0 }, [des_11]: { 0.065-0.08 }, [des_12]: { 0.95-1.1 }, [des_13]: { -0.05-0.0 }, [des_14]: { -0.15-0.15 }, [des_15]: { -0.15-0.15 }, [des_16]: { -0.1-0.1 }, [des_17]: { -0.1-0.1 }, [des_18]: { 0.0-0.05 }, [des_19]: { 0.0-0.05 }, [des_20]: { -0.2-0.2 }, [des_21]: { 0.0-0.05 }, [des_22]: { -0.6-0.4 }, [des_23]: { -0.1-0.05 }, [des_24]: { -0.1-0.05 }, [des_25]: { -0.05-0.05 }, [des_26]: { 0.0-0.05 }, [des_27]: { 0.0-0.05 }, [des_28]: { -0.05-0.1 }, [des_29]: { -0.05-0.05 }
    at com.empowerops.common.ControlFlowInterruptedEvent.<init>(ControlFlowInterruptedEvent.kt:16)

infinity_031