Research Article

An Enhanced Two-Level Metaheuristic Algorithm with Adaptive Hybrid Neighborhood Structures for the Job-Shop Scheduling Problem

Algorithm 2

The procedure of LOSAP.
Step 1. Receive the input-parameter values from MUPLA (Algorithm 3) via Steps 1.1 to 1.5.
  Step 1.1. Receive PTBT ∈ {n-medium swap, n-large swap, n-medium inverse, n-large insert, n-medium insert}.
  Step 1.2. Receive SD ∈ {forward, backward}.
  Step 1.3. Receive PNO ≡ (NO1, NO2) ∈ {(1-small inverse, 1-medium insert), (1-large swap, 1-large insert), (1-medium swap, 1-medium insert), (1-small swap, 1-small insert)}.
  Step 1.4. Receive PROB ∈ all real numbers within [0, 1].
  Step 1.5. Receive P ∈ all possible operation-based permutations (i.e., all permutations with m repetitions of the numbers 1, 2, …, n).
Step 2. Generate an initial P0 by using PTBT on P.
Step 3. Execute Algorithm 1 by inputting SD and P0 in order to receive S0.
Step 4. Find a local optimal schedule by using Steps 4.1 to 4.4.
  Step 4.1. Let tL ⟵ 0.
  Step 4.2. Randomly generate u from . If u ≤ PROB, then generate P1 by using NO1 on P0; otherwise, generate P1 by using NO2 on P0.
  Step 4.3. Execute Algorithm 1 by inputting SD and P1 in order to receive S1.
  Step 4.4. Update P0, S0, and tL by using Steps 4.4.1 to 4.4.3.
   Step 4.4.1. If Makespan (S1) < Makespan (S0), then let P0 ⟵ P1 and S0 ⟵ S1, and repeat from Step 4.1.
   Step 4.4.2. If Makespan (S1) = Makespan (S0), then let P0 ⟵ P1 and S0 ⟵ S1, and repeat from Step 4.2.
   Step 4.4.3. If Makespan (S1) > Makespan (S0), then let tL ⟵ tL + 1. After that, if tL < (mn)2, then repeat from Step 4.2; otherwise, go to Step 5.
Step 5. Return P0 and S0 as the final (best-found) operation-based permutation and the final (best-found) schedule, respectively.