Mixedinteger Programming Methods For Supply Chain Optimizationppt
Mixedinteger Programming Methods For Supply Chain Optimizationppt
C h r i s t o s T. M a r a v e l i a s
Chemical and Biological Engineering
University of Wisconsin, Madison, WI 53706, USA
2. Linear Programming
5. Software Overview
6. Combinatorial Optimization
Suppliers
Traditional PSE is concerned with the
Manufacturing development of methods for the design,
Facilities operation, and control of chemical systems.
The goal in supply chain management is to coordinate materials, information and financial flows to
fulfill customer demands while improving competitiveness of the supply chain as a whole; in
coordinating these flows various decisions have to be made.
Master Planning
Medium‐term Demand
Purchasing Production Distribution
Planning Planning
& Material Planning
Short‐term
Requirements
Transport Demand
Planning Scheduling
Planning Fulfillment
Master Planning
Medium‐term Demand
Purchasing Production Distribution
Planning Planning
& Material Planning
Short‐term
Requirements
Transport Demand
Planning Scheduling
Planning Fulfillment
Integration across time scales and functions Corn Corn Grain Hydrolysis
C4 Fermentation Succinic acid
Master Planning
Medium‐term Demand
Purchasing Production Distribution
Planning Planning
& Material Planning
Short‐term
Requirements
Transport Demand
Planning Scheduling
Planning Fulfillment
2. Linear Programming
5. Software Overview
6. Combinatorial Optimization
If functions f, g, h are linear and variables x are continuous, we have a Linear Programming (LP) Model.
Notes:
1. Free z∈ℜ variables can be replaced by two nonnegative variables x, y ≥ 0:
z=x–y
2. Inequalities can be transformed to equalities with slack variables
x1 + 2x2 ≤ 10 ⇒ x1 + 2x2 + s1 = 10, s1 ≥ 0
3. Minimization problems can be expressed as maximization problems:
min f(x) ⇔ max –f(x)
The problem can be represented as the following network (the labels refer to the streams, not species):
A SA SA1 S1 P1
Reaction 1
SA2
SB1
B SB S2 P2
SB2
Reaction 2
FP2
30
If FP1 and FP2 are the amounts of products P1 and P2,
respectively, the optimization problem (P1) can be 2FP1 + FP2 ≤ 30
stated as follows:
max Z = 100 FP1 + 100 FP 2 20
st. 2 FP1 + FP 2 ≤ 30
FP1 + 2 FP 2 ≤ 30 (P1) FP2 ≤ 13
FP1 ≤ 12
10
0 ≤ FP1 ≤ 12, 0 ≤ FP 2 ≤ 13
FP1 + 2FP2 ≤ 30
10 20 30
FP1
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
LP Geometry
max 10x1+10x2 max 10x1+10x2 30
s.t 2x1 + x2 ≤ 30 s.t 2x1 + x2 + s1 = 30 x2
2x1 + x2 + s1 = 30
x1+2x2 ≤ 30 x1+2x2 + s2 = 30
x1 ≤ 12 x1 + s3 = 12
x2 ≤ 13 x2 + s4 = 13 20
x1 , x2 ≥ 0 x1, x2, s1, s2, s3, s4 ≥ 0
x2 + s4 =13 x1 + s3 = 12
Definition: A basic solution to an (LP) is determined by fixing (n-m)
variables to 0, and solving the (m×m) system to obtain the remaining. 10
• Variables fixed at zero are non-basic variables. x1 + 2x2 + s2 = 30
• Variables obtained by solving the equalities are basic.
Definition: A basic feasible solution to an (LP) is a basic solution that satisfies x1
nonnegativity constraints.
10 20 30
Definition: x∈F is an extreme point iff x = α x1 + (1-α) x2 and α∈(0,1), x1, x2∈F
implies x1 = x2. Basic solution
i.e. x can not be obtained by linear combination of x , x ∈ F: x ≠ x .
1 2 1 2
Basic‐feasible solution (extreme point)
⇒ The basic feasible points of an LP are the extreme point of its feasible region.
⎡x ⎤
Let A = [B | N], x = ⎢ B ⎥ where B: m×m full-rank, N: m×(n-m), xB: m-vector and xN: (n-m)-vector
⎣ xN ⎦
Ax = BxB + NxN = b
If xN = 0 ⇒ xB = B-1b - B-1NxN Basic point
z = cBxB + (-cBT B-1N T
+ cN )xN Objective function
Infeasible Æ
min Σui
s.t. Ax = b -u
u≥0
The original LP has a feasible solution iff the auxiliary LP has an optimal solution with objective value equal to zero.
Phase II: Use the last basis of phase I as a starting basis for Phase II, after you delete artificial variables ui and change
objective function.
Termination
It is not guaranteed that a feasible LP has an optimal solution.
The problem can be unbounded. The simplex method detects such programs and returns a “proof” of unboundedness.
⇒ When checking to determine the leaving variable, no constraint becomes binding.
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Duality I
Given a primal LP problem:
min cT x (LP-P)
s.t. Ax = b
x≥0
The dual of an LP can be used to better study and even solve faster an LP
Primal Dual
Optimal Infeasible Unbounded
Optimal √ - -
Infeasible - √ √
Unbounded - √ -
2. Linear Programming
5. Software Overview
6. Combinatorial Optimization
Process operations:
9 Decision to expand/retrofit a process
9 Split of customer orders to batches
9 Assignment of batches to equipment units
9 Sequencing of batches in the same unit
Process Control:
9 Selection of linearized model for MPC
9 On/off control action
Vinyl Chloride
1. Separate HCl – C2H3Cl/C2H4Cl2
2. Separate C2H3Cl – C2H4Cl2
Ethylene Dichloride
Optimization Decisions:
Distillation sequence (discrete), sizing (discrete or continuous), operating conditions (continuous)
Optimization Decisions:
Number of batches
Assignment of batches to units
Sequencing of batches in a unit
Starting time (continuous)
∑w X
i
i i ≤W (K.2) Capacity constraint
X i ∈ {0,1} ∀i
If we had multiple resources j∈{1, 2, ..m} (e.g. weight, volume, etc.) with capacities Wj
we would replace (K.2) with (K.3):
∑w X
i
ij i ≤ Wj ∀j (K.3)
∑X
j
ij = 1 ∀i (A.2) Every job is assigned
∑X
i
ij = 1 ∀j (A.3) Exactly one job per machine
X ij ∈ {0,1} ∀i, j
We define:
Xij = 1 if we visit city j after city i
∑Xi
ij = 1 ∀j (TSP.2) There is an incoming arc for every city j
∑X
j
ij = 1 ∀i (TSP.3) There is an outgoing arc for every city i
X ij ∈ {0,1} ∀i, j
Exercise
Are constraints (TSP.2) & (TSP.3) enough?
What type of solution can we get?
How can we improve our model?
We define:
Xj = 1 if machine j is chosen
∑a
j
ij X j ≥ 1 ∀i (SC.1) Every task is covered
X j ∈ {0,1} ∀j
n m
We define:
Xi = 1 if we set up (install) facility i
Yij = amount shipped from i to j
Objective: min z = ∑ f i X i + ∑ cijYij (FLI.1) Minimize set-up and shipping costs
i i, j
∑Y
i
ij ≥ dj ∀j (FLI.2) Customer demand satisfaction
∑Y
j
ij ≤ ai X i ∀i (FLI.3) Facility capacity constraint
We define: n m
Xi = 1 if we set up (install) facility i sij, tij
Yij = amount shipped from i to j
Zij = 1 if transportation link (i→j) is set-up
Objective: min z = ∑ f X + ∑ p ∑Y + ∑ t Z + ∑ c Y
i
i i
i
i
j
ij
i, j
ij ij
i, j
ij ij (FLII.1) Minimize total cost
∑Y
i
ij ≥ dj ∀j (FLII.2) Customer demand satisfaction
(FLII.3)
∑Y
j
ij ≤ ai X i ∀i Facility capacity constraint
L U x
3-A) 4-A)
xj Process stream variables of stream j
Flash
Drum1 k
Methanol Synthesis x IN Variables of streams feeding unit k
Isothermal Reactor
k
xOUT Variables of streams leaving unit k
Flash
3-B) Methanol Synthesis Drum2
wk Operational parameters of unit k
Adiabatic Reactor
4-B)
(
⎡ h k wk , xIN
k k
)
, xOUT = 0⎤
⎢ k k k k ⎥
( )
Distillation
⎢ g w , xIN , xOUT ≤ 0⎥
column
⎢ C k = f k (S k ) ⎥
⎣ ⎦
Water
To find the optimal design we want to be able to handle the following logic constraints:
⎡ yk ⎤ ⎡ ¬y k ⎤
⎢ k k k k ⎥ ⎢ k ⎥
( )
⎢ h w , xIN , xOUT = 0 ⎥ ⎢ w = 0 , C = 0 ⎥
k
⎢ g k w k , x k , x k ≤ 0⎥ ∨ ⎢ k
( ) ⎥
⎥ ⎢ xIN = 0 , xOUT = 0⎥
k
⎢ IN OUT
⎢⎣ C k = f k ( S k ) ⎥⎦ ⎢⎣ ⎥⎦
We have to convert the disjunction into MIP constraints, handled by MIP solvers
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Reformulations
BigM reformulation
⎡ y1 ⎤ ⎡ y2 ⎤ ( ) ( ) ( )
⎡ − M ⋅ 1 − y1 + 1 ≤ x1 ≤ 3 + M ⋅ 1 − y1 ⎤ ⎡− M ⋅ 1 − y 2 + 7 ≤ x1 ≤ 10 + M ⋅ 1 − y 2 ( )⎤
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢
⎢ 1 ≤ x1 ≤ 3 ⎥ ∨ ⎢7 ≤ x1 ≤ 10⎥ ( ) ( ) ( )
⎢⎣− M ⋅ 1 − y + 2 ≤ x2 ≤ 4 + M ⋅ 1 − y ⎥⎦ ⎢⎣ − M ⋅ 1 − y + 6 ≤ x2 ≤ 8 + M ⋅ 1 − y
1 1 2 2
( ) ⎥⎥⎦
⎢ 2 ≤ x2 ≤ 4 ⎥ ⎢ 6 ≤ x2 ≤ 8 ⎥ y1 + y 2 = 1
⎣ ⎦ ⎣ ⎦
x2
⎡ − M ⋅ y 2 + 1 ≤ x1 ≤ 3 + M ⋅ y 2 ⎤ ( ) (
⎡− M ⋅ 1 − y 2 + 7 ≤ x1 ≤ 10 + M ⋅ 1 − y 2 )⎤
⎢ ⎥ ⎢
⎢⎣− M ⋅ y + 2 ≤ x2 ≤ 4 + M ⋅ y ⎥⎦
2 2
( )
⎢⎣ − M ⋅ 1 − y + 6 ≤ x2 ≤ 8 + M ⋅ 1 − y
2
(2
) ⎥⎥⎦
Selecting : M = 7
⎡ − 7 ⋅ y 2 + 1 ≤ x1 ≤ 3 + 7 ⋅ y 2 ⎤ ( ) (
⎡− 7 ⋅ 1 − y 2 + 7 ≤ x1 ≤ 10 + 7 ⋅ 1 − y 2 )⎤
⎢ ⎥ ⎢
x1 ⎢⎣− 7 ⋅ y + 2 ≤ x2 ≤ 4 + 7 ⋅ y ⎥⎦
2 2
( ) (
⎢⎣ − 7 ⋅ 1 − y + 6 ≤ x2 ≤ 8 + 7 ⋅ 1 − y
2 2
) ⎥⎥⎦
min cT x + dT y max cT x
s.t. Ax + By ≤ b or s.t. Ax ≤ b
x ≥ 0, y integer xj integer, j∈NI = {1...p}
A general integer Y∈{0, 1, 2, 3, …N} can be modeled via k binary variables Yk:
Y= ∑ kY
k = 0 ,... N
k
min cT x + dT y
s.t. Ax + By ≤ b
x ≥ 0, y∈{0, 1}
or
min cT x + dT y
s.t. (x, y)∈ X
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
LPrelaxation of a MIP Model
General MIP problem (P): min cT x + dT y (P)
s.t. Ax + By ≤ b
x ≥ 0, y∈{0,1}
If we replace the integrality requirement y∈{0,1} with y∈[0,1] we obtain a relaxation (RP) of (P):
min cT x + dT y (RP)
s.t. Ax + By ≤ b
x ≥ 0, y∈[0,1]
In general, a relaxation of a problem is obtained by:
Either removing constraints (i.e. expanding the feasible region)
Decreasing the objective function (e.g. removing a nonegative term)
Key observations:
If a node is infeasible, then all its descendants will also be infeasible
A child node will always have a lower (worse) objective function (bounding)
Any feasible solution Zi in node i provides a lower bound on the optimal solution Z*
Easy to add rows (constraints) to (LRP) (why?)
(x1,x2) = (1.75, 1)
ZLP = 9.25
max 3x1 + 4x2
x2 4x1+3x2 ≤ 10
x1∈{0,1,2,3}, x2∈{0,1} x1 ≤ 1 x1 ≥ 2
(1, 1)-INT (2, 0.66)
1 ZLP = 7.0 ZLP=8.66
x2 ≤ 0 x2 ≥ 1
(2.5, 0)-INT
ZLP = 7.5
0 x1 ≤ 2 x1 ≥ 3 INFEASIBLE
0 1 2 3 x1
0 Level Nodes
0 1 = 20
1 2 1 2 = 21
3 4 5 6 2 4 = 22
7 8 9 10 11 12 13 14 3 8 = 23
4 16 = 24
15 16 17 18 …
Notes:
Level denotes the number of fixed variables
Total number of nodes = 1 + 2 + … + 2N = 2N+1-1, where N = no of binary variables [Why?]
The goal is to explore much fewer nodes via bounding
How do we carry out branching?
In general:
The number of active nodes increases if the active node is chosen high-up
It takes a long time to improve the upper bound if the active node is chosen from down low
Example
Example
Current best (ZU)
Closed (infeas or Zi > ZU)
Open (Zi < ZU)
ZU=14
ZU=14.5
ZU=15
Example
Current best (ZU)
Closed (infeas or Zi > ZU)
Open (Zi < ZU)
ZU=14
Example
Current best (ZU)
Closed (infeas or Zi > ZU)
Open (Zi < ZU)
ZU=14
ZU=15 ZU=15.2
ZU=14.5
ZU=15
Depth-first Search:
Always choose one of the new subproblems just generated; typically the one with the best lower bound
Backtrack when node is discarded
0 z=12
1 2
12.5 12.8
3 4
12.85 13.3
5 6
13.2 12.95
7 8 Advantages:
13.4 13.5 Can potentially find a (good) solution fast
Re-optimization involves the addition of a
9 10 single constraint (???)
Requires modest storage
Disadvantages:
“Hidden” good solutions difficult to find
Breadth-first Search:
Expand all nodes at each level before go to the next level
0 z=12
1 2
12.5 12.8
3 4 5 6
12.85 13.3 13.2 13
7
8 9 10 11 12 13 14
13.2
12.95 13.4 13.3 13.4 13.5 13.5 13.1
Disadvantages:
Examine many non-promising nodes
Feasible solutions are found late
Create very large tree (memory requirements)
Best-first Search:
Always choose the subproblem with the best lower bound
0 z =12
1 2
12.5 12.8
3 4 5 6
12.85 13.3 13.2 13
7
8 11 12
13.2 12.95
13.5 13.1
9 10
13.4 13.5
Advantages:
Examines potentially good nodes
Uniformly tighten bounds Modern commercial solvers use a
Disadvantages: combination of depth-first and best-first.
Re-optimization is more expensive
Tree tends to be larger
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Special Branching Schemes
Special Ordered Sets 1 (SOS1):
xi ≥ 0 AND x1 + x2 + x3 + x4 + x5 = 1 AND only one non-zero,
x 1 + x2 = 1 x 3 + x4 + x5 = 1
x1 = 1
x5 = 1
x2 = 1 x3 = 1 x4 = 1
Probing
Temporarily set a 0-1 variable to 0 or 1 and then redo the logical testing.
5x1 + 3x2 ≥ 4 becomes infeasible when x1=0
⇒ x1=1 in every feasible solution (0.8, 0)
5x1 + 4x2 + x3 ≤ 8
If x1=1 then x2=0 and vice versa (1, 0.75, 0)
⇒ x1 + x2 ≤ 1
2x1 + x2 + x3 ≥ 1 becomes strictly redundant when x1=1.
⇒ Can be replaced by x1 + x2 + x3 ≥ 1 (0.5, 0, 0)
Generate Bounds
e.g., If the upper bound of a 0-1 variable is less than 1, then it can be fixed to 0.
In summary preprocessing:
Improves bounds
Identifies infeasibility and redundant constraints
Fixes variables
Generates new valid inequalities
Tightens existing inequalities (coefficient improvement)
Not possible to perform all operations and save all information
Common strategy:
1. Generate clique and implication inequalities
2. Store them in separate tables
3. Add them to the linear program only when they are violated by the current LP solution
Also for large scale instances: “good feasible solutions may be all we can hope for”
If we know the structure of the problem: Use any known heuristic to provide an initial zbest
e.g. use Lin-Kernigham heuristic to get a usually very good solution for the TSP
1 1
0 0
0 1 2 3 x1 0 1 2 3 x1
0
0 1 2 3 x1
4x1 + 3x2 ≤ 10
⇒ x1 ≤ 2
x2
0
0 1 2 3 x1
Σj aij xj ≤ bi (1)
If all the variables in (1) are non-negative integers then the GC inequality is given by:
A GC inequality can be derived by the LP optimal simplex table from a row with a fractional variable
Pure IP’s can be solved by successively adding GC inequalities to the optimal LP solution
Examples:
x1 + x2 ≤ 1.5 ⇒ x1 + x2 ≤ 1 Cuts-off (0.75, 0.75)
Example:
5x1 + 5x2 + 4x3 ≤ 8 ⇒ x1 + x2 ≤ 1 Cuts-off (1, 0.5, 0), (0.5, 1, 0)
⇒ x2 + x3 ≤ 1 Cuts-off (0, 1, 0.5), (0, 0.5, 1)
⇒ x1 + x2 + x3 ≤ 1 Lifted tighter inequality: Gives the Convex Hull
x2
max 3x1 + 4x2 4x1+3x2 ≤ 10
4x1+3x2 ≤ 10 ⇒ 0 ≤ x1 ≤ 3
1 x1∈{0,1,2,3}, x2∈{0,1} 0 ≤ x2 ≤ 1
0
0 1 2 3 x1
x2 x2
1 1
0 0
0 1 2 3 x1 0 1 2 3 x1
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
BranchandCut Algorithm
zLP(2)
zLP(1)
Root Node
zLP(3) (1)
(2)
CP(2)
CP(1) (3)
CP(3)
(2)
(3)
(4)
x1≤1 x1≥2
(5) (6)
(7) (8)
zLP(5)
zLP(6)
zLP(7)
zLP(8)
• Algorithms
Primal simplex in 1988 versus best(primal,dual,barrier) today 2,360x
• Machines 800x
• Net: Algorithm * Machine ~ 1,900,000x
Nodes Cuts/
Node Left Objective IInf Best Integer Best Node ItCnt Gap
0 0 1.9396e+07 781 1.9396e+07 19505
1.9472e+07 354 Cuts: 1220 21719
1.9529e+07 358 Cuts: 1260 25122
1.9559e+07 345 Cuts: 555 27311
1.9566e+07 399 Cuts: 313 28751
1.9570e+07 363 Cuts: 266 30151
* 0+ 0 0 2.0669e+07 1.9570e+07 30151 5.32%
* 150+ 43 0 1.9648e+07 1.9591e+07 47897 0.29%
* 150+ 43 0 1.9646e+07 1.9591e+07 47897 0.28%
* 850+ 294 0 1.9645e+07 1.9618e+07 98212 0.14%
* 930+ 143 0 1.9638e+07 1.9618e+07 102700 0.10%
* 1550+ 278 0 1.9636e+07 1.9627e+07 127050 0.04%
Maximize
x + y + z This problem can be solved in several ways
Subject To Euclidean reduction on the constraint [Presolve]
2 x + 2 y ≤ 1 Removing z=0, objective is integral [Presolve]
z = 0 Locally valid cuts at the nodes
x free y free
x,y integer However: Branch-and-bound cannot solve!!!
2. Linear Programming
5. Software Overview
6. Combinatorial Optimization
Traditional Approaches
Better models
Better solvers
Customized methods
• Decomposition algorithms
• Problem‐specific algorithms
Alternative Formulation
Assignment of every pigeon in a hole: Σj xij = 1 ∀i
At most one pigeon at each hole: Σi xij ≤ 1 ∀j
x + y ≥ 3.5, x, y ≥ 0, y integral
y
4.0
3.0
(0, 3.5)
2.0
1.0
x + y ≥ 3.5, x, y ≥ 0, y integral
y
y ≥ ⎡3.5⎤
4.0
3.0
Mixed-integer
Rounding cut:
2x + y ≥ 4 2.0 y ≤ ⎣3.5⎦
1.0
Traditional Approaches
Better models
Better solvers
Customized methods
• Decomposition algorithms
• Problem‐specific algorithms
0 1
x2
×
Branching on x1
1
x1
Branching on x2
z z
d2 Choose x2 although
u2
d1 u1 x1 is closer to 0.5
0 x1* 1 x1 0 x2* 1 x2
We want to choose the variable with the maximum min {dj, uj}
Degradations dj and uj can be estimated from dual simplex method: = (reduced cost)×change
Choose the variable with the maximum estimated degradation
[0.1, 0, 0.6, 0.4, 0.3] [0.1, 0, 0.6, 0.4, 0.3] [0.1, 0, 0.6, 0.4, 0.3] [0.1, 0, 0.6, 0.4, 0.3]
10 10 10 10
x x x x
0 1 = 0 3 = 0 4 = 0 5 =
= 1 = 1 = 1 = 1
x1 x3 x4 x5
11 14 12 13 12.5 13 14 11.5
Pseudo-costs, strong branching, all variants of node selection rules (depth-first, best-first,
etc.), heuristics and other exotic methods have been implemented in existing software
Even if we knew how to implement all of them ourselves, it would be difficult to do it more
efficiently than their implementation within CPLEX, Xpress, etc.
But …, knowing what these methods do allows us to use them, or know how/when to use
them
Before you start developing a new method make sure that you are not re-inventing the wheel
Understand the problem and which of the existing methods can help
Experiment …
Traditional Approaches
Better models
Better solvers
Customized methods
• Decomposition algorithms
• Problem-specific algorithms
Key Issues
• How do we decompose?
• Which constraints do we keep/remove?
• How do we iterate?
• What type of information from (M2) can we use to guide the solution of (M1)?
• How do we pass this information?
• How do we solve models M1 and M2?
• Submodels (M1) and (M2) may be different (e.g. MIP vs. LP)
• Do we have to use the same algorithm?
• If not, how do we make them compatible?
Our goal is to develop an easy subproblem that does not violate eq. (2) substantially.
min z = cTx + u(Dx-d) (LR)
s.t. Ax ≤ b (1)
x∈X, u ≥ 0
For every u ≥ 0, (LR) is a relaxation of (P) because
a) the feasible region of (LR) is greater, and
b) the objective value of (P) is always greater than the one of (LR) for all feasible solutions.
Solve (LR)
Obtain LB
Optional
Return UB YES Modify (LR) solution to
(LR) feasible?
& Solution obtain a feasible solution & UB
NO
YES |UB-LB|<ε
or k=K?
NO
Update uk:
uk+1 = max {uk - mk (Dx-d),0}*
mk is the step length
* Subgradient optimization
x2 x2 x2
CHLR1
CH CHLR2
PI PI
P II P II P II
P P LR 2
P LR1
P III P III
x1 x1 x1
(a) LP-relaxation of (M3): P=PI∩PII∩PIII (b) Dualization of AIIIx = eIII: PLR1 = PI∩PII (c) Dualization of AIx = eI: PLR1 = PII∩PIII
: feasible regions defined by subsets of constraints; : integer points; : feasible integer points;
: convex hull of feasible integer points; : intersection of constraint subsets.
Key issues:
The strength of the resulting Lagrangian dual bound LB
The ease of solution of the Lagrangian problem (LR)
max c0 x + Σk ck xx
A0x = b0 (1)
Akx + Bkyk = bk, k=1,…,K (2)
Benders Decomposition
Traditional Approaches
Better models
Better solvers
Customized methods
• Decomposition algorithms
• Problem-specific algorithms
Matchmaker
Problem
Agent Resource
Solver
Shadow Sandbox
* Johnson, E.L. Progress in Linear Programming-Based Algorithms for Integer Programming: An Exposition.
INFORMS Journal on Computing, Vol. 12, No 1, Winter 2000
Applications
Robust models that integrate planning and operations
Massively large, multi-period problems
Multi-scenario stochastic problems; long solution times may be acceptable
Recourse models that correct in real-time planning solutions
Have to be solved in minutes
Methods
Parallel Integer Programming
• LP-based branch-and-bound is a natural candidate for parallelization
Subproblems associated with each node are independent; evaluate nodes simultaneously
• Fundamental issue for parallelizing branch-and-cut: Management of cuts
Integration between heuristic and cutting planes
Integration with local search and constraint programming
* Johnson, E.L. Progress in Linear Programming-Based Algorithms for Integer Programming: An Exposition.
INFORMS Journal on Computing, Vol. 12, No 1, Winter 2000
2. Linear Programming
5. Software Overview
6. Combinatorial Optimization
The two modules have to communicate with each other ⇒ MPS format
• All modeling modules are able to produce an MPS input file and to process an MPS output file
• All solver modules are able to process an MPS input file and to produce an MPS output file.
User
Solvers
LP Solver 1 NLP Solver 1 MIP Solver 1 MINLP Solver
MIP Solver 3
Enhancements
Advanced users often want to specify branching rules, customize cut generation routines, etc.
To support this functionality software developers provide callable library version of the software
2. Linear Programming
5. Software Overview
6. Combinatorial Optimization
a 1 2
u v
c
d b
z e w 4 3
(u, v) (u, w) (v, w) (v, z ) ( w, z ) (1,2) (2,1) (2,3) (3,4) (4,1) (4,2)
u ⎡ 1 1 ⎤ 1 ⎡ −1 +1 +1 ⎤
v ⎢ 1 1 1 ⎥ 2 ⎢+ 1 − 1 − 1 + 1⎥
⎢ ⎥ ⎢ ⎥
w ⎢ 1 1 1 ⎥ 3 ⎢ +1 − 1 ⎥
⎢ ⎥ ⎢ ⎥
z ⎣ 1 1 ⎦ 4 ⎣ + 1 − 1 − 1⎦
Matchings
Given a graph G = (V, E), a matching M in G is a set of pairwise
non-adjacent edges; i.e., no two edges share a common vertex.
Find a matching that contains the maximum number of edges.
Maximum matchings
A perfect matching is a matching which matches all vertices
Matchings in bipartite graphs are related to the assignment problem Jobs
∑x
i∈V1
ij = 1 ∀j ∈ V2
Matchings
Given a graph G = (V, E), a matching M in G is a set of pairwise
non-adjacent edges; i.e., no two edges share a common vertex.
Find a matching that contains the maximum number of edges.
Maximum matchings
A perfect matching is a matching which matches all vertices
Matchings in bipartite graphs are related to the assignment problem Jobs
Proposition 3. A {0, 1} matrix is an interval matrix (or has the consecutive 1’s property) if for all rows with
alm = al’m = 1, l < l’, implies al”m = 1 for l < l” < l’. Interval matrices are TU (Fulkerson & Gross, 1965).
Proposition 4. If a {0, ±1} matrix has no more than two non zero coefficients in each column, and Σl alm = 0 if
column m has two coefficients, then A is TU (from Ghouila‐Houri, 1962).
P = {x: Ax = b}
Proposition 3
A totally unimodular Proposition 4
. . .
Integral Polytope
Very few problems can be formulated using constraints that lead to TU matrices
Side constraints destroy the structure
Can we develop tighter formulations from combinatorial optimization insight?
If yes, can we add these constraints in our formulation immediately?
2. Linear Programming
5. Software Overview
6. Combinatorial Optimization
Master Planning
Medium‐term Demand
Purchasing Production Distribution
Planning Planning
& Material Planning
Short‐term
Requirements
Transport Demand
Planning Scheduling
Planning Fulfillment
• Transportation/holding costs 2
Scheduling
• Single site/plant Heating Reaction 2
Reactor 1 Reaction 3
• How do we optimally use our resources? Reactor 2
Separation
Reaction 1 Reaction 1
Column
• Batch-sizes, storage policies, sequencing
Time (days)
• Utility/changeover costs
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Scheduling
Allocation of limited resources to tasks over time
- Michael Pinedo
Scheduling has been practiced in manufacturing sectors since early 20th century
First scheduling publications in the early 1950
– Naval Research Logistics Quarterly
Closely related to the growth of computers and algorithms
– Research in 1970s – Complexity theory
Scheduling has widespread applications
– Airlines industry
– Shipping industry
– Railways
– Manufacturing/production/any Industry
– Government / non-government Organizations
– Educational/Research Institutions
– Sports / Recreation
Purely multi-disciplinary
– Computer Scientists, Operations researchers, mathematicians, business science, etc.
Very challenging problem
– 8 unsolved problem instances in MIPLIB 2003
– Instance timtab2 (railway timetabling problem) has seen no optimal solution yet
10% gap even after several days, 113 Binaries, 381 Continuous
M2 task4 task5
0 10 20 30 40
Time (min/hr/day)
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Classes of Scheduling Problems
α/β/γ
Machine environment Processing characteristics Objective
• Single machine • Preemption • Makespan
• Parallel machines • Release/due times • Tardiness
• Machines in series • Setup times • Cost
jobs
A dA
B
M B D A C
C
D tardiness
Single machine
jobs Sequence-dependent
Setup time
A
B
M1 M1 A C
C M2 B D
M2
D
makespan
Parallel machines
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Chemical Production Scheduling
• No Preemption
• Variable Processing Times
• Changeover times
Multi-stage processes
Orders 1st stage 2nd stage Kth stage Sequential structure:
(batches) J1 J2 JK Orders := batches i∈I
Stages k∈K = {1,2, …K}
Finished Units j∈J = J1∪J2∪ …JK
... ... ... ... Orders
Special Cases:
Single-stage: K=1
Flow-shop: |J1|= …=|JK|=1
F1 S1 Int1 S3
P1
ADD
P2
S4
5%
10%
F2 S5 Int2 50% S6
P3
95% 90% 50%
⇒ Links between seemingly independent tasks
⇒ Need to account for variable no of batches via common time representation
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Batchbased Approaches
Goal: Exploit sequential structure of multi‐stage processes
Approach: Predefine number of batches (lot‐sizing, batching, task selection)
Solve fixed scheduling problem
Batching Scheduling
Demand (orders) Batches
A A Batches i∈I
... Stages k∈K
B B Units j∈J
C C
Scheduling Formulations
Precedencebased Slotbased
Pinto & Grossmann, 1995; Lamba & Karimi, 2002 Hui & Gupta, 2000; Mendez et al. 2001
Xij = 1 if task i is assigned to unit j Xij = 1 if task i is assigned to unit j
Yii’j = 1 if batch i precedes batch i’ in unit j Yijm = 1 if batch i is assigned to slot m of j
Tik = Finish time of batch i in stage kv Tik = Finish time of slot m of unit j
Ttik = Transfer time k → k+1
Xij Yii’j
Xij → Yii’j
Units (j) Tasks (i)
Tasks (i)
Discrete-time Formulations
Kondili et al. (1993); Pantelides (1994)
1. Singe-unit problem
Find the schedule that yields the minimum total completion time (makespan)
A
Batches i∈I = {1, 2, …, N}
Processing time: τi B
M
Release/due times: ri/di C
1h 10% 2h
S3 90%
1h Reaction1 Separation S4 States
Heat 40%
3h 2h Tasks
S1 S2 70% 60%
Reaction2 Reaction 3 S7
S5
30%
S6
Units
Heating Reaction 2
Reactor 1
Reaction 3
Reactor 2
Reaction 1 Reaction 1 Separation
Column
Time (h)
Inventory
S2
S3
0 1 2 3 4 5 6 Time (h)
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Scheduling: Modeling
Discrete‐time Formulations
Kondili et al. (1993); Pantelides (1994)
T1
T2
T3
0 1 2 3 4 5 6 7 8 t (hr)
Fixed time points ‐ Constant processing times
Continuous‐time Formulations
Global grid: Pantelides et al.; Reklaitis et al.; Lee et al.; Barbosa‐Póvoa et al.; Grossmann et al.; Karimi et al.
Unit‐specific grid (events): Floudas et al.; Ierapetritou et al.; Giannelos & Georgiadis
T1
T2
T3
1 2 3 4 5 6 7 (periods)
Variable time points ‐ Variable processing times
Mixed‐time Formulation
Maravelias (2006)
T1
T2
T3
0 1 2 3 4 5 6 7 8 t (hr)
Fixed time points ‐ Variable processing times
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Scheduling: Modeling
Discrete‐time Formulations
Kondili et al. (1993); Pantelides (1994)
T1
T2
T3
0 1 2 3 4 5 6 7 8 t (hr)
Fixed time points ‐ Constant processing times
Continuous‐time Formulations
Global grid: Pantelides et al.; Reklaitis et al.; Lee et al.; Barbosa‐Póvoa et al.; Grossmann et al.; Karimi et al.
Unit‐specific grid (events): Floudas et al.; Ierapetritou et al.; Giannelos & Georgiadis
T1
T2
T3
1 2 3 4 5 6 7 (periods)
Variable time points ‐ Variable processing times
Mixed‐time Formulation
Maravelias (2006)
T1
T2
T3
0 1 2 3 4 5 6 7 8 t (hr)
Fixed time points ‐ Variable processing times
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Are Smaller Formulations Better?
RMC
RMAB
9 Continuous processing
I1 I2
9 Five products - three stages
ABI1 CI1 ABI2 CI2
9 Time Horizon: 2 weeks
INTABI II1 INTCI 9 Intermediate due dates, shipment dates
BII1 CII1 9 Backlogged demand
A B1 C1 B2 C2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Models (M11), (M12), (M13) & (M16) are studied further using a set of six
problems
Model (M16) appears to be the most effective
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
BranchandCut Algorithm: Basic Idea
Additional improvements needed for practical applications
How can we use remaining valid inequalities?
⇒ Branch‐and‐cut algorithm
Advantages:
1. Do not load unnecessary constraints
⇒ Smaller incidence matrix
⇒ Each node is solved faster
2. Use a larger pool of constraints
Tighter formulation after a few rounds of cut generation
Combines effective (LP) solution and tight formulation
Disadvantage:
Very difficult to compete with CPLEX, XPRESS
Do not exploit built‐in cut generation routines
Have to write new algorithm to add user cuts
Remarks:
1. Parameters k1, k2, k3 and k4 depend on the size of the problem
Typical values: 5‐10 iterations at the root node
Start adding high priority cuts after 200‐1000 nodes, at depth 20‐200
Start low priority cuts at depth 100‐1,000
Precedencebased
Pinto & Grossmann, 1995; Lamba & Karimi, 2002
Xij = 1 if task i is assigned to unit j
What is the problem?
Yii’j = 1 if batch i precedes batch i’ in unit j Sequence-based:
Tik = Finish time of batch i in stage kv
Ti 'k ≥ Tik + ∑τ ij X ij − M (1 − Yii 'k ) ∀(i, i ') ∈ IL, k ∈ K
j∈JA ( i , k )
Xij Yii’j Slot-based:
Units (j) Tti ,k −1 ≤ Ts jm + M (1 − U ijm ) ∀i, k > 1, j ∈ J k , m ≤ M j
Tasks (i)
Ttik ≥ Ts jm + τ ijU ijm − M (1 − U ijm ) ∀i, k < K , j ∈ J k , m ≤ M j
A∈{1,2,3}
B∈{1,2,3}
C∈{1,2,3}
A→ 1 A→ 2 A→ 3
B→ 1 B→ 2 B→ 3 B→ 1 B→ 2 B→ 3 B→ 1 B→ 2 B→ 3
C→ 1 C→ 3
C→ 2 C→ 3 C→ 2
A→B→C A→C→B
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Constraint Programming – Basic Idea
Problem
Find the order at which jobs A, B and C are sequenced on machine M
Job Processing Time Release Due
A 2 0 5 A must be 1st
B 4 1 9
C must be 2nd
C 3 2 7
A∈{1,2,3}
B∈{1,2,3}
C∈{1,2,3}
A→ 1
B→ 2 B→ 3
C→ 3 C→ 2
A→B→C A→C→B
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Mathematical vs. Constraint Programming
Mathematical Programming
Intelligent search strategy but computationally expensive for large problems
Computationally effective for optimization problems with many feasible solutions
Not effective for feasibility problems and machine sequencing problems
Constraint Programming
Fast algorithms for special problems
Computationally effective for highly constrained, feasibility and machine sequencing problems
Not effective for optimization problems with complex structure and many feasible solutions
MAIN IDEA
Decompose problem into two parts
9 Use MP for high‐level optimization decisions
9 Use CP for low‐level sequencing decisions
Production
Upper bound
Z* × × Feasible solution
× ×
×
0 2 4 6 8 10 Iterations
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Example
Corn
Food (5) Flakes2 Flakes
T10 T12
Flour Frosted Unlimited Storage
Flakes1 Coated Flakes Flakes
Coater (2) T20 T21 T22 Finite Storage
Froot Zero Wait
Loops Coated Loops Loops
Packer (3) T30 T31 T32
Maximize Production
MILP STN Model Hybrid MILP/CP
Horizon n 0-1 Cont. Constr. LP Relax Obj CPU s # iters Obj CPU s
15 10 180 1,163 2,473 14 12 58.5 3 12 0.32
20 12 216 1395 2965 18 16* 16,749.2 3 16 0.37
25 15 270 1743 3703 24 22 523.6 3 22 1.05
Minimize Makespan
MILP STN Model Hybrid MILP/CP
Demand n 0-1 Cont. Constr. LP Relax Obj CPU s # iters Obj CPU s
4/5/6 12 216 1393 2938 12 19 32,077 1 19 0.23
5/6/8 13 234 1509 3220 15 - >36,000 1 23 21.02
5 / 8 / 10 15 270 1741 3712 18 - >36,000 1 27 0.64
Multi-stage: no utilities
unlimited storage ∑ ∑D ic Z ic ≤ MS − ST j − EST j ∀j BiMIN ≤ Bic ≤ BiMAX ∀i, ∀c
F1 S10 S11 P1
i∈I ( j ) c
∑ ∑B is ≥ ds ∀s ∈ FP
T10 T11 T12
BiMIN Z ic ≤ Bic ≤ BiMAX Z ic ∀i, ∀c i∈O ( s ) c
F2 S20 S21 P2
T20 T21 T22 Task[i,c] requires Unit[j] ∀j,∀i∈I(j),∀c
F3 S30 S31 P3 S s = S 0 + ∑∑1⋅ Bic − ∑∑1⋅ Bic ∀s
T30 T31 T32
i c i c Task[i,c] precedes Task[i’,c] ∀(i,i’)∈A,∀c
Ss ≥ ds ∀s ∈ FP Task[i,c].end ≤ MS ∀i,∀c
Single-stage
¾ Drop stage index k
∑D
o∈O ( j )
oj X oj ≤ max o∈O {d o }− mino∈O {ro } ∀j Task[o,j].start ≥ ro ∀o,∀j
Task[o,,j].end ≤ do ∀o,∀j
∑Zj
oj = 1 ∀o
Task[o,j] requires Unit[j] ∀o,∀k,∀j|Zok=1
Preprocessing: Better Cover Cuts Task[o,k,j].end ≤ MS ∀o,∀k,∀j|Zok=1
Computational Results
Obj MIP CP MIP/CP: CUT H MIP/SBP
CPU s CPU s Iter’s/Cuts CPU s Iter’s/Cuts CPU s
P2D1 153 4.4 0.1 16/19 0.7 4/4 1.3
P2D2 188 0.8 0.3 4/3 0.1 1/0 0.2
P3D1 56 446.6 4.2 29/45 8.7 26/32 16.9
P3D2 1113 0.4 1375.0 5/5 0.4 2/2 1.1
P4D1 149 27.3 447.2 17/22 28.8 12/15 7.8
P4D2 946 1.4 359.0 20/26 11.0 6/14 9.8
P5D1 111 4041.7 293.0 43/56 318.4 19/25 17.2
P5D2 704 2767.8 712.6 2/2 13.7 2/1 0.4
Multiple CPUs on a
Parallel
machine
Processing
Subproblems Workers
1. Independent (e.g. scenarios in stochastic programming)
Submission Loop:
modelname.solvelink=3;
loop(scenario,
parameter1 = spara1(scenario); parameter2 = spara2(scenario);
solve modelname using mip minimizing objective;
h(scenario) = modelname.handle;
);
2. Solver generated
Subtrees resulting from strong branching
3. User generated
Manually fix binary variables (Bussieck et al., 2007)
condor_chirp utility
Worker 1 Worker 2 Worker N Fetch: copies trigger file
Sandbox Sandbox Sandbox Remove: removes trigger file after copying
Put: places new incumbent in directory of master
Integer solution
Pruned node
Fractional (open) node
Integer solution
Pruned node
Fractional (open) node
Example
10 orders, 3 stages, 2 units/stage; dissimilar units, forbidden assignments and paths
Two instances parameterized via demand
Hierarchy of decisions:
∑X ilj = Z il ∀i ∈ I , l ≤ limax , k ∈ K
Zil = 1 if batch l is selected towards order i j∈JA ( i , k )
Batch
Selection
Zil
Batch assignment
Xilj
Traditional
Multi-stage
scheduling
Batch sequencing Jobshop
Yili′l′k problem
Master computer
P
Decomposition generates subproblems
Example
10 orders, 3 stages, 2 units/stage; dissimilar units, forbidden assignments and paths
Two instances parameterized via demand
1st‐, 2nd‐, 3rd‐ level decomposition (Zil + 2 stages) followed by strong branching
6 2nd‐level unsolved problems → 56,628 3rd‐level subproblems
26 3rd‐level unsolved subproblems → 31,761 subproblems
2. Linear Programming
5. Software Overview
6. Combinatorial Optimization
Master Planning
Medium‐term Demand
Purchasing Production Distribution
Planning Planning
& Material Planning
Short‐term
Requirements
Transport Demand
Planning Scheduling
Planning Fulfillment
P2 P2 P2
Pi ,1 Pi , 2 Pit
I i ,0 I i ,1 I i,2 I i ,t −1 I it
δi ,1 δi , 2 δit
Warehouse
Distribution Center
Production planning provides production targets (set points) for each period
P1 P2 P1 P2 P1 P2 P1 P2
t=0 1 2 t-1 t
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Why Integration with Scheduling?
150 ≤ P2 ≤ 200 (kg/d)
U3 B
PB PB PB
2,000 2,000 U1: PA+PB ≤ 2,100
2,000
AG: PA+PB ≤ 2,100
U3: PB ≤ 1,050
1,000 1,000 1,000
U2: PA ≤ 1,400
(a) Bottleneck constraint (b) Unit capacity constraints (c) True feasible region
(via scheduling)
Si , N Si , 2 N
Scheduling time grid
(small-bucket hn) Scheduling
n=0 1 2 … N N+1 … 2N
Hours-days hn
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Challenges in Chemical Production Planning
Modeling
Different production environments
Wide range of processing constraints
Integration with multiple planning functions
⇒ Develop general modeling framework
Theory
Discrete decisions lead to mixed‐integer programming models
Existing hardware and software insufficient
⇒ Develop fundamental optimization theory
⇒ Use underlying theory to develop better solution methods
Solution Methods
Applications: optimize over long horizon
optimize multiple systems simultaneously
Intractable large‐scale models
⇒ Develop general & computationally effective methods
Projectionbased strategy
Batch
processing Continuous
Semi‐continuous processing
processing
No batch mixing
Cleaning‐in‐place
Litro
500 BPM Products grouped in
between batches FERMENTACIÓN
families
¼ STD
Cooling utilities
D. W. 700 BPM
Changeover times &
costs between families
DILUTION
Yeast requirements
TANQUES
DE
GOBIERNO I ½ STD
Release time
for media
½ PREMIER
600 BPM Inventory constraints
Unit‐product compatibility
TANQUES ½ T.A., ¼ BOH.
Storage constraints
DE
750 BPM
GOBIERNO II
Litro
350 BPM
REPOSO
LATA
1200 LPM
TANQUES DE GOBIERNO
½ T.A EXP
TANQUE REPOSO 750 BPM
Sequential processing
Finished
No batch mixing (blending) or splitting allowed
... ... ... ... Orders Common in biotech, specialty chemical, and
pharmaceutical industries
Batchbased methods
Network processing
40%
A
RM1 Int3
40% 60%
ImB
10% Batch splitting/mixing allowed
60%
Int2 80% Recycle streams, utility requirements
90%
RM2 B
Common in bulk chemicals & oil industries
20% Materialbased methods
Int1
RM3
Material‐based S4 Batch‐based
representation
Traditional
S1 {U1} S3 70%
30% S5 U4 U6
process
T1 T2
60%
{U2, U3}
40%
S2 {U2, U3} S6 U5 U7
T3
Stage 1 Stage 2
S4
{U1} 70% {U4,U5} {U6,U7}
S1 S3 S5 S7 S8
60% T1 30% Network task
T2 T4 T5
Network state
40% {U2, U3}
Hybrid state
S2 {U2, U3} {U4,U5} S9 {U6,U7} S10 Sequential task
S6
T3 T6 T7 Sequential state
Sundaramoorthy & Maravelias, 2011 Mixed-integer programming methods for supply chain optimization
11
Christos Maravelias, University of Wisconsin - Madison
Industrial Application
Processing Stages: Fermentation → Filtering → Storage → Bottling
Production Type: Batch, continuous, and semi‐continuous
Planning Horizon: 6 weeks
Production Environment:
Fermentation
Bottling
Filtering
Storage Litro
500 BPM
FERMENTACIÓN
¼ STD
D. W. 700 BPM
DILUTION
TANQUES
DE
22 products families
½ PREMIER
600 BPM
TANQUES
DE
GOBIERNO II
½ T.A., ¼ BOH.
750 BPM
25 product subfamilies
162 products
Litro
350 BPM
REPOSO
LATA
1200 LPM
TANQUES DE GOBIERNO
½ T.A EXP
TANQUE REPOSO 750 BPM
minor changeover
Product (item) (sequence independent)
Modeling
Litro
500 BPM
FERMENTACIÓN
¼ STD
D. W. 700 BPM
DILUTION
½ PREMIER
600 BPM
REPOSO
LATA
1200 LPM
½ T.A EXP
TANQUE REPOSO 750 BPM
Theory
Discrete decisions lead to mixed‐integer programming models
Existing hardware and software insufficient
⇒ Develop fundamental optimization theory
⇒ Use underlying theory to develop better solution methods
Solution Methods
Applications: optimize over long horizon
optimize multiple systems simultaneously
Intractable large‐scale models
⇒ Develop general & computationally effective methods
Projectionbased strategy
Theorem 1
A totally unimodular
Theorem 2
Theorem 3
. . .
Polyhedron Polytope Integral Polytope
P = {x: Ax = b} P = {x: Ax = b, l ≤ x ≤ u} P = {x: Ax = b, l ≤ x ≤ u} MIP Formulations
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Polyhedral Background Summary
Definition 1. A polyhedron P is the solution set of a finite system of linear inequalities, i.e. P = {x: Ax ≤ b}.
Definition 2. A polyhedron P is a polytope (i.e. a bounded polyhedron) if there exist l, u ∈ Rn: l ≤ x ≤ u;
i.e. P = {x: Ax ≤ b, l ≤ x ≤ u for l, u ∈ Rn}.
Remark 1: A set of inequalities Ax ≤ b can be converted into a set of equalities Ax + Is = b, s ≥ 0.
A polytope can be described by as P = {x: Ax = b, l ≤ x ≤ u}.
Remark 2: A vector v of a polyhedron is a vertex (extreme point) if and only if it cannot be written as a
linear combination of points in P\{v}. A polytope P is the convex hull of its vertices.
Definition 3. A nonempty polyhedron is integral if its vertices are integral.
Definition 5. A rational matrix is κ‐regular if for all its non‐singular square submatrices R, κR‐1 is integral.
Theorem 4. If A is an m×n integral matrix, then the polyhedron P(A, b’, b, d’, d) = {x: b’ ≤ Ax ≤ b, d’ ≤ x ≤ d}
is integral for all a,b∈κZm and l, u ∈ κZn, iff A is κ‐regular (Appa and Kotnyek, 2004).
Proposition 1.Let A be a rational matrix and σ and κ positive integers. Then σ ‐1A is κ‐regular iff A is σκ‐regular.
Proposition 2.Let A be κ‐regular. Then the following matrices are also κ‐regular: i) the transpose of A, ii) any
submatrix of A, iii) the matrix obtained by multiplying a row or column of A by ‐1, iv) the matrix
obtained by interchanging two rows or columns of A, v) the matrix obtained by duplicating a row
or column of A, vi) the matrix obtained by dividing a row or column of A by a non‐zero integer.
Theorem 4
k‐regular
Proposition 1
Proposition 2
Integral Polytope . . .
Polyhedron Polytope
P = {x: Ax = b} P = {x: Ax = b, l ≤ x ≤ u} P = {x: Ax = b, l ≤ x ≤ u} MIP Formulations
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Discretetime MIP Scheduling Model
Given are a set of tasks i∈I, processing units j∈J, chemicals (states) k∈K, and a scheduling horizon η.
• A processing unit j can be used to carry out tasks i∈Ij.
• The fixed production rate of task i is ρi.
• A chemical can be consumed (produced) by multiple tasks i∈Ik- (i∈Ik+).
• Each task consumes and produces one chemical.
• Chemical k is stored in a dedicated tank with capacity ζk.
The time horizon is divided into periods n∈N={1, 2, …, N} of uniform length Δt = η/N,
• Win∈{0, 1}; it is equal to 1 if task i is processed during period n.
• Bin ≥ 0; extend (amount processed) of task i during period n.
• Ssn ≥ 0; inventory of chemical k at time point n.
∑W
i∈I j
in = 1, ∀j , n
S kn = S k,n −1 + ∑B in − ∑B in + γkn ≤ ζ k , ∀k , n
i∈I k + i∈I k −
{
P A = w ∈ [0,1]I ⋅ N : A A w = 1}
βi = ρi Δ t , ∀i Bin = βi Win , ∀i , n
{ }
P MB = x = ( s, w ) ∈ [0, ξ ] × R+K ⋅ N : A MB x = 1
S kn = S k ,n −1 + ∑ βiWin − ∑ βi Bin + γkn , ∀k , n
i∈I k + i∈I k −
w ∈ {0,1} , s ∈ [0, ξ ]
i ⋅n
{
P A = w ∈ [0,1] I ⋅ N : A A w = 1 }
P MB = {x = ( s, w ) ∈ [0, ξ ] × R K ⋅N
+ : A MB x = γ }
Let lcmβ be the least common multiple of all batchsizes, lcmβ = lcm(βi, i∈I) = lcm(β);
Let gcfε be the greatest common factor of deliveries γkn and capacities ζk, gcfε = gcf(γkn, k∈K, n∈N; ζk, k∈K) = gcf(ε).
If κ* is the greatest common factor of lcmβ and gcfε, κ* = gcf(lcmβ, gcfε), then lcmβ = κ* ⋅ κβ and gcfε = κ* ⋅ κε
P P
U2 WT1 WT1
0 0
T2 ρ=1 0 1 2 3 4 0 1 2 3 4
a) Δt = 0.5 hr b) Δt = 0.75 hr
FP ζ = 2, S0 = 0 2 2
WT2 WT2
gcf(λε) = 2, lcm(λρ) = 2 P
A
P
A
Δt* = 1 P
MB
1 1
MB
P
P
P
WT1 WT1
0 0
0 1 2 0 1 2
c) Δt = 1.0 hr d) Δt = 1.5 hr
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Example 1
RM1 RM2
3 stages; 5 units; 11 tasks; 11 chemicals U1 U2
Three instances T11 T12 T21 T22
In1: 2‐week horizon; demands in 0.5 increments
INT1 INT2
Proposition 7 ⇒ Δt* = 6 hr U3
T31 T32
INT3 INT4
U4 U5
T41 T42 T43 T51 T52
A B1 C1 B2 C2
A B1 C1 B2 C2
Model and solution statistics for instances Ex1/In-2/Δt.
Δt (hr) 6 4 3 2.4 2
Periods (N) 56 84 112 140 168
Constraints 897 1,345 1,793 2,241 2,689
Binary var’s 896 1,344 1,792 2,240 2,688
Continuous var’s 617 925 1,233 1,541 1,849
LP-relaxation 197.2725 199.143 200.081 200.64 201.028
† †
Best/optimal solution 215.7550 209.739 209.619† 200.64 206.473†
Integrality gap* (%) 8.0-8.6 3.2-5.1 3.8-4.6 0 1.3-2.6
CPU time (sec) 1,200 1,200 1,200 0.34 1,200
Nodes 985,501 717,501 699,601 0 520,501
Optimality gap (%) 0.65 1.96 0.77 - 1.36
† Instance not solved to optimality.
* If not solved to optimality we calculate a range [IGMIN, IGMAX].
IGMIN = [Z*(1-OG) – ZLP]/ Z*(1-OG); IGMAX = (Z* - ZLP)/Z*.
where ZLP = LP-relaxation; Z* = Best solution; OG = Optimality gap.
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
More Polyhedral Results
Production planning with backlogged demand S kn U kn W in
{
P A = w ∈ [0,1]I ⋅ N : A A w = 1 } n
k=A k=B k=C
1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
k=A k=B
1 2 3 1 2 3
k=C i = T1 i = T2
1 1 -1 β T1
{
P MB2 = ( s, u, w ) ∈ [0, ξ ] × R +K ⋅ N × R +I ⋅ N : A s s + A u u + A w w = γ } k = RM 2
3
1
-1 1
-1 1
1
1 -1
1 -1
-1 -β T1
β T1
β T1
β T2
k = INT 2 -1 1 1 -1 -β T1 β T2
3 -1 1 1 -1 -β T1 β T2
1 1 -1 -β T2
k = FP 2 -1 1 1 -1 -β T2
Proposition 8. 3 -1 1 -1 1 -β T2
{ }
k=A k=B k=C i = T1 i = T2 k=A k=B k=C k=A k=B k=C
⎡A s A w I 0⎤ k = RM 2 -1 1 β T1 1
where A 3 x = ⎢
3 -1 1 β T1 1
0 − I A u ⎥⎦
1 1 -β T1 β T2 1
⎣0 k = INT 2
3
-1 1
-1 1
-β T1
-β T1
β T2
β T2
1
1
1 1 -β T2 1
k = FP 2 -1 1 -β T2 1
3 -1 1 -β T2 1
1 -1 -1
Proposition 9. k = RM 2 -1 1 -1
Proposition 11 ⇒ Δt* = (1/6) d = 4hr T311 T312 T321 T322 T331 T332
Model and solution statistics for instances Ex2/In-2/Δt. A11 B11 A21 B21 A12 B12 A22 B22 C1 C2 D1 D2
Δt (hr) 12 8 6 4 3
Periods (N) 120 180 240 360 480
Constraints 6,229 9,349 12,469 18,709 24,949
Binary var’s 5,880 8,820 11,760 17,640 23,520
Continuous var’s 6229 9,349 12,469 18,709 24,949
LP-relaxation 3,652.3 3,644.5 3,640.6 3,636.7 3,634.7
† †
Best/optimal solution 3,848.7 3,858.5 3,801.3† 3,637.1 3,651.5†
Integrality gap* (%) 0.04-5.10 0.41-5.55 0.02-4.23 0.01 0.01-0.46
CPU time (sec) 1,200 1,200 1,200 234.2 1,200
Nodes 155,762 95,981 67,501 1,350 11,251
Optimality gap (%) 5.06 5.16 4.21 0 0.45
†
Instance not solved to optimality
*
If not solved to optimality we calculate a range [IGMIN, IGMAX].
IGMIN = [Z*(1-OG) – ZLP]/ Z*(1-OG); IGMAX = (Z* - ZLP)/Z*.
where ZLP = LP-relaxation; Z* = Best solution; OG = Optimality gap.
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Remarks
RM1 RM2
RM1
Problem Representation
RM2
T12
U1 U2 T11 T22
T11 T12 T21 T22 T21
A B1 C1 B2 C2 A B1 C1 B2 C2
Modeling
Litro
500 BPM
FERMENTACIÓN
¼ STD
D. W. 700 BPM
DILUTION
½ PREMIER
600 BPM
REPOSO
LATA
1200 LPM
½ T.A EXP
TANQUE REPOSO 750 BPM
Theory P
PA
Discrete decisions lead to mixed‐integer programming models P MB
Solution Methods
Applications: optimize over long horizon
optimize multiple systems simultaneously
Intractable large‐scale models
⇒ Develop general & computationally effective methods
Projectionbased strategy
U3 B
PB Cp = f(PA,PB)
2,000 ∑w P FP
l
k kt ≤Π l
l ∈ LF
k∈K
PA ≤ PB Cpt ≥ γ l + ∑w P FP
l
k kt l ∈ LO
k∈K
1,000
1.5PA +0.5PB ≤ 2,100 PB
PB ≥ 0
PA
1,000 2,000 PA
Projectionbased method:
Develop feasibility/optimality constraints that involve only planning (x) variables
Convergence between overestimation (OE) and underestimation (UE) of true convex hull
Cpt ≥ γ l + ∑w P FP
l
k kt l ∈ LO δit
k∈K
Pit , I it ≥ 0
Model (PP) yields a complete production planning solution: Pit and Iit
If detailed schedules are required, model (PP) can be used in a rolling horizon algorithm
(S‐PP) to provide production targets for (weekly) scheduling models
0) Set θ = 1
1) Solve (PP) for planning periods t∈{θ, θ +1, …, T} to obtain targets Pkθ, Pkθ+1, …, PkT
2) Solve scheduling model for period t = θ to meet target Pkθ
3) If production target is met exactly (i.e. SkN = Pkθ, ∀k∈KFP), fix Pkθ, , and return to 2
otherwise, fix Pkθ , and re‐solve (PP) to update targets Pkθ+1, Pkθ+2, …, PkT ,
4) Set θ =θ+1, and return to 2
40%
A Kondili et al., 1993
HT H RM1 40% Int2
H R2 10%
60%
ImP2
RI 60% S
R1, R2, R3 Int1 80%
RII 90%
RM2 R1 R3
B
Sep S 20%
RM3
3000
R120
1500
PA
0
0 1000 2000 3000 (kg)
PB (kg)
3000 R500: SIn2MAX = 500 Kg
R1000: SIn2MAX = 1,000 Kg
R1500: SIn2MAX = 1,500 Kg
2000
R500
1000
R1000
R1500 P
0 A
0 600 1200 1800 (kg)
F1 S1 S2 Int1 S3
T1 T2 T3 T4 T5 P1
S4 50% T6 P2
5% 10%
F2 S5 Int2 S6
95%
T7 T8 T9 T10 P3
90% 50%
Projection of scheduling
feasible region onto Pi
1000
PC
500
0 0
500 500
1000 1000 P
PB A
1500 1500
3000
Inventory
(kg)
Production
2000
1000
0
0 12 24 36 48
Inventory (Ikt) and production (Pkt) levels for product A
2500
(kg)
1500
500
1 48
-500
Demand
Shipments
Backlog
-1500
Demand (Demkt), shipment (Dkt) and backlog (Ukt) profiles for product A
(kg) (kg)
Production Targets Deviation from Production Targets
2500
75
2000
1500 50
1000
25
500
0 0
1
D. W.
Litro
500 BPM
¼ STD
700 BPM
½ PREMIER
600 BPM
Litro
350 BPM
TANQUES DE GOBIERNO
½ T.A EXP
TANQUE REPOSO 750 BPM
P MB
Rigorous treatment of MIP tightness
Provides insights into formulation of large‐scale problems
Integration of combinatorial optimization algorithms
Projectionbased Method PB
2,000 ∑w P l
k kt ≤ Πl l ∈ LF
Compact description of production targets and costs k∈K FP
PA ≤ PB
Can be combined with any scheduling formulation 1,000 1.5PA +0.5PB ≤ 2,100
Generated once off‐line; improved on‐line if necessary
PB ≥ 0
Effective production planning approach 1,000 2,000 PA