list index out of range when adding variables
AnsweredThis 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
-
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
Please sign in to leave a comment.
Comments
1 comment