因为我在spyde IDE/python中将此语法作为变量编写,错误是
invalid syntax
这是我的密码:
from gurobipy import*
try:
m = Model('operating_room')
#Data
b= [1,2,3]
n= [1,2,3,4,5,6,7,8,9,10]
j= [1,2,3,4,5,6,7,8,9,10,11,12,13]
t=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
W=0.5
m.update()
#create variables
X[j] =m.addVar(vtype=GRB.BINARY, name="X[j]")
Y[n] =m.addVar(vtype=GRB.BINARY, name="Y[n]")
x[b,j,t] = m.addVar(vtype=GRB.BINARY,name="x[b,j,t]")
y[n,b] = m.addVar(vtype=GRB.BINARY,name="y[n,b]")
m.update()
#set objective
m.setObjective(quicksum(X[j] for j in J )+ W*(quicksum(Y[n] for n in
N)),GRB.MINIMIZE) #eqution 1
**for b in range(1,b):
#create constraints
m.addConstr(quicksum(x[b,j,t]=1 for j in J for t in range(rb:(d[b]-
p[b]+1))),name="block_allocation") #eqution 2**
我要知道这里面有什么问题
m.addConstr(quicksum(x[b,j,t]=1 for j in J for t in range(rb:(d[b]-
^
p[b]+1))),name="block_allocation") #eqution 2
x[b,j,t]=1
是一个语句,而不是一个表达式。生成器表达式不能包含语句。你知道吗如果您真的想使用列表理解而不是普通的
for
循环(这可能会更清楚),您可以import operator
并使用operator.setitem(x, (b,j,t), 1)
。你知道吗相关问题 更多 >
编程相关推荐