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

7.7 モード順序関数 modeOrder

 モード順序関数modeOrderActivityを引数に取り,Activityのモード順序が同一である,という制約を表現します.

 次の例は,作業aがモード1を取った場合には作業bはモード2を取る事.また,作業aがモード3を取った場合は,作業bはモード1を取ることを記述しています.

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

 次の例は,作業aと作業bのモードが同じであることを記述しています.但し,この記述は作業a, bに対するモード集合が同一でなければできません.

Set A = "a b c d";
Element i(set = A);
Activity x(index = i, mode = M);
modeOrder(x["a"]) == modeOrder(x["b"]);

 Activityの添字には,条件式を付与することもできます.次の例は,作業b以外の全ての作業のモードが作業aのモードと同じであることを記述しています.

Set A = "a b c d";
Element i(set = A);
Activity x(index = i, mode = M);
modeOrder(x[i]) == modeOrder(x["a"]), i!="a", i!="b";

 

 

上に戻る