list index out of range when adding variables
回答済みThis is my code for adding variables:
for k in range(0, data.vehicleNum - 1):
for d in range(0, data.droneNum - 1):
name1 = 'P_' + str(k) + '_' + str(d)
P[k][d] = model.addVar(0, 1, vtype=GRB.BINARY, name=name1)
for i in range(0, data.nodeNum - 1):
name2 = 'C_' + str(i) + '_' + str(k)
name3 = 'Ct_' + str(i) + '_' + str(d)
name4 = 'Vl_' + str(i) + '_' + str(k) + '_' + str(d)
name5 = 'Vr_' + str(i) + '_' + str(k) + '_' + str(d)
name10 = 'A_' + str(i) + '_' + str(k)
name11 = 'a_' + str(i) + '_' + str(k) + '_' + str(d)
name12 = 'R_' + str(i) + '_' + str(k)
name13 = 'r_' + str(i) + '_' + str(k) + '_' + str(d)
name14 = 'S_' + str(i) + '_' + str(k)
name15 = 's_' + str(i) + '_' + str(k) + '_' + str(d)
name16 = 'Dk_' + str(i) + '_' + str(k) + '_' + str(d)
name17 = 'temp_' + str(i) + '_' + str(k) + '_' + str(d)
name18 = 'temp_1_' + str(i) + '_' + str(k) + '_' + str(d)
name19 = 'temp_2_' + str(i) + '_' + str(k) + '_' + str(d)
C[i][k] = model.addVar(0, 1, vtype=GRB.BINARY, name=name2)
Ct[i][d] = model.addVar(0, 1, vtype=GRB.BINARY, name=name3)
Vl[i][k][d] = model.addVar(0, 1, vtype=GRB.BINARY, name=name4)
Vr[i][k][d] = model.addVar(0, 1, vtype=GRB.BINARY, name=name5)
A[i][k] = model.addVar(0, big_M, vtype=GRB.CONTINUOUS, name=name10)
a[i][k][d] = model.addVar(0, big_M, vtype=GRB.CONTINUOUS, name=name11)
R[i][k] = model.addVar(0, big_M, vtype=GRB.CONTINUOUS, name=name12)
r[i][k][d] = model.addVar(0, big_M, vtype=GRB.CONTINUOUS, name=name13)
S[i][k] = model.addVar(0, big_M, vtype=GRB.CONTINUOUS, name=name14)
s[i][k][d] = model.addVar(0, big_M, vtype=GRB.CONTINUOUS, name=name15)
Dk[i][k][d] = model.addVar(0, big_M, vtype=GRB.CONTINUOUS, name=name16)
temp[i][k][d] = model.addVar(vtype=GRB.CONTINUOUS, name=name17)
temp_1[i][k][d] = model.addVar(vtype=GRB.CONTINUOUS, name=name18)
temp_2[i][k][d] = model.addVar(vtype=GRB.CONTINUOUS, name=name19)
for j in range(0, data.nodeNum - 1):
name6 = 'X_' + str(i) + '_' + str(j) + '_' + str(k)
name7 = 'Y_' + str(i) + '_' + str(j) + '_' + str(k) + '_' + str(d)
name8 = 'T_' + str(i) + '_' + str(j) + '_' + str(k)
name9 = 't_' + str(i) + '_' + str(j) + '_' + str(k) + '_' + str(d)
X[i][j][k] = model.addVar(0, 1, vtype=GRB.BINARY, name=name6)
Y[i][j][k][d] = model.addVar(0, 1, vtype=GRB.BINARY, name=name7)
T[i][j][k] = model.addVar(0, big_M, vtype=GRB.CONTINUOUS, name=name8)
t[i][j][k][d] = model.addVar(0, big_M, vtype=GRB.CONTINUOUS, name=name9)
Error as follows:
Traceback (most recent call last):
File "E:/PycharmProjects/project/gurobi.py", line 275, in <module>
Y[i][j][k][d] = model.addVar(0, 1, vtype=GRB.BINARY, name=name7)
IndexError: list index out of range
0
-
正式なコメント
This post is more than two years old. Some information may not be up to date. For current information, please check the Gurobi Documentation or Knowledge Base. If you need more help, please create a new post in the community forum, or try Gurobot, our chatbot interface offering instant, expert-level support. -
The error means that you are trying to access your list \(\texttt{Y}\) at an undefined entry given as \(\texttt{i,j,k,d}\). In order to debug this issue, you should print the values of \(\texttt{i,j,k,d}\) and then compare the values to how you originally defined your list \(\texttt{Y}\).
1
投稿コメントは受け付けていません。
コメント
2件のコメント