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;
上に戻る
