GurobiError: Неверный аргумент для умножения QuadExpr - PullRequest
0 голосов
/ 29 января 2020

Я стараюсь минимизировать общую длину (L) проблемы перемещения. Когда я быстро набираю окончательную букву «L», возникает проблема.

method-1

L=0
L = quicksum((assign[(i,j)]*((customer[i][0] - x[j])*(customer[i][0] - x[j]) +\
                              (customer[i][1] - y[j])*(customer[i][1] - \
                              y[j]))) for i in range(len(customer)) for j in range(optimal_n))

m.setObjective(L,GRB.MINIMIZE)
m.optimize()

сообщение об ошибке в method-1:

  File "var.pxi", line 287, in gurobipy.Var.__mul__
  File "linexpr.pxi", line 501, in gurobipy.LinExpr.__imul__
  File "linexpr.pxi", line 487, in gurobipy.LinExpr.__mul__
  File "quadexpr.pxi", line 243, in gurobipy.QuadExpr._mul
gurobipy.GurobiError: Invalid argument to QuadExpr multiplication

method-2 :

L=0
for i in range(len(customer)):
    for j in range(optimal_n):
        L = L + ((customer[i][0] - x[j])*(customer[i][0] - x[j]) + \
                  (customer[i][1] - y[j])*(customer[i][1] - y[j]))*assign[(i,j)]

сообщение об ошибке в методе-2:

  File "quadexpr.pxi", line 521, in gurobipy.QuadExpr.__mul__
  File "quadexpr.pxi", line 243, in gurobipy.QuadExpr._mul
gurobipy.GurobiError: Invalid argument to QuadExpr multiplication
...