0% found this document useful (0 votes)
7 views187 pages

Mixedinteger Programming Methods For Supply Chain Optimizationppt

Uploaded by

Sathiya Priya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views187 pages

Mixedinteger Programming Methods For Supply Chain Optimizationppt

Uploaded by

Sathiya Priya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 187

Mixed­integer programming methods

for supply chain optimization

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

July 19-29, 2011, Angra dos Reis, RJ, Brazil

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Outline

1. Supply Chain Management

2. Linear Programming

3. Basic Mixed­integer Linear Programming

4. Advanced Mixed­integer Linear Programming

5. Software Overview

6. Combinatorial Optimization

7. Chemical Production Scheduling

8. Integration of Production Planning and Scheduling

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
The Chemical Supply Chain
Supply chain (SC): network of facilities and distribution options for the procurement of materials;
transformation of materials into intermediate and finished products; and
distribution of these finished products to customers.

Suppliers
Traditional PSE is concerned with the
Manufacturing development of methods for the design,
Facilities operation, and control of chemical systems.

Warehouses/ Chemical industry changes:


dist. centers ƒ New products ⇒ multiproduct (and batch?) processes
ƒ Holistic view of operations
Retailers
Tayur ‐ FOCAPO 2003:
ƒ Inventories in SCs: ~ $10 trillion (10% of US GDP)
Customers
ƒ Same customer satisfaction levels with 50% inventory

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.

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Supply Chain Planning Matrix (Meyr et al., 2002)

procurement production distribution sales

Long‐term Strategic Planning

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 Power Utilities

ƒ Many new interesting problems


ƒ Power – industrial gases – steel SC
ƒ Oil – industrial gases – chemicals SC
under power constraints

Refinery Industrial Chemicals Customers


Gases

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Supply Chain Planning Matrix (Meyr et al., 2002)

procurement production distribution sales

Long‐term Strategic Planning

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

ƒ Many new interesting problems Fumaric acid

Sugarcane Malic acid


ƒ Power – industrial gases – steel SC Sugars C5
Dehydration Furfural
ƒ Oil – industrial gases – chemicals SC Bagasse
C6 Levulinic
Dehydration
under power constraints Corn
Stover
acid
FDCA

ƒ Biomass to fuels and chemicals Switch


Fast Bio‐oils
grass Fractionation (Sugars,
pyrolysis
Acids)
‐ Catalyst & Lignin
Wood ‐ Steam Liquefaction
‐ Acid
‐ Enzymes Hydrolysis Demethoxylation BTX
Wood Lignin
waste Phenols
Hydrodeoxygenation
&BTX

Zeolite upgrading Aromatics

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Supply Chain Planning Matrix (Meyr et al., 2002)

procurement production distribution sales

Long‐term Strategic Planning

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


ƒ Many new interesting problems
ƒ Power – industrial gases – steel SC
ƒ Oil – industrial gases – chemicals SC
under power constraints
ƒ Biomass to fuels and chemicals

ƒ Integration of production planning and scheduling


ƒ Exxon Mobil: 2% reduction in operating costs, 20% inventory reduction (Shobrys & White, 2002)
ƒ DuPont: Capital tied up in inventory reduced from $165 to $90 million (Shobrys & White, 2002)

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Outline

1. Supply Chain Management

2. Linear Programming

3. Basic Mixed­integer Linear Programming

4. Advanced Mixed­integer Linear Programming

5. Software Overview

6. Combinatorial Optimization

7. Chemical Production Scheduling

8. Integration of Production Planning and Scheduling

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Linear Programming
Standard optimization problem:

max f(x) n - number of variables


s.t. g(x) = 0 m - number of equality constraints m<n
h(x) ≤ 0 l – number of inequalities
x∈X

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)

Thus, we can use the standard LP form:

(LP) max z = cTx


s.t. Ax = b
x≥0

where x: (n+l)-vector; A:(m+l)×(n+l) matrix; c: (n+l)-vector; b: (m+l)-vector

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
LP Geometry
A process is used for the production of products P1 and P2 from raw materials A and B according to:
2A + B → 3P1 (1)
A + 2B → 3P2 (2)
If the maximum availability of raw materials A and B is 10 kg/hr, the price of both chemicals is $100/kg,
and the demand for products P1 and P2 is 12 and 13 kg/hr, respectively, what is the optimal production mix?

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

Theorem 1: A point x in F is an extreme point iff xB = B­1b ≥ 0, xN = 0


Theorem 2: The optimal solution x* of (LP) lies at an extreme point of F.
Theorem 3: Point x* is optimum if Reduced Cost RC = ‐cBT B­1N + cNT ≤ 0
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Simplex Method
Main idea of Simplex: If current basis non‐optimal, swap a non‐basic variable for a basic one until (‐cBTB‐1N + cNT) ≤ 0T

we start at x1=x2=0 max 10x1+10x2


xN = [s2, s1] = [0, 0] s.t 2x1 + x2 + s1 = 30
⎡2 1M 1 0 0 0⎤
⎢1 xB = [x2, s3, x1, s4] = [10, 2, 10, 3]
2M 0 1 0 0⎥⎥ x1+2x2 + s2 = 30
⎢ z = 200 – (10/3)s2 – (10/3)s1
⎢1 0M 0 0 1 0⎥ x1 + s3 = 12
⎢ ⎥
⎣0 1M 0 0 0 1⎦ x2 + s4 = 13
x2
x1, x2, s1, s2, s3, s4 ≥ 0
N B (4,13)
‐1
xB = B b (0,13)
z = cBxB + (‐cBTB‐1N + cNT)xN (10,10)
(6,12) xN = [s3, s1] = [0, 0]
xB = [x2, s2, x1, s4] = [6, 6, 12, 7]
xN = [x1, x2] = [0, 0] (0,12) z = 180 + 10s3 – 10s1
xB = [s1, s2, s3, s4] = [30, 30, 12, 13]
z = 0 + 10x1 + 10x2 x1

xN = [s3, x2] = [0, 0]


xB = [s1, s2, x1, s4] = [6, 18, 12, 13]
z = 120 + 10x2 – 10s3

ƒ Simplex algorithm developed by G. Dantzig (1947)


ƒ Very popular due to wide range of applications formulated using LP
ƒ Considered as one of the most important algorithms in the 20th century
ƒ Not polynomial but outperforms polynomial algorithms (Ellipsoid, Khachiyan Khachiyan, 1972)

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Simplex Method ­ Remarks
Degeneracy
ƒ A basic solution is degenerate if a basic variable is equal to zero.
ƒ In this case, the Simplex method may go through many iterations without increasing the value of the objective
function, and the same basis is encountered again (Cycling).
ƒ To avoid cycling, several rules have been developed; e.g. Bland’s rule.
Initialization
It is not always easy to find an initial basis.
For instance, if after adding the slack variable we have some components of b that are negative.

Infeasible Æ

In this case we apply Simplex in two phases.

Phase I: To each equality ∑a


j
ij x j = bi with bi<0, subtract an artificial variable ui, add constraint ui ≥ 0 and solve:

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 corresponding dual LP problem is formulated as:


min bT y (LP-D)
s.t. A y ≤ c
T

How do we construct (LP-D) from (LP-P)?


ƒ For each constraint of (LP-P), there is a variable in (LP-D)
ƒ For each variable of (LP-P), there is a constraint in (LP-D)
ƒ If (LP-P) is min problem, the dual is max.
ƒ If the constraints of (LP-P) are equalities (inequalities) the variables of (LP-D) are unconstrained (constrained)
ƒ If the variables of (LP-P) are free (non-negative), the constraints of (LP-D) are equalities (inequalities)
ƒ Non-negative variables result in ≤ inequalities in max problems
ƒ Non-negative variables result in ≥ inequalities in min problems

The dual of an LP can be used to better study and even solve faster an LP

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Duality ­ II
Let FP and FD be the feasible region of (LP-P) and (LP-D), respectively, we introduce the following convention:
T
ƒ If FP = ∅ infP c x = +∞
x∈F
T
ƒ If FD = ∅ supD b y = −∞
y∈F

Theorem 1: For any (LP): xinf c T x ≥ sup b T y [Proof]


∈F P D
y∈F

Theorem 2: If either FP≠ 0 or FD≠ 0, then xinfP


c T x = sup b T y [Proof]
∈F D
y∈F

⇒ if one of these problems is solvable, then so is the other and xminP


c T x = maxD b T y
∈F y∈F

Primal Dual
Optimal Infeasible Unbounded
Optimal √ - -
Infeasible - √ √
Unbounded - √ -

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Duality ­ III
Thus, we can solve (LP-D) instead of (LP-P) if the first is easier.
ƒ Computationally, the number of constraints is more important than the no of variables
ƒ If the (m×n) primal (LP-P) has m >> n, then it may be easier to solve the dual (LP-D)

Furthermore, the dual solution provides us with sensitivity information


ƒ The dual variable corresponding to a primal constraint, indicates whether this constraint is active;
and by how much
ƒ Dual values = shadow prices = marginal values

Sign of dual variables


ƒ Why equality constraints, have unrestricted dual variables?

ƒ What does the sign say about the RHS?


Nonnegative variables in (LP-P) result in ≤ inequalities in max problems
≥ inequalities in min problems

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Duality ­ IV
Re-optimization
Let assume that we have solved to optimality (LP-P) to obtain z* = cT x* = bT y*
ƒ What happens if we add a new constraint am+1 x = bm+1 to (LP-P)?
⇒ (LP-P) may become infeasible.
ƒ What happens to (LP-D)?
We add a variable; if we set ym+1= 0, we still have a feasible solution
⇒ We can use the existing basis to continue.

Dual Simplex Method


In general, a feasible non-optimal point of (LP-P) corresponds to an infeasible point of (LP-D) [Why???].
ƒ In the simplex algorithm, we try to reduce infeasibility of the dual problem.
ƒ Dual simplex method

Commercial solvers use there three powerful LP algorithms:


ƒ Primal Simplex
ƒ Dual Simplex
ƒ Barrier method

ƒ Different methods perform better in different problems


ƒ Commercial solvers detect certain problem structures & automatically choose appropriate method
ƒ If we know the structure we can also choose the method

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Outline

1. Supply Chain Management

2. Linear Programming

3. Basic Mixed­integer Linear Programming

4. Advanced Mixed­integer Linear Programming

5. Software Overview

6. Combinatorial Optimization

7. Chemical Production Scheduling

8. Integration of Production Planning and Scheduling

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
MIP in Chemical Engineering

Many decisions are discrete in nature:


Process Design:
9 Selection of equipment units (e.g. distillation vs. extraction) ‐ Superstructure Optimization
9 Selection of equipment sizes
9 Matching in heat exchanger networks (hot ↔ cold pairs)

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

Applications: Systems Biology


9 Gene addition and/or knock‐out

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Discrete Decisions in Process Design
Example: What is the best way to produce Vinyl Chloride Monomer? Turkay & Grossmann, 1998
Chlorine
Direct
Chlorination Low P Reactions:
Direct chlorination
Ethylene
Purge
C2H4 + Cl2→ C2H4Cl2
Oxychlorination Oxychlorination
Flash
High P
C2H4 + 2HCl + 1/2O2 → C2H4Cl2 + H2O
Pyrolisis
Air
C2H4Cl2 → C2H3Cl + HCl
Hydrogen
Water Chloride
Separation: HCl/C2H3Cl/C2H4Cl2 mixture
Oxygen

1. Separate HCl/C2H3Cl – C2H4Cl2


Hydrogen
Chloride Ethylene
2. Separate HCl – C2H3Cl
Dichloride

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)

Discrete variables are also used to:


