5.4 定数クラスParameter
定数はParameter
というクラスで表現されます.具体的にa
という定数を定義するには以下のように記述します.
Parameter a;
複数の定数を一度に定義するには,集合クラスSet
と添字クラスElement
を用います.以下の例では,3個の定数b[1]
, b[2]
, b[3]
を一度に定義しています.
Set S; S = "1 2 3"; Element i(set = S); Parameter b(index = i);
以下の例では,6個の定数c[1, p
, c[1, q]
, c[2, p]
, c[2, q]
, c[3, p]
, c[3, q]
を一度に定義しています.
Set S; Set T; S = "1 2 3"; T = "p, q"; Element i(set = S); Element j(set = T); Parameter c(index = (i, j));
定数の値は=で設定します.定数の値を明示的に指定しない場合は,自動的に0が設定されます.
以下の例では,定数a
に3
を設定しています.
a = 3;
以下の例では定数b[1]
, b[2]
, b[3]
に5
をまとめて設定しています.
b[i] = 5;
個別に設定する場合は,以下のように記述します.
b[1] = 5; b[2] = 5; b[3] = 5;
添字が複数の場合は,まとめて設定する場合と個別に設定する場合の記述が異なります.以下の例では定数c[1, p]
, c[1, q]
, c[2, p]
, c[2, q]
, c[3, p]
, c[3, q]
に6
をまとめて設定しています.
c[i, j] = 6;
個別に設定する場合は,添字をダブルクォート"で囲む必要があります.具体的には以下のように記述します.
c["1, p"] = 6; c["1, q"] = 6; c["2, p"] = 6; c["2, q"] = 6; c["3, p"] = 6; c["3, q"] = 6;
定数の値は,モデルファイル内で設定する以外に,データファイルから設定する方法もあります.データファイルから設定する場合は,Parameter
の引数にname
を付ける必要があります.以下は,定数aに3をデータファイルfoo.dat
から設定する場合の例です.
モデルファイル内
Parameter a(name = "cost");
foo.dat
内
cost = 3;
name
で設定する名前はダブルクォート"で囲む必要があります.名前に空白や機種依存文字を用いる事はできません.name
を省略した場合,モデルファイル内で定義された名前であるとみなされます.即ち,以下の二つは同等です.
Parameter a;
Parameter a(name = "a");
以下は,定数b[1]
, b[2]
, b[3]
に5
をデータファイルfoo.dat
から設定する場合の例です.データファイルから値を設定する場合,まとめて設定する方法は無く,個別に設定する方法のみが存在します.
モデルファイル内
Parameter b(name = "b");
foo.dat
内
b = [1] 5 [2] 5 [3] 5;
以下は,定数c[1, p]
, c[1, q]
, c[2, p]
, c[2, q]
, c[3, p]
, c[3, q]
に6
をデータファイルfoo.dat
から設定する場合の例です.モデルファイルから設定する場合と異なり,添字をダブルクォートで囲む必要はありません.
モデルファイル内
Parameter c(name = "c");
foo.dat
内
c = [1, p] 6 [1, q] 6 [2, p] 6 [2, q] 6 [3, p] 6 [3, q] 6;
データファイルの種類や書式に関するより詳細な説明は「8データファイル」を参照ください.
上に戻る