Valid Inequalities for Chemical Production

advertisement
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, iI     s

is i
s
S1
i  max s 
sSi
ζ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
jJi
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
jJi
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  Sst 1   is  Bij t    is  Bijt   st  st   s s, t
 ij  

iI s
jJi
iI s
T1
25%
{U1,U2}
S2
S1
 
iI j tt  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
 is i s
iI s
 s0   is Qi   is Qi s
iI s
40
60
80
Amount Produced
100
U1
0
0
0
1
1
2
2
3
iI 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
jJi
• 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
iI s , jJi ,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

jJ ,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
iIs , jJ 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

jJ ,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 iI, processing units jJ, and materials sS
 A processing unit j can be used to carry out tasks iIj.
 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 iIs-/iIs+.
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
Download