ƒ Represent logic conditions
ƒ Enforce set of constraints (often including only continuous variables)
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Discrete Decisions in Process Operations

Example: Scheduling of a multi-product, multi-stage plant

Products 1st stage 2nd stage 3rd stage


(Batches) Reaction Separation1 Separation2

Optimization Decisions:
ƒ Number of batches
ƒ Assignment of batches to units
ƒ Sequencing of batches in a unit
ƒ Starting time (continuous)

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Basic Integer Programming Problems
Knapsack Problem
Items
ƒ We are given n items to be packed in a knapsack
ƒ Each item i∈{1, 2, …n} has a value pi and a weight wi 1
Knapsack
ƒ The capacity of the knapsack is W 2
ƒ The goal is to choose the items that fit in the knapsack with the max value .
.
.
We define:
Xi = 1 if item i is chosen n

Objective: max z = ∑ pi X i (K.1)


i, j

∑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)

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Basic Integer Programming Problems
Assignment Problem
Jobs Machines
ƒ We are given n jobs and n machines (classes/instructors, routes/buses)
ƒ Each job i∈{1, 2, …n} has to be assigned to a machine j∈{1, 2, … n} 1 1
ƒ The cost of assignment is cij 2 2
ƒ The objective is to find the assignment with the minimum total cost . .
. .
. .
We define:
Xij = 1 if job i is assigned to machine j n n

Objective: min z = ∑ cij X ij (A.1)


i, j

∑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

ƒ If solved as LP, there is always an optimal solution with integral values


ƒ Studied by Carl Gustav Jacobi (1890)
ƒ Solved effectively by the Hungarian method (Kuhn, 1955)
ƒ Improved by Munkres (1957)

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Basic Integer Programming Problems
Traveling Salesman Problem
Cities
There are n cities to be visited exactly once by a traveling salesman
The distance/cost from city i to city j is cij
The objective is to find the sequence of cities that yield the minimum
total distance/cost

We define:
Xij = 1 if we visit city j after city i

Objective: min z = ∑ cij X ij (TSP.1)


i, j

∑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?

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Basic Integer Programming Problems
Set Covering Problem
Jobs Machines
ƒ We are given n tasks to be covered by m<n machines (flights/crew)
ƒ Each machine j∈{1, …m} can carry out a subset of tasks Ij⊂I = {1, 2, …n} 1 1
ƒ The compatibility is represented via parameter: αij = 1 if i∈Ij 2 2
ƒ The cost of a machine is cj . .
ƒ The objective is to find the set of machines that covers all tasks and has . .
. .
the minimum cost
n m

We define:
Xj = 1 if machine j is chosen

Objective: min z = ∑ c j X j (SC.1)


j

∑a
j
ij X j ≥ 1 ∀i (SC.1) Every task is covered

X j ∈ {0,1} ∀j

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Basic Mixed­integer Programming Problems
Facility Location Problem – I Facilities Customers
There are n (existing + new) facilities (plants) and m customers ai, fi cij dj
We want to decide how to satisfy customer demand
1 1
What new facilities to build, how much to produce and ship
2 2
The capacity (cost of setting up) of facility i∈{1, 2, …n} is αi (fi)
The cost of shipping material from i to j is cij . .
. .
The demand of customer j∈{1, 2, …m} is dj . .

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

X i ∈ {0,1} ∀i, Yij ≥ 0 ∀i, j

More realistic problem:


9 There is also production cost pi, transportation set-up cost tij, and transportation capacity sij
9 The problem has to be solved over multiple planning periods
9 The network involves multiple products
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Basic Mixed­integer Programming Problems

Facility Location Problem – II Facilities Customers


The capacity (cost of setting up) of facility i∈{1, 2, …n} is αi (fi) ai, fi cij dj
The production cost in facility i is pi 1 1
The setup (variable) cost of shipping material from i to j is tij (cij) 2 2
The capacity of transportation link (i→j) is sij
. .
The demand of customer j∈{1, 2, …m} is dj . .
. .

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

Yij ≤ sij Z ij ∀i, j (FLII.4) Transportation capacity and set-up

X i , Z ij ∈ {0,1} ∀i, j Yij ≥ 0 ∀i, j

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Modeling with 0­1 Variables
1. Select at least one item from a set j = {1, 2, …, m}
OR operator: y1 ∨ y2 ∨…ym → ∑y
j
j ≥1

2. Select exactly one item


Exclusive OR: y1 ∨ y2 ∨ … ym → ∑y
j
j =1

3. If select k then select l


Implication: k ⇒ l → yl ≥ yk
4. If and only if
Equivalence: k ⇔ l → yk = yl
5. Disjunctions
f1(x) ≤ 0 OR f2(x) ≤ 0
y1 + y2 = 1
f1(x) ≤ M1(1 - y1)
f2(x) ≤ M2(1 - y2)
where M1, M2 are sufficiently large numbers
6. Discontinuous Functions/ Domains
⎧α + bx L ≤ x ≤U
Cost = ⎨
⎩0 x=0
New variable y: If y = 0 ⇒ x = 0 Cost
If y = 1 ⇒ L ≤ x ≤ U
Formulation: c = αy + bx
Ly ≤ x ≤ Uy y∈{0,1} α

L U x

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Modeling with Disjunctions
We often want to enforce different conditions in different cases Grossmann & co‐workers, 1998
Examples: Selection of reactor type
Selection of an additional flash tank
CO, CO2, H2

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)

Methanol Mathematical model of unit k :

(
⎡ 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
Big­M 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
) ⎥⎥⎦

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Reformulations
Convex­hull reformulation

⎡ y1 ⎤ ⎡ y2 ⎤ x1 = x11 + x12 x11 ≤ M ⋅ y1 x12 ≤ M ⋅ y 2


,
⎢ ⎥ ⎢ ⎥ x2 = x12 + x22 x12 ≤ M ⋅ y1 x22 ≤ M ⋅ y 2
⎢ 1 ≤ x1 ≤ 3 ⎥ ∨ ⎢7 ≤ x1 ≤ 10⎥
⎢ 2 ≤ x2 ≤ 4 ⎥ ⎢ 6 ≤ x2 ≤ 8 ⎥ y1 + y 2 = 1 ⎡ 1 ⋅ y1 ≤ x11 ≤ 3 ⋅ y1 ⎤ ⎡7 ⋅ y 2 ≤ x12 ≤ 10 ⋅ y 2 ⎤
⎣ ⎦ ⎣ ⎦ , ⎢ 1⎥ ⎢ 2 ⎥
x2 ⎣⎢2 ⋅ y ≤ x2 ≤ 4 ⋅ y ⎦⎥ ⎣⎢ 6 ⋅ y ≤ x2 ≤ 8 ⋅ y ⎦⎥
1 1 2 2

x1 = x11 + x12 x11 ≤ M ⋅ y1 x12 ≤ M ⋅ y 2


,
x2 = x12 + x22 x12 ≤ M ⋅ y1 x22 ≤ M ⋅ y 2
x1 ( ) ( )
⎡ 1 ⋅ 1 − y 2 ≤ x11 ≤ 3 ⋅ 1 − y 2 ⎤ ⎡7 ⋅ y 2 ≤ x12 ≤ 10 ⋅ y 2 ⎤
⎢ 2 ⎥ ⎢ 2 ⎥
( ) ( )
⎣⎢2 ⋅ 1 − y ≤ x2 ≤ 4 ⋅ 1 − y ⎥⎦ ⎢⎣ 6 ⋅ y ≤ x2 ≤ 8 ⋅ y ⎦⎥
2 1 2 2

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
General Mixed­integer Programming Model

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}

ƒ If Ni = ∅ (i.e. there are no y variables) ⇒ Linear Programming (LP) Model


ƒ If Ni = N (i.e. there are no x variables) ⇒ (Pure) Integer Programming (IP) Model
ƒ If ∅ ≠ Ni ⊂ N (i.e. we have both x and y) ⇒ Mixed-Integer Programming (MIP or MILP) Model

A general integer Y∈{0, 1, 2, 3, …N} can be modeled via k binary variables Yk:

Y= ∑ kY
k = 0 ,... N
k

So, the general MIP problem is:

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
LP­relaxation 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)

min c1T x + c2T x Larger


min c1T x + c2T x s.t. A1 x ≤ b1 feasible
(RP1) region
s.t. A1 x ≤ b1 x∈X
A2 x ≤ b 2 (P)
x∈X min c1T x z(RP2) ≤ z(P)
where x, c1, c2 ≥ 0 s.t. A1 x ≤ b1 Better obj.
(RP2) value at the
A2 x ≤ b 2 same point
x∈X

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Branch­and­Bound: Basic Ideas
LP­based method: Lang & Doig, 1960
ƒ Integrality constraints, y∈{0,1}, are replaced by y∈[0, 1]
max cT x + dT y (P) max cT x + dT y (LRP)
s.t. Ax + By = b ⇒ s.t. Ax + By = b
x ≥ 0, y∈{0, 1} p x ≥ 0, y∈[0, 1]p
ƒ LP problem P(i) is solved at node i, with feasible region Fi and objective Zi
We know how to solve (LRP) effectively using Simplex (vs. other relaxations)

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

(2,1) ZLP=6 INFEASIBLE

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Branch­and­bound: Basic Ingredients
1. The list L of problems to be solved
2. Relaxation (RP): upper (& lower?) bounding procedure
3. Branching Rule: replace problem P(i) in node i by problems P(i1), P(i2), …, P(iq): FR(i1)∪…∪FR(iq) = FR(i)
4. Node (subproblem) selection rule: how to select a problem from the current subproblem list L
5. Pre-processing and variable fixing procedures

(x1,x2) = (0.75, 0.3)


ZLP = 9.25
On which binary/constraint to branch?
x1 ≤ 0 x1 ≥ 1
(0, 0.8) (1, 0.7)
ZLP = 8.5 ZLP=8.75
Which active node to evaluate next?
x2 ≤ 0 x2 ≥ 1 x2 ≤ 0 x2 ≥ 1
(0, 0)-INT (0, 1) -INT (1, 0) -INT INFEASIBLE
ZLP = 7 ZLP = 8 ZLP =7.5

ƒ Method first proposed by Lang and Doig (1960)


ƒ Around the same time an alternative method was developed (cutting planes)
ƒ Brute force branch‐and‐bound remained ineffective for many years
ƒ Cutting planes were not used for many years

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Branch­and­bound Algorithm
1. Initialization
L = {P} ZU := +∞ min cT x + dT y
2. Termination s.t. (x, y)∈ X
If L = ∅ then
If ZU = +∞, then X = ∅ (infeasible problem); STOP
If ZU < +∞, then the solution (x, y)∈X with ZU = cx + dy is optimal; STOP
3. Node Selection and Solution
Using SSR select subproblem (node) P(i)∈L and let L := L\{P(i)}
Compute the optimal LP-value Zi and LP-solution (xi, yi) for P(i).
4. Pruning
If Zi ≥ ZU, then GOTO 2.
(P(i) is either infeasible or dominated by the best solution (upper bound) found so far)
If Zi < ZU, then
If yi is integral (i.e. yji is integral ∀j∈NI), then (a better solution is found)
Update upper bound by setting ZU:= Zi
Update list L by removing dominated subproblems:
for each i’∈L: If Zi’ ≥ ZU, then L := L\{P(i’)}
GOTO 2.
5. Branching*
Select j∈NI such that yji is fractional; yj is the branching variable
Update list L by adding programs with fixed yj values
Set L:= L ∪ {P(i0), P(i1)} where
P(i0) = P(i) ∩ {(x,y)∈ ℜn+ × ℜl+ | yj ≤ ⎣yji⎦}
P(i1) = P(i) ∩ {(x, y)∈ ℜ n+ × ℜl+ | yj ≥ ⎡yji⎤}
GOTO 2.
* Occurs only when P(i) has not been pruned, i.e. when Zi < ZU and yji is fractional for some j ∈ NI

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Branch­and­bound Tree

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?

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Branching
(x1,x2) = (0.75, 0.3)
ZLP = 9.25
On which binary/constraint to branch?
x1 ≤ 0 x1 ≥ 1
(0, 0.8) (1, 0.7)
ZLP = 8.5 ZLP=8.75
Which active node to evaluate next?
x2 ≤ 0 x2 ≥ 1 x2 ≤ 0 x2 ≥ 1
(0, 0)-INT (0, 1) -INT (1, 0) -INT INFEASIBLE
ZLP = 7 ZLP = 8 ZLP =7.5

