Я использую gurobi на python, и я хотел бы решить проблему маршрута, но есть некоторые ограничения, которые я не знаю, как писать, как на картинке:
Я пробовал несколько способов,
1-я попытка: model.addConstr(a[j,k] == max_((b[i,k] + T_ij[i,j] - ( 1-x[i,j,k] )*M), 0) )
2-я попытка: использовать ограничение индикатора отдельно, как показано ниже
model.addConstr((c == 0) >> (b[i,k] + T_ij[i,j] - ( 1-x[i,j,k] )*M <= -eps) )
model.addConstr((c == 1) >> (b[i,k] + T_ij[i,j] - ( 1-x[i,j,k] )*M >= 0))
3-я попытка: model.addGenConstrMax( a[j,k], [0, b[i,k] + T_ij[i,j] - ( 1-x[i,j,k] )*M] )
запустить код, но не всегда срабатывала.
- обратите внимание, что M представляет BigM, а eps я установил для 1e-6
- a [] и b [] - непрерывные переменные, x [] - двоичная переменная, а T_ij [] - параметр