【发布时间】:2020-02-25 10:06:42
【问题描述】:
我正在使用 Python 在 Gurobi 中实现 MILP。我的问题有几个来自决策变量的变量,例如:
d[tau] 是一个常数值,q[t,tau,k] 是一个二元决策变量。为了使符号更清晰,我想稍后重用这些变量,例如在目标或约束中。我不确定如何正确实施它。作为 Gurobi 的新手,我的方法如下:
- 我使用
Model.addVar()将y[t,tau,k]声明为变量 - 我使用
Model.addConstr()创建了一个等式约束来强制执行y[t,tau,k]=q[t,tau,k]*d[tau]
在代码中:
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。有没有更优雅的方法来实现这一点,或者我的方法是否正确?
提前感谢您的支持。
【问题讨论】:
标签: python-3.x linear-programming gurobi