Variable Selection Rules


1. Try to find a good solution fast: Obtain a good lower bound ⇒ Prune many nodes fast
2. Choose a variable that results in bad solutions: Prune as many nodes as possible ⇒ Keep the b&b tree small
Node selection rules
ƒ Try to find good feasible solutions as early as possible

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

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Variable Selection Rules
We want balanced branching and tight bounds: choose j∈NI that yields: {
max min{Z
j
x j =0
,Z
x j =1
}
}

Example

INT: Integer feasible


INF: Infeasible
FRAC: Fractional

FRAC FRAC Current best (ZU)


ZU=16 ZU=14
Closed (infeas or Zi > ZU)
Open (Zi < ZU)
FRAC FRAC
ZU=18 ZU=14.5
INT
ZU=15 INF Exercise
INF INT
ZU=16

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Variable Selection Rules
We want balanced branching and tight bounds: choose j∈NI that yields: {
max min{Z
j
x j =0
,Z
x j =1
}
}

Example
Current best (ZU)
Closed (infeas or Zi > ZU)
Open (Zi < ZU)
ZU=14

(0,…,0.1, 0.4, 0.95,...1)

ZU=14.5
ZU=15

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Variable Selection Rules
We want balanced branching and tight bounds: choose j∈NI that yields: {
max min{Z
j
x j =0
,Z
x j =1
}
}

Example
Current best (ZU)
Closed (infeas or Zi > ZU)
Open (Zi < ZU)
ZU=14

(0,…,0.1, 0.4, 0.95,...1)


y=0 y=1

ZU=14.5 ZU=14.1 ZU=16


ZU=15

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Variable Selection Rules
We want balanced branching and tight bounds: choose j∈NI that yields: {
max min{Z
j
x j =0
,Z
x j =1
}
}

Example
Current best (ZU)
Closed (infeas or Zi > ZU)
Open (Zi < ZU)
ZU=14

(0,…,0.1, 0.4, 0.95,...1)


y=0 y=1

ZU=15 ZU=15.2
ZU=14.5
ZU=15

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Node Selection Rules

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

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Node Selection Rules

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)

Not used in practice

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Node Selection Rules

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,

(0, 0.5, 0.5, 0, 0)


INFEASIBLE

x 1 + x2 = 1 x 3 + x4 + x5 = 1

or (0, 0.5, 0.5, 0, 0)


INFEASIBLE

x1 = 1
x5 = 1
x2 = 1 x3 = 1 x4 = 1

Special Ordered Sets 2 (SOS2):


xi ≥ 0 AND x1 + x2 + x3 + x4 + x5 = 1 AND at most two non-zeros AND consecutive
(0, 0.5, 0, 0.5, 0)
INFEASIBLE

x1=0, x2=0 x3=0, x4=0

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Pre­processing
ƒ Preprocessing applies simple logic to reformulate and tighten the LP relaxation
ƒ For MIP problems is better to spend extra time initially to reduce the possibility of long runs

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.

Detect Infeasibilities and Redundant Constraints


ƒ If Li ≤ Axi ≤ Ui (for l ≤ x ≤ u) then Axi ≤ bi is redundant if Ui ≤ bi and is infeasible for Li < bi.

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Pre­processing

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

Computational Effort for preprocessing:


1. Techniques applied to one row ⇒ Always worth doing
2. Saving and preprocessing implication and clique tables
3. Full probing on the matrix

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

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Heuristics

ƒ Solution Time proportional to tree size


ƒ Tree is large when there are many active nodes; i.e. nodes with zi < zbest = ZU
ƒ How do we keep the size of the tree small?
Try to reduce zi as fast as possible ⇒ Variable Selection Rule
Try to find large zbest as fast as possible ⇒ Heuristics

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

If we do not know a heuristic: Use LP-based heuristics:


ƒ Enumerate 0-1 vectors in the neighborhood of the current LP solution and check feasibility
OCTANE heuristic (Balas et al., 2002)
ƒ Successive rounding heuristics
Fractional variables sequentially rounded until an integral solution or infeasibility is detected
Equivalent to “diving” in the b&b tree: branching on a variable and examine only one child

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Motivation for Branch­and­Cut
IP Feasible Region X LP Relaxation Feasible Region
x2 max 3x1 + 4x2 (M) max 3x1 + 4x2 (M)
x2
4x1+3x2 ≤ 10 4x1+3x2 ≤ 10
x1∈{0,1,2,3}, x2∈{0,1} x1∈{0,1,2,3}, x2∈{0,1}

1 1

0 0
0 1 2 3 x1 0 1 2 3 x1

Convex Hull of IP Feasible Region


max 3x1 + 4x2 (M)
x2 4x1+3x2 ≤ 10
x1∈{0,1,2,3}, x2∈{0,1}

0
0 1 2 3 x1

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Valid Inequalities and Cutting Planes
LP Relaxation Feasible Region

x2 ƒ If we have CH(X) we solve just one LP


ƒ We need facet defining inequalities
ƒ Has been done for some problems
1
ƒ In general very difficult
Valid Inequality
ƒ Try to approximate instead
0 ƒ Find cutting planes
0 1 2 3 x1
Facet Cutting Plane

4x1 + 3x2 ≤ 10
⇒ x1 ≤ 2
x2

0
0 1 2 3 x1

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Gomory­Chvatal Inequalities
Original inequality (ith row):

Σj aij xj ≤ bi (1)

If all the variables in (1) are non-negative integers then the GC inequality is given by:

Σj ⎣aij⎦ xj ≤ ⎣bi⎦ (2)

ƒ 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)

x1 + 0.75x2 ≤ 2.5 ⇒ x1 ≤ 2.5 Cuts-off (2.5, 0)

1.5x1 + x2 ≤2 ⇒ x1 + x2 ≤ 2 Not tighter

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Cover Inequalities
Original knapsack inequality:
Σj∈J aj xj ≤ b, xj∈{0,1} (1)
Let C be a subset of J such that Σj∈C aj > b.
Then a valid cover inequality is given by:
Σj∈C xj ≤ |C| - 1 xj∈{0,1} (2)
ƒ We have to separate cover inequalities
ƒ Cover inequalities can be made tighter by lifting; i.e. including coefficients for j∉C.

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

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Example Revisited

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

Gomory-Chvatal Inequality: Cover Inequalities:


4x1 + 3x2 ≤ 10 4x1 + 3x2 ≤ 10
x1 + 0.75x2 ≤ 2.5 Three units of x1 is a cover: x1 ≤ 2
x1 + ⎣0.75⎦ x2 ≤ ⎣2.5⎦
Lifted cover inequality: x1 + x2 ≤ 2
⇒ x1 ≤ 2

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
Branch­and­Cut Algorithm

zLP(2)
zLP(1)

Root Node

zLP(3) (1)

(2)
CP(2)
CP(1) (3)

CP(3)

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Branch­and­Cut Algorithm
zLP(4) Root Node
(1)

(2)

(3)
(4)
x1≤1 x1≥2
(5) (6)

(7) (8)

zLP(5)
zLP(6)
zLP(7)

zLP(8)

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
MIP Computational History: 1950 ­ 1998
ƒ 1954: Dantzig, Fulkerson, S. Johnson: 42 city TSP
Solved to optimality using cutting planes and LP
ƒ 1957: Gomory
Cutting plane algorithm: A complete solution
ƒ 1960: Land, Doig; 1965 Dakin
Branch-and-bound (B&B)
ƒ 1971: MPSX/370, Benichou et al.
ƒ 1972: UMPIRE, Forrest, Hirst, Tomlin
ƒ 1972 – 1998: Good B&B remained the state-of-the-art in commercial codes, in spite of
• 1973 Padberg
• 1974 Balas (disjunctive programming)
• 1983 Crowder, Johnson, Padberg: PIPX, pure 0/1 MIP
• 1987 Van Roy and Wolsey: MPSARX, mixed 0/1 MIP
• Grötschel, Padberg, Rinaldi …TSP (120, 666, 2392 city models solved)

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
MIP Computational History: 1998 ­ Date
ƒ Linear programming
• Stable, robust dual simplex
ƒ Variable/node selection
• Influenced by traveling salesman problem
ƒ Primal heuristics
• 8 different tried at root node; retried based upon success
• Construction & improvement heuristics
• Relaxation-induced neighbor search
ƒ Node pre-solve
• Fast, incremental bound strengthening (very similar to Constraint Programming)

ƒ Presolve – numerous small ideas


• Probing in constraints:
∑ xj ≤ (∑ uj) y, y = 0/1
Î xj ≤ ujy (for all j)
ƒ Cutting planes
• Cliques, disjunctive, flow covers, Gomory, GUB covers, knapsack covers, implied
bounds, mix-integer rounding, path cuts, etc.
• Aggregation
• …
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Computational Progress

• Algorithms
Primal simplex in 1988 versus best(primal,dual,barrier) today 2,360x
• Machines 800x
• Net: Algorithm * Machine ~ 1,900,000x

* Bixby, Fenelon, Gu, Rothberg, Wunderling. A New Generation of MIP Codes,


IP Conference in Honor of Egon Balas, June 3-5 2002, Carnegie Mellon University, Pittsburgh, PA
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Computational Progress
California Unit Commitment – 7 Day Model
UNITCAL_7: 48939 cons, 25755 vars (2856 binary)
Previous attempts (by model formulator): 2 Day model: 8 hours, no progress
7 Day model: 1 hour to solve initial LP
CPLEX 8.0 on 2.0 GHz Pentium 4 Running defaults ...
Reduced MIP has 38872 rows, 19989 columns, and 105612 nonzeros.
MIP emphasis: balance optimality and feasibility
Root relaxation solution time = 6.70 sec.

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%

GUB cover cuts applied: 2


Clique cuts applied: 27
Cover cuts applied: 4
Implied bound cuts applied: 1038
Flow cuts applied: 1019
Flow path cuts applied: 5
Gomory fractional cuts applied: 152

Integer optimal, tolerance (0.0001/1e-06) : Objective = 1.9635572051e+07


Current MIP best bound = 1.9633624784e+07 (gap = 1947.27, 0.01%)
Solution time = 724.41 sec. Iterations = 174362 Nodes = 3575 (1104)

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Computational Progress
A customer model: 44 cons, 51 vars, 167 nzs, maximization
51 general integer variables (and no bounds)
Branch-and-cut: Initial integer solution -2186.0
Initial upper bound -1379.4
…after 1.4 days, 32,000,000 B&C nodes, 5.5 Gig tree
Integer solution and bound: UNCHANGED
What’s wrong? Free vars chase each other off to infinity.

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!!!

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Outline

1. Supply Chain Management

2. Linear Programming

3. Basic Mixed­integer Linear Programming

4. Advanced Mixed­integer Linear Programming

