The LG Algorithm for Pit Design Optimization and

SOLVING ULTIMATE PIT LIMIT PROBLEM
THROUGH GRAPH CLOSURE (L-G ALGORITHM) AND
THE FUNDAMENTAL TREE ALGORITHM
Contents
1. Introduction
2. Lerchs – Grossmann (Graph closure)
3. Fundamental Tree Algorithm
4. Assignment
1. Introduction
•
Two ojectives for open pit optimization

Design ultimate pit limits (Moving cone, LG, Net work
flows …. )

Determining an optimal sequence of extracting the
mineralized material from the ground (Short-term and
Long-term production scheduling).
1.
Lerchs, H., and Grossmann, I. F., 1965. Optimum Design of
Open Pit Mines, Canad. Inst. Mining Bull. 58, pp. 47-54.
2.
Salih Ramazan, The new Fundamental Tree Algorithm for
production scheduling of open pit mines, European Journal of
Operational Research 177 (2007) 1153–1166
Block model
• gdg
Source:
William Hustrulid: Open Pit Mine Planning & Design
DEPOSIT REPRESENTATION OREBODY MODEL
A set of mining blocks of a given size with block value
(Grade  Recovery  Price  costp)  OreTons

  Waste  Ore  Tons  costm, if grade > a cutoff grade
BV  

 Tons  Waste   costm, Otherwise

BV: Economic Value of a mining block
DEPOSIT REPRESENTATION OREBODY MODEL
Geologic Model, Copper Grades (lb/ton)
Economic Model, Value per block ($/ton)
Ultimate Pit Limit Problems

Moving (Floating) Cone Algorithm

Dynamic Programming (LG)

