[英]variable coefficient gurobi python
我正在使用Gurobi和Python,并且需要获取我的MILP模型中所有约束中特定变量的系数。 我知道有些函数可以像m.gtCol
或m.getCoeff
一样获得所需的输出。 但是,我无法以正确的方式使用它们来返回系数。 我以这种方式定义了变量:
w = {}
for i in I:
for n in N:
for j in J:
w[i,n,j] = m.addVar(vtype=GRB.BINARY, name='w_%d_%d_%d' % (i,n,j))
有人可以帮我吗?
您可以看一下: https : //groups.google.com/forum/#!topic/gurobi/pQXRd37BQL8
[x for x in model.getVars() if x.VarName.find('w_1_1_1') != -1]
应该提供名称中包含模式w_1_1_1
的变量列表。
您应该看一下gurobipy的Column类。 它允许您访问给定Var
对象的关联信息。 这是一个简单的示例,您可以以此为起点:
import gurobipy as gp
m = gp.Model()
x = m.addVars(3)
m.addConstr(2 * x[0] + x[1] == 9, name="Cone")
m.addConstr(-x[0] + x[2] >= 1, name="Ctwo")
m.update()
col = m.getCol(x[0])
for i in range(col.size()):
coef = col.getCoeff(i)
row = col.getConstr(i)
print("x[0] coef/row pair: {}/{}".format(coef, row.ConstrName))
因此,我们创建了一个具有三个变量和两个约束的模型,并希望打印第一个变量x[0]
所有系数以及该变量所涉及的约束名称。 在我的机器上运行上面的代码片段,我看到:
x [0] coef /行对:2.0 / Cone
x [0]系数/行对:-1.0 / Ctwo
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.