different processing routes. The jobs on each machine should be ordered to minimize the makespan. • Job set and machine set: 𝐽 = {1, 2, … , |𝐽|} and 𝑀 = {1, 2, … , |𝑀|} • Set of operations of job 𝑗 ∈ 𝐽: 𝐾! " = { 𝑗, 1 , 𝑗, 2 , … , (𝑗, |𝐾! "|)} • Processing time of operation (𝑗, 𝑘) ∈ 𝐾! ": 𝑝!# • Machine carrying out operation (𝑗, 𝑘) ∈ 𝐾! " : 𝜇!# ∈ 𝑀 • Set of operations on machine 𝑚 ∈ 𝑀: (𝑗, 𝑘) 𝜇!# = 𝑚} ≡ 𝐾$ % • Operation sequence on machine 𝑚 ∈ 𝑀: 𝜋$ = (𝜋$& , 𝜋$' , … , 𝜋$ (! " ) • Starting and completion times of operation (𝑗, 𝑘) ∈ 𝐾! ": 𝑆!# and 𝐶!# • Makespan: 𝐶)*+ = max (!,#)∈(# $ 𝐶!# Job Shop Scheduling Problem