最適化セミナーのご案内

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,i!="b",i!="a"]) == modeOrder(x["a"]);

 

 

上に戻る