IvoryOSインターフェース

このページでは,物質Xの相図を作成する想定でIvoryOSインターフェースを使ったNIMOの使い方を説明します.

物質Xは以下のような相図を持ちます.

  • 三重点 (0 ℃, 5000 Pa) を通る直線より下の領域は気体

  • 直線よりも上の領域で0℃未満では固体,0℃以上では液体


_images/phase.png

インストール

IvoryOSを使う場合は追加のインストールが必要です.

pip install ivoryos

動作確認はNIMO v2.1.2,IvoryOS v1.5.13で行いました.

インターフェースの起動

エディターを起動して,以下のPythonプログラムを入力し main.py という名前で保存してください.

import ivoryos


# SDLクラスの定義
class SampleSDL:
    def __init__(self):
        # 相図パラメータの定義
        self.t_triple = 0
        self.p_triple = 5000
        self.slope = 50

    def get_phase(self, temperature: float, pressure: float) -> int:
        """
        指定された温度・圧力に対応する相を求める
        0: 固相, 1: 液相, 2: 気相
        """
        boundary = self.slope * (temperature - self.t_triple) + self.p_triple

        if pressure < boundary:
            return 2
        else:
            if temperature < self.t_triple:
                return 0
            else:
                return 1


if __name__ == "__main__":
    # SDLクラスインスタンスの作成
    sdl = SampleSDL()

    # IvoryOSインターフェースの起動
    ivoryos.run(__name__, port=8888)

保存したPythonプログラムを実行して,IvoryOSインターフェースを起動してください.

python main.py

ワークフローの設計

これを実行したまま,Webブラウザーで http://127.0.0.1:8888/ にアクセスすると,以下のようなログイン画面が開きます.


_images/screenshot01.png

Create a new account をクリックして,ユーザー名とパスワードを設定してください.


_images/screenshot02.png

設定したユーザー名とパスワードを入力してログインしてください.


_images/screenshot03.png

ログインすると,次のようなメニュー画面が開きます.


_images/screenshot04.png

右上の Edit designs をクリックすると次のようなワークフロー編集画面が開きます.


_images/screenshot05.png

Instruments の下の Sdl をクリックして,次のように入力します.

  • Temperature: #temperature

  • Pressure: #pressure

  • Run once per batch: チェックしない

  • Save value as: objective


_images/screenshot06.png

Add ボタンをクリックすると,ブロックが追加されます.


_images/screenshot07.png

このようにブロックを組み合わせることでワークフローを設計できます.

実験計画の実行

ワークフローの設計が終わったら,Prepare Run ボタンをクリックして実験計画の設定画面を開きます. 以下のように数値を設定してください.

  • Optimizer Strategy: nimo

  • temperature: -50 (Min),150 (Max),10 (Step)

  • pressure: 0 (Min),20000 (Max),1000 (Step)

  • Max Iterations: 40

その他の設定は変更する必要がありません.


_images/screenshot08.png

次に Model Configuration を開いて,次のように設定してください.

  • Surrogate Model: RE

  • Num Samples: 10

  • Acquisition Function: PDC

この設定では最初の10回はランダム探索を行い,その後はPDCアルゴリズムによる探索を行います.


_images/screenshot09.png

実験の実行

Run Optimization ボタンをクリックすると,NIMOによる実験がスタートします.


_images/screenshot10.png

少し待っていると実験が終了します.


_images/screenshot11.png

Optimizer Plot を開き Refresh Plot をクリックすると作成された相図が表示されます.


_images/screenshot12.png

Note

ランダム探索の結果によっては,表示される相図が異なる場合があります.

(発展)予備実験結果の入力

既に予備実験の結果がある場合は,実験計画設定画面の左上にある Data SourceUpload new data を有効にして,予備実験の結果を入力したCSVファイルをアップロードすることができます. CSVの列名はワークフロー設計画面で入力した変数名と一致させる必要があります.

temperature,pressure,objective
-50,0,2
-50,20000,0
150,20000,1

既知の問題点

  • 一度実験を行った画面で再度実験を実行して相図を表示するとIvoryOSが落ちることがあります.IvoryOSを再起動することで問題は解決するようですが,原因は調査中です.