Python Gurobi设置目标函数

时间:2018-11-20 19:47:38

标签: python linear-programming gurobi

我正在使用以下代码定义目标函数:

objective = GBR.QUICKSUM(x[i,j] * c[i][j] for i in range(50) for j in range(50))
m.setObjective(objective)

但是,它给了我一个错误,指出了name 'GBR' is not defined

我已将gurobipy导入为*

我对定义变量没有问题:

for i in range(50):
  for j in range(50):

    x[(i,j)] = m.addVar(lb=0, vtype=GRB.INTEGER, name='x_'+str(i)+'_'+str(j))

cost function c[i][j]是每个链接X[i,j]

的费用列表

我应该如何定义目标才能发挥作用?

2 个答案:

答案 0 :(得分:2)

'GBR'确实未定义,请尝试GRB

答案 1 :(得分:1)

Gurobi的quicksum是全局函数。那意味着

from gurobipy import *
m = Model()             # Creates a Gurobi Model object.
# ... create your variables etc here

您可以将其与

一起使用
m.setObjective(quicksum(x[i,j] * c[i][j] for i in range(50) for j in range(50)))

顺便说一句:您可以使用addVars()方法而不是两个嵌套的for循环来创建变量。