2017-04-23 7 views
-2

私はこのSpyder/Pythonコードをどのようにデバッグできますか?

で無効な構文にspyde IDE/Pythonとエラーに変数として

をこの構文を書いたので、これは私のコードです:私は知っている必要があり

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 

enter image description here

+1

この行に何をしようとしていますか? –

+0

x(患者)を1つのブロックbと1つの手術室jと1つの期間t –

答えて

2

x[b,j,t]=1は式ではなく、式です。ジェネレータ式には文を含めることはできません。

普通のforループ(おそらくもっとはっきりしている)の代わりにリスト内包表記を使用したい場合は、import operatoroperator.setitem(x, (b,j,t), 1)を使用できます。

+0

に返信してもらいたいのですが、あなたの早急な返信をありがとうございます。私のモデルの制約 –

関連する問題