Simulation¶
作業フォルダーを移動する場合の設定¶
評価計算プログラムの入出力ファイル(Input File, Output File)は[Working Folder]で設定する作業フォルダーに配置します。
[Working Folder]は絶対パスで設定しますので、フォルダーを移動すると、作業フォルダーの設定も変更する必要があります。
[Use Document Folder]をオンにすると、ドキュメントファイル(idiosファイル)のパスを作業フォルダーに設定します。ドキュメントファイルを作業フォルダーに配置することで、フォルダーを移動しても、関連ファイルのパスに不整合が生じません。
入力変数値を Input File に設定する方法¶
入力変数を Input File にマッピングすることで、Design Varialbe の値をファイルに反映します。
マッピングの方法は、Location と Replace を使用できます。
入力変数は、Input File に設定したファイルをテンプレートとして利用し、評価計算を実行する作業フォルダーに入力値を反映したファイルを作成します。
Location¶
Input File の行番号と、開始位置、長さを設定して、値を設定します。
入力ファイルの行数や記録する位置が変化しない場合に利用できます。
Replase¶
Input File 内の文字列を変数値で置換します。
出現位置が固定できないフォーマットで利用できます。複数個所を一括で変換する場合にも便利です。
変数値のフォーマット¶
[fmt]で出力する値のフォーマットを制御できます。
Location/Replace で設定するのは、出力値を置換する文字列です。値をフォーマットすることで、文字列の長さや値の精度を制御できます。
フォーマットは、以下の書式で設定します。デフォルトは、"%g" です。
%[flags][width][.precision]conversion
書式 | 説明 |
---|---|
flags | 書式を設定する文字を設定します(オプション) |
+ | 常に符号が含まれます |
0 | ゼロが追加されます |
width | 最小文字数を指定します(オプション) |
.precision | 変換が'e', 'E', 'f'の浮動小数点の変換は、基数点以下の桁数を、'g', 'G'の場合は、四捨五入処理後の結果として得られる絶対値の合計桁数を設定します(オプション) |
conversion | 変換を設定します(必須) |
e, E | 浮動小数点表示形式の10進数として書式設定されます |
f | 浮動小数点10進数として書式設定されます |
g, G | 四捨五入処理後の精度および値に応じて浮動小数点表示形式または10進数書式を使用して書式設定されます デフォルトの"%g"は6有効桁です。指数が < −4 または ≥ 精度(=6) の場合は指数表記となります |
Format | 数値 | 出力 |
---|---|---|
%+10.2f | 1234.567 | "+1234.57" |
%+010.2f | -1234.567 | "-001234.57" |
%8.2f | 123.4 | " 123.40" |
%10.2f | 1234567.89 | "1234567.89" |
%10.2f | 123456789.12 | "123456789.12" |
%.0f | 1234 | "1234" |
%.3e | 1234.5 | "1.234e+03" |
%.5G | 0.012345 | "0.012345" |
%.5G | 0.000012345 | "1.2345E-05" |
%g | 12345.67 | "12345.7" |
%g | 1234567.0 | "1.23457e+06" |
%g | 0.001234567 | "0.00123457" |
出力変数値を Output File から取得する方法¶
出力変数を Output File にマッピングすることで、ファイルから Objective や Constraint の値を取得します。
マッピングの方法は、Location と Anchor を使用できます。
出力変数は、Output File に設定したファイルをテンプレートとして、評価計算を実行する作業フォルダーの出力ファイルから値を取得します。
Location¶
Output File の行番号と、開始位置、長さを設定して、値を設定します。
出力ファイルの行数や記録する位置が変化しない場合に利用できます。
Anchor¶
Output File から文字列を検索し、それ以降の後方文字列から値を取得します。
文字列検索は出現数と検索方向を指定できます。また、後方文字列はセパレータと位置を指定できますので、CSVファイル形式のデータからも値を取得できます。
評価プログラムへの引数¶
[Executable]に設定した評価プログラムがバッチファイル(拡張子 bat)または PowerShellスクリプト(拡張子 ps1)の場合は、プログラムへの引数に設計変数が設定されます。
例えば、設計変数 d1, d2 は以下の形式で引数に設定されます。
executable.bat /d1 1.1 /d2 2.2
executable.ps1 -d1 1.1 -d2 2.2
Note
プログラム引数を利用すると、[Input File]を介さずに設計変数をプログラムへ渡せます。
サンプルコード¶
評価計算で複数のプログラムを実行する必要がある場合などでは、バッチファイルや PowerShell スクリプトを利用すると便利です。以下のサンプルコードを参考にしてください。
引数で評価プログラムを実行する(PowerShell スクリプト)¶
PowerShell スクリプトで引数を取得し、評価プログラムに引数を設定して実行します。
- 評価プログラムへの引数を PowerShell スクリプトの引数で取得します。
- 評価プログラムのパスを作成します。
- 評価プログラムの出力ファイルがある場合は、削除します。
- 評価プログラムに引数を設定してい実行します。
- 出力ファイルの存在を確認します。
Param(
[Parameter(Mandatory = $true)][String] $dir,
[Parameter(Mandatory = $true)][Int] $num_obj,
[Parameter(Mandatory = $true)][Int] $num_des
)
$cur_dir = Get-Location
$exe_path = Join-Path -Path $cur_dir -ChildPath "dtlz2.exe"
$obj_eval = Join-Path -Path $cur_dir -ChildPath "pop_objs_eval.txt"
if (Test-Path -Path $obj_eval) {
Remove-Item -Path $obj_eval -Force
}
& $exe_path $dir $num_obj $num_des
if (-Not (Test-Path -Path $obj_eval)) {
exit 1
}
exit 0
PowerShell の環境設定¶
Windows 環境では、PowerShell はシステムに標準搭載されていますが、Linux や macOS でも利用できる新しい PowerShell は個別にインストールできます。
複数バージョンの PowerShell がインストールされている場合は、使用するプログラムを[Edit]>[Preferences]の[PowerShell path]に指定します。
PowerShell 実行ポリシーの確認と設定¶
[Executable]で PowerShell スクリプトを使用する場合は、PowerShell スクリプトが実行できるように Windows で実行ポリシーを設定します。
以下のコマンドで現在の設定を確認します。
PowerShell スクリプトを実行するためには、いづれかのスコープに RemoteSigned 以上のポリシーが設定さてれている必要があります。
Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine Undefined
ローカルPCで手元にあるスクリプトを実行するには、以下のコマンドで実行ポリシーを設定します。
- ポリシーは RemoteSigned を設定し、ローカルで作成したスクリプト、署名済み外部スクリプトのみを許可します。
- スコープは CurrentUser を指定し、自分だけとします。
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser RemoteSigned
LocalMachine Unrestricted
セキュリティのため、PowerShell 実行ポリシーの緩和は必要最小限に留めることをお勧めします。