Research Article

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

Algorithm 3

MPM-UPLA’s procedure.
Step 1. Receive a value of N and a stopping criterion from a user. Let t ⟵ 1, δ ⟵ 0.0, and Score(Cbest) ⟵ + ∞.
Step 2. Generate , where  = 1, 2, …, N, by using Steps 2.1 to 2.4.
Step 2.1. Let ⟵ 1.
Step 2.2. Randomly generate from any possible operation-based permutation.
Step 2.3. Randomly generate .
Step 2.4. If  < N, let ⟵  + 1 and repeat from Step 2.2. Otherwise, go to Step 3.
Step 3. Evaluate , and update Cbest and Sbest by using Steps 3.1 to 3.6.
Step 3.1. Let ⟵ 1.
Step 3.2. Transform into the values of P, ρS, ρI, d, ρNS, ρNI, and TB.
Step 3.3. Execute MPM-LOLA (Algorithm 2) with the last-updated values of P, ρS, ρI, d, ρNS, ρNI, TB, and δ in order to receive (t) and (t).
Step 3.4. Let .
Step 3.5. If , then let , , and .
Step 3.6. If , let and repeat from Step 3.2. Otherwise, go to Step 4.
Step 4. Update , where , by using Steps 4.1 to 4.5.
Step 4.1. Let .
Step 4.2. Let .
Step 4.3. If (t + 1) mod 50 = 0, let δδ + 0.2. After that, reassign δ ⟵ 0.999 if δ 1.0.
Step 4.4. If mod 50 = 0, randomly generate . Otherwise, generate , where , by using the below equation. Let and .
Step 4.5. If , then let and repeat from Step 4.2. Otherwise, go to Step 5.
Step 5. If the stopping criterion is not met, then let t ⟵ t + 1 and repeat from Step 2. Otherwise, return Sbest as the final result to the user.