Research Article

A Two-Level Metaheuristic for the Job-Shop Scheduling Problem with Multipurpose Machines

Algorithm 1

Solution-decoding method.
Step 1. Receive a δ’s value, a TB’s value, and an operation-based permutation needed to be transformed from MPM-LOLA (Algorithm 2).
Step 2. Transform the operation-based permutation taken from Step 1 into П by changing the number i in its k-th appearance into the operation Oik (i = 1, 2, …, n; k = 1, 2, …, ni). For example, the operation-based permutation (3, 2, 3, 1, 1, 2) is transformed into П = (O31, O21, O32, O11, O12, O22).
Step 3. Transform П into Φ by using Steps 3.1 to 3.6.
Step 3.1. Let Φ ⟵ an empty schedule, and let t ⟵ 1.
Step 3.2. Let Oi′k′ ⟵ the leftmost as-yet-unscheduled operation in П.
Step 3.3. Find σM, σJ, and σ of Oi′k′.
Step 3.4. Let E ⟵ the machine, chosen from all Ei′k′l (l= 1, 2, …, mi′k′), that can start processing not-later-than σ + δτi′k′. If there is more than one machine that can be chosen as E, then choose one of them that has the lowest l if TB= lowest; otherwise, choose one of them that has the highest l.
Step 3.5. Modify Φ by assigning E to process Oi′k′. In the schedule, let E start processing Oi′k′ as early as possible.
Step 3.6. If t < D, then t ⟵ t + 1 and repeat from Step 3.2. Otherwise, go to Step 4.
Step 4. Return Φ as the complete schedule to MPM-LOLA (Algorithm 2).