5. Software Overview

6. Combinatorial Optimization

7. Chemical Production Scheduling

8. Integration of Production Planning and Scheduling

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
How Can We Solve Hard Problems?

Traditional Approaches
ƒ Better models
ƒ Better solvers
ƒ Customized methods
• Decomposition algorithms
• Problem‐specific algorithms

New and emerging trend


ƒ Exploiting computational power – parallel computing

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Better Models ­ I
The “Pigeon Hole” problem:
There are n+1 pigeons and n holes.
We want to place all pigeons in the holes but in such way that no pair of pigeons is in the same hole.
Infeasible, but how is the branch and bound tree ?

Let xij=1 if pigeon i is in hole j.


Assignment of every pigeon in a hole: Σj xij = 1 ∀i
No pair of pigeons in the same hole: xij + xkj ≤ 1 ∀j, ∀i,k | i<k

• Feasible LP relaxation: xij=1/n


• LP rel. feasible after branching
• Total enumeration is needed

Alternative Formulation
Assignment of every pigeon in a hole: Σj xij = 1 ∀i
At most one pigeon at each hole: Σi xij ≤ 1 ∀j

• Replace n3 constraints (2 var’s) with n constraints (n+1 var’s)


⇒ INFEASIBLE LP relaxation

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Better Models ­ II

The discrete time, finite horizon, economic lot‐sizing problem


There is a given demand dt for each period t which can be satisfied by production in any period t’ ≤ t.
For each period there is a production cost, a holding cost and a setup cost (if production occurs).

yt: production in period t


st: inventory in period t
xt = 1 if production occurs at t
yt ≤ Dt xt = (Σt’=t..T dt’ )xt ∀t
st = st-1 + yt – dt ∀t
Optimal LP relaxation: fractional: xt = yt /Dt

ytt’: production in period t for demand at t’


xt = 1 if production occurs at t

Σt=1..t’ ytt’ = dt’ ∀t’


ytt’ ≤ dt’ xt ∀t’, ∀t≤t’

Optimal LP relaxation: ⇒ LP solution is also MIP solution

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Stronger Formulations Using Cutting Planes Ideas

x + y ≥ 3.5, x, y ≥ 0, y integral
y

4.0

3.0

(0, 3.5)
2.0

1.0

1.0 2.0 3.0 4.0 x

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Stronger Formulations Using Cutting Planes Ideas

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

1.0 2.0 3.0 4.0 x

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
How Can We Solve Hard Problems?

Traditional Approaches
ƒ Better models
ƒ Better solvers
ƒ Customized methods
• Decomposition algorithms
• Problem‐specific algorithms

New and emerging trend


ƒ Exploiting computational power – parallel computing

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
How Can We Guide Search?
ƒ Guess correct branching binary
ƒ Heuristic: Choose fractional variable closest to 0.5
ƒ Does it always work?
z

0 1
x2

×
Branching on x1

1
x1
Branching on x2

ƒ No, try to find the sensitivities for x1 and x2.


ƒ How???

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Branching Using Pseudocosts

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

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Strong Branching
ƒ But the reduced cost (dual value) is valid only for small perturbations
ƒ Can we do better than this, i.e. can we get a better estimate of the impact of adding xj = 0 and xj = 1?
[0.1, 0, 0.5, 0.6, 0.8]
10
x
0 3 =
= 1
x3
[0.1, 1, 0, 0.5, 0.2] 12.5 13.5 [0.3, 0, 1, 0.4, 0.6]

ƒ Choose a subset of fractional binaries


ƒ For each chosen binary fix to xj = 0 and xj = 1 and start solving resulting LP’s.
ƒ Stop after a fixed number of Simplex iterations
ƒ Choose the binary that led to poor subproblems

[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

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
OK, … What Can We Do Realistically?

ƒ 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

Main point of this subsection:

ƒ 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

ƒ Find corresponding solver options

ƒ Experiment …

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
How Can We Solve Hard Problems?

Traditional Approaches
ƒ Better models
ƒ Better solvers
ƒ Customized methods
• Decomposition algorithms
• Problem-specific algorithms

New and emerging trend


ƒ Exploiting computational power – parallel computing

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Decomposition
Basic Decomposition Idea
Algebra Optimization
Underdetermined
x1+2x2+2x3 =6 x1=2 ⇒ Many solutions
⇒ Solve (M1) & (M2) many times
2x1+ x2 + x3 =6 x2=1 M1
3x2+4x3 =7 x3=1
x3+3x4+ x5 =8 x4=2 Solution time: 2N
x4+2x5 =8 x5=3 M2 (M) → 210 = 1024 sec
(Μ1) & (Μ2) → 26+26 = 128 sec

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?

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Lagrangean Relaxation
Consider the problem:
min z = cTx (P)
s.t. Ax ≤ b (1)
Dx ≤ d (2)
x∈X
where constraints in eq. (1) are “nice”, but constraints in eq. (2) are “hard”.

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.

Key Idea: Try to find the correct values for penalties u.


What do the multipliers u look like?

If a constraint in Dx ≤ d is violated, we would like to increase u.


If a constraint in Dx ≤ d is violated by a solution of (LR), this constraint would be active in (P).
⇒ u is the dual value of a violated constraint in (P).

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Lagrangean Relaxation ­ Implementation
min z = cTx + u(Dx-d) (LR)
s.t. Ax ≤ b (1)
x∈X, u ≥ 0
Select K, ε, mk
Set UB = +∞, LB= - ∞
Start with u0 = 0
k = k+1

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

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Lagrangean Relaxation – Choice of Dual
Consider the problem: min z = cTx (P)
s.t. A1x ≤ b1 (1)
A2x ≤ b2 (2) Which constraints should be dualized?
A3x ≤ b3 (3)
x∈X

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)

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Lagrangean Relaxation ­ Remarks

min z = cTx (P) Hard constraints min z = cTx + u(Dx-d) (LR)


are inequalities
s.t. Ax ≤ b (1) s.t. Ax ≤ b (1)
Dx ≤ d (2) x∈X, u ≥ 0
x∈X

min z = cTx (P) Hard constraints min z = cTx + u(Dx-d) (LR)


s.t. Ax ≤ b (1) are equalities
Dx = d (2) s.t. Ax ≤ b (1)
x∈X ? x∈X

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Lagrangean Relaxation ­ Example

Structure of original model:


Independent blocks with linking constraints
ƒ Independent unit models + flow constraints
ƒ Multi-period models with inventory constraints
ƒ Assignment + sequencing constraints

min z = cTx Dualize linking


min z = cTx + u(Ax-b)
s.t. Ax ≤ b (1) constraints
s.t. Dtx ≤ dt t=1, …T (2)
Dtx ≤ dt t=1, …T (2) x∈X, u ≥ 0
x∈X

Lagrangian relaxation (LR) easy to solve

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Bender’s Decomposition

Structure of original model:


Independent blocks with linking variables
ƒ Stochastic programming: here-and-now & wait-and-see decisions
ƒ Hierarchical decisions

How can we decompose the problem?

max c0 x + Σk ck xx
A0x = b0 (1)
Akx + Bkyk = bk, k=1,…,K (2)
Benders Decomposition

1. Solve problem master problem (MP): A0x = b0


2. Fix linking variables x
3. Solve K decomposed problems Bkyk = bk – Akx
4. Generate cuts and add them to (MP)
Cuts are generated from dual information
5. Check convergence; if not go to 1

“Bender’s decomposition lends itself well to parallelization” …

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Hybrid Methods
Consider the problem: x y
min z =cTx (P) 1
s.t. Ax ≤e (1) 2
Bx + Dy≤ f (2) 3
4
x∈X, y∈Y
where constraints in eq. (2) are “hard” for mathematical programming but “easy” if we use a different solution method.

Relaxed Model (RM)


Remove min cx
Lower
Constraints s.t. Ax ≤ e Bound
x∈X min cx (RM)
Hybrid Model s.t. Ax ≤ e
x∈X
min cx
x = xk x∉X
s.t. Ax ≤ e
g(x,y) ≤ 0 g(xk, y) ≤ 0 (SM)
Subproblem (SM)
x∈X, y∈Y min cx y∈Y
Add s.t. Ax ≤ e Upper
Constraints x = xk Bound
g(x,y) ≤ 0 (Feasible )
x∈X, y∈Y
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
How Can We Solve Hard Problems?

Traditional Approaches
ƒ Better models
ƒ Better solvers
ƒ Customized methods
• Decomposition algorithms
• Problem-specific algorithms

New and emerging trend


ƒ Exploiting computational power – parallel computing

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
What Is Parallel Computing?

Parallel Multiple CPUs on a


machine
Processing

Multiple machines Grid Parallel Cluster Multiple machines


distributed globally Computing Computing Computing located close by

Distributed Multiple machines


Computing distributed globally

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Parallel Integer Programming
ƒ LP-based branch-and-bound has inherent structure for parallelization
• Subproblems associated with each node are independent
• Evaluate nodes simultaneously
ƒ Fundamental issue for parallelizing branch-and-cut: Management of cuts
• Minimize cut generation time: do not develop same cuts several times
• Maximize useful sharing: pass relevant cuts
• Avoid flooding the communication system with cuts

Nodes solved at the master computer

Information flow: master → slave


• Subproblem formulation
• Variable bounds
Information flow: slave → master
× • New feasible solutions
• Current lower bound
• Global cutting planes

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Condor Project @ UW ­ Madison

ƒ Started in early 80s at CS Dept.


ƒ http://www.cs.wisc.edu/condor/
ƒ Manages 1000 workstations and delivers 650 CPU days on a day
ƒ Gained popularity from around the world
• Industry, government, academia

Matchmaker

Problem
Agent Resource
Solver

Shadow Sandbox

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Implementation Challenges*
ƒ Theoretical foundations well-known and well documented
ƒ Many algorithmic and implementation issues need to be resolved
Example: Cut Management
ƒ The addition of cuts results in smaller trees BUT
ƒ Extra time spent in generating cuts (regardless of whether all cuts are used)
ƒ Extra time spent on solving LP’s at each node
Questions: When to generate cuts and how many?
Which cuts (if any) to add to the active linear problem?
When to delete previously generated cuts?
Basic ideas: Generate cuts only every k1 nodes
Perform only k2 rounds of cut generation
Have only limited number of active cuts; keep inactive cuts in the “cut pool”
Basic Management Scheme:
1. Solve the active linear program
2. Identify inactive cuts; delete them from the active LP; add them to the cut pool
3. Search the cut pool for violated cuts; add a subset to the active LP and go to 1
4. Generate violated cuts. Add them to the cut pool and go to 1

* Johnson, E.L. Progress in Linear Programming-Based Algorithms for Integer Programming: An Exposition.
INFORMS Journal on Computing, Vol. 12, No 1, Winter 2000

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Promising Research Areas*

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

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Outline

1. Supply Chain Management

2. Linear Programming

3. Basic Mixed­integer Linear Programming

4. Advanced Mixed­integer Linear Programming

5. Software Overview

6. Combinatorial Optimization

7. Chemical Production Scheduling

8. Integration of Production Planning and Scheduling

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Software Overview
ƒ Papers usually focus on How_to_Solve_a_Problem
ƒ How_to_solve_a_problem is only a single step of the overall process
ƒ Modeling life-cycle
1. Develop the model
2. Generate instance(s) of the model
3. Solve the instance(s)
4. Verify the results/model
5. Modify the model

ƒ Ideally, software has to nurture the entire modeling life cycle


ƒ Two components of this “ideal” environment have received the most attention:
• The modeling module: GAMS, AIMMS, Xpress-IVE, OPL Studio
• The solver module: CPLEX, XPRESS-MP, OSL

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.

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Modeling Systems

