数理最適化セミナーのご案内

7.4 アクティビティクラスActivity

 どの作業をどのモードで行うかを定めるアクティビティは,Activityで表現されます.Activityはrcpsp利用時の変数に相当します.モード集合は,引数modeで与えられます.

 次の例では4つの作業a, b, c, dに対するアクティビティx[a], x[b], x[c], x[d]を定めています.それぞれの作業にはモード1, 2, 3のいずれかが割り当てられます.

Set A = "a b c d";
Set M = "1 2 3";
Element i(set = A);
Activity x(index = i, mode = M);

 納期遅れ最小化問題を扱う場合には,各Activityに対する納期(定数Parameterで表現されます)を引数duedateで指定する必要があります.次の例では,4つの作業a, b, c, dに対して,納期3, 5, 10, 7を設定しています.

Set A = "a b c d";
Set M = "1 2 3";
Element i(set = A);
Parameter due(index = i); // 納期を示す定数
Activity x(index = i, mode = M, duedate = due[i]);
due["a"] = 3;
due["b"] = 5;
due["c"] = 10;
due["d"] = 7;

 各作業に対して割り当て可能なモード集合が異なる場合は,引数modeにモード集合族を与えます.次の例では,作業aはモード1, 2作業bはモード1, 3作業cはモード2作業dはモード3を取ることができます.

Set A = "a b c d";
Set M = "1 2 3";
Set M2(index = i); // モード集合族
M2["a"] = "1, 2";
M2["b"] = "1, 3";
M2["c"] = "2";
M2["d"] = "3";
Activity x(index = i, mode = M2[i]);

 

 

上に戻る