0% found this document useful (0 votes)
168 views8 pages

Shifting Bottleneck Procedure For Job Shop Scheduling

The document describes the shifting bottleneck heuristic algorithm for scheduling jobs on machines. The algorithm initializes with no scheduled machines and the critical path. It then schedules the machine with the longest processing time and reschedules already scheduled machines to update the schedule.

Uploaded by

Jonas Oliveira
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
168 views8 pages

Shifting Bottleneck Procedure For Job Shop Scheduling

The document describes the shifting bottleneck heuristic algorithm for scheduling jobs on machines. The algorithm initializes with no scheduled machines and the critical path. It then schedules the machine with the longest processing time and reschedules already scheduled machines to update the schedule.

Uploaded by

Jonas Oliveira
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

Shifting Bottleneck Heuristic

Algorithm
1. Initialization
• M0 = ∅ (scheduled machines)
• G = only conjuctive arcs
• Cmax = critical path in G.
2. (Choice of machine.) For each Mi ∈ M − M0,
• generate the 1|rj |Lmax schedule
• compute L|max(i).
3. Scheduling the bottleneck machine
• Let k be the machine that maximizes Lmax(i)
• Schedule k by the !|rj |Lmax solution
• Update G
• M0 = M0 ∪ {k}.
4. (Resequence already scheduled machines.) For each Mi ∈ M0 − {k}
• Delete disjunctive arcs for Mi from G
• Form the 1|rj |Lmax
• Reschedule Mi according to this schedule
5. If M = M0 stop, else go to 2
Example

jobs machine sequence processing times


1 1,2,3 p11 = 10, p21 = 8, p31 = 4
2 2,1,4,3 p22 = 8, p12 = 3, p42 = 5, p32 = 6
3 1,2,4 p13 = 4, p23 = 7, p43 = 3

        10 


       8              
1,1 2,1 3,1

 
  
        
        


 

 

 
 
 
 
         4  


 
  

  
  
  
 
  
 

  
 

  
  
 0 
  
  
  
      


 

  

  

  

  

         
 
  
  
  
  
   2,2
 
  
  0
  
  
 
    8  1,2

     4,2    3,2   
   6
 

 

 

 

 

 

   

 

    3
  5




 


 


 

 0 
 

 

           
  
 
  
 
  
 
  
 
  
 
        

 
 
 
 
 
      3  


   
   
   
   
   
      
 
         
 1,3 4,3 

     







4    2,3              






       
7
Iteration 1

        10 


       8              
1,1 2,1 3,1

 
  
        
        


 

 

 
 
 
 
         4  


 
  

  
  
  
 
  
 

  
 

  
  
 0 
  
  
  
      

 

 

 

 

 

        

  
  
  
  
  
  2,2
 
  
  0
  
  
 
      8  1,2

      4,2    3,2  6

 

 

 

 

 

     
   
3
 
5
        




 
 


 
 


 
 

 0 
 
 

 
 

        
  
 
  
 
  
 
  
 
  
 
      3  





 

 

 

 

 
 
 
 
 
 
   1,3      
  
    
    
    
    
   








4    2,3     4,3        






         
7

Form the 1|rj |lmax problems (Recall dj = LB − (CP − pj ))

Machine 1
job 1 2 3
rj 0 8 0
pj 10 3 4
dj 10 11 12

Optimal schedule 1,2,3, Lmax(1) = 5


Iteration 1 (cont)

        10 


       8              
1,1 2,1 3,1

       


        


  
 
  
 
  
   
 
 
  
  
         4  


  
    
   
  
    
    
 

 

 0 
 

 

 

        

  
  
  
  
  
  
  
  
  
  
        

  
   
   
   
   
     8  1,2  2,2
     0       
 


   4,2 
 
 3,2  6

         
3 5

  
  
  
  
  
  
  
  
  
  
  
  
      







 






  
 0 

  



  
        
 
 
 

 

 

 

      3  




 
 


 
 


 
 


 
 


 
 

  
          

  
    
    
    
    
   


 1,3





4    2,3       4,3        






       
7

Form the 1|rj |lmax problems

Machine 2
job 1 2 3
rj 10 0 4
pj 8 8 7
dj 18 8 19

Optimal schedule 2,3,1 Lmax(2) = 5

Similarly Lmax(3) = 4. Lmax(4) = 0.

Schedule M1 in the order 1,2,3.


Iteration 2

        10 


       8              