Graph closure (Lerchs-Grossmann,
Minimum Cut , Pseudo-flow Algorithm)
2. Graph closure (LG)
• The optimal pit outline is the 3D pit outline
which, if mined out, would give the maximum
value
– Must obey the required pit slope constraints
• All the ore which at a given time can be mined at
a profit will be mined
• Nothing can be added to or taken away from the
optimal outline which will increase the value
without breaking the slope constraints
Lerchs-Grossman Algorithm
Mathematical search technique which works from
just two sources of information:
1. Economic or value block model:
Set of regular rectangular blocks which completely fill
the space under consideration for mining
2. A list of relationships between these blocks:
These relationships are known as `arcs'
Arc Relationships
B
Arc
from
A to B
A
 Each arc goes from one block
(A) to a second block (B) and
indicates that, if A is mined,
then B must be mined first to
uncover A.
 The reverse does not hold
since B can be mined without
disturbing A.
 The arcs encapsulate the
required pit slopes
Lerchs-Grossman Algorithm
In 3-D each of the blocks is connected to 4, 5 or 9 blocks
Dummy Arc
Root (dummy node)
Blocks are replaced by graph 'nodes'
DEFINITIONS
Directed graph G(X, A) is defined by a set of nodes X and a
set of arcs A. The LG algorithm finds the maximum closure in
the graph G (X, A).
X={x1,x2,….,xn} is called the vertices of G
A is the sets of arcs of G
A closure of G is defined as a set of vertices Y  X such that if
xi  Y and ( xi , x j )  A then x j  Y
Graph representation of the orebody model and a closure.
BASIC TERMINOLOGY
 Vertex, xi is the value of block i.
 Arc, aij=(xi,xj), an arrow drawn from xi to xj.
 Positive arc: an arc starting at an ore vertex
towards and overlying waste vertex.
 Negative arc: an arc from waste vertex to
underlying ore vertex.
 The vertex that an arc starts is predecessor and the
one that the arc ends is successor
BASIC TERMINOLOGY
 Root is the vertex without predecessor
 A closure is any surface satisfying the slope constraints
 An arc which is going away from the root is p-arc(+).
 An arc which is going towards the root is m-arc (-).
 The mass is the value of all the nodes a p-arc is
supporting (going towards), and the value of all the
nodes an m-arc is supported by, or leaving behind.
 A p-arc is strong if it supports positive mass (ps), weak
otherwise (pw).
BASIC TERMINOLOGY
 An m-arc is weak if it is supported by positive mass
(mw), strong otherwise (ms).
 A path is a subgraph of G consisting of a sequence
of nodes and arcs satisfying the property that the
terminal node of an arc is the source node for the
succeeding arc.
 A chain is a sequence of edges in which each edge
has one node in common with the succeeding edge.
 A cycle is a chain in which the initial & final nodes
coincide
Example of LG
-2
-2
-3
-3
-4
-2
X
-8
+6
+9
-6
X
-3
+6
+9
X0
Root node
-4
Steps of the algorithm (1)
Step 0: Connect all nodes to
the root node and label the
arcs
-2
-2
-2
-3
-4
X
+6
+9
X
-2
-3
+6
+9
X0
-4
Steps of the algorithm (2)
Step 1: Connect p-strong arcs to all other nodes that
must be removed to mine this strong node. When
this connection is made eliminate the strong node
going from this node.
Step 2: Re-label.
-2
-3
-3
+6
+9
X0
-4
Step 3: Normalize the tree. Root (x0) must be common to all strong edges, if
not, then:
a. Replace the strong p-edge (xm-xn) with a dummy arc (x0-xn) to prevent
unnecessary support
b. Replace the strong m-edge (xq-xr) with a dummy arc (x0-xq) To avoid
supporting a positive mass with a negative mass, i.e. prevents over extending
the pit.
-2
-3
+10
+2
X0
-2
+10
-3
+2
Add (pw)
X0
Normalise
Step 4: Go to step 1 if there is a node overlying another node connected to the
root by a strong arc. Otherwise stop.
Application of the steps for small orebody model
Step 0:
-1
x1
-2
-1
-2
-1
-4
X
+4
+5
X
x3
-2 x4
-1
x2
+4 x5
+5 x
6
X0
Delete dummy arc
Application of the steps …
Step 1 and 2:
-1
x1
-2
x2
-1
+4
x5
+5 x
6
delete
X0
arc (x0-x1)=-1 + 4 = +3  p-s
x3
-2
x4
Application of the steps …
Step 1-2
x1
-2
x2
-1
x5
+5 x
6
x3
m-w
-1
+4
X0
arc (x0-x2)=-1 -2 + 4 = +1  p-s
-2
x4
Application of the steps …
Step 1-2
-1
x2
+4
x3
pw
x1
-2
mw
-1
+5 x
6
x5
X0
arc (x2-x5)= 4 -1-2 = +1  pw
arc (x0-x2)= 4 -1-2 + 5 -1 = +5  pw
-2
x4
Application of the steps …
Step 1-2
x1
-2
-1
x2
+4
x3
pw
MW
-1
+5 x
6
x5
X0
arc (x0-x2)= 4 -1-2 + 5 -1-2= +3  p-s
-2
x4
Application of the steps …
Step 1-2
x1
-2
-1
x2
+4
x3
-2
pw
MW
-1
+5 x
6
x5
Branch T26
X0
arc (x0-x2)= 4 -1-2 + 5 -1-2= +3  p-s
x4
Final Pit Limit
Mine all the nodes connected to a strong arc.
G(X, A) = 3
-1
x2
+4
x3
pw
x1
-2
MW
-1
+5 x
6
x5
X0
-2
x4
Optimal Pit
• The L-G algorithm will flag each block as being
inside or outside the optimal pit outline
• In the 3D algorithm, the optimal pit will be the
pit with the highest net value
• Revenue can be calculated from ore tonnages,
grades, recoveries and product price.
• Price is often the biggest unknown but, in order
to design a pit, you must assume some price
Varying Slope Angles
• It is possible to have different slope angles in
different areas of the pit (different levels or different
X, Y coordinates)
• Results in an irregular pit wall (complete blocks
being removed)
• Bulges in the pit can lead to geotechnical concerns
• Must be corrected before the pit is complete
3. Fundamental Tree Algorithm
Long-term production scheduling consists of
determining an optimal sequence of extracting the
mineralized material from the ground annualy.

MIP models are used to solve the problem for an
open pit mine.

Assume that ultimate pit and pushbacks are given
already.

Even optimizing the production schedule on a
pushback using MIP can be too complex (too
many blocks).
The Approach
• To simplify the MIP we would like to decrease
the number of blocks in our model so that the
MIP model can be solved efficiently.
• This is done by combining blocks that should be
mined together as just one block.
• We call the combined block a fundamental tree.
The Approach
A Fundamental Tree is defined as a
combination of blocks such that:
 The blocks can be profitably mined.
 The blocks obey the slope constraints.
 There is no proper subset of the chosen blocks
that meets 1 and 2.
3.1. Fundamental Tree Algorithm
Step 1 - Generate a Starting Network
• Given a our pushback block model represent
blocks by nodes of a graph.
• Arcs go from positive blocks to overlying
negative blocks that must be removed before
based on slope constraints.
• We will use a network flow to find the
fundamental trees.
• To construct a network flow, we add a source
node s and a sink node t.
Example of Generating a Starting Network
Example 2-D block model, shows the node numbers
and the block economic values in $/t
Network representation of the
2D block model, a source node s
and a sink node t are added.
Step 2 - Find the Cone Value
• The "cone" value of a block (CVi) is the sum of
the block values of itself and all overlying blocks
• We calculate the cone value of all positive nodes
in our pushback (or pit), CVi
Example of step 2
CV6 = V6+V1+V2+V3
=+6 — 1 — 2 — 2 = +1
CV7 = —3,
CV8 = —2
Step 3 – Assign cofficients to the
Positive Nodes
• Each positive node will be assigned a cofficient,
Ci which denotes the rank of node i.
• Assign Ci to the nodes by ordering mining level
firstly, then by cone value.
• The maximum value on the top most level will
be given size 1 for the highest cone, and the
second highest cone value is 2 …
• With tie condition, Cis are choosen randomly
Example
CV6 = +1; CV7 = —3; CV8 = —2
Coefficients Ci are assigned to
positive value nodes according to
CVi value and the levels where
nodes are located.
Since CV6 > C8 > CV7, we assign
 CV6 = 1
 CV8 = 2
 CV7 = 3
Step 4 - Set up the LP
• Set up a Linear Program to find the first iteration
of Fundamental Trees.
• The LP model can be solved using a
commercially availble software such as CPLEX
Step 5 - Check if we are done
• If the number of Fundamental Trees found is the
same as the number of trees obtained from
previous solution, go to Step 7.
• Otherwise, go to Step 6 to reformulate the
problem as a network flow and repeat. We do this
by deleting arc with no flow from our network
and resolving the new LP (go back Step 2).
3.2. Formulating the Linear Program
* The objective function:
n
w
i
j
Min  C i f ij

Ci is the coefficient for node (block) i,

fi, j is the flow from block i to block j.
* The Flow Constraints:
1.
fs, i < Vi i where Vi > 0.
2.
fj, t = -Vj +
Oj
3.
f
i
4.
i, j
 f j ,t  0
wi
f s ,i   f i , j  0
j 1
Example of Step 4
Minimise
f61+f62+f63+3f72+3f73+3f74 +2f83+2f84+2f85
Subject To
CV6 = 1
CV8 = 2
CV7 = 3
Variable
Value
fs6 <= 6
fS6
5.003000
fs7 <= 3
fS7
0.002000
fs8 <= 4
fS8
4.000000
f 1t = 1.001
f1t
1.001000
f2t= 2.001
f2t
2.001000
f3t = 2.001
f3t
2.001000
f4t= 2.001
f4t
2.001000
f5t = 2.001
f5t
2.001000
f61-f1t= 0
f61
1.001000
f62+f72-f2t = 0
f62
2.001000
f63+f73+f83-f 3t = 0
f63
2.001000
f74+f84-f4t = 0
f72
00000
f85-f5t = 0
f73
0.000000
fs6-f61-f62-f63 = 0
f74
0.002000
fs7-f72-f73-f74 = 0
f83
0.000000
fs8-f83-f84-f85 = 0
f84
1.999000
f85
2.001000
Example of Step 4
The network representation of the
initial solution containing two trees
surrounded by dashed lines.
Example of Step 4
Minimise
f61+f62+f63+2 f74 +3f84+ 3f85
Subject To
Variable
Value
fs6 <= 6
fS6
5.003000
fs7 <= 3
fS7
2.001000
fs8 <= 4
fS8
2.001000
f1t = 1.001
f1t
1.001000
f2t = 2.001
f2t
2.001000
f3t = 2.001
f3t
2.001000
f4t = 2.001
f4t
2.001000
f5t = 2.001
f5t
2.001000
f61-f1t= 0
f61
1.001000
f62 -f2t= 0
f62
2.001000
f63 -f3t = 0
f63
2.001000
f74+f84-f4t = 0
f74
2.001000
f85-f5t= 0
f84
0.000000
fs6-f61-f62-f63 = 0
f85
2.001000
fs7 -f74 = 0
fs8 -f84-f85 = 0
The network representation the
solution containing three trees
surrounded by dashed lines.
3.3. Properties of the fundamental trees
• Property 1 - All fundamental trees have positive
value is satisfied since: Vi   f s , j
i
 ( V
and
j
j
  )   fs, j
i
Therefore,
V   ( V
i
i
i
j
 )
j
• The sum of all positive value nodes in a tree is
greater than the sum of negative value nodes.
Property 2 of the fundamental trees
• All fundamental trees obey the slope constraints
if they are removed one at a time respecting the
sequencing between them.
• All overlying negative nodes must be supported
by positive nodes by the LP constraints.
Property 3 of the fundamental trees
• A tree found by FTcannot contain a subset
of a fundamental tree that also can be a
fundamental tree.
 Base on the objective function,
 C
i
i
fi, j
j
• Where i nodes are positive and j nodes are
negative, if a smaller fundamental tree
existed then our LP would have found it.
3.4. Optimization of annual production
scheduling using fundamental trees
• The optimization model is maximization of the
NPV, or discounted economic value, to be
generated from the mining operation
• For scheduling N Fundamental Trees over Y
years, the objective function can be expressed as:
Y
N

Max  ( DEV pi ) * Oip  ( DWC pi * Wip
p 1 i 1

using fundamental trees
• Where:
 DEVpi discounted economic value to be feberated from
mining and processing all the ore tons in year, p from FTi,
DEVpi = DEV0i*DFp
(DFp = 1/(1.0 + d)p
 DWCip discounted average cost of mining one ton waste
from FTi in year p, DWCip = DWCi0*DFp
 Wip is a linear variable representing the tons of the waste to
be mined at period p from fundamental tree i
 Oip is a binary variable, equal to 1 if the ore ton in FTi is
scheduling for period p, 0 otherwise.
Subject to:
. Slope constraints:
 If j is the index for the fundamental trees that have to
be removed before being able to remove tree i in a
period p:
p
Oip   O jt  0
t 1
 If Ni is the number of overlying FTs for FT i:
Ni
p
j
t 1
N i Oip   Ojt  0
. Sequencing of mining ore and waste
 If mining the ore tonnages from a given FT, all the
waste tonnages must be mined out in that FT.
p
TWi *Oip   Wit  0
t 1
Where:
- TWi is the total tons of waste material within tree i
. Grade blending constraints
 Upper bound constraints: The average grade of the material
sent to the mill has to be less than or equal to a certain grade
value, Gmax, for each period, p
N
 (Gi -G max )*TOi *Oip  0
i 1
 Lower bound constraints: The average grade of the material
sent to the mill has to be greater than or equal to a certain value,
Gmin, for each period, p
N
 (Gi -G min )*TOi *O ip  0
i 1
 Where Gi is the average grade of FTi
TOi is the ore tonnage in FTi
. Processing capacity constraints
Upper bound: The total tonnage of ore
processed cannot be more than the processing
capacity (PCmax) in any period, p
N
 (T
i 1
Oi
*O ip )  PC max
Lower bound: The total tonnage of ore
processed cannot be less than a certain amount
(PCmin) in any period, p
N
 (T
i 1
Oi
*Oip )  PC min
. Reserve constraints
Y
 Oip  1
p 1
. The limit on the stripping ratio in each period
N
 (W
ip
i 1
+
SR max *  TOi O ip )  0
Where
SRmax is the maximum stripping ratio allowed during any year
. Mining capacity
• The total amount of material mined during a year cannot be
more than the total available equipment capacity (MCap) for
each period, p
N
 (W
ip
i 1
+
TOi *Oip )  MCap
Where: Wip is the tonnage of waste material in FTi
 In some mining operation, the total tonnage of waste to be
stripped out in a previod is not exceed a waste stripping
amount (WCmax). For n-FTs and a given period, p,
N
W
i 1
ip
 MC max
3.5. Case Study: MIP Scheduling
Formulation
• One of the case studies is performed on a large
copper mine in Southern Peru containing 1 million
blocks
• MIP formulations for mine scheduling treating
fundamental trees as single blocks.
• This algorithm reduced the number of blocks from
38457 to 5512 fundamental trees.
• Therefore, large open pit production scheduling can
be optimized by MIP modelling for any objective
such as maximizing NPV of a given mine project, or
to solve hard ore quality and grade blending
problems
ASSIGNMENT 8
j
1
2
3
4
5
6
7
1
-2
-2
-3
-3
-4
-2
-2
2
-3
+5
+7
-1
+8
+4
-4
3
-4
-3
-4
+6
+3
-4
-5
i
Consider the above 2D orebody model:
1. Show steps to determine the ultimate pit limits using:
a) Cone mining algorithm (if known)
b) LG algorithm (Dynamic Programming) (if known)
c) LG algorithm (Graph closure)
Describe the differences between the algorithms.
2. Write codes in C++ to solve the above problem using Graph closure (LG)
ASSIGNMENT 8
3. Suppose that we have 2 D section below, show your result obtaining from
running your program (C++ code)
-4
-4
-4
-4
-4
8
12
12
0
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
0
12
12
8
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
8
12
12
0
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
0
12
12
8
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
10
12
12
0
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
0
12
12
7
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
8
12
12
0
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
0
12
12
9
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
-4
12
12
12
5
-4
-4
-4
-4
-4
-4