Python Gurobi настраивает целевую функцию - PullRequest
0 голосов
/ 20 ноября 2018

Я использую следующий код для определения целевой функции:

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 голосов
/ 16 апреля 2019

'GBR' действительно не определено, попробуйте GRB

0 голосов
/ 21 ноября 2018

Quicksum Gurobi * - это глобальная функция.Это означает, что после

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 () вместо двух вложенных для-loops для создания ваших переменных.

...