1,1 2,1 3,1

 
  
        
        


 

 

 

 

 

    "!"!"!  "!"!"! "!"!"! "!"!"!     4  


  
 

  
  
  
 
  
 

  
 

   "!"!"! "!"!"! "!"!"! "!"!"! 10
  
 0 
  
  
  
      

 

 

 

 

 

   "!"!"! "!"!"! "!"!"! "!"!"!      
  
  
  
  
  
  2,2
  
  
  0
  
  
 
      !"8 !" !" !"  1,2

      4,2    3,2  6


 

 

 
 
 

 

      $#$# $#$# $#$#  $#$#  $#$# 

3
 
5
        

  
 
  
 
  
  0 
 
   
 
   $#$# $#$# $#$# $#$# $#$#      

   
   
  
  
   
   
 $#$#$# $#$#$# $#$#$# $#$#$# $#$#$#
  
  
  
  
  
  
  
  
  
  
  
  
        3  





  



  



  



  



  
   $#$# $#$# $#$# 3$#$# $#$#      


  
  
  
  
  
  


 1,3





$#$# $#$# $#$# 4 $#$# $#$#    2,3     4,3        






         
7

Form the 1|rj |lmax problems

Machine 2
job 1 2 3
rj 10 0 17
pj 8 8 7
dj 23 10 14

Optimal schedule 2,1,3, Lmax(2) = 1


Iteration 2 (cont)

        10 


       8              
1,1 2,1 3,1

 
  
        
        


 

 

 

 

 

    "!"!"!  "!"!"! "!"!"! "!"!"!     4  


  
 

  
  
  
 
  
 

  
 

   "!"!"! "!"!"! "!"!"! "!"!"! 10
  
 0 
  
  
  
      

 

 

 

 

 

   "!"!"! "!"!"! "!"!"! "!"!"!      

  
   
   
   
   
   2,2
 
  
  0
  
  
 
      "!8 "! "! "!  1,2

    4,2    3,2  6


 


 
 
 
 

 

      $#$# $#$# $#$#  $#$#  $#$# 

3
 
5
        

    
  
 
 0 
 
   
 
   $#$# $#$# $#$# $#$# $#$#      

   
   
  
   
   
   $#$# $#$# $#$# $#$# $#$#
  
  
  
  
  
  
  
  
  
  
 $#$#$# $#$#$# $#$#$# 3$#$#$# $#$#$#    3  



 
  
 
 
  
 
 
  
 
 
  
 
 
  
 
 
  
          
 
  
  
  
  
   


 1,3






$#$# $#$# $#$# 4 $#$# $#$#    2,3       4,3        






       
7

Form the 1|rj |Lmax problems

Machine 3
job 1 2
rj 18 18
pj 4 6
dj 27 27
Optimal schedule (either), Lmax(3) = 1

Similarly Lmax(4) = 0.

Schedule M2 in the order 2,1,3.

Resequence Trying to resequence machine 1 does not help.


Iteration 3


 
   

    
 
  
1,1 2,1 3,1
&%    
          10  
       

 
 
  
 
 
 
 8 
 
 
 
  

     
 

 

 

 


 

 

 

 

 

 

  &%   
 % 
& %&

&  
  
 % 
& %&

& "!"!"! &     % 
& %& "!"!"! & % 
& %& "!"!"! & % 
& %& "!"!"! & % 
& %& % 
& %&

& % 
& %&

& % 
& %&

& % 
& %&

& %&
&
%& &%&%&% 


 
       



 


 


  
  
 

  
   
   
   
   
   
   % 
& %&
& % %&
& % %&
& ! % %&
& ! % %&
& ! % %&
& ! % %&
& % %&
& % %&
& % %&
& % %&
& % %&
& &%&%&%   
  
 4 
  


 
  
 
 
  
 
 
  
  
  
 
 
  
 
 
  
 
     & % % 
& % % 
& % % 
& " ! " "!"!!" & % % 
& " ! " "!"!!" & % % 
& " ! " "!"!!" & % % 
& " ! " "!"!!" 10& % % 
& % % 
& % % 
& % % 
&
8
% % 
& % % 
& 
 

 

 

 

 

  
 
0
 
   
 
   
   
   
  %&
% %&
&
% %&
&
% %&
% %&
% %&
% %&
% %&
&
% %&
&
% %&
&
% %&
&
% %&
&
% &%&%&% 
  
 
  
 
  
 
  
 
 

 

 

 

 

 

 

  & % 
