Optimization Modeling for Mining Engineers Alexandra M. Newman Division of Economics and Business Slide 1 Colorado School of Mines Seminar Outline Linear Programming Integer Linear Programming Slide 2 Mixed Integer Linear Programming Network Models Nonlinear Programming 1
Linear Programming Consider the following system: (P) min cx Slide 3 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. Linear Programming in Mining Blend raw materials with certain characteristics into final products with specifications on the characteristics Slide 4 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 2
Example 1: Linear Programming Slide 5 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. Example 1: Linear Programming Table 1: Alloy properties Alloy 1 Alloy 2 Alloy 3 Alloy 4 Alloy 5 Slide 6 %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 3
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 5 Slide 7 subject 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 Solutions to the Linear Optimization Problem If Ax = b is: a uniquely determined system, then x is unique. Slide 8 an over-determined system, then x may not exist. an underdetermined system, then there may be many sets of values for x. 4
Linear Programming in Two Dimensions The intersection of the constraints Ax = b form a feasible region. Slide 9 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. Linear Program with an Optimal Solution y infeasible maximum Slide 10 feasible region objective function realizations x 5
Linear Program with Multiple Optimal Solutions y Slide 11 x Unbounded Linear Program y Slide 12 x 6
Infeasible Linear Program y Slide 13 x 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) Slide 14 Interior Point (Barrier) Method: theoretical performance is polynomial, and practical performance is good for large-scale problems 7
Simplex Method y Slide 15 x Interior Point Method y Slide 16 x 8
Solution 1b: Linear Programming Minimum cost: $23.46 Alloy 1: 0.043 Alloy 2: 0.283 Slide 17 Alloy 3: 0.674 Integer Linear Programming Consider the following system: (P) min cy Slide 18 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. 9
Integer Linear Programming in Mining Delineate an ore body, determine an economic envelope Schedule long-term production, e.g., machine placements Slide 19 Make decisions with logical, e.g., precedence, constraints: open pit block sequencing, mining strata Example 2: Integer Programming Slide 20 W.R. Grace a strip 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). a Based on D. Klingman and N. Phillips (1988), Integer Programming for Optimal Phosphate-Mining Strategies, Journal of the Operational Research Society, 9, pp. 805-809. 10
Example 2: Integer Programming Slide 21 The company can estimate from drill samples the quantity a ij of product j available in each stratum i, the fraction b ij of BPL (a measure of phosphate content) in the part of i suitable for j, and the corresponding fraction p ij of 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 j and the average pollution fraction at most p j. Formulate an integer linear program model of this mining problem. Example 2: Integer Programming Table 2: Quantity, BPL, and pollutant for each product and stratum Stratum a i1 a i2 a i3 b i1 b i2 b i3 p i1 p i2 p i3 Slide 22 1 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 11
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 Slide 23 n 3 max a ij y i i=1 j=1 subject to x i x i 1 i = 2,...,n y i x i i = 1,...,n n n b ij a ij y i b j a ij y i j = 1,2,3 i=1 n p ij a ij y i p j i=1 i=1 i=1 n a ij y i j = 1,2,3 Integer Linear Programming y Slide 24 x 12
Integer Programming Optimization Algorithm Now, there are a finite, rather than an infinite, number of feasible solutions. Slide 25 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. Solution 2b: Integer Programming Maximum product output: 12 Remove strata 1, 2, 3, and 4 Process strata 3 and 4 Slide 26 13
Mixed Integer Linear Programming Consider the following system: (P) min cx + dy Slide 27 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. Mixed Integer Linear Programming in Mining Scheduling production with sequence and tonnage decisions Slide 28 Supporting development decisions with production constraints Combined resolution production scheduling models 14
Example 3: Mixed Integer Linear Programming Slide 29 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. Example 3: Mixed Integer Linear Programming Slide 30 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 15
Example 3: Mixed Integer Linear Programming Table 4: Alloy properties Slide 31 Alloy Cost per Ton ($) Carbon % Molybdenum % 1 500 8 6 2 450 7 7 3 400 6 Solution 3a: Mixed Integer Linear Programming s = amount of steel scrap purchased (tons) a i = amount of alloy i purchased (i = 1...3) (tons) Slide 32 y i = 1 if ingot i is purchased (i = 1...4), 0 otherwise x i = amount of ingot i used (i = 1...4) (tons) 16
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 Slide 33 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 1 x 2 3y 2 x 3 4y 3 x 4 6y 4 s,a i,x i 0 i; y i binary i Mixed Integer Linear Programming Optimization Algorithm These are solved the same way as integer linear programs are. Slide 34 17
Solution 3b: Mixed Integer Linear Programming Slide 35 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. Network Models Slide 36 Consider the following system: (P) min c ij x ij (i,j) A subject to s j + x ij = d j + x jk j i k l ij x ij u ij (i,j) A where A is the set of arcs, x ij is the flow on arc (i,j), c ij is the per unit cost of sending flow on arc (i,j), s j is the supply at node j, d j is the demand at node j, l ij is the lower bound on arc (i,j), and u ij is the upper bound on arc (i,j). 18
Network Models in Mining Assigning equipment to jobs Making equipment replacement decisions Slide 37 Block sequencing with special structure Determining the ultimate pit limits Benefits of Network Models You get integrality for free You can solve them very quickly Slide 38 You can depict them graphically 19
A Network Slide 39 supplies 2 3 1 2 (1,3) (0,4) 7 8 costs 3 9 5 4 5 1 4 demands lower and upper bounds Network Formulation A = {(1,3), (2,3), (3,4), (4,5)} x ij = amount of flow on arc (i,j) Slide 40 min 7x 13 + 8x 23 + 9x 34 + 5x 35 subject to 2 = x 13 3 = x 23 x 13 + x 23 = x 34 + x 35 1 x 13 3 0 x 23 4 x 34, x 35 0 20
Example 4: Network Models Slide 41 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. 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 Slide 42 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 21
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 43 Solution 4a: Network Models Mine Mill Slide 44 2 (1, 6) 1 1 (2, 4) 1 (0, 5) 4 S 2 (0, 5) T (1, 7) 2 2 (2, 8) 4 2 (1, 9) 5 22
Solution 4a: Network Models Slide 45 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. Solving Network Models There are very fast (polynomial time) algorithms to solve network models. Slide 46 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. 23
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 Slide 47 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 Nonlinear Programming We will only consider nonlinear programs with continuous-valued decision variables. Slide 48 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. 24
Nonlinear Programming in Mining Fitting curves to data Minimizing quadratic deviation of production output from target levels (in the short-, medium-, or long-terms) Slide 49 Incorporating geotechnical considerations into production scheduling or other planning models Example 5: Nonlinear Programming Slide 50 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. 25
Example 5: Nonlinear Programming Table 8: Return and covariance matrix for precious metals Slide 51 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 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 Slide 52 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%) u = upper bound on capacity (60%) 26
Solution 5a: Nonlinear Programming Variables: P i = proportion of capacity devoted to mining metal type i Slide 53 ˆP i = amount of precious metal i mined (oz.) Formulation: min 3 3 V ij P i P j i=1 j=1 Solution 5a: Nonlinear Programming Formulation: Slide 54 s.t. l i P i u i i 3 P i = 1 i=1 3 R i ˆP i h i=1 ˆP 1 = ˆP 2 = ˆP 3 P 1 P 2 P 3 ˆP i 0 i 27
Constrained Nonlinear Optimization Problem min f(x) subject to h i (x) = b i i = 1...j Slide 55 g i (x) c i i = j + 1,...,m Difficulties with Nonlinear Optimization Functions may not be well behaved. Specifically, f may not be convex (or concave). Slide 56 A local optimal solution may not be a global optimal solution. 28
Illustration of an Ill-behaved Nonlinear Function Slide 57 Convex and Concave Functions Certain functional forms for f will ensure that a local optimal solution is globally optimal. Slide 58 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. 29
Illustration of Convex and Concave Functions Slide 59 CONVEX FUNCTION CONCAVE FUNCTION Solution 5b: Nonlinear Programming Least risk:.1403 P 1, P 2, P 3 :.6,.3,.1, respectively ˆP 1, ˆP 2, ˆP 3 :.645,.323,.108, respectively Slide 60 30