我正在使用Python / Gurobi优化问题。我通过以下代码使用GRBaddVar生成了变量:
x[1,i,j,t] = model.addVar(vtype="B", name="x(1,%s,%s,%s)" % (i,j,t))
我也想删除一些变量以节省空间。当某个条件为真时,将删除该变量。假设条件为R =1。要删除变量,请使用以下代码。
if R == 1:
x[1,i,j,t] = model.delVars(vtype="B", name="x(1,%s,%s,%s)" % (i,j,t))
但是,它导致以下错误:
AttributeError: 'gurobipy.Model' object has no attribute 'delVars'
我不知道代码有什么问题,因为我只是遵循Gurobi的文档(如下所示)。感谢您的帮助!
正如David所指出的,您正在查看C API的文档。
在Python API中,您可以使用Var对象的参数使用Model.remove()方法删除单个变量。例如,
model.remove(x[1,i,j,t])
您可以使用相同的方法立即删除例如Var对象列表。
注意,在以这种方式删除变量之前,应先调用Model.update()。