& %& % 
& %&
& % 
& %&
& "!"! & % 
& %& "!"! & % 
& %& "!"! & % 
& %& "!"! & % 
& %& % 
& %&
& % 
& %&
& % 
& %&
& % 
& %&
& % 
& %&
& &%&%&% 
 
   
   
   

  
  
      
8
 
  
  
  
  
   
   & % % 
& % % 
& % % 
& % % 
& % % 
& % % 
&  % % 
&  % % 
& % % 
& % % 
& % % 
& % % 
&
    0       
 

2,2

% & % & % 8 & % & % & %    
 % 
&
1,2
  
 %  &
& % & % & % & % &% 




4,2


  


3,2
 

  6

 

 

 

 

 

 

 
 
 $
 #$ #$

$ #$

$  
  $#$
  
  $#$# 
  
3
 
 
5
     
  
     
 

  
  
  
  
  
  
  
  
  
  
  
  
   # 
# $$ # 
# $$ # 
# $$ # 
# $$ #$$## 
  
  
  
  





 
  
  

 
  
  

 
  
  

0  
  
  

 
  
  

 
  
  

      # # 
$ # # 
$ # # 
$ # # 
$ $$#$# 

 

 

 

 

 
  
 
  
 
  
 
  
 
  
 
  
 
    # 
$ # 
$ #$ # 
$ # 
$ #$ # 
$ # 
$ #$ # 
$ # 
$ #$ 
  

  

  

  

 
$ $ $ 3$ $#$#$#     
3


   
    
    
    
    
    
   # # 
$ # # 
$ # # 
$ # # 
$ 4,3   
  

  

  

  

 

  
   
   
   
   
   
  
 


 1,3






$ # $ # $ # 4 $ # $# 

 
2,3
    

 
                   



 


              



  
  

7
 
Form the 1|rj |Lmax problems
Machine 3 and Machine 4 both have Lmax() = 0.
Resequencing does not help.
Final schedule

        10 


       8              
1,1 2,1 3,1

 
  
        
        


 

 

 

 

 

   &%&% &%&%  &%&% "!"!"!  &%&% "!"!"! &%&% "!"!"! &%&% "!"!"! &%&% &%&% &%&%&% &%&%&% 8 &%&%&% &%&%&% &%&%&%
% 
& % 
& % 
& % 
& % 
& % 
& % 
& % 
&  ('('('  ('('('   4  


  
 

  
  
  
   
 

  
 

   &%&%&% &%&%&% &%&%&% "!"!"! &%&%&% "!"!"! &%&%&% "!"!"! &%&%&% "!"!"! 10&%&%&% &%&%&% &%&%&% &%&%&% &%&%&% &%&%&% &%&%&%
  
 0 
  
  
  
 ('('('  ('('(' 6    










 
 
 


 


    &%&%&% &%&%&% &%&%&% "!"!"! &%&%&% "!"!"! &%&%&% "!"!"! &%&%&% "!"!"! &%&%&% &%&%&% &%&%&% &%&%&% &%&%&% &%&%&% &%&%&% ('('('  ('('('     

 
 
 &% &% &% &% &% &% &% &%&%% &%&%% &%&%% &%&%% &%&%% &%&%%
   0    
  2,2
    &%&%&% &%&%&% &%&%&% !"8 &%&%&% !" &%&%&% !" &%&%&% !"  &%&%&% 1,2

   
8
    
  
    &&%  &&% &&% &&% &&% &&%    5
4,2 (' ('  3,2 
     $#$# $#$# $#$#  $#$#  $#$# 
    *)*) *)*) *)*) *)*) *)*)*)*)        6 
3

 

 

 

 

 





 
 


 
 


 
 

 0 
 
 

 
 

   $#$# $#$# $#$# $#$# $#$# *)*)*) *)*)*) *)*)*) *)*)*) *)*)*)*)*)*)      


  
  
   
  
   
  
   
  
   
  
   
     $#$#$# $#$#$# $#$#$# $#$#$# $#$#$# *)*)*)*)*)*) *)*)*) *)*)*) 5 *)*)*) *)*)*)    3  
 
 
 
 
 
 
 
 
 
 
 
 
  $#$# $#$# $#$# 3$#$# $#$# *)*)*)*)*)*) *)*)*) *)*)*) *)*)*) *)*)*) 4,3      

   
   
   
   
   



  
  
  
  
  
  


 1,3





$#$# $#$# $#$# 4 $#$# $#$#    2,3     *) 7 *) *) *) *) *)         
        






        
Critical path length is 28. (Colors between pictures do not correspond)

    

     

    

    
M1

                             
                          
M2

                        

        
M3
                       




















   
M4












  

You might also like