Slide 1
Optimization Modeling for Mining Engineers
Alexandra M. Newman
Division of Economics and Business Colorado School of Mines
Slide 2
Seminar Outline
• Linear Programming
• Integer Linear Programming
• Mixed Integer Linear Programming
• Network Models
• Nonlinear Programming
Slide 3
Linear Programming
Consider the following system:
(P ) min cx subject to Ax = b x ≥ 0
where x is an n × 1 vector of decision variables, and A, c, and b are known data in the format of an m × n matrix, a 1 × n row vector, and an m × 1 column vector, respectively.
Slide 4
Linear Programming in Mining
• Blend raw materials with certain characteristics into final products with specifications on the characteristics
• Given a mining sequence, compute a production schedule
• Allocate equipment to a task for a given number of hours
• Make tactical production decisions, e.g., regarding
sending product to mills
Slide 5
Example 1: Linear Programming
The Metalco Company desires to blend a new alloy of 40%
tin, 35% zinc, and 25% lead from several available alloys having the properties given in Table 1. Formulate a linear program whose solution would yield the proportions of these alloys that should be blended to produce a new alloy at minimum cost.
Slide 6
Example 1: Linear Programming
Table 1: Alloy properties
Alloy 1 Alloy 2 Alloy 3 Alloy 4 Alloy 5
%Tin 60 25 45 20 50
%Zinc 10 15 45 50 40
%Lead 30 60 10 30 10
Cost ($/lb.) 22 20 25 24 27
Slide 7
Solution 1a: Linear Programming
Let x
i= proportion of alloy i used {i = 1,2,3,4,5}
minimize 22x
1+ 20x
2+ 25x
3+ 24x
4+ 27x
5subject to : 60x
1+ 25x
2+ 45x
3+ 20x
4+ 50x
5= 40 10x
1+ 15x
2+ 45x
3+ 50x
4+ 40x
5= 35 30x
1+ 60x
2+ 10x
3+ 30x
4+ 10x
5= 25 x
1+ x
2+ x
3+ x
4+ x
5= 1 x
1≥ 0, x
2≥ 0, x
3≥ 0, x
4≥ 0, x
5≥ 0
Slide 8
Solutions to the Linear Optimization Problem
If Ax = b is:
• a uniquely determined system, then x is unique.
• an over-determined system, then x may not exist.
• an underdetermined system, then there may be many
sets of values for x.
Slide 9
Linear Programming in Two Dimensions
• The intersection of the constraints Ax = b form a feasible region.
• One can move realizations of the objective parallel to each other (up for a maximization problem, down for a minimization problem) until one such realization contour
“last” touches the feasible region.
• This extreme point is the optimal solution.
Slide 10
Linear Program with an Optimal Solution
x y
maximum
feasible region objective function realizations infeasible
Slide 11
Linear Program with Multiple Optimal Solutions
x y
Slide 12
Unbounded Linear Program
y
x
Slide 13
Infeasible Linear Program
x y
Slide 14
Two Linear Optimization Algorithms
• Simplex Method: theoretical performance is exponential, but practical performance is “good” (only check extreme points, and usually not all of them)
• Interior Point (Barrier) Method: theoretical performance
is polynomial, and practical performance is good for
large-scale problems
Slide 15
Simplex Method
x y
Slide 16
Interior Point Method
x y
Slide 17
Solution 1b: Linear Programming
• Minimum cost: $23.46 – Alloy 1: 0.043 – Alloy 2: 0.283 – Alloy 3: 0.674
Slide 18
Integer Linear Programming
Consider the following system:
(P ) min cy subject to Ay = b y ≥ 0 and integer (and binary)
where y is an n × 1 vector of decision variables, and A, c, and
b are known data in the format of an m × n matrix, a 1 × n
row vector, and an m × 1 column vector, respectively.
Slide 19
Integer Linear Programming in Mining
• Delineate an ore body, determine an economic envelope
• Schedule “long-term” production, e.g., machine placements
• Make decisions with logical, e.g., precedence,
constraints: open pit block sequencing, mining strata
Slide 20
Example 2: Integer Programming
W.R. Grace
astrip mines phosphates in strata numbered from i = 1 at the top to i = n at the deepest level. Each stratum must be removed before the next can be mined, but only some of the layers contain enough suitable minerals to justify processing into the company’s three products: pebble,
concentrate, and flotation feed (j = 1, 2, 3).
aBased on D. Klingman and N. Phillips (1988), “Integer Programming for Optimal Phosphate-Mining Strategies,” Journal of the Operational Re- search Society, 9, pp. 805-809.
Slide 21
Example 2: Integer Programming
The company can estimate from drill samples the quantity a
ijof product j available in each stratum i, the fraction b
ijof BPL (a measure of phosphate content) in the part of i suitable for j, and the corresponding fraction p
ijof pollutant chemicals. The company wishes to choose a mining plan that maximizes the product output while keeping the average fraction BPL of material processed for each product j at least b
jand the average pollution fraction at most p
j. Formulate an integer linear program model of this mining problem.
Slide 22
Example 2: Integer Programming
Table 2: Quantity, BPL, and pollutant for each product and stratum
Stratum a
i1a
i2a
i3b
i1b
i2b
i3p
i1p
i2p
i31 4 2 3 .2 .1 .3 .4 .7 .5
2 1 0 2 .1 0 .2 .2 0 .4
3 0 1 4 0 .2 .4 0 .3 .6
4 2 5 0 .3 .7 0 .4 .8 0
5 3 2 5 .2 .3 .2 .4 .5 .4
Limits .25 .3 .27 .7 .9 .7
Slide 23
Solution 2a: Integer Programming
Let x
i= 1 if we remove stratum i and 0 otherwise Let y
i= 1 if we process stratum i and 0 otherwise
max
X
n i=1X
3 j=1a
ijy
isubject to x
i≤ x
i−1∀ i = 2, ..., n y
i≤ x
i∀ i = 1, ..., n X
ni=1
b
ija
ijy
i≥ b
jX
n i=1a
ijy
i∀ j = 1, 2, 3 X
ni=1
p
ija
ijy
i≤ p
jX
n i=1a
ijy
i∀ j = 1, 2, 3
Slide 24
Integer Linear Programming
x y
Slide 25
Integer Programming Optimization Algorithm
• Now, there are a finite, rather than an infinite, number of feasible solutions.
• So, we could enumerate all the feasible solutions, test them in the objective function, and choose the best one.
• This would take a long time.
• In fact, even though the conventional algorithm uses
“smarter” techniques to reduce enumeration, the algorithm still has theoretical exponential complexity.
• And, in practice, integer programs require far more
solution time than linear programs of commensurate size.
Slide 26
Solution 2b: Integer Programming
• Maximum product output: 12
– Remove strata 1, 2, 3, and 4
– Process strata 3 and 4
Slide 27
Mixed Integer Linear Programming
Consider the following system:
(P ) min cx + dy subject to Ax + Ey = b x ≥ 0, y ≥ 0 and integer (and binary)
where x is an n × 1 vector of decision variables, y is an n
′× 1 vector of decision variables, and A, E, c, d and b are known data in the format of an m × n matrix, an m × n
′matrix, a 1 × n row vector, a 1 × n
′row vector, and an m × 1 column vector, respectively.
Slide 28
Mixed Integer Linear Programming in Mining
• Scheduling production with sequence and tonnage decisions
• Supporting development decisions with production constraints
• Combined resolution production scheduling models
Slide 29
Example 3: Mixed Integer Linear Programming
A steel mill has received an order for 25 tons of steel. The steel must be 5% carbon and 5% molybdenum by weight.
The steel is manufactured by combining three types of metal:
steel ingots, scrap steel, and alloys. Four steel ingots are available for purchase. The weight (in tons), cost per ton, carbon, and molybdenum content of each ingot are given in Table 3. Three types of alloys can be purchased. The cost per ton and chemical makeup of each alloy are given in Table 4. Steel scrap can be purchased at a cost of $100 per ton.
Slide 30
Example 3: Mixed Integer Linear Programming
Steel scrap contains 3% carbon and 9% molybdenum.
Formulate a mixed integer programming model whose solution will tell the steel mill how to minimize the cost of filling their order.
Table 3: Ingot properties
Ingot Weight Cost per Ton ($) Carbon % Molybdenum %
1 5 35 5 3
2 3 33 4 3
3 4 31 5 4
4 6 28 3 4
Slide 31
Example 3: Mixed Integer Linear Programming
Table 4: Alloy properties
Alloy Cost per Ton ($) Carbon % Molybdenum %
1 500 8 6
2 450 7 7
3 400 6
Slide 32
Solution 3a: Mixed Integer Linear Programming
• s = amount of steel scrap purchased (tons)
• a
i= amount of alloy i purchased (i = 1...3) (tons)
• y
i= 1 if ingot i is purchased (i = 1...4), 0 otherwise
• x
i= amount of ingot i used (i = 1...4) (tons)
Slide 33
Solution 3a: Mixed Integer Linear Programming
min 175y
1+ 99y
2+ 124y
3+ 168y
4+ 500a
1+ 450a
2+ 400a
3+ 100s subject to a
1+ a
2+ a
3+ s + x
1+ x
2+ x
3+ x
4= 25 0.08a
1+ 0.07a
2+ 0.06a
3+ 0.03s + 0.05x
1+ 0.04x
2+ 0.05x
3+ 0.03x
4= 1.25 0.06a
1+ 0.07a
2+ 0.09s + 0.03x
1+ 0.03x
2+ 0.04x
3+ 0.04x
4= 1.25 x
1≤ 5y
1x
2≤ 3y
2x
3≤ 4y
3x
4≤ 6y
4s, a
i, x
i≥ 0 ∀ i; y
ibinary ∀ i
Slide 34
Mixed Integer Linear Programming Optimization Algorithm
• These are solved the same way as integer linear
programs are.
Slide 35
Solution 3b: Mixed Integer Linear Programming
• Minimum cost: $3,894 – Scrap: 4.28 tons – Alloy 1: 5.8 tons
– Amounts of ingots 1, 2, 3, and 4: 5, 3, 4, 2.92, respectively (all tons)
– All indicator variables (y
i) are 1.
Slide 36
Network Models
Consider the following system:
(P ) min X
(i,j)∈A
c
ijx
ijsubject to s
j+ X
i
x
ij= d
j+ X
k
x
jk∀j l
ij≤ x
ij≤ u
ij∀(i, j) ∈ A
where A is the set of arcs, x
ijis the flow on arc (i, j), c
ijis
the per unit cost of sending flow on arc (i, j), s
jis the supply
at node j , d
jis the demand at node j, l
ijis the lower bound
Slide 37
Network Models in Mining
• Assigning equipment to jobs
• Making equipment replacement decisions
• Block sequencing with special structure
• Determining the ultimate pit limits
Slide 38
Benefits of Network Models
• You get integrality for free
• You can solve them very quickly
• You can depict them graphically
Slide 39
A Network
2
3
1
4 2
7 8
9
(0,4) 5 (1,3)
4
5 1
demands supplies
costs
lower and upper bounds 3
Slide 40
Network Formulation
A = {(1, 3), (2, 3), (3, 4), (4, 5)}
x
ij= amount of flow on arc (i, j)
min 7x
13+ 8x
23+ 9x
34+ 5x
35subject to 2 = x
133 = x
23x
13+ x
23= x
34+ x
351 ≤ x
13≤ 3
0 ≤ x
23≤ 4
Slide 41
Example 4: Network Models
The district manager of the Whiskey Coal Mining Company wants to maximize his profits from his district operations. The district has two mines and two mills in operation. Products from Mine #1 are shipped to Mills #1 and/or #2; however, Mine #2 ships coal only to Mill #2. Production and
transportation schemes, capacities, and costs are given in Tables 5-7 below. Mill #1 yields $4 profit per ton mined, and Mill #2 yields $5 profit per ton mined. Please draw a
corresponding minimum cost flow graph whose solution would maximize profits. Label all supplies, demands, costs, and lower and upper bounds on your directed network, as applicable. Explain your answer.
Slide 42
Example 4: Network Models
Table 5: Capacity (tons) of and cost of mining at each mine
Mine lower bound on capacity upper bound on capacity mining cost per ton
1 1 6 $2
2 1 7 $2
Table 6: Capacity (tons) of and cost of transporting coal from mine to mill
Mine Mill lower bound on capacity upper bound on capacity transportation cost per ton
1 1 2 4 $1
1 2 0 5 $2
2 2 2 8 $4
Slide 43
Example 4: Network Models
Table 7: Capacity (tons) of each mill
Mill lower bound on capacity upper bound on capacity
1 0 5
2 1 9
Slide 44
Solution 4a: Network Models
2
2
2 1
5 4 (1, 6)
(1, 7)
(2, 4)
(0, 5)
(2, 8)
(0, 5)
(1, 9) S
1 1
T
Mine Mill
Slide 45
Solution 4a: Network Models
Costs of extraction at each mine, and transporting the ore from the mines to the mills are given on the arcs from the source to the mines, and from the mines to the mills, respectively. Profits from each mill are given as negative costs on the arcs terminating at the sink. Lower and upper bounds on capacity at the mines, and between the mines and the mills are given on the arcs from the source to the mines, and from the mines to the mills, respectively. Capacities at the mills are given on the arcs terminating at the sink.
An optimal solution to this minimum cost flow problem will yield the optimal distribution plan from the mines through the mills.
Slide 46
Solving Network Models
• There are very fast (polynomial time) algorithms to solve network models.
• Performance gains (over conventional linear
programming solvers) are significant for large models.
• If the model is small or fast solutions are not important,
use a linear programming solver to solve a network
model.
Slide 47
Solution 4b: Network Models
• Minimum cost: $4
– Mine 1: Extract 6 tons of coal and send 2 tons to mill 1 and 4 tons to mill 2
– Mine 2: Extract 2 tons of coal and send both to mill 2 – Mill 1: Process and sell 2 tons of coal
– Mill 2: Process and sell 6 tons of coal
Slide 48
Nonlinear Programming
• We will only consider nonlinear programs with continuous-valued decision variables.
• Generally, nonlinear programming is divided into constrained and unconstrained nonlinear models.
• Why did we not address unconstrained linear programming?
• You have seen many unconstrained nonlinear
optimization problems before.
Slide 49
Nonlinear Programming in Mining
• Fitting curves to data
• Minimizing quadratic deviation of production output from target levels (in the short-, medium-, or long-terms)
• Incorporating geotechnical considerations into production scheduling or other planning models
Slide 50
Example 5: Nonlinear Programming
A mine manager wants to allocate between 10% and 60% of his available mining capacity to mining each of the precious metals gold, silver, and copper. With market prices varying wildly from year to year, he has done some research on past performance to guide his decisions. Table 8 shows the
average return for each precious metal ($/oz.) and the covariances among the categories that he has computed.
Formulate a constrained nonlinear program whose solution
would tell the mine manager the least risk plan (using only
covariance terms as a measure of risk) that will average a
return of at least $90.
Slide 51
Example 5: Nonlinear Programming
Table 8: Return and covariance matrix for precious metals Gold Silver Copper Dollar Return ($/oz.) 77.38 88.38 107.50 Covariance
Gold 1.09 -1.12 -3.15
Silver -1.12 1.52 4.38
Copper -3.15 4.38 12.95
Slide 52
Solution 5a: Nonlinear Programming
Indices:
• i = type of metal in first category, i = 1, 2, 3
• j = type of metal in second category, j = 1, 2, 3 Parameters:
• R
i= average return of metal type i ($/oz) (see table)
• V
ij= covariance between metal i and metal j (see table)
• h = minimum return required ($) ($90)
• l = lower bound on capacity (10%)
Slide 53
Solution 5a: Nonlinear Programming
Variables:
• P
i= proportion of capacity devoted to mining metal type i
• ˆ P
i= amount of precious metal i mined (oz.) Formulation:
min
X
3 i=1X
3 j=1V
ijP
iP
jSlide 54
Solution 5a: Nonlinear Programming
Formulation:
s.t. l
i≤ P
i≤ u
i∀ i X
3i=1
P
i= 1 X
3i=1
R
iP ˆ
i≥ h P ˆ
1P
1= P ˆ
2P
2= P ˆ
3P
3P ˆ
i≥ 0 ∀ i
Slide 55
Constrained Nonlinear Optimization Problem
min f (x) subject to h
i(x) = b
i∀i = 1...j g
i(x) ≤ c
i∀i = j + 1, ..., m
Slide 56
Difficulties with Nonlinear Optimization
• Functions may not be well behaved.
• Specifically, f may not be convex (or concave).
• A local optimal solution may not be a global optimal
solution.
Slide 57
Illustration of an Ill-behaved Nonlinear Function
Slide 58
Convex and Concave Functions
• Certain functional forms for f will ensure that a local optimal solution is globally optimal.
• Specifically, if f is convex and the sense of the objective is minimize, then a local optimal solution will be globally optimal.
• And if f is concave and the sense of the objective is
maximize, then a local optimal solution will be globally
optimal.
Slide 59
Illustration of Convex and Concave Functions
CONCAVE FUNCTION CONVEX FUNCTION