I have this code
model += lpSum([(t) * ((lpSum([x[s,b[s]-1,b[s],t] for s in S_up])) +
(lpSum([y[s,b[s]+1,b[s],t] for s in S_down]))) for t in T[1:]])
for s in S_up:
model += x[s,a[s],a[s],ETA[s]] == 1, f"C4_{s}_{a[s]}_{a[s]}_{ETA[s]}"
for s in S_down:
model += y[s,a[s],a[s],ETA[s]] == 1, f"C5_{s}_{a[s]}_{a[s]}_{ETA[s]}"
for s in S_up:
for t in H[s][1:-1]:
model += x[s,a[s],a[s],t] == x[s,a[s],a[s],t+1] + x[s,a[s],a[s]+1,t+1], f"C6_{s}_{a[s]}_{a[s]}_{t}"
for s in S_down:
for t in H[s][1:-1]:
model += y[s,a[s],a[s],t] == y[s,a[s],a[s],t+1] + y[s,a[s],a[s]-1,t+1], f"C7_{s}_{a[s]}_{a[s]}_{t}"
for s in S_up:
for i in W:
for t in H[s][1:-1]:
if (a[s]+1 < i < b[s]):
model += x[s,i,i,t-1] + x[s,i-1,i,t-1] == x[s,i,i,t] + x[s,i,i+1,t], f"C8_{s}_{i-1}_{i}_{t}"
for s in S_down:
for i in W:
for t in H[s][1:]:
if (b[s] < i < a[s] - 1):
model += y[s,i,i,t-1] + y[s,i+1,i,t-1] == y[s,i,i,t] + y[s,i,i-1,t], f"C9_{s}_{i+1}_{i}_{t}"
for s in S_up:
for t in H[s][1:]:
for i in W:
if (a[s] <= i < b[s]):
model += x[s,i,i,t] + x[s,i,i+1,t] <= 1, f"C10_{s}_{i}_{i+1}_{t}"
for s in S_down:
for t in H[s][1:]:
for i in W:
if (b[s] < i <= a[s]):
model += y[s,i,i,t] + y[s,i,i-1,t] <=1, f"C11_{s}_{i}_{i-1}_{t}"
for s in S_up:
for t in H[s][2:]:
model += x[s,b[s]-1,b[s],t-1] == x[s,b[s],0,t], f"C14_{s}_{b[s]-1}_{b[s]}_{t-1}"
for s in S_down:
for t in H[s][2:]:
model += y[s,b[s]+1,b[s],t-1] == y[s,b[s],0,t], f"C15_{s}_{b[s]+1}_{b[s]}_{t-1}"
for s in S_up:
for i in W:
if (a[s] < i <= b[s]):
model += lpSum([x[s,i-1,i,t] for t in H[s][1:-1]]) == 1, f"C12_{s}_{i-1}_{i}_{t}"
for s in S_down:
for i in W:
if (b[s] <= i < a[s]):
model += lpSum([y[s,i+1,i,t] for t in H[s][1:-1]]) == 1, f"C13_{s}_{i+1}_{i}_{t}"
which translate into:
Minimize
OBJ: x_(1,_2,_3,_1) + 2 x_(1,_2,_3,_2) + 3 x_(1,_2,_3,_3) + 4 x_(1,_2,_3,_4) + 5 x_(1,_2,_3,_5) + 6 x_(1,_2,_3,_6) + 7 x_(1,_2,_3,_7) + 8 x_(1,_2,_3,_8)
+ y_(2,_2,_1,_1) + 2 y_(2,_2,_1,_2) + 3 y_(2,_2,_1,_3) + 4 y_(2,_2,_1,_4) + 5 y_(2,_2,_1,_5) + 6 y_(2,_2,_1,_6) + 7 y_(2,_2,_1,_7) + 8 y_(2,_2,_1,_8)
Subject To
C10_1_1_2_4: x_(1,_1,_1,_4) + x_(1,_1,_2,_4) <= 1
C10_1_1_2_5: x_(1,_1,_1,_5) + x_(1,_1,_2,_5) <= 1
C10_1_1_2_6: x_(1,_1,_1,_6) + x_(1,_1,_2,_6) <= 1
C10_1_1_2_7: x_(1,_1,_1,_7) + x_(1,_1,_2,_7) <= 1
C10_1_1_2_8: x_(1,_1,_1,_8) + x_(1,_1,_2,_8) <= 1
C10_1_2_3_4: x_(1,_2,_2,_4) + x_(1,_2,_3,_4) <= 1
C10_1_2_3_5: x_(1,_2,_2,_5) + x_(1,_2,_3,_5) <= 1
C10_1_2_3_6: x_(1,_2,_2,_6) + x_(1,_2,_3,_6) <= 1
C10_1_2_3_7: x_(1,_2,_2,_7) + x_(1,_2,_3,_7) <= 1
C10_1_2_3_8: x_(1,_2,_2,_8) + x_(1,_2,_3,_8) <= 1
C11_2_2_1_3: y_(2,_2,_1,_3) + y_(2,_2,_2,_3) <= 1
C11_2_2_1_4: y_(2,_2,_1,_4) + y_(2,_2,_2,_4) <= 1
C11_2_2_1_5: y_(2,_2,_1,_5) + y_(2,_2,_2,_5) <= 1
C11_2_2_1_6: y_(2,_2,_1,_6) + y_(2,_2,_2,_6) <= 1
C11_2_2_1_7: y_(2,_2,_1,_7) + y_(2,_2,_2,_7) <= 1
C11_2_2_1_8: y_(2,_2,_1,_8) + y_(2,_2,_2,_8) <= 1
C11_2_3_2_3: y_(2,_3,_2,_3) + y_(2,_3,_3,_3) <= 1
C11_2_3_2_4: y_(2,_3,_2,_4) + y_(2,_3,_3,_4) <= 1
C11_2_3_2_5: y_(2,_3,_2,_5) + y_(2,_3,_3,_5) <= 1
C11_2_3_2_6: y_(2,_3,_2,_6) + y_(2,_3,_3,_6) <= 1
C11_2_3_2_7: y_(2,_3,_2,_7) + y_(2,_3,_3,_7) <= 1
C11_2_3_2_8: y_(2,_3,_2,_8) + y_(2,_3,_3,_8) <= 1
C12_1_1_2_8: x_(1,_1,_2,_4) + x_(1,_1,_2,_5) + x_(1,_1,_2,_6) + x_(1,_1,_2,_7) = 1
C12_1_2_3_8: x_(1,_2,_3,_4) + x_(1,_2,_3,_5) + x_(1,_2,_3,_6) + x_(1,_2,_3,_7) = 1
C13_2_2_1_8: y_(2,_2,_1,_3) + y_(2,_2,_1,_4) + y_(2,_2,_1,_5) + y_(2,_2,_1,_6) + y_(2,_2,_1,_7) = 1
C13_2_3_2_8: y_(2,_3,_2,_3) + y_(2,_3,_2,_4) + y_(2,_3,_2,_5) + y_(2,_3,_2,_6) + y_(2,_3,_2,_7) = 1
C14_1_2_3_4: x_(1,_2,_3,_4) - x_(1,_3,_0,_5) = 0
C14_1_2_3_5: x_(1,_2,_3,_5) - x_(1,_3,_0,_6) = 0
C14_1_2_3_6: x_(1,_2,_3,_6) - x_(1,_3,_0,_7) = 0
C14_1_2_3_7: x_(1,_2,_3,_7) - x_(1,_3,_0,_8) = 0
C15_2_2_1_3: - y_(2,_1,_0,_4) + y_(2,_2,_1,_3) = 0
C15_2_2_1_4: - y_(2,_1,_0,_5) + y_(2,_2,_1,_4) = 0
C15_2_2_1_5: - y_(2,_1,_0,_6) + y_(2,_2,_1,_5) = 0
C15_2_2_1_6: - y_(2,_1,_0,_7) + y_(2,_2,_1,_6) = 0
C15_2_2_1_7: - y_(2,_1,_0,_8) + y_(2,_2,_1,_7) = 0
C4_1_1_1_3: x_(1,_1,_1,_3) = 1
C5_2_3_3_2: y_(2,_3,_3,_2) = 1
C6_1_1_1_4: x_(1,_1,_1,_4) - x_(1,_1,_1,_5) - x_(1,_1,_2,_5) = 0
C6_1_1_1_5: x_(1,_1,_1,_5) - x_(1,_1,_1,_6) - x_(1,_1,_2,_6) = 0
C6_1_1_1_6: x_(1,_1,_1,_6) - x_(1,_1,_1,_7) - x_(1,_1,_2,_7) = 0
C6_1_1_1_7: x_(1,_1,_1,_7) - x_(1,_1,_1,_8) - x_(1,_1,_2,_8) = 0
C7_2_3_3_3: - y_(2,_3,_2,_4) + y_(2,_3,_3,_3) - y_(2,_3,_3,_4) = 0
C7_2_3_3_4: - y_(2,_3,_2,_5) + y_(2,_3,_3,_4) - y_(2,_3,_3,_5) = 0
C7_2_3_3_5: - y_(2,_3,_2,_6) + y_(2,_3,_3,_5) - y_(2,_3,_3,_6) = 0
C7_2_3_3_6: - y_(2,_3,_2,_7) + y_(2,_3,_3,_6) - y_(2,_3,_3,_7) = 0
C7_2_3_3_7: - y_(2,_3,_2,_8) + y_(2,_3,_3,_7) - y_(2,_3,_3,_8) = 0
and yields the following results:
x_(1,_1,_1,_3) = 1.0
x_(1,_1,_2,_4) = 1.0
x_(1,_2,_3,_4) = 1.0
x_(1,_3,_0,_5) = 1.0
y_(2,_1,_0,_4) = 1.0
y_(2,_2,_1,_3) = 1.0
y_(2,_3,_2,_3) = 1.0
y_(2,_3,_3,_2) = 1.0
The issue is that
x_(1,_1,_2,_4) = 1.0
x_(1,_2,_3,_4) = 1.0
and
y_(2,_2,_1,_3) = 1.0
y_(2,_3,_2,_3) = 1.0
I can only have one movement at a specific $t$. What is causing that and how to solve it?
I have tried to impose constraints to prevent consecutive tasks from taking place at the same period $t$. It would have yielded the following result:
x_(1,_1,_1,_3) = 1.0
x_(1,_1,_2,_4) = 1.0
x_(1,_2,_3,_5) = 1.0
x_(1,_3,_0,_6) = 1.0
y_(2,_1,_0,_5) = 1.0
y_(2,_2,_1,_4) = 1.0
y_(2,_3,_2,_3) = 1.0
y_(2,_3,_3,_2) = 1.0