Функция abs_
является частью API Gurobi Python и не работает в файле LP. (Когда ваш файл LP читается, решатель интерпретирует ваше ограничение C3
как линейное ограничение с четырьмя переменными с именами abs_(v0
, v1)
, abs_(v1
и v2)
.)
ТакжеОбратите внимание, что ограничения по абсолютным значениям могут принимать только форму var1 = abs_(var2)
. Поэтому вам нужно будет определить некоторые вспомогательные переменные для моделирования приведенного выше ограничения.
В Python API вы можете смоделировать ограничение C3
следующим образом:
a = model.addVars(4, name="a") # auxiliary variables
model.addConstr(a[0] == v0 - v1)
model.addConstr(a[1] == v1 - v2)
model.addConstr(a[2] == abs_(a[0]))
model.addConstr(a[3] == abs_(a[1]))
model.addConstr(a[2] + a[3] >= 10)
В файле LPВы можете увидеть ограничение абсолютного значения в разделе Общие ограничения:
General Constraints
GC0: a[2] = ABS ( a[0] )
GC1: a[3] = ABS ( a[1] )