Ограниченные ограничения для CPLEX ILOG Optimization Studio

Я хочу иметь ограничение, имеющее верхнюю и нижнюю границы, в котором используется формат lb ‹= expr‹ = ub

Константа, которую я хочу перевести: введите здесь описание изображения

Но как я закодировал это в таком формате:

forall (k, i в G, j в ChargingStationSet, m в numberOfEVs: i! = j && j! = k && k! = i) {
ChargingStationTimeManagement: workHourLimit * (x [‹i, j, m› ] - 1) ‹= Время отправления [‹ k, i ›] + Время в пути [‹ i, j ›] + ((BatteryCapacity [m] - Остаточная емкость аккумулятора [‹ i, j, m ›]) / rechargingRate) -› Время отправления [‹ i, j ›] && Время отправления [‹ k, i ›] + Время путешествия [‹ i, j ›] + ((batteryCapacity [m] - RemainBatteryCapacity [‹ i, j, m ›]) / rechargingRate) -› Время отправления [‹ i, j ›]‹ =
workHourLimit * (1- x [‹i, j, m›]); }

Правильно ли я сделал это, потому что результаты не такие, как ожидалось?


person Advaith Krishnan    schedule 02.06.2021    source источник


Ответы (1)


Вместо двойного неравенства попробуйте 2 неравенства:

dvar int x;
dvar int y;
dvar int z;

subject to
{
  //x<=y<=z; // Not allowed
  x<=y;
  y<=z;
}
person Alex Fleischer    schedule 02.06.2021