Я использую OPL CPLEX 12.9
У меня проблемы с формулировкой следующего ограничения:
- K [i] [t] - логическое значение dvar, а t - этоИндекс по времени.
- Если K [i] [t] == 0, он должен быть равен нулю в течение двух часов, прежде чем он снова станет равным 1.
Я хотел бы, например, получить следующий результат
K[i][t] = [0 0 1 0 0 1 1 1 0 0 0 ]
Я уже пробовал:
range T = t_min..t_max;
range T1 = t_min-1 ..t_max+1;
dvar boolean K[I][T1];
forall ( i in I, t in T){
ct:
(K[i][t-1]==0) => (K[i][t]== 0) => (K[i][t+1]==1 || K[i][t+1]==0) &&
(K[i][t-1]==1) => (K[i][t]==1 || K[i][t]==0);
Но в результате эти побочные условияигнорируются. Я получаю результат как
K[i][t] = [0 0 1 0 1 1 0 0 1 1 0 ]