Gurobi错误:TypeError:int()参数必须是字符串,类似字节的对象或数字,而不是'gurobipy.QuadExpr

时间:2019-09-19 16:00:41

标签: python-3.x optimization gurobi quadratic-programming

我需要使用Gurobi实现以下优化:See here for formula

这是使用Gurobi Python API的代码:

from gurobipy import *

m=Model()
# Create variables
alphak = m.addVars(S, B, b, a, vtype=GRB.BINARY,name="alphak")

# Set objective
obj1=quicksum(quicksum(quicksum(int((quicksum(alphak[s,B0,f,t]*alphak[s,k,f,t] for k in B0)/len(B0)) for t in range(a)) for f in range(b)) for s in S)

m.setObjective(obj1, GRB.MAXIMIZE)

# Optimize model
m.optimize()

在quicksum上应用int()会出现问题。这是错误:

TypeError: int() argument must be a string, a bytes-like object or a number, not 'gurobipy.QuadExpr

该部门的事。

谁能帮助我解决这个问题?

谢谢

1 个答案:

答案 0 :(得分:0)

Gurobi不了解int(),ceiling()或floor()函数。但是,您可以轻松地对此建模。

假设我们要为StructuredPostal建模。然后您可以编写:

y = floor(x)