Procedure: the modified WCSA for the parallel machine scheduling problem
Inputs:   𝑛 , 𝑚 , 𝑎 𝑖 , 𝑑 𝑖 , 𝑏 𝑖 for 𝑖 = 1 ,…, 𝑛
Output: the near optimal scheme S_opt  and the associated total completion time TC
Begin
 let 𝑁 0 = { 𝐽 1 , 𝐽 2 , , 𝐽 𝑛 }   be the sequence that sorts all the jobs by ascending order of their
 normal time 𝑎 𝑖 ,
 set TC = infinity, and 𝑆 _ 𝑜 𝑝 𝑡 𝑘 = Φ   for 𝑘 = 1 , , 𝑚    % initialize the 𝑇 𝐶 and 𝑆 _ 𝑜 𝑝 𝑡
 set v a r = m a x { 2 , 𝑛 / 𝑚 }             % initialize the ranges of 𝑙 1 and 𝑙 2
for ( 𝑙 1 = 1 ;   𝑙 1 v a r ; 𝑙 1 ++)
    𝜔 1 = 0 . 4 + ( 0 . 7 5 0 . 4 ) × ( ( 𝑙 1 1 ) / ( v a r 1 ) )
   for ( 𝑙 2 = 1 ; 𝑙 2 v a r ; 𝑙 2 ++)
     𝜔 2 = 0 . 2 + ( 0 . 5 0 . 2 ) × ( ( 𝑙 2 1 ) / ( v a r 1 ) )
     𝜔 3 = 1 𝜔 1 𝜔 2
    set 𝑁 = 𝑁 0
    set 𝑆 = Φ for 𝑘 = 1 , , 𝑚          % initialize the scheme 𝑆
    set 𝐶 m a c ( 𝑘 ) = 0 , for 𝑘 = 1 , , 𝑚        % initialize the completion
                       time of all machines
    set 𝐶 j o b ( 𝑖 ) = 0 , for 𝑖 = 1 , , 𝑛         % initialize the completion
                       time of all jobs
    for ( 𝑖 = 1 ;   𝑖 𝑚 ;   𝑖 ++)
     select the machine that has the least completion time in all machines
     select the job 𝐽 that has the least normal time from 𝑁
      𝑆 = 𝑆 { 𝐽 }
      𝐶 m a c ( ) = 𝐶 m a c ( ) + 𝑎 ( 𝐽 )
      𝐶 j o b ( 𝐽 ) = 𝐶 m a c ( )
     delete job 𝐽 from 𝑁
   end for
   for ( 𝑗 = 𝑚 + 1 ; 𝑗 𝑛 ;    𝑗 ++)
    select the machine 𝑓 that has the least completion time in all machines
    if ( 𝐶 m a c ( 𝑓 ) > m a x { 𝑑 ( 𝐽 𝑟 ) , ( 𝐽 𝑟 𝑁 ) }       % tardy jobs are sequenced in the
                      nondecreasing order of 𝑎 𝑖 + 𝑏 𝑖
     select the job 𝐽 𝑓 with the smallest 𝑎 ( 𝐽 𝑓 ) + 𝑏 ( 𝐽 𝑓 ) from 𝑁
      𝑆 𝑓 = 𝑆 𝑓 { 𝐽 𝑓 }
      𝐶 m a c ( 𝑓 ) = 𝐶 m a c ( 𝑓 ) + 𝑎 ( 𝐽 𝑓 ) + 𝑏 ( 𝐽 𝑓 )
      𝐶 j o b ( 𝐽 𝑓 ) = 𝐶 m a c ( 𝑓 )
     delete job 𝐽 𝑓 from 𝑁
    else                 % arrange the jobs in a ascending
                       order of the weight of combination
     set 𝑁 = { 𝑑 ( 𝐽 𝑟 ) 𝐶 m a c ( 𝑓 ) , ( 𝐽 𝑟 𝑁 ) }
     select job 𝐽 𝑓   with the smallest 𝜔 1 × 𝑎 ( 𝐽 𝑓 ) + 𝜔 2 × 𝑑 ( 𝐽 𝑓 ) 𝜔 3 × 𝑏 ( 𝐽 𝑓 )    f r o m    𝑁
      𝑆 𝑓 = 𝑆 𝑓 { 𝐽 𝑓 }
      𝐶 m a c ( 𝑓 ) = 𝐶 m a c ( 𝑓 ) + 𝑎 ( 𝐽 𝑓 )
      𝐶 j o b ( 𝐽 𝑓 ) = 𝐶 m a c ( 𝑓 )
     delete job 𝐽 𝑓 from 𝑁
    end if
   end for
    𝑇 𝐶 _ t e m p = s u m { 𝐶 j o b ( 𝑖 ) = 0 ,  for   𝑖 = 1 , , 𝑛 }
   if   𝑇 𝐶 _ t e m p < 𝑇 𝐶              % update the scheme 𝑆 _ 𝑜 𝑝 𝑡 and the
                       assisted completion time 𝑇 𝐶
     𝑇 𝐶 = 𝑇 𝐶 _ t e m p
     𝑆 _ 𝑜 𝑝 𝑡 = 𝑆
   end if
  end for
end for
End
Algorithm 1: Procedure of MWCSA.