Lot sizing and scheduling Continuous manufacturing, flow shop, make-to-stock: • • • • Longer planning horizon Long runs, large setup times: cost minimization Usually repetitive structure: rotation schedule Degrees of freedom: cycle length, sequencing within cycle • Intuition: increasing lot size – inventory costs per unit of time – setup costs per unit of time • Examples in process industry: AKZO, Grolsch, NedCar ELSP ELSP: Economic lot sizing and scheduling problem • Determination of lot sizes, sequence of lots (cycle) • Cost minimization: setup times/costs vs. inventory costs Standard ELSP: • 1 machine: produces item j with rate qj per time unit. • n items with processing time pj qj=1/pj • constant demand rate gj • invent. costs hj, setup cost cjk (j k), setup time sjk • cycle: j1, …,jh, corresponding run times: tj1, …,tjh Feasibility check • Feasibility q > g (demand can be met) g/q < 1 < 1 (=machine utilization) When m>1 and n>1: j 1 j m=1, n=1, s=0 • Notation: demand rate g, production rate q, cycle length x • inventory over time during a cycle: t(q-g) t x tq = gx t=gx/q 1 x (t(q g)) 2 1 gx 1 g x Average inventory over x: 2 (q g) (gx ) x 2 q 2 q M=1, n=1, s=0, cont. • • • • • • • Demand over cycle = gx length production run to meet demand = gx/q = t inventory growth rate = (q-g) maximal inventory = (q-g)gx/q Averaged inventory costs per unit of time: I 1 (q g) g x h q 2 Averaged setup costs per unit of time: S c 1 x Optimal cycle length: d 2qc (I S) 0 x* dx hg(q g) • Optimal lot size: gx* 2qcg h(q g) • Idle time = cycle length - length production run = x - t = g g x x x (1 ) x (1 ) , where = machine utiliz. q q M=1, n=1, s=0, cont. 2qc 2c • If production rate is ‘high’, then: x lim hg q hg(q g) • the lot size is then: gx 2gc h this is the Economic Order Quantity (EOQ) assumption EOQ: setup cost, but no setup time as long as s x(1 ) EOQ-lot size is feasible s if s x(1 ) increase x until s x (1 ) x 1 Examples M=1, n=1, s=0 • q=90, c=$2000, g=50, h=$20, no setup time – – – – – determine cycle time determine lot size determine machine utilization determine idle time how much setup time is allowed, when cycle time remains optimal? • q=0.3333, c=$90, g=0.10, h=$5, no setup time – determine x, lot size – determine total cost/day • q=0.3333, c=$90, g=0.10, h=$5 in discrete time – Find the optimal lot size by comparing total costs/day for relevant lot sizes M=1, n>1, once per cycle, setups=0 • demand for prod. j over cycle = gjx, length prod.run of item j = gjx/qj • cycle consists of single runs of each item with identical cycle lengths: rotation schedule (sequence independent) cj 1 • Now: I S h jg j(1 ρ j)x 2 j j x • Hence: d (I S) 0 x* dx 2 c j j h jg j (1 j ) j Example 7.3.1: M=1, n>1, once per cycle, setups=0 Items 1 2 3 4 qj 400 400 500 400 gj 50 50 60 60 hj 20 20 30 70 800 0 cj 2000 2500 • determine machine utilization • determine cycle time • determine EOQ-cycle time m=1, n>1, j once per cycle, setups>0 • Solution OK if: s (1 )x * = idle time jk j • in case of sequence independent setup times: no sequencing required • in case of sequence dependent setup times sjk minimal by solving corresponding TSP, denote minimum by T Note: there are (n-1)! different sequences (rotation!!) • if T min s jk (1 j ) x * then increase x until: T min s jk (1 j ) x * x s jk (1 j ) (i.e., machine is never idle) Example 7.3.2: M=1, n>1, once per cycle, sequence dependent setups Items 1 2 3 4 Items 1 qj 400 400 500 400 s1k - gj 50 50 60 60 s2k 0.448 hj 20 20 30 70 s3k 0.043 0.234 800 0 s4k 0.145 0.148 0.255 cj 2000 2500 2 3 4 0.064 0.405 0.075 - 0.319 0.529 • how many possible sequences are there? • when is a sequence feasible? • determine the optimal sequence by enumeration - 0.107 - §7.4: m=1, n>1, general cycle, setup times 0 • Feasible solution exists if and only if: (recall that: x * s jk /(1 j ) ) • NP hard problem: no efficient algorithms • Define sequence as: where: jk=k-th item in the sequence j1 ,..., jk ,..., jh (h n) j j 1 m=1, n>1, general cycle, setup times 0 Define: – – – – – qk = production rate of k-th item in the sequence tk = production time of k-th item in the sequence uk = idle time after k-th item in the sequence x = cycle time v = time from start of production of item i in the k-th position until the next production of item i (in same or next cycle) then: qktk = total production during tk = total demand during v (demand must be met!) = gkv Hence: qk t k v gk m=1, n>1, general cycle, setup times 0 The highest inventory level is: (qk-gk)tk total inventory cost k for k-th run: k 1 k 1 q k k k k k k 2 h v (q g )t h (q g ) k (t ) 2 2 g ELSP formulation: k 1 1 k k k q k 2 k Ik = all positions where h (q g ) k (t ) c min min k is produced k k S x ,t ,u x 2 g k k Lk = all items produced s.t. j q t k gk x (for k 1,..,n) jIk during v Meet demand k over cycle k q j j j k ( t s u ) t (for k 1,..,h) k g jL k Meet demand k over v j j j ( t s u )x Cycle length j m=1, n>1, general cycle, setup times 0 (cont.) • ELSP master problem: sequence determination • ELSP subproblem: determination of cycle length, production & idle time • Frequency Fixing & Scheduling (FFS) heuristic 3 phases: 1. Computation of relative frequencies yk, tk 2. Adjustment of relative frequencies y’k, t’k 3. Sequencing Assumption: the yk runs of item k are of equal length (tk), and evenly spaced FFS heuristic, phase 1: frequency fixing Computation of relative frequencies yk, tk prod. k is run with frequency yk. Determine yk as follows: ak x ck yk sk yk min (1 ) y k ,x yk x k k k x 1 where : ak hk (qk gk )k 2 minimization gives : y k x ak c k s k Lagrange multiplier Choose “appropriate” x and determine the resulting yk’s ak when there is idle time, must satisfy : s k c k s k k otherwise: =0 gk x k x determine tk: qk t k y k gk x t k qk y k yk 1 FFS heuristic, phase 2: frequency adjustment Computation of adjusted relative frequencies y’k, t’k Adjust yk and tk so that yk is integer result from literature: when the yk’s are chosen so that they are integer, and powers of 2 solution is within 6% of optimum k x Hence: determine y’k and the associated t'k y'k FFS heuristic, phase 3: sequencing Computation of sequence in cycle Sequencing problem is equivalent to scheduling y' k k jobs on y’max parallel machines, minimizing the makespan Determine y’max=max(y’1,…y’n) = number of parallel machines For each item k, there are y’k jobs of length t’k, evenly spaced, i.e.: when m=6, and y’k=3, then there are two choices: assign the 3 jobs to (1,3,5) or to (2,4,6) Use variant of LPT-heuristic (longest processing time first) to assign the jobs in decreasing order of (y’k,t’k), with the additional restriction that jobs must be evenly spaced Finally, concatenate the schedules of the y’max machines FFS examples 7.4.1: without setup times, x=2 7.4.2.: with setup times, x=3 1 machine, 4 items: Items qj gj hj cj sj 1 400 50 20 2000 0.5 2 400 50 20 2500 0.2 3 500 60 30 800 0.1 4 400 60 70 0 0.2 FFS example schedule for y’4=4 Inventory levels 100 Item1 80 60 Item3 Item2 Item3 40 20 0 0.5 1 Item4 1.5 2 time More general ELSP models • m identical parallel machines, n items: each item must be assigned to exactly one machine: – if cycle times are identical on all machines, the loads on the respective machines must be balanced j’s added up per machine must be < 1 LPT heuristic may be applied to determine a good assignment – if cycle times are allowed to be different on the machines: * calculate cycle time for each item, as if it were a single item model * rank items in decreasing order of the cycle times * Use sequence in ranking to fill machines as long as j<1 NOTE: may lead to infeasible solution! swapping • m machines in series: – rotation schedules on both machines are the same – there may be waiting times on machine 2 (machine 1 may wait) – inventory costs remain the same; setup costs double Exercises: • Pinedo, Chao : – 7.1 – 7.2 – 7.3