ƒ Modeling systems provide an interface with a variety of different solvers (algorithms).


ƒ The user supplies a model (i.e. parameters, variables and constraints) using an easy language.
ƒ The user-generated input file is compiled to generate a standard optimization file (e.g. .lp, .mps)
ƒ This file is passed to the appropriate solver
ƒ The solution found by the solver is communicated back to the modeling system, and reported via an
output file.
ƒ A simple diagram for GAMS is shown below.

Input file GAMS Output file


XXX.gms XXX.lst

User
Solvers
LP Solver 1 NLP Solver 1 MIP Solver 1 MINLP Solver

LP Solver 2 NLP Solver 2 MIP Solver 2

MIP Solver 3

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Solvers
ƒ There are many different solvers for each problem (LP, NLP, MINLP, etc.)
ƒ Different solvers are good for different classes of problems; e.g. MINOS vs. CONOPT for NLPs

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Modeling Systems

GAMS: Old language; limited flow control & visualization aids


Compatible with many solvers

AIMMS: New, user-friendly language; fancy interface


Compatible with many solvers (not as many as GAMS)

Xpress-IVE: Product of Dash Optimization → Solvers of Dash Optimization


Provides tools for algorithm customization

OPL Studio: Product of ILOG → Solvers of ILOG


Provides tools for algorithm customization

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

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Modeling Levels
* Irv Lustig, Embedding CPLEX Algorithms Overview

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Modeling Levels
* Irv Lustig, Embedding CPLEX Algorithms Overview

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Modeling Levels
* Irv Lustig, Embedding CPLEX Algorithms Overview

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Outline

1. Supply Chain Management

2. Linear Programming

3. Basic Mixed­integer Linear Programming

4. Advanced Mixed­integer Linear Programming

5. Software Overview

6. Combinatorial Optimization

7. Chemical Production Scheduling

8. Integration of Production Planning and Scheduling

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Graph Theory
ƒ A graph G is a pair (V, E) of a set of vertices V (points) and set of edges E (lines)
ƒ Undirected graph: undirected edges, (i, j) = (j, i) a
u v Graph G1 = (V1, E1)
ƒ Directed graph: directed edges, (i, j) ≠ (j, i) V1 = {u, v, w, z}
c E1 = {(u, v), (u, w), (v, w), (v, z), (w, z)}
ƒ Network: directed graph with capacitated edges d b E1 = {a, b, c, d, e}
ƒ If i, j∈V, then (i, j)∈E is an edge; i is the tail, j is the head. z e w

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Graph Theory
ƒ A graph G is a pair (V, E) of a set of vertices V (points) and set of edges E (lines)
ƒ Undirected graph: undirected edges, (i, j) = (j, i)
ƒ Directed graph: directed edges, (i, j) ≠ (j, i) 1 2 Digraph G2 = (V2, E2)
V1 = {1, 2, 3, 4}
ƒ Network: directed graph with capacitated edges E1 = {(1, 2), (2, 1), (2, 3), (3, 4),
(4, 1), (4, 2)}
ƒ If i, j∈V, then (i, j)∈E is an edge; i is the tail, j is the head. 4 3

Representation of Graphs and Networks


ƒ A vertex i is incident to an edge (i, j)
ƒ Incidence matrix: Nodes in Rows, edges in columns – 1 if a node is incident to an edge
In directed graphs, incident matrix has a ‐1 for the tail and +1 for the head

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⎦

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Familiar Combinatorial Optimization Problems
Traveling Salesman Problem
ƒ There are n cities to be visited exactly once by a traveling salesman;
the distance/cost from city i to city j is cij.
Find the Hamiltonian of minimum total distance/cost
ƒ Problem appears in 1830s; treated mathematically in 1930s (Menger)
ƒ One of the most intensively studied problem in optimization
ƒ No effective algorithm exists
ƒ It was shown it is NP-hard (Karp, 1972)

xij = 1 if we visit city j after city i


Integer programming formulation
min ∑ cij xij
ƒ Subtour elimination: for every V1,V2: V = V1∪V2, V1∩V2 = ∅ i, j
ensure there is an edge between V1 and V2.
∑x ji = 1 ∀i There is an incoming edge
ƒ Exponential number of subtour elimination constraints j

ƒ IP formulation very hard ∑x


j
ij = 1 ∀i There is an outgoing edge

Subtour elimination constraints


xij ∈ {0,1} ∀i, j

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Familiar Combinatorial Optimization Problems

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

ƒ Finding a maximum matching in bipartite graphs is easy


Machines
ƒ Finding a maximum matching in general graphs is harder
Perfect matching in bipartite graph:
ƒ Polynomial algorithm for the general case by Edmonds (1965) solution to assignment problem

Integer programming formulation xij = 1 if edge (i,j) is selected


ƒ Formulation for (complete) bipartite graphs solved as LP
max ∑ cij xij
ƒ Equivalent to assignment problem, which was solved i, j

effectively before IP formulations ∑x


j∈V2
ij = 1 ∀i ∈ V1

∑x
i∈V1
ij = 1 ∀j ∈ V2

xij ∈ {0,1} ∀i, j

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Familiar Combinatorial Optimization Problems

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

ƒ Finding a maximum matching in bipartite graphs is easy


Machines
ƒ Finding a maximum matching in general graphs is harder
Perfect matching in bipartite graph:
ƒ Polynomial algorithm for the general case by Edmonds (1965) solution to assignment problem

Integer programming formulation xe = 1 if edge e is selected


ƒ Formulation for (complete) bipartite graphs solved as LP
max ∑ ce xe
ƒ Equivalent to assignment problem, which was solved e

effectively before IP formulations ∑x


e∈δ ( i )
e ≤ 1 ∀i
ƒ Odd-set constraints: for vertex subset U⊂V: |U| > 2
| U |⎥
ƒ Problem solved as LP if all odd-set constraints are added ∑x ≤ ⎢⎢e ⎥ ∀U ⊂ V Odd‐set
e∈E (U ) ⎣ 2 ⎦ constraints
xe ∈ {0,1} ∀e

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Integer Programming and Combinatorial Optimization

ƒ Hard combinatorial optimization problems have also hard IP formulations


ƒ Algorithmically well‐solved combinatorial problems have good IP formulations
ƒ Network problems are easy also as LP/IP models
ƒ Have other types of problems similar structures?
ƒ Can we formulate other problems as network problems?
ƒ Can we generalize what we learnt from networks to general MIP models?

ƒ Why network problems are so easy?

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Polytopes and Integrality
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 such that
l ≤ x ≤ u; i.e. P = {x: Ax ≤ b, l ≤ x ≤ u for l, u ∈ Rn}.
Definition 3. A nonempty polyhedron is integral if its vertices are integral.

Polyhedron Polytope Integral Polytope


P = {x: Ax = b}
Remarks
1) A set of inequalities can be converted into a set of equalities by introducing slack variables, and a set
of equalities Ax = b can be converted into a set of inequalities ([A, ‐A]T x ≤ [b –b]T).
2) A polyhedron can be described by a set of linear equalities, P = {x: Ax = b }, and a polytope can be
described by a set of linear equalities and bounding inequalities, P = {x: Ax = b, l ≤ x ≤ u}.
3) A popytope can also be described as the convex hull of a finite number of points.
Conversely, the convex hull of a finite number of points is a polytope.
4) 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.
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Polytopes and Integrality
Theorem 1. The polyhedron P(A, b) = {x: Ax ≤ b, x ≥ 0} is integral for all integral vectors b∈Zm if and only if A
is totally unimodular (Hoffman & Kruskal, 1956).
Proposition 1. If A is TU and vectors b, b’, d and d’ are integral, then P(b, b’, d, d’) = {x∈: b’ ≤ Ax ≤ b, d’≤ x ≤ d} is
integral if it is not empty.
Definition 4. An integral matrix A is totally unimodular (TU) if the determinant of each square submatrix of A is
equal to 0, 1, or ‐1.
Proposition 2. For every non‐singular submatrix R of a TU matrix, R‐1 is integral.

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

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Networks and Integrality
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).

ƒ Incidence matrix of networks satisfies this condition


ƒ Matrix A is used to express flow balance constraints in shortest‐path, max‐flow problems
1 2 (1,2) (2,1) (2,3) (3,4) (4,1) (4,2)
1 −1
⎡ 1 1 ⎤
2 ⎢ 1 −1 −1 1 ⎥
A= ⎢ ⎥
3 ⎢ 1 −1

4 ⎣ 1 − 1 − 1 ⎦
4 3

ƒ 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?

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Outline

1. Supply Chain Management

2. Linear Programming

3. Basic Mixed­integer Linear Programming

4. Advanced Mixed­integer Linear Programming

5. Software Overview

6. Combinatorial Optimization

7. Chemical Production Scheduling

8. Integration of Production Planning and Scheduling

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Supply Chain Planning Matrix (Meyr et al., 2002)

procurement production distribution sales

Long‐term Strategic Planning

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


ƒ Many new interesting problems
ƒ Power – industrial gases – steel SC
ƒ Oil – industrial gases – chemicals SC
under power constraints
ƒ Biomass to fuels and chemicals
ƒ As chemical engineers, we know the specifics of chemical production
ƒ Study all problems (time‐scales) of manufacturing function

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Manufacturing Function
Strategic Planning Pacific Rockies Midwest
Northeast
Northwest
• Network of plants/warehouses/markets
• What new plants/warehouses to build? Southwest
• What are the interconnections?
• Investment/retrofit costs South
Manufacturing sites
Southeast Warehouses
Markets

Production Planning Production Production Profiles


(tn/month) 1
• Network of existing production facilities 8

• Where/when is a product produced? 6

• Production and inventory profile of products 4

• Transportation/holding costs 2

• Aggregate plant capacities 0


0 2 4 6 8 10 12
Time
Pr. A Pr. B Pr. C (months)

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

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Preliminaries
Single-Stage Scheduling
N jobs to be processed in M machines

9 Assignment of jobs to machines


pij , cij , sii
9 Sequencing of jobs in the same machine

M1 task1 task2 task3

M2 task4 task5

Resources M3 task2 task4


(e.g. machines)
M4 task1 task2 task5

M5 task4 task2 task3

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

• Jobs ⇒ Batches (sometimes orders)


• Operations ⇒ Stages or Tasks
• Machines ⇒ Units

• Modeling of storage is important (solid, liquid and gas phases)


⇒ Storage vessels & states

• Utilities are also important (steam, water, electricity)


⇒ Utilities (or resources)

• No Preemption
• Variable Processing Times
• Changeover times

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Classification of Chemical Production Scheduling Problems

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

Network (multi-purpose) processes


ƒ Batch splitting/mixing; recycle streams
ƒ Utility requirements

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
Batch­based 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
Precedence­based Slot­based
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)

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Network­based Approaches

Goal: Model multi-purpose batch processes


Account for batch splitting/mixing; recycle streams; utility requirements
Approach: Use a common time coordinate
Express assignment and balance constraints for every time point/period/event

Discrete-time Formulations
Kondili et al. (1993); Pantelides (1994)

Time points/periods t∈T Tasks i∈I


RM T2 A
Int 2.0 hr Units j∈J
T1
1.5 hr Δt = 0.5 hr States s∈S
T3 B
3.0 hr Utilities u∈U

T1 Wijt = 1 if task i starts in unit j at time point t


T2 Bijt = Batch-size of task i in unit j at time point t
T3 Sst = Amount of state s at time point t
Uut = Consumption of utility u at time t
0 1 2 3 4 5 6 7 8 t (hr)

