jobshop scheduling we have
play

jobshop scheduling We have a set of resources a set of jobs a job - PowerPoint PPT Presentation

jobshop scheduling We have a set of resources a set of jobs a job is a sequence of operations/activities sequence the activities on the resources An example: 3 x 4 Op1.2 job1 Op1.1 Op1.1 Op1.3 Op1.4 job2 Op2.1 Op2.3 Op2.4


  1. jobshop scheduling

  2. We have • a set of resources • a set of jobs • a job is a sequence of operations/activities • sequence the activities on the resources

  3. An example: 3 x 4 Op1.2 job1 Op1.1 Op1.1 Op1.3 Op1.4 job2 Op2.1 Op2.3 Op2.4 Op2.2 job3 Op3.1 Op3.3 Op3.4 Op3.2 • We have 4 resources: green, yellow, red and blue • a job is a sequence of operations (precedence constraints) • each operation is executed on a resource (resource constraints) • each resource can do one operation at a time • the duration of an operation is the length of its box • we have a due date, giving time windows for operations (time constraints)

  4. Op1.2 Op1.1 Op1.1 Op1.3 Op1.4 An example: 3 x 4 Op2.1 Op2.3 Op2.4 Op2.2 Op3.1 Op3.3 Op3.4 Op3.2 Op1.2 Op2.1 Op3.4 Op1.1 Op2.3 Op1.3 Op3.1 Op2.2 Op3.3 Op1.4 Op2.4 Op3.2

  5. The problem Assign a start time to each operation such that (a) no two operations are in process on the same machine at the same time and (b) temporal constraints are respected The problem is NP complete

  6. The problem Alternatively … sequence operations on resources This gives a set of solutions, and might be considered a “least commitment approach”

  7. Op1.2 Op1.1 Op1.1 Op1.3 Op1.4 An example: 3 x 4 Op2.1 Op2.3 Op2.4 Op2.2 Op3.1 Op3.3 Op3.4 Op3.2 Op1.1 Op2.3 Op3.1 On the “green” resource, put a direction on the arrows A disjunctive graph

  8. Op1.2 Op1.1 Op1.1 Op1.3 Op1.4 An example: 3 x 4 Op2.1 Op2.3 Op2.4 Op2.2 We do not bind operations to start times Op3.1 Op3.3 Op3.4 Op3.2 We take a least commitment approach Op1.1 Op2.3 Consequently we get a set of solutions! Op3.1 On the “green” resource, put a direction on the arrows A disjunctive graph

  9. 7x6 7 6 2 1 0 3 1 6 3 7 5 3 4 6 What is makespan! 1 8 2 5 4 1 0 5 1 0 0 1 0 3 4 2 5 3 4 5 8 0 9 1 1 4 7 1 5 0 5 2 5 3 3 4 8 5 9 2 9 1 3 4 5 5 4 0 3 3 1 1 3 3 3 5 9 0 1 0 4 4 2 1 2 4 4 4 0 2 3 7 5 2 1 3 / / / / a 7 b y 6 j o b s h o p p r o b l e m / / e a c h r o w ( t h e r e a r e 7 ) i s a j o b / / e a c h j o b h a s 6 o p e r a t i o n s ( a m a c h i n e / d u r a t i o n p a i r ) / / e a c h o p e r a t i o n r e q u i r e s / / - a m a c h i n e ( 0 t o 5 ) / / - a d u r a t i o n o n t h a t m a c h i n e ( 1 t o 1 0 ) / / / / T h e p r o b l e m i s t o f i n d t h e s h o r t e s t m a k e s p a n / / w e r e m a k e s p a n i s t h e t i m e r e q u i r e d t o c o m p l e t e a l l j o b s . / / / / m i n i m u m m a k e s p a n i s 5 7

  10. 1 0 1 0 4 1 8 7 2 1 9 4 1 2 4 5 3 3 8 8 5 0 5 8 4 6 2 9 1 2 3 0 8 2 8 5 7 5 1 6 1 5 2 7 7 4 2 3 8 3 5 4 6 6 2 9 3 7 4 5 4 0 5 2 2 3 0 4 7 9 3 6 8 1 6 1 8 1 1 6 8 9 7 8 9 0 8 1 9 8 1 5 5 7 0 9 1 8 8 3 3 3 7 5 5 5 2 0 2 2 0 4 3 2 6 8 4 1 6 6 9 2 4 9 4 0 0 7 4 1 9 8 7 6 8 3 2 6 4 5 5 6 3 5 4 7 8 1 3 9 3 9 1 2 6 4 5 4 0 0 6 3 7 9 8 4 7 4 8 6 1 1 6 6 4 2 9 1 5 1 8 0 7 3 9 8 2 4 3 7 5 4 7 5 5 6 6 4 4 0 2 6 2 8 7 9 2 2 1 1 5 7 4 3 2 2 0 0 1 2 8 2 6 6 6 1 3 7 9 9 2 2 5 8 4 8 0 2 6 2 3 9 6 4 2 2 9 5 0 6 3 6 3 3 7 1 0 8 1 8 1 3 6 5 4 0 1 9 6 0 8 9 5 6 4 3 9 5 9 2 3 7 1 8 8 1 5 2 6 4 6 3 8 4 8 L a w r e n c e 1 0 x 1 0 i n s t a n c e ( T a b l e 6 , i n s t a n c e 2 ) ; For a long time, unsolved

  11. Why bother? • Minimise makespan • what is makespan? • Maximise start • JIT, minimise inventory levels • minimise idle time on resources • maximise ROI • ...

  12. Op1.2 Op1.1 Op1.1 Op1.3 Op1.4 end start Op2.1 Op2.3 Op2.4 Op2.2 Op3.1 Op3.3 Op3.4 Op3.2 Find the smallest value for end minimise makespan

  13. How can we view this as a csp? Each operation is a variable domain is set of start times there are precedence constraints between operation in a job operations on a resource have disjunctive constraints Op1.2 Op1.1 Op1.1 Op1.3 Op1.4 end start Op2.1 Op2.3 Op2.4 Op2.2 Op3.1 Op3.3 Op3.4 Op3.2

  14. Complexity What is the complexity of this problem? • Assume we have m resources and n jobs • on each resource we will have n operations • we can order these in n! ways • therefore we have O(n! m ) states to explore m ( ! ) O n

  15. But we want to optimise, not satisfy How do you optimise with CP? A sequence of decision problems • Is there a solution with makespan 395? • Yip! • • • Is there a solution with makespan 300? • Let me think about that ... • Yes • Is there a solution with makespan 299? • Hold on, … , hold on • NO! • Minimum makespan is 300.

  16. When optimising, via a sequence of decision problems, will all decisions be equally difficult to answer? What does branch and bound (BnB) do ?

  17. Who cares about jobshop scheduling? Manufacturing inc.

  18. Variants of jsp • openness: • variety of resources can perform an operation • processing time dependant on resource used • set up costs, between jobs (transition cost) • consumable resources • such as gas, oil, etc • pre-emption • can stop and restart an operation • resource can perform multiple operations simultaneously • batch processing • secondary resources • people, tools, cranes, etc • etc Chris Beck (2006) “The jssp has never been spotted in the wild.”

  19. Why might CP be technology of choice for scheduling? • can model rich real-world problems • addition of side constraints etc • incorporate domain knowledge • in the form of variable and value ordering heuristics • powerful reasoning/inference allied to novel search techniques We can get a solution up and running quickly

  20. Operation

  21. Operation

  22. Operation Operation has a duration • a scheduled start time • is on a resource •

  23. Operation

  24. Operation

  25. Operation see next slides

  26. Picture of an operation op1.before(op2) duration earliest start latest end

  27. Picture of an operation op1.before(op2) duration earliest start latest start Constrained integer variable represents start time

  28. Picture of an operation op1.before(op2) op1 op2 op1.before(op2) op1.start() + op1.duration() ≤ op2.start()

  29. Picture of an operation op1.before(op2) op1 propagate op2 op1.before(op2) op1.start() + op1.duration() ≤ op2.start() Update earliest start of operation op2

  30. Picture of an operation op1.before(op2) op1 propagate op2 op1.before(op2) op1.start() + op1.duration() ≤ op2.start() Update latest start of operation op1 No effect on this instance

  31. Picture of an operation op1.before(op2) op1 op2 op1 and op2 cannot be in process at same time op1.before(op2) OR op2.before(op1) Not easy to propagate until decision made (disjunction broken)

  32. Operation Test

  33. Operation Test

  34. Job

  35. Job

  36. Job Job is a sequence of operations

  37. Job Creating/building a job as a sequence of operations each one before the other

  38. Decision

  39. Picture of an operation op1.before(op2) op1 op2 Use a 0/1 decision variable d[i][j] as follows d[i][j] = 0  op[i]1.before(op[j]) d[i][j] = 1  op[j]1.before(op[i])

  40. Picture of an operation op1.before(op2) op1 op2 d[i][j] = 0  op[i]1.before(op[j]) op1 before op2

  41. Picture of an operation op1.before(op2) op1 op2 d[i][j] = 0  op[i]1.before(op[j]) op1 before op2

  42. Picture of an operation op1.before(op2) op1 op2 d[i][j] = 1  op[j]1.before(op[i]) op2 before op1

  43. Picture of an operation op1.before(op2) op1 op2 d[i][j] = 1  op[j]1.before(op[i]) op2 before op1

  44. Decision

  45. Decision A decision is essentially a triple: Value decides relative order of a zero/one variable (this) the two operations (before or after) • an operation op_i • an operation op_j •

  46. Resource

  47. Resource

  48. Resource Resource is a collection of operations and decisions that will be made on their ordering/sequencing on this resource

  49. Resource Add an operation to a resource and then constrain it …

  50. Resource decision = 0 implies op_i before op decision = 1 implies op before op_i

  51. JSSP

  52. JSSP

  53. JSSP Ouch!

  54. JSSP A jssp is a collection of jobs and resources

  55. JSSP

  56. JSSP

  57. JSSP

  58. JSSP

  59. JSSP

  60. JSSP

  61. JSSP

  62. JSSP

  63. DecisionProblem

  64. DecisionProblem

  65. Optimize

  66. Wot!? No heuristics!?!!!

Recommend


More recommend