Research Article

MIP Models and Hybrid Algorithms for Simultaneous Job Splitting and Scheduling on Unrelated Parallel Machines

Algorithm 1

Local search.
For all generations
For the population
For all chromosomes
to
to
If Gene(i)Machine == Gene(j)Machine → (inter-machine interchange)
 If → (adjacent jobs) (Figure 5)
    ; ; ;
   If & Gene(i)Machine == Gene( )Machine
       → (“a” on Figure 5)
   If Gene(i)Machine != Gene( )Machine → (Gene(i)Job is the first job on Gene(i)Machine)
       → (“b” on Figure 5)
   If & Gene(j)Machine == Gene( )Machine
       → (“c” on Figure 5)
   If
      Let to interchange Gene(i)Job and Gene(j)Job on the schedule
      Calibrate random key numbers → (Section 4.2.2, item “i”)
 If → (non-adjacent jobs) (Figure 6)
    ;
   If & Gene(i)Machine == Gene( )Machine
      
         
   If Gene(i)Machine != Gene( )Machine → (Gene(i)Job is the first job on Gene(i)Machine)
      
         
   If & Gene(j)Machine == Gene( )Machine
      
   If
      Let to interchange Gene(i)Job and Gene(j)Job on the schedule
      Calibrate random key numbers → (Section 4.2.2, item “i”)
If Gene(i)Machine != Gene(j)Machine → (intra-machine exchanging) (Figure 7)
    ; = 0; = 0;
   a = CT_Gene(i)Machine +
   If & Gene(i)Machine == Gene( )Machine
      
   If Gene(i)Machine != Gene( )Machine → (Gene( )Job is the first job on Gene(i)Machine)
      
   If Gene(i)Machine == Gene( )Machine
      
   b = CT_Gene(j)Machine +
   If Gene(j)Machine == Gene( )Machine
      
   If Gene(j)Machine ! = Gene( )Machine
       → (Gene(j)Job is the first job on Gene(j)Machine)
   If & Gene(j)Machine == Gene( )Machine
       =
   
   
    = Max(CT_Gene(i)Machine; CT_Gene(j)Machine)
    =Max( )
   If <
      Let to exchange Gene(i)Job and Gene(j)Job on the schedule
      Calibrate random key numbers → (Section 4.2.2, item “ii”)