∑ ∑ Variables defined ∀t∈T


t − pi +1
Assignment: i∈I j tˆ =t
Wijtˆ ≤ 1 ∀j , t WijtVijMIN ≤ Bijt ≤ Wijt VijMAX ∀i,t , j ∈ K i
Constraints expressed ∀t∈T
Mass Balance: STst = STst −1 + ∑i∈T ρ is ∑ j∈K Bij ,t − pis − ∑i∈T ρ is ∑ j∈K Bijt ≤ S sMAX ∀s, t
s i s i
Large MIP models
U ut = ∑t ∑ j∈K ∑θ
pi −1
Utility:
=0
(α uiθ Wijt −θ + β uiθ Bijt −θ ) ≤ U uMAX ∀u, t Constant processing times
i

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Modeling Problems ­ 1

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

1.1. Single-unit with release/due times


Same as 1, but batches have release/due dates.
The objective is the minimization of makespan

1.2. Single-unit and changeover times


Same as 1 but there are changeover times between batches
The objective is the minimization of makespan

1.3. Single-unit and changeover costs


Same as 1.2 but there are changeover costs between batches
The objective is the minimization of cost

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Modeling Problems ­ 2
2. Singe-stage (multi-unit) problem
N batches have to be processed in a single stage that consists of M parallel units.
Find the schedule that yields the minimum total completion time (makespan)
A
Batches i∈I = {1, 2, …, N} M1
Units j∈J = {1, 2, … , M} B
Processing time: τij C
Processing cost: cij M2
D
Release/due times: ri/di

2.1. Single-stage problem with release/due times


Same as 2, but batches have release/due dates
The objective is the minimization of lateness/tardiness

2.2. Single-stage problem with changeover costs and times


Same as 2.1, but there are changeover costs γii’j and changeover times δii’j between batches
The objective is the minimization of cost (subject to meeting the release/due times)

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Modeling Problems ­ 3
3. Multi-stage problem
N batches have to be processed in K stages; each stage has parallel units.
Find the schedule that yields the minimum total completion time (makespan)
jobs
Batches i∈I = {1, 2, …, N}
A
Units j∈J = {1, 2, … , M}
Stages k∈K; Jk is the set of units in stage k B
M1 M2 M3
Processing time: τij C
Processing cost: cij D
Release/due times: ri/di

3.1. Multi-stage problem with release/due times and changeover times/costs


Same as 3, but batches have release/due dates and changeovers
Model the minimization of makespan, tardiness, cost and earliness

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Modeling Problems ­ 4

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

INTBII INTCII Demand


III1 III2 Shipments
Backlogs
AIII1 BIII1 CIII1 BIII2 CIII2

A B1 C1 B2 C2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Equipment Unit Gantt Chart

I1 CI1 ABI1 CI1 AB


I2 ABI2 CI2 ABI2 A
II1 CII1 BII1 CII1 BII1 CII1 B
III1 AIII1 BIII1 AIII1 BIII1 CIII1 AIII1 C
III2 CIII2 BIII2 CIII2 BIII2 CIII2 Idle
0 1 2 3 4 5 6 7 8 9 10 11 12 13 1 4 t (d)

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Effect of Strong Valid Inequalities

(M0) (M1) (M2) (M3) (M4) (M5) (M6)


+C1 +C2 +C3 +C4 +C5 +C6
Basic STN # Const. 1,907 2,043 2,043 1,907 1,907 1,975 2,043
Formulation (M0) LP-relax 2,182.8 2,054.4 2,166.7 2,173.1 2,130.5 2,176.6 2,060.3
Objective 1,766.7 1,766.7 1,766.7 1,766.7 1,766.7 1,766.7 1,766.7
CPU-sec 62.2 12.5 12.1 15.3 10.0 46.2 9.5
(C1) LP-gap (%) 23.6 16.3 22.6 23.0 20.6 23.2 16.6
(C2) Nodes 5,689 622 1,402 1,183 758 3,210 1,297
(C3) ƒ Inequalities (C1), (C2), (C3), (C4) and (C6) appear to be the most effective
(C4)
ƒ Combinations of these inequalities are studied further
(C5)
(C6)

(M10) (M11) (M12) (M13) (M14) (M16)


+ C1, + C1, + C1, +C1-4 + C3, +C1-4,
C2, C6 C2, C3 C2, C4 C4, C6 C6
# Const. 2,315 2,179 2,179 2,247 2,111 2,383
LP-relax 2,037.3 1,964.0 2,003.7 1964.0 2,046.6 1,964.0
Objective 1,766.7 1,766.7 1,766.7 1,766.7 1,766.7 1,760.0
CPU-sec 3.8 4.9 2.9 2.6 8.1 3.8
LP-gap (%) 15.3 11.2 13.4 11.2 15.8 11.2
Nodes 275 277 176 88 646 150

ƒ 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
Branch­and­Cut 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

Branch on one fractional variable


Add violated cuts ⇒ Find new (fractional) solution
Pruned node
Open node
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Branch­and­cut Algorithm: Implementation
ƒ Implementation in XPRESS­IVE using XPRESS­Mosel
ƒ Do not remove/change pre‐solve and cut‐generation routines
ƒ Add few cuts (C2, C3 & C5) at the root node to facilitate heuristics
ƒ Add violated high priority cuts (C1, C4, C6 & C7) at the root node
ƒ Allow addition of high priority cuts at nodes of intermediate depth
ƒ Add low priority cuts (C8‐C13) later

Add all C2, C3 & C5 constraints in the formulation

Add violated C1, C4, C6 and C7 constraints


in k1 rounds at the root node

Add violated constraints C1, C4, C6 and C7


in nodes of depth k| k2≤k≤k3

Add violated constraints C1, C4, C6, C7 and C8­C11


in nodes of depth k| k3≤k≤k4

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Branch­and­cut Algorithm: General Remarks

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

2. Algorithm requires fewer number of nodes, but is expensive at each node


To reduce overhead: Add cuts every 5‐10 nodes
Add first 2‐4 violated cuts

3. On the fly tuning necessary

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Customized Methods

Precedence­based
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

Sequencing is achieved via big-M constraints


⇒ Resulting MILP formulations are not strong

Compared to manufacturing problems:


1. Unknown type and number of batches (tasks); unknown assignments of tasks to units
2. Mixing of intermediates; variable batch-size and processing time
ƒ There are good algorithms for problems with fixed type and number of tasks and fixed assignments
ƒ Can we combine these algorithms with MILP methods?
ƒ Decompose problem in two subproblems
1. Determine type and number of tasks and assignments of units to tasks
2. Solve reduced problem with an efficient, problem-specific algorithm
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Constraint Programming ­ Preliminaries

New Modeling and Solution Paradigm


ƒ Developed in early 90’s in AI
ƒ Very effective for classes of optimization problems
• Highly constrained (feasibility) problems
• Some scheduling problems

Special “constructs” and constraints for classes of problems


ƒ Constructs: activity X, unary resource Y
ƒ Constraints: X requires Y (GLOBAL)
A → B, A ∨ B (LOGIC)
⇒ Highly Expressive
⇒ Effective local search

Search is based on constraint propagation

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
B 4 1 9
C 3 2 7

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
B 4 1 9
C 3 2 7

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

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Decomposition Strategy

• Express problem in an aggregated MP form


Solve MIP Master Problem
max production • Use MP to identify potentially good solutions
s.t. RELAXATION • Fix no/type of tasks, assignment of tasks to units
Obtain UB

Fix no/type of tasks,


assignment to units Add integer cuts
• Fix no/type of tasks and assignment decisions
Solve CP Subproblem • Problem is highly constrained: suitable for CP
max production • If feasible, obtain lower bound
s.t. ALL CONSTRAINTS
w/ fixed no/type of tasks • Add integer cut and continue until bounds converge
Obtain LB

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

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
General Hybrid Algorithm

Multipurpose Batch Plant ∑ ∑D


i∈I ( j ) c
ic Z ic ≤ MS − ST j − EST j ∀j BiMIN ≤ Bic ≤ BiMAX ∀i, ∀c
10%
Ric = α i + β i Bic ∀i, ∀c
S3
BiMIN Z ic ≤ Bic ≤ BiMAX Z ic ∀i, ∀c
90%
Separation S4
∑ ∑ Bics ≥ d s ∀s ∈ FP
Reaction1 O
40%
Heat
i c
S s = S 0 + ∑ ∑ ρ is Bic − ∑ ∑ ρ is Bic
S1 S2 O I
∀s
70% 60% S7
Reaction2 Reaction 3
S5
30%
S6 i c i c Task[i,c] requires Unit[j] ∀j,∀i∈I(j),∀c
Ss ≥ ds ∀s ∈ FP Task[i,c] requires Ric Utility[r] ∀i,∀c
S s ≤ Cs ∀s ∈ INT Task[i,c] consumes ρcisBis State[s] ∀i,∀c,∀s
Task[i,c] produces ρpisBics State[s] ∀i,∀c,∀s
Task[i,c].end ≤ MS ∀i,∀c

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

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Integration with Problem­specific Algorithms
Example: Minimization of cost of multi-stage problem for orders with release and due times
N orders have to be processed sequentially in K stages, where each stage consists of Mk units.
Each order i has release ri and due di time, and a processing cost cij and processing time τij.
The objective is to minimize the sum of processing costs subject to meeting the release and due times.

Master Problem: Assignment


Subproblem: Sequencing

ƒ Subproblem is a traditional OR problem (job-shop problem) ⇒ There are efficient algorithms


ƒ Use Shifting Bottleneck Procedure (Adams and Balas, 1988) to solve the subproblem

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

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Exploit Parallel Computing

ƒ Computer manufacturers focus on multi‐core architectures


ƒ Computational resources become cheap
ƒ Algorithms that utilize new architectures or exploit parallelization necessary
ƒ Modeling languages provide tools for parallel algorithm development

Multiple CPUs on a
Parallel
machine
Processing

Multiple machines Grid Parallel Cluster Multiple machines


distributed globally Computing Computing Computing located close by

Distributed Multiple machines


Computing distributed globally

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Parallel Computing & Integer Programming
LP‐based branch‐and‐bound has inherent structure for parallelization
ƒ Subproblems associated with each node are independent
ƒ Evaluate nodes simultaneously; share cuts and bounds

Nodes solved at the master computer

Information flow: master → slave


• Subproblem formulation
• Variable bounds
Information flow: slave → master
× • New feasible solutions
• Current lower bound
• Global cutting planes

Fundamental issues for parallelizing branch‐and‐cut


ƒ Generate good subproblems: not too easy or too hard
ƒ Minimize subproblem (task) and cut generation time
ƒ Maximize useful sharing: pass bound information relevant cuts
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
How Can We Use Grid Computing?
Master-worker Paradigm Master
ƒ Master generates and spawns all tasks (subproblems)
tasks can be user-defined or generated automatically
ƒ Workers execute tasks and return results
ƒ Master collects results

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)

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Optimization on the Grid
1. Master creates a separate directory for each subproblem
ƒ Unique handle for each subproblem
ƒ “finished” file when task completed
ƒ “trigger” file when new incumbent
2. Condor ships the subproblems to workers; executed on a Sandbox
3. Master collects results using handlecollect
ƒ Repeatedly checks for completion; collection time can be adjusted
4. Update on incumbent solution using utility condor_chirp
ƒ If new global incumbent is found, trigger file is created
ƒ It also puts the new incumbent to the subproblem’s directory in Master computer.

Master “finished” file upon


completion of subproblem
Separate directory …
for each subproblem “trigger file” is created if
r

new incumbent is found


