OR 2004 Tilburg, 1/9/20041 Simulation of a job shop scheduling strategy: Do advanced scheduling algorithms pay off when processing times are disturbed? Marjan van den Akker joint work with: Koen de Bontridder, Rob van Geel, Han Hoogeveen
OR 2004 Tilburg, 1/9/20042 Outline Job shop scheduling Tabu search Dispatching rules Rescheduling Simulation experiments Total weighted completion time Total weighted tardiness
OR 2004 Tilburg, 1/9/20043 Job shop scheduling n jobs J 1, J 2,…,J n m machines, can execute one operation at a time Job: sequence of operations o v Each operation on a given machine d j is due date of job j C j completion time of last operation of job j Tardiness T j = max(C j -d j,0) Objectives: –Minimize Σ w j C j –Minimize Σ w j T j
OR 2004 Tilburg, 1/9/20044 Tabu search Algorithm by De Bontridder (2001) Scheduling in two steps: –Determine execution order on each of the machine –Determine optimal starting times Neighborhood: swap the machine order of two operations
OR 2004 Tilburg, 1/9/20045 Tabu search Example: Disjunctive graph: OvOv MvMv M1M1 M2M2 M2M2 M1M1 M1M1 5 Job 1 Job p3p3 p4p4 4 1 p1p1 p1p1 l(2) l(1) s p2p2 -d1-d1 Capacity: w 1 max cost flow = total weighted tardiness r1r1
OR 2004 Tilburg, 1/9/20046 Tabu search Max cost flow helps to find improving swaps. Is it worth the effort with disturbed processing times?
OR 2004 Tilburg, 1/9/20047 Dispatching rules First-come-first-served Minimum slack time: –q v remaining processing time of job j from o v on –If machine finishes an operation at time s, select from the operations in the queue the one with minimal d j -(s+q v )
OR 2004 Tilburg, 1/9/20048 Rescheduling After fixed number of operations e.g. after 50 or 20 operations Based on deviation from expected starting time. Reschedule when: |s realized -s planned | > λ C max
OR 2004 Tilburg, 1/9/20049 Discrete-event simulation Processing times U[0.95 p j,1.05 p j ] U[0.8 p j,1.2 p j ] Exp(p j ) 4-Erlang(p j /4)
OR 2004 Tilburg, 1/9/ Discrete-event simulation Events: –operation becomes available for processing –operation is finished Scheduling algorithms use expected processing times p j Test: –20 jobs, 10 machines, 200 operations –2 instances, per instance 3 runs of tabu search –for each scenario 50 simulation runs compute tabu search value after each run: ‘real optimum’
OR 2004 Tilburg, 1/9/ Computational results w j C j results(average values) pjpj schedsim/ tabu(start) sim/ tabu(after) U[0.95 p j,1.05 P j ]tabu U[0.95 p j,1.05 P j ]MST U[0.95 p j,1.05 P j ]FCFS U[0.8 p j,1.2 P j ]tabu U[0.8 p j,1.2 P j ]MST U[0.8 p j,1.2 P j ]FCFS exptabu expMST expFCFS Erlangtabu ErlangMST ErlangFCFS
OR 2004 Tilburg, 1/9/ Computational results w j C j (2) results(average values) pjpj Re-schedsim/ tabu(start) sim/ tabu(after) U[0.8 p j,1.2 P j ]tabu U[0.8 p j,1.2 P j ]MST U[0.8 p j,1.2 P j ]FCFS U[0.8 p j,1.2 P j ]Start dev 10% U[0.8 p j,1.2 P j ]after 50 ops U[0.8 p j,1.2 P j ]after 20 ops
OR 2004 Tilburg, 1/9/ Computational results w j C j (3) results(average values) pjpj schedsim/ tabu(start) sim/ tabu(after) exptabu expMST expFCFS expStart dev 10% expafter 50 ops expafter 20 ops Erlangtabu ErlangMST ErlangFCFS ErlangStart dev 10% Erlangafter 50 ops Erlangafter 20 ops
OR 2004 Tilburg, 1/9/ Concluding remarks w j C j Tabu search is better for smaller variance (including Erlang) Dispatching is better for larger variance Rescheduling improves, but may take large computation time
OR 2004 Tilburg, 1/9/ Computational results w j T j Instances with optimal w j T j close to zero are very sensitive to disturbances (sim/tabu(after)) does not make sense. Tests: –generate instances with optimal w j T j close to zero –multiply deadlines by factor = 0.98,0.96…,0.5
OR 2004 Tilburg, 1/9/ w j T j : uniform [0.8p j,1.2p j ]
OR 2004 Tilburg, 1/9/ w j T j : Erlang
OR 2004 Tilburg, 1/9/ w j T j : exponential
OR 2004 Tilburg, 1/9/ Concluding remarks w j T j Uniform close to the optimum, larger variance further from the optimum For Uniform and Erlang tabu search better than dispatching For exponential MST or a lot of rescheduling Rescheduling better after a fixed number of operations