Я студент инженерного факультета и новый пользователь CPLEX.Когда я запускаю свой скрипт, он говорит, что одно из моих ограничений не выпуклое.Я знаю, что должен линеаризовать его, но я не знаю, как.
x[i][j]
- это двоичная переменная.
E[i]
- это непрерывная переменная, которая зависит от x[i][j]
.
eev[i]
- это вход (энергия, потраченная на маршруте i
).
edh[i]
- это вход (энергия, потраченная от i
до j
).emax
также является входом, константой.Является ли начальный уровень заряда батареи максимальным.
Это часть составления расписания для электромобилей, а E[i]
- это энергия, оставшаяся на этом транспортном средстве после выполнения маршрута i
.
Как можноЯ линеаризую следующее ограничение, чтобы оно не было невыпуклым:
E[j] <= (E[i]-edh[i][j]-eev[j])*x[i][j]+emax*(1-x[i][j])
Я знаю, как его линеаризовать, если бы оно было таким:
E[j] == (E[i]-edh[i][j]-eev[j])*x[i][j]+emax*(1-x[i][j])
Но это не то, чтоМне нужен мой сценарий.
Заранее большое спасибо!