do
on
C

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

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Dynamic Decomposition
1. Run branch-and-bound on master to generate 400 open nodes
2. Spawn open nodes to servers
3. Communicate bounds and incumbents every 5 min; wait for 1 hr

Integer solution
Pruned node
Fractional (open) node

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Dynamic Decomposition
1. Run branch-and-bound on master to generate 200 open nodes
2. Spawn open nodes to servers
3. Communicate bounds and incumbents; wait for 1 hr
4. Decompose hard problems dynamically again using strong branching

Integer solution
Pruned node
Fractional (open) node

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Results ­ 1

Example
10 orders, 3 stages, 2 units/stage; dissimilar units, forbidden assignments and paths
Two instances parameterized via demand

Instance 1: ~20 batches


ƒ Strong Branching to generate 400 subproblems
ƒ 13 hr of CPU time, 2hr of wall clock time
ƒ 2,905,742 nodes

Instance 2: ~30 batches


ƒ Strong Branching generated too many subproblems
ƒ Filled the disk of the submitting machine!
ƒ Failed in solving this hard problem

A better scheme is needed to generate subproblems

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Exploit Problem Structure

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 )

ƒ X(i,l)j = 1 if batch (i,l) is assigned to unit j


X ilj + X i 'lj − 1 ≤ Yili 'l 'k + Yi 'l 'ilk ∀(i, l , i ' l ') ∈ IL, k , j
ƒ Y(i,l)(i’,l’)k = 1 if batch (i,l) preecedes batch (i’,l’) in stage k

Batch
Selection
Zil

Batch assignment
Xilj
Traditional
Multi-stage
scheduling
Batch sequencing Jobshop
Yili′l′k problem

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Domain­based Dynamic Decomposition

Master computer
P
Decomposition generates subproblems

Subproblems solved in workers


Collect and updates are used
Fix Zil P1 P2 P3 P4 PM1
Π1 = {P1, P2,…. PM}

Master collects unsolved problems;


2nd-level decomposition by fixing Xilj
in one stage

P12 P22 P32 PM2 2(2) P14 Π2 = U Π 2m , m = 1,2,….M


m

where Π 2m = {P1m , P2m , P3m ,.....}


Promising Non-promising
Fix Xilj
Process repeated as necessary
4 4 4 4
P1,1 P1,2 P1,3 P1,M3(4) Π3 = U Π 3sm , m = 1,2,….M
m,s

where, Π3sm = {Ps,1


m m
, Ps,2 m
, Ps,3 ,.....}
Promising Non-promising

ƒ Few 1st‐level subproblems are promising (and hard); reasonable batching


ƒ 2nd‐level decomposition can potentially generate too many subproblems
ƒ Process can be combined with strong branching
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Results ­ 2

Example
10 orders, 3 stages, 2 units/stage; dissimilar units, forbidden assignments and paths
Two instances parameterized via demand

Instance 1: ~20 batches


ƒ Decomposition with strong branching
13 hr of CPU time, 2hr of wall clock time, 2,905,742 nodes

ƒ 1st‐level decomposition followed by strong branching


7.5 min of wall clock time; 9,601 nodes

Instance 2: ~30 batches


ƒ Decomposition with strong branching
Failed to solve the problem

ƒ 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

17.7 days of CPU time; 9 hr of wall clock time; 222,065,793 nodes

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Outline

1. Supply Chain Management

2. Linear Programming

3. Basic Mixed­integer Linear Programming

4. Advanced Mixed­integer Linear Programming

5. Software Overview

6. Combinatorial Optimization

7. Chemical Production Scheduling

8. Integration of Production Planning and Scheduling

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Supply Chain Planning Matrix (Meyr et al., 2002)

procurement production distribution sales

Long‐term Strategic Planning

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


ƒ Many new interesting problems
ƒ Power – industrial gases – steel SC
ƒ Oil – industrial gases – chemicals SC
under power constraints
ƒ Biomass to fuels and chemicals

ƒ Integration of production planning and scheduling


ƒ Exxon Mobil: 2% reduction in operating costs, 20% inventory reduction (Shobrys & White, 2002)
ƒ DuPont: Capital tied up in inventory reduced from $165 to $90 million (Shobrys & White, 2002)

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Problem Statement
Given:
ƒ Planning horizon divided into T uniform or non‐uniform time periods t∈{1, 2, … T}.
ƒ Products (items), i∈I = {A, B, … } with demand δit and holding cost θi.
ƒ Resource constraints: unit and utility capacities, raw material availability, etc.
ƒ Production costs: these may include variable and fixed costs.
Determine
ƒ Production Pit and inventory levels Iit to minimize cost
Manufacturing Facility
P1 P1 P1

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)

200 ≤ P1 ≤ 300 (kg/d) U2 A


RM
INT
U1 (ZW) P3 = 150 (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

1,000 2,000 PA 1,000 2,000 PA 1,000 2,000 PA

(a) Bottleneck constraint (b) Unit capacity constraints (c) True feasible region
(via scheduling)

ƒ Bottleneck and unit capacity (aggregate) constraints insufficient


ƒ Chemical processes: batch splitting/mixing, recycle streams, utilities, storage constraints
ƒ Scheduling models needed to provide feasibility and cost information
Mixed-integer programming methods for supply chain optimization
4
Christos Maravelias, University of Wisconsin - Madison
General Production Planning Formulation
z = min ∑t (Cpt + Cht ) P1

I it = I i ,t −1 + Pit − δit , ∀i, t P2

How much can we produce


Cht = ∑i θi I it , ∀t Pit and at what cost?
Satisfy demand?
f (Pit , i ∈ I ) ≤ 0, ∀t Hidden I i ,t −1 I it At what (inventory) cost?
scheduling
Cpt = g (Pit , i ∈ I ), ∀t problem
δit
Pit , I it ≥ 0
Scheduling
Given:
ƒ A production facility (processing units, storage vessels, utilities) & processing cost (feedstocks, utilities, etc)
ƒ Production recipes (stoichiometric coefficients, processing times, utility requirements)
ƒ Production targets
Determine the optimal:
ƒ Number and type of processing tasks (batches and lots)
ƒ Allocation of resources to processing tasks
ƒ Sequencing of tasks on processing units
Batching Batch‐unit Assignment Sequencing & Timing
Batches U1
Demand (orders) A1
A2
A A1 A2 A3 A3
A1 A2 A3 C1
B1 B2 B1
B
C C1 B2 U2
D D1 D2 C1
D1
E D2 D1 D2 B1 B2 E1
E1 E1

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Planning­Scheduling Integration
z = min ∑t (Cpt + Cht )
I it = I i ,t −1 + Pit − δit , ∀i, t Optimization
Planning
Cht = ∑i θi I it , ∀t
Pkt = S kn , ∀k ∈ K FP , ∀t , n = N Linking
n '≤ n
Integrated
∑ ∑W
k∈K j n '> n − τ i
kn ' ≤ 1 ∀j , ∀n
Formulation
βkMINWkn ≤ Bkn ≤ βkMAX Wkn ∀k , ∀n
S in = S i , n −1 + ∑ ρik Bk ,n − τi + ∑ ρik Bkn ≤ ζ iMAX ∀k , ∀n Scheduling
k∈Pi k∈Ci

Cpt = ∑∑ γkWkn + εk Bkn ( )


k n

Pkt , I kt ≥ 0, Win ∈ {0,1}, Bin , S kt ≥ 0

Planning time grid t=0 1 2


(big-bucket Ht) Planning
Weeks-months
H1 Pi ,1 Pi , 2

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
Projection­based strategy

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
The Modeling Challenge

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

ƒ Orders at due dates


600 BPM

ƒ 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

Fermentation Filtering Storage Bottling

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Modeling Schools of Thought

Sequential processing

Orders 1st stage 2nd stage Kth stage


(batches) J1 J2 JK
ƒ Operations follow a defined sequence
ƒ The same batch/lot processed in all stages

Finished
ƒ No batch mixing (blending) or splitting allowed
... ... ... ... Orders ƒ Common in biotech, specialty chemical, and
pharmaceutical industries
ƒ Batch­based 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% ƒ Material­based methods
Int1
RM3

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Implications of Modeling Diversity
Network R3 S1
Feed 3 Sequential
R1 70%
M Intermediate 1 P3
30% Reactor Separator
P1 (5 orders)
U4/U5 U6/U7
60% Reactor U2
Feed1 intermediate R4 S2
R2
40%
Mixer U1 P2 Intermediate 2 P4
Feed 2 Reactor Separator (7 orders)
Reactor U3
U4/U5 U6/U7

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

8 processing units (lines)


GOBIERNO I ½ STD
600 BPM

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

Product families: Products (for bottling) are grouped into families


Changeover costs/times between families; setup costs/times between products
Products belong to subfamilies
major changeover
Product family Product family

minor changeover
Product (item) (sequence independent)

Kopanos et al.,, 2011

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Industrial Application: Executed Schedule

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Industrial Application: Executed Schedule

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Industrial Application: Integrated Appoach
ƒ No “memory” across planning periods

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Industrial Application: Integrated Approach
ƒ No “memory” across planning periods
ƒ Minimize setup time & costs

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Industrial Application: Results
Executed Schedule

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Industrial Application: Results
Schedule Found Using Integrated Framework

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Industrial Application: Results
Comparison with Implemented Solution

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Challenges in Chemical Production Planning

Modeling
Litro
500 BPM

FERMENTACIÓN

¼ STD
D. W. 700 BPM

DILUTION

ƒ Different production environments


TANQUES
DE
GOBIERNO I ½ STD
600 BPM

½ PREMIER
600 BPM

ƒ Wide range of processing constraints TANQUES


DE
GOBIERNO II
½ T.A., ¼ BOH.
750 BPM

ƒ Integration with multiple planning functions


Litro
350 BPM

REPOSO
LATA
1200 LPM

⇒ Develop general modeling framework


TANQUES DE GOBIERNO

½ 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
Projection­based strategy

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 4. An integral matrix A is totally unimodular (TU) if the determinant of each square submatrix of A
is equal to 0, 1, or ‐1.
Theorem 1. If A is TU and vectors b, b’, d and d’ are integral, then P(b, b’, d, d’) = {x∈: b’ ≤ Ax ≤ b, d’≤ x ≤ d}
is integral if it is not empty (Hoffman & Kruskal, 1956).
Theorem 2. 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 (Ghouila‐Houri, 1962).
Theorem 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).

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
Discrete­time 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 −

Win ∈ {0,1}, ∀i, n; S kn ∈ [0, ζ k ], ∀k , n

w ∈ {0,1} , s ∈ [0, ξ ]
i ⋅n

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Polyhedral Results
P
P = P A I P MB PA
P MB

{
P A = w ∈ [0,1] I ⋅ N : A A w = 1 }
P MB = {x = ( s, w ) ∈ [0, ξ ] × R K ⋅N
+ : A MB x = γ }

Proposition 3. Matrix AA is an interval matrix; thus, it is totally unimodular.


Corollary 1. Polytope PA is integral.

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ε = κ* ⋅ κε

Proposition 5. Matrix Α is (κβ κ* κε)‐regular.


Proposition 6. Polyhedron PMB is integral if Δt = gcfε/lcmρ, where lcmρ is the least common multiple of production
rates ρi, lcmβ = lcm(βi, i∈I) = lcm(β).
Proposition 7. If λ is the least common multiple of the denominators of rational parameters γ, ζ and ρ, then the
vertices of PMB are w‐integral if Δt = Δt* = gcf(λε)/lcm(λρ).

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Geometric Interpretation
4 4
WT2
WT2
RM ζ = 4, S0 =4
3 3
U1
T1 ρ=2 2 2
A MB A
P P P
MB
P
INT ζ = 2, S0 =0 1 1

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
ƒ In­1: 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

