© J. Christopher Beck Lecture 14: Assembly Line Scheduling 2
© J. Christopher Beck Outline Solving the “Full” Car Sequencing Problem Example Parallel machines, buffers, & bypass Flexible Flow Line Loading Algorithm
Options12345Demand Class 1YYY1 Class 2Y1 Class 3YY2 Class 4YY2 Class 5YY2 Class 6YY2 Capacity1/22/31/32/51/5 Class?????????? Option 1 Option 2 Option 3 Option 4 Option 5
Options12345Demand Class 1YYY1 Class 2Y1 Class 3YY2 Class 4YY2 Class 5YY2 Class 6YY2 Capacity1/22/31/32/51/5 Class Option 1XXXXX Option 2XXXXXX Option 3XXX Option 4XXXX Option 5XX OPL Choice Pts: 39 Failures: 36 Time: 0.07 Vars: 110 Cts: 113
© J. Christopher Beck “Full” Car Sequencing Problem Minimize total setup cost Minimize distance from pre-assigned slot Make-to-order jobs Capacity constraints on options (make the rate of consumption of parts at each station as constant as possible) Constraint or objective?
© J. Christopher Beck Solution Ideas Extend CP model Setup costs – easy to add Distance from preassigned slots – easy to add Dispatch rules? IP formulation? Tabu search? Heuristics – Grouping & Spacing (GS) See OPL code in D.4
© J. Christopher Beck GS Heuristic Determine total number of jobs Group jobs w.r.t. setup costs Order subgroups w.r.t. shipping dates Sequence jobs within subgroups for capacity constraints
© J. Christopher Beck GS Heuristic Determine # jobs / scheduling horizon Group jobs based on setup cost
© J. Christopher Beck GS Heuristic Group jobs based on setup cost Order groups w.r.t. shipping/holding cost
© J. Christopher Beck GS Heuristic Sequence jobs within groups to account capacity constraints
© J. Christopher Beck Example Single machine, 10 jobs Setup cost (consecutive): c jk = |a j1 – a k1 | If a j2 = a k2 = 1 and spaced l jobs apart the penalty cost is: 2 ( l ) = max(3 – l,0) Tardiness: w j T j Find min cost sequence
© J. Christopher Beck Example c jk = |a j1 – a k1 | 2 ( l ) = max(3 – l,0) w j T j Jobs a j a j djdj ∞2∞∞∞∞6∞∞∞ wjwj Run GS Heuristic
© J. Christopher Beck Flexible Flow Line with Bypass Stage 1 Stage 2 Figure 6.2 ? ? ? ? Maximize throughput Minimize WIP
© J. Christopher Beck Flexible Flow Line Loading (FFLL) Three phase (heuristic) algorithm for a flexible flow line with bypass environment Allocate operations to machines Sequence operations Assign release times
© J. Christopher Beck Allocate Machines Assume all jobs available at 0 Use Longest Processing Time (LPT) heuristic to (try to) balance load across machines (Later resequencing of jobs does not change machine allocation)
© J. Christopher Beck Sequencing What order are the jobs released? Always balance machine use Workload assigned to machine i, pij = 0 for all but one machine Fraction of the total workload of machine i that has entered system just after job k enters Let J k be the set of jobs sequenced up to k (including k)
© J. Christopher Beck Sequencing If everything is balanced, machine i has seen the same fraction of its work as all the other machines. So we want: Fraction of the total workload of machine i that has entered system just after job k enters Fraction of the total workload of all machines that has entered system just after job k enters
© J. Christopher Beck Sequencing Overload/underload on machine i up to from job k Sum overloads Target workload on machine i Actual workload on machine i Minimize Greedy: Choose as the next job, the one that minimizes
© J. Christopher Beck Assign Release Times Let all jobs enter the system as soon as possible Find machine with the largest total processing time (bottleneck) Fix start/end times of operations Move upstream operations as late as possible Move downstream operations as early as possible
© J. Christopher Beck Flexible Flow Line with Bypass Stage 1 Stage 2 Figure 6.2 ?? Maximize throughput Minimize WIP