Я реализую MILP в Gurobi, используя Python. Моя проблема имеет несколько переменных, которые получены из переменных решения, таких как:
С d[tau]
является постоянным значением и q[t,tau,k]
является двоичная переменная решения. Чтобы сделать запись более понятной, я хочу использовать эти переменные позже, например, в цели или в ограничениях. Я не уверен, как правильно это реализовать. Будучи новичком в Gurobi, мой подход заключается в следующем:
- Я объявляю
y[t,tau,k]
как переменную, используя Model.addVar()
- Я создаю ограничение равенства для принудительного применения
y[t,tau,k]=q[t,tau,k]*d[tau]
, используя Model.addConstr()
В коде:
y[t,tau,k] = dda_prob_IS.addVar(
lb=0.0,
vtype=GRB.CONTINUOUS,
name=f'y[{t},{tau},{k}]')
dda_prob_IS.addConstr(
y[t,tau,k] == q[t,tau,k]*d[tau],
name = f'y_def[{t},{tau},{k}]')
Я исключительно использую y[t,tau,k]
в следующих частях реализации, поэтому мне нужно иметь возможность доступа к конкретному y
. Есть ли более элегантный способ реализовать это или мой подход даже правильный?
Заранее спасибо за любую поддержку.