Model and solution statistics for instances Ex1/In-1/Δt.


Δt (hr) 12 8 6 4
Periods (N) 28 42 56 84
Constraints 449 673 897 1,345
Binary var’s 448 672 896 1,344
Continuous var’s 309 463 617 925
LP-relaxation 198.275 202.161 204.0 205.95
Optimal solution 203.675 221.461 204.0 207.708
Integrality gap (%)* 2.65 8.71 0.00 0.85
CPU time (sec) 56.9 770.0 0.2 104.3
Nodes 103,631 874,116 5 82,968
Optimality gap (%) - - - -
* LP *
* Integrality gap: IG = (Z - Z )/Z
ZLP = LP-relaxation; Z* = Optimal solution

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
ƒ In­1: 2‐week horizon; demands in 0.5 increments
INT1 INT2
Proposition 7 ⇒ Δt* = 6 hr U3
ƒ In­2: 2‐week horizon; demands in 0.2 increments T31 T32

Proposition 7 ⇒ Δt* = 2.4 hr INT3 INT4


U4 U5
T41 T42 T43 T51 T52

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

i) Matrix Α2 is (κβ κ*)-regular. As Au Aw

ii) Polyhedron PMB2 is integral for Δt+ = gcfε/lcmρ.


iii) The vertices of PMB2 are w-integral for Δt* = gcf(λε)/lcm(λρ).

Production planning with backlogged demand and shipments


{
P A = w ∈ [0,1]I ⋅ N : A A w = 1 } S kn W in V kn U kn

{ }
k=A k=B k=C i = T1 i = T2 k=A k=B k=C k=A k=B k=C

P MB3 = x = ( s, w, v , u) ∈ [0, ξ ] × R +I ⋅ N × R +K ⋅ N × R +K ⋅ N : A 3 x = [0, γ ]T n


1
1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
1 β T1 1

⎡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

i) Matrix Α3 is (κβ κ*)-regular.


3 -1 1 -1
1 -1 -1
k = INT 2 -1 1 -1

ii) Polyhedron PMB3 is integral if Δt+ = gcfε/lcmρ.


3 -1 1 -1
1 -1 -1

iii) The vertices of PMB3 are w-integral if Δt* = gcf(λε)/lcm(λρ).


k = FP 2 -1 1 -1
3 -1 1 -1

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Example 2
RM1 RM2 RM3

ƒ 4 stages; 11 units; 37 tasks; 31 chemicals U11 U12 U13


T111 T112 T121 T122 T123 T131 T132

ƒ η = 8 weeks (56 days);


IN1A IN1B IN1CD

ƒ In‐1: Demand must be satisfied on time U21 U22


T211 T212 T213 T214 T211 T212 T213 T214
Proposition 11 ⇒ Δt* = (1/6) d = 4 hr
IN2A IN2B IN2D
IN2C
U31 U32 U33
T311 T312 T321 T322 T331 T332

IN3A1 IN3B1 IN3A2 IN3B2 IN3C IN3D


U43
U41
T434
T411
T433 U44
T412 U42 T432 T441 T442 T443 T444
T413
T421 T422 T423 T424 T431
T414

A11 B11 A21 B21 A12 B12 A22 B22 C1 C2 D1 D2

Model and solution statistics for instances of Example 2: In1/Δt.


Δt (hr) 12 8 6 4 3
Periods (N) 112 168 224 336 448
Constraints 4,481 6,721 8,961 13,441 17,921
Binary var’s 5,488 8,232 10,976 16,464 21,952
Continuous var’s 3,137 4,705 6,273 9,409 12,545
LP-relaxation 1,576.5 1,588.9 1,595.0 1,601.1 1,604.2
Best/optimal solution - - - 1,601.1 -
*
Integrality gap (%) n/a n/a n/a 0 n/a
CPU time (sec) 1,200 1,200 1,200 24.1 1,200
Nodes 294,900 177,000 112,800 114 33,400
*
Optimality gap (%) n/a n/a n/a 0 n/a
* If no integer feasible solution is found, optimality and integrality gaps cannot be
calculated.
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Example 2
RM1 RM2 RM3

ƒ 4 stages; 11 units; 37 tasks; 31 chemicals U11 U12 U13


T111 T112 T121 T122 T123 T131 T132

ƒ η = 8 weeks (56 days);


IN1A IN1B IN1CD

ƒ In‐1: Demand must be satisfied on time U21 U22


T211 T212 T213 T214 T211 T212 T213 T214
Proposition 11 ⇒ Δt* = (1/6) d = 4 hr
ƒ In‐2: Shipments/backlogs are introduced U31
IN2A IN2B
U32 U33
IN2C
IN2D

Proposition 11 ⇒ Δt* = (1/6) d = 4hr T311 T312 T321 T322 T331 T332

IN3A1 IN3B1 IN3A2 IN3B2 IN3C IN3D


U43
U41
T434
T411
T433 U44
T412 U42 T432 T441 T442 T443 T444
T413
T421 T422 T423 T424 T431
T414

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

ƒ Integrality of PA and PMB is interesting theoretically


ƒ It cannot be directly used (e.g. in decomposition methods)
ƒ Can be proved only for subset of problems
ƒ Our results are useful in practice:
• Starting point for extended results and special cases
• Computational performance of commercial solvers is improved

ƒ Proof of results suggests network structure


ƒ Study relationship between production facilities and graph­theoretic networks

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Network Structure of Scheduling MIP Model
Theorem 2. If a {0, ±1} matrix has no more than
MIP Formulation

P = {x: Ax = b} two non zero coefficients in each column, and Σl


alm = 0 if column m has two coefficients, then A
is TU
A: totally unimodular (1,2) (2,1) (2,3) (3,4) (4,1) (4,2)
(TU) 1 2 1 ⎡− 1 1 1 ⎤
2 ⎢ 1 −1 −1 1⎥
3
⎢ 1 −1 ⎥
⎢ ⎥
4 3 4⎣ 1 − 1 − 1⎦
Integral Polytope

RM1 RM2
RM1
Problem Representation

RM2
T12
U1 U2 T11 T22
T11 T12 T21 T22 T21

INT1 INT2 INT1 INT2


Processing restrictions
U3 T31 T32 correspond to known
T31 T32
INT3 INT4
problems in graph
INT3 INT4
theory
U4 U5 T41 T43 T52
T42 T51
T41 T42 T43 T51 T52

A B1 C1 B2 C2 A B1 C1 B2 C2

Production Facility Digraph


Mixed-integer programming methods for supply chain optimization 29
Christos Maravelias, University of Wisconsin - Madison
Challenges in Chemical Production Planning

Modeling
Litro
500 BPM

FERMENTACIÓN

¼ STD
D. W. 700 BPM

DILUTION

ƒ Different production environments


TANQUES
DE
GOBIERNO I ½ STD
600 BPM

½ PREMIER
600 BPM

ƒ Wide range of processing constraints TANQUES


DE
GOBIERNO II
½ T.A., ¼ BOH.
750 BPM

ƒ Integration with multiple planning functions


Litro
350 BPM

REPOSO
LATA
1200 LPM

⇒ Develop general modeling framework


TANQUES DE GOBIERNO

½ T.A EXP
TANQUE REPOSO 750 BPM

Theory P
PA
ƒ Discrete decisions lead to mixed‐integer programming models P MB

ƒ 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
Projection­based strategy

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Example Revisited
150 ≤ P2 ≤ 200 (kg/d)

200 ≤ P1 ≤ 300 (kg/d) U2 A


RM
INT
U1 (ZW) P3 = 150 (kg/d)

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

Process Attainable Region Surrogate cost model

ƒ All necessary production feasibility information in: ∑w P


FP
l
k kt ≤ Πl l ∈ LF
k∈K
ƒ All necessary production cost information in: Cpt ≥ γ l + ∑w P FP
l
k kt l ∈ LO
k∈K
ƒ Can we systematically develop these constraints?
⇒ We have to analyze the underlying scheduling model
Mixed-integer programming methods for supply chain optimization
Christos Maravelias, University of Wisconsin - Madison
Projection­based Method

Projection­based method:
ƒ Develop feasibility/optimality constraints that involve only planning (x) variables
ƒ Convergence between overestimation (OE) and underestimation (UE) of true convex hull

1. Choose initial search vectors w = [w1, w2, …wK]T


2. Solve scheduling model (M1) for each vector to obtain a UE vertex and an OE inequality
3. Run Quickhull to convert UE vertices into inequalities
4. Iterate until MPD stops improving:
Find maximum perpendicular distance (MPD) and a new search vector
Solve (M2) for new search vector; obtain new vertex and new inequality
Run Quickhull to update UE
5. Set PAR equal to UECH

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Rolling­horizon Approach
P1

(PP) z = min ∑t (Cpt + Cht ) P2


I it = I i ,t −1 + Pit − δit , ∀i, t How much can we produce
Pit and at what cost?
Cht = ∑i θi I it , ∀t
I i ,t −1 Satisfy demand?
I it
∑w P FP
l
k kt ≤Π l
l ∈ LF At what (inventory) cost?
k∈K

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

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Example 1

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

PB (kg) R216 R120: Ht = 120 hr


4500 R168: Ht = 168 hr
R216: Ht = 216 hr
R168

3000
R120

1500

PA
0
0 1000 2000 3000 (kg)

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Example 1
40%
A
HT H RM1 40% Int2
H R2 10%
60%
ImP2
RI 60% S
R1, R2, R3 Int1 80% 90%
RII
RM2 R1 R3
B
Sep S 20%
RM3

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)

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Example 2
Papageorgiou and Pantelides, 1996
Production Planning U1 U2 U3 U4 U3 U4
48 1‐week periods
T1, T4 T2 T3 T5, T6 T7, T9 T8, T10

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

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Example 2: Results

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

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Example 2: Results
Solutions of (PP) and (S-PP)
Model (PP) Algorithm (S-PP)
Holding cost ($) 574,756 568,345
Backlog cost ($) 183,933 210,221
Production cost ($) 408,405 411,910
Total cost ($) 1,167,094 1,190,475
CPU secs 0.162 5406.092

(kg) (kg)
Production Targets Deviation from Production Targets
2500
75
2000

1500 50

1000
25
500

0 0
1

Absolute deviation between production targets predicted by (PP) and


production amounts obtained by detailed scheduling (S­PP)

Average total production (PA+PA+PC): 1,820.0 kg


Average total absolute deviation (PP)‐(S‐PP): 4.5 kg → 0.25%

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Conclusions

General Modeling Framework FERMENTACIÓN

D. W.
Litro
500 BPM

¼ STD
700 BPM

ƒ No decoupling into subproblems ⇒ better solutions


DILUTION
TANQUES
DE
GOBIERNO I ½ STD
600 BPM

½ PREMIER
600 BPM

ƒ Unique problem representation ⇒ better IT systems


TANQUES ½ T.A., ¼ BOH.
DE
GOBIERNO II 750 BPM

Litro
350 BPM

ƒ Computational advances for wide range of problems


REPOSO
LATA
1200 LPM

TANQUES DE GOBIERNO

½ T.A EXP
TANQUE REPOSO 750 BPM

Polyhedral & Graph­theoretic Results PA


P

P MB
ƒ Rigorous treatment of MIP tightness
ƒ Provides insights into formulation of large‐scale problems
ƒ Integration of combinatorial optimization algorithms

Projection­based 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

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison
Questions?

Mixed-integer programming methods for supply chain optimization


Christos Maravelias, University of Wisconsin - Madison

You might also like