7.5 必要資源クラスResourceRequire
各モードに対する必要資源の量はResourceRequire
クラスで設定します.ResourceRequire
はrcpsp利用時に必要な定数の一つです.モード集合が引数mode
で,資源集合が引数resource
で与えられます.また,モード開始時からの経過時間を表す経過時間集合が引数duration
で与えられます.これら3つの引数は全て指定する必要があります.
次の例では,モード集合M
,資源集合R
,経過時間集合D
に対する必要資源req
を定義しています.
Set M; // モード集合 Set R; // 資源集合 Set D; // 経過時間集合 ResourceRequire req(mode = M, resource = R, duration = D);
次の例では,モードaonly
, bonly
, both
それぞれに対して必要な資源a
, b
を定めています.モードは全て期間1で終わり,モードaonly
は資源a
が1期間,モードbonly
は資源b
が1期間,モードboth
は資源a
, b
の両方が1期間必要であることを示しています.
Set M = "aonly bonly both"; Set R = "a b"; Set D = "1" ResourceRequire req(mode = M, resource = R, duration = D); req["aonly, a, 1"] = 1; req["aonly, b, 1"] = 0; // 記述しなくても良い req["bonly, a, 1"] = 0; // 記述しなくても良い req["bonly, b, 1"] = 1; req["both, a, 1"] = 1; req["both, b, 1"] = 1;
必要資源ResourceRequire
の値は,何も設定しない場合0が設定されます.上記の例では,特に設定する必要の無い行が二行あります.
初期設定値を0以外の値にするには,引数defaultval
を用います.次の例では,初期設定値を1にしているため,上記の例で0を設定していた箇所のみ設定する必要があります.
Set M = "aonly bonly both"; Set R = "a b"; Set D = "1" ResourceRequire req(mode = M, resource = R, duration = D, defaultval = 1); // 初期値を1にした req["aonly, b, 1"] = 0; req["bonly, a, 1"] = 0;
次の例では,モードaonly
は資源a
が3期間,モードbonly
は資源b
が3期間,モードboth
は資源a
, b
の両方が1期間必要であることを示しています.
Set M = "aonly bonly both"; Set R = "a b"; Set D = "1 2 3" // 期間を表す Element i(set = D); ResourceRequire req(mode = M, resource = R, duration = D); req["aonly, a", i] = 1, 1 <= i <= 3; req["bonly, b", i] = 1, 1 <= i <= 3; req["both, a, 1"] = 1; req["both, b, 1"] = 1;
上に戻る