Valid Inequalities for Chemical Production Scheduling Sara Zenner and Christos T. Maravelias Department of Chemical and Biological Engineering University of Wisconsin – Madison - WI s max 0, iI s is i s S1 i max s sSi ζS1 = 45 50% 50% T1: 50 T2: 30 S1 ζS1 = 45 65 20 μ = 100 80% Where? Heater Reactor 1 Reactor 2 Separator When? Heat/52 0 Heat/20 50 React2/50 React2/50 React1/50 React2/50 React1/80 React2/80 React3/80 React3/55 React2/70 Separate/80 Separate/55 2 3 4 5 6 7 8 9 k j min j jJi 10 Challenge: Computational performance of MIP scheduling models Previous research has focused on the development of better models Goal: Develop tightening constraints based on specialized propagation algorithms • Include recycle streams • Consider minimum and maximum unit capacities S1 ζS1 = 45 65 jJi S2 104 55-90 T1: 110 S6 PARALLEL PRODUCTION PATHS 10% PROBLEM FORMULATION T2 S3 50% T1 25% {U1,U2} Objectives: maximize profit, minimize cost, minimize makespan, … Constraints: • Material balance and inventory capacity Sst Sst 1 is Bij t is Bijt st st s s, t ij iI s jJi iI s T1 25% {U1,U2} S2 S1 iI j tt ij 1 S3 55 25% T1 {U1,U2} S2 S1 T1 = 55 X 1 j , t 75% T1: 60 S3 55 25% {U1,U2} P ijt 20 S5 50 S6 T3: 60 3 T2 = 40 is 2 attainable 1 {U3} 0 T2: 40 50% 50% 15 S4 20 S5 20 S2 75% T2: 40 50% 50% T3: 60 {U3} 15 S4 20 S5 50 S6 0 0 0 1 1 2 2 3 S1 S2 S4 k Q s S is i s iI s s0 is Qi is Qi s iI s 40 60 80 Amount Produced 100 U1 0 0 0 1 1 2 2 3 iI s 1 2 120 Step 0 Set ωs = 0 for tear states, calculate ωs for products, and set n=0 Step 1 Set Ik = ∅ and Sk = {products & tear states} Calculate μi and then μi* ∀i∉ Ik s.t. Si+\ Sk = ∅. Add these tasks to Ik Calculate ωs ∀s∉(Sk\ ST ) s.t. Is-\ Ik = ∅. Add these states to Sk Does Ik=I & Sk=S? Set n = n+1 20 40 60 80 100 Amount Produced Update Tear Streams No Is n≥ |ST|? Yes Stop 0 U2 Capacity: U1 20-25 kg, U2 45-50 kg 0 * = 60 →̂ = 75 1 2 0 1 0 1 0 20 40 60 80 Amount Produced Ik: Tasks for which μi is known Sk: States for which ωs is known ST: set of tear states n: number of times tear stream has been updated 100 Solved to Optimality (avg. CPU time) Not Solved to Optimality (avg. optimality gap) Discrete Time Model Continuous Time Model (Shah et al., 1993) (Sundaramoorthy and Karimi, 2005) No Tightening 189 s 2.1% No Tightening 149 s 2.2% 1.5% With Tightening 0.45 s 41.2 s 3436 0 1.3% With Tightening 1.4 s 2.4 s 6 12 Problems 40 hr 1500 80 hr 1200 120 hr The valid inequalities are effective for long time horizons 900 600 300 0 None F1 Eqn. F2 1 Eqn. F3 2 Formulation Eqn. F4 1&2 Testing Different Objectives 1800 The valid inequalities are more effective for cost minimization than for makespan minimization Yes Original Formulation 0.5 0 14 Problems Varying the Time Horizon Backward Propagation Step 2 Step 3 1 Testing • Test 36 discrete-time and 12 continuous-time problems • Stop optimization after 30 minutes • Algorithm was implemented and the MIPs were solved using GAMS 23.7/CPLEX 12.3 Results • Adding the tightening constraints decreases the computational time for problems solved to optimality by a factor of >100 • > twice as many problems are solved with tightening • Algorithm runs in less than 10 seconds • Similar results for discrete and continuous models 1800 No 0 T2 i min Qi s.t. Tighter Formulation 1.5 RESULTS ALGORITHM T3 =50→T3 T1 = 55 →T1* = 60 0 1 2 0 1 0 1 0 S3 * =60 U1 U2 Capacity: U1 20-25 kg, U2 45-50 kg {U3} • Cumulative amount of a state produced max is j X ijt s s Eqn. 1 Eqn. 2: μ* 0 1 2 3 # of Batches in U1 (20-25kg) 0 4b. Check attainable production for T1 to find μ* 50 S6 T3: 60 4a. T1 produces S5 jmin X ijtP Bijt jmax X ijtP i, j J i , t • Process at most one task at a time in a unit (This constraint is different for continuous time formulations) 75% T3 =50 50% 15 S4 Capacity: U3 30-40kg 3. T2 and T3 both need S3 jJi • Unit capacities (minimum and maximum) t S3 S2 T1 min the amount task i produces s.t. the amount of each material s produced must be at least: (1) ωs (when ωs is known), and (2) the amount consumed 2b. Check attainable production for T2 and T3 to find μ* # of Batches S1 50% T2 T3 90% Instead, find i solving an LP: 20 S5 {U3} 2a. T3 only produces S6; T2 produces both S4 and S5 T2: 40 S1 15 S4 50 S6 75% # of Batches 1 task i starts in unit j at time t X ijt 0 otherwise • Continuous Variables: Bijt = Batch size of task i in unit j starting at time t Sst = Inventory level of material s in storage at time t S2 T3 T1 10% 90% T3 S4 i Integer Points Eqn. 2: μ Eqn. 2: μ̂ 2 iI s , jJi ,t 52 S5 When a material can be produced by multiple tasks, there is no way to know how much of that state each task produces, so the backward propagation does not work S3 DEMAND PROPAGATION EXAMPLE jmax X ijt ˆi i 50% 80% Constraint 2 • Cumulative amount produced by a task. The RHS is increased so it is an integer multiple of βjmax jJ ,t S4 50-150 T3: 104 50% 50 φS4 = 50 S3 104 50-150 T2: 104 20% 1. Customer demand: 15kg S4, 20kg S5, and 50kg S6 Discrete time: Time points are fixed, and tasks begin/end at time points Continuous time: Time points can vary, so tasks can have any length Decision Variables: • Integer Variable: 52 S5 X ijt s max i , j {is jmax } s If a tear stream still does not produce enough material to meet demand after being updated, the problem is infeasible with the given initial inventories for some k, where αjk is the number of batches in unit j for range k. Otherwise, increase i to the nearest attainable amount i* ≥ i When a task can take place in multiple units, check all combinations of batches in units S1 iIs , jJ i ,t 3. Check tear stream: T3 produces 50kg of S5, but T4 needs 52kg 4. Start over with updated cumulative production for S5 i kj jmax 50% 50% 80% 20% S6 If units have min and max capacities, some values of μi are not feasible μi is feasible if Heat/48 • Number of batches producing a state S4 50-150 T3: 100 50% 50 φS4 = 50 S3 100 50-150 T2: 100 50-150 T4: 65 React1/50 1 S2 100 55-90 T1: 110 jJ ,t X ijt i* max j { jmax } i i S5 50-150 T4: 65 ATTAINABLE PRODUCTION How much? 80% 2. Guess the tear stream doesn’t produce any material; backward propagate demand until reaching the tear stream 20% Constraint 1 • Number of times a task is run 50% 20% S6 S4 50-150 50% φS4 = 50 T3 S3 50-150 T2 50-150 T4 Feed C Find a schedule showing: When to begin each task Which processing unit to use for each task How much material to process for each task S2 55-90 T1 ω = 55 μi: minimum cumulative production of task i • Calculated once ωs is known for all materials produced by task i is Identify loops and break using tear streams # of Batches in U2 (45-50kg) 1. Based on customer demand, estimate: ωs: minimum required amount of material s • For final products, ωs is the customer demand • Calculated once µi is known for all tasks consuming material s VALID INEQUALITIES Computational Time (s) Given are a set of tasks iI, processing units jJ, and materials sS A processing unit j can be used to carry out tasks iIj. Task i in unit j has processing time τij Feed A Unit j has variable batchsize in [βjmin, βjmax] Heater A material can be consumed/produced Product 1 Heat by multiple tasks iIs-/iIs+. 40% Int AB Each task can consume/produce multiple 40% 10% React2 materials; conversion coefficient ριs 60% Hot A Separator 60% Impure E Materials may have an initial inventory ζs Separate Int BC Customers have demands for final Reactors 1&2 90% products ϕst 50% React3 React1 Product 2 80% State s is stored in a dedicated tank with Feed B 20% 50% capacity γs RECYCLE LOOPS # of Batches DEMAND PROPAGATION METHODS Computational Time (s) PROBLEM STATEMENT Cost 1500 MS 1200 900 600 300 0 None F1 Eqn. F2 1 Eqn. F3 2 Formulation Eqn. F4 1&2