最適化セミナーのご案内

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;

 

 

上に戻る