Professional Documents
Culture Documents
D C W Muir1
ABSTRACT
The Lerchs-Grossmann (LG) algorithm (1965) has been used for over
thirty years for the optimum design of open pit mines. This has been
combined with variable grade cut-off and discounted cash flow (DCF) to
optimise the net present value (NPV) of the cash flow for the life of the
mine. The LG algorithm is a unique, efficient method for solving a
special case of an integer linear programming or network flow problem.
More general network flow methods implemented in the 1970s were only
practical for small problems. The efficiency and effectiveness of the LG
method made it the industry standard. During the 1990s and recently
newer algorithms for Network Flow have been developed (eg pushrelabel, pseudoflow) theoretically more efficient than the LG method.
Hochbaum generalised the LG algorithm to a pseudoflow network model.
Two methods, lowest and highest label, theoretically more efficient than
the push-relabel and other network flow methods, were developed.
Lerchs and Grossmann gave no efficient method of selecting
constraints. Some early implementations were inefficient due to data
structure and constraint selection. Other implementations were more
efficient but the actual details were proprietary to the developers.
Recently some of the newer network flow algorithms have been
implemented (eg push-relabel). This paper will examine an
implementation of the pseudoflow algorithm incorporating the Hochbaum
highest and lowest label methods as well as a relatively efficient generic
LG method. In addition a new, and several old, strategies for developing a
nested sequence of optimum stage pits are examined. These strategies
combined with DCF, Fundamental Tree or other scheduling techniques
provide an efficient method of optimising the NPV of a mine.
INTRODUCTION
This paper discusses variations of the classical Lerchs-Grossmann
(LG) algorithm (1965) for open pit mine design. The
implementation of four methods based on the LG algorithm and
their performance on several actual mineral block models are
discussed. In addition, several strategies for developing a nested
sequence of optimum stage pits are examined. The Optimum Mine
Design methods discussed are:
DEFINITIONS
A weighted directed graph G=(V,M,A) is a set of vertices V with
Mass M (positive or negative) and directed arcs A. An arc
a=[p,q] is a directed edge (p,q) joining two vertices in V. The
weight w(v) of a node v in V is called its mass mv= w(v). The
number of vertices in G is denoted by n=|V| and the number of
arcs is denoted by m=|A|.
A closed subgraph Gc=(Vc,Mc,Ac) is a subset of G such that all
arcs originating in Vc also terminate in Vc and is called a closure
of the graph. A partial closure is a subset Gp in G for which some
but not all arcs originating in Gp also terminate in Gp.
A maximum closure Gm in G is a closed subgraph of G that has
maximum weight (the total weight of the vertices is maximal).
A rooted tree is an undirected acyclic connected graph T with
a designated node as root. All other nodes are usually depicted as
suspended below the root node. A subtree Tv of T denotes the
subtree suspended from node v that contains all the descendants
of v in T. An immediate descendant of a node v is denoted as
ch(v), a child of v, and the unique immediate ancestor of v is
denoted by p(v), the parent of v. A node in a rooted tree T is said
to be at level l in T if it is at a distance of l edges from the root.
A tree T embedded in G is a set of vertices VT in V such that an
arc in T is also an arc in G. Given a rooted tree T embedded in G,
Tv is the subtree suspended from node v and T(v,p(v)) is the tree
suspended from the edge (v,p(v)). Tv = T(v,p(v)) where [v,p(v)] or
[p(v),v] is an arc in G. A node v in an embedded subtree Tv in G
97
D C W MUIR
LERCHS-GROSSMANN ALGORITHM
The reader is referred to Lerchs and Grossmann (1965); Zhao
and Kim (1992) and Hochbaum (1996, 1997, 2001, 2002) for a
more detailed discussion and proof of the correctness of the LG
algorithm. The algorithm will be described here but not proven.
This description and implementation has been derived from the
above references, private notes and from Muir (1972).
The LG optimisation algorithm finds the maximum closure of
a weighted directed graph; in this case the vertices represent the
blocks in the model, the weights represent the net profit of the
block, and the arcs represent the mining (usually slope)
constraints. The algorithm thus solves a very special case of a
linear programming or network flow problem. Since the problem
is a special subset of the general linear programming problem, it
is only to be expected that an algorithm specifically designed to
solve such a subset may be more computationally efficient. The
basic LG algorithm has been used for over thirty years on many
feasibility studies and for many producing mines. Hochbaum
(1996, 2001, 2002) has extended the LG algorithm with the
concept of pseudoflow on a network flow formulation of the
problem. This formulation of the problem enhances the basic LG
algorithm with a structured strategy for determining the next set
of arcs to process.
The algorithm as implemented here systematically develops a
sequence of normalised embedded spanning trees from extended
closed subgraphs of the graph, which at any stage incorporate
98
Merger procedure
The first or merger step generates a new branch Tm.
1a.
Link the weak vertex w in the weak branch Trw to the strong
vertex s in the strong branch Trs..
1b. Reverse each edge (v,p(v)) and its type (p or m) on the path
from the strong vertex s to the root rs of Trs (reverse path of
the chain Cs). At rs sever the dummy edge (rs,x0) connecting
the branch Trs to the dummy root x0. This forms the new
chain Cm = [rs,,s,w,...,rw,x0] in Tm connecting rs to the
dummy root x0. Thus the old strong branch is now
suspended from the edge (s,w) and is a subtree of the
merger tree Tm.
1c.
1d. Assign the status (weak or strong) to each vertex in the new
branch Tm.
Pruning procedure
The second or pruning step normalises the merged tree Tm.
This normalisation prunes the merged tree Tm by trimming all
strong edges of subtrees to form new branches rooted to the
dummy vertex x0. This only requires that all strong edges on the
chain Cm be severed and the supported subtree be re-rooted to the
dummy root x0 to form a new branch. All other edges of the
merged tree Tm have not changed so they have the same type and
support the same mass. As the original trees Trs and Trw were
normalised, none of these other edges are strong and do not need
to be pruned.
2a.
Find the first strong edge, say e = (xb,xa) on the chain Cm,
but not (rw,x0) thus let Csbaw = [rs,...,xb,xa,..., rw,x0]= Cm.
2b. Sever the edge (xb,xa) and form the new branches Trb and
Tra rooted at x0 with chains Cb = [rs,...,xb,x0] and Ca = [xa,...,
ra,x0] where ra=rw.
2c.
2d. Assign the status (weak or strong) to each vertex in the new
branches Trb and Tra.
2e.
2.
PSEUDOFLOW ALGORITHM
Recent works by Hochbaum (2001, 2002) and Anderson (2001)
have adapted the normalised trees of the LG algorithm to a more
general network flow model with the concept of pseudoflow,
similar to preflow. A pseudoflow on a network satisfies capacity
constraints, but may violate flow balance constraints by creating
deficits and excesses at nodes. A preflow satisfies capacity
constraints, but may violate flow balance constraints by creating
only excesses at nodes. The pseudoflow algorithm solves the
maximum flow problem on general networks and works with
pseudoflows instead of masses. The relationship between the
pseudoflow algorithm and the push-relabel algorithm is clearer
than that between the LG algorithm and the push-relabel
algorithm. The LG and pseudoflow algorithms work with sets of
nodes (branches) that can accumulate either excesses or deficits.
In the pseudoflow formulation of the problem, the mass Mrs
supported by the root rs of the strong tree is treated as a
pseudoflow and is pushed to the weak root rw and hence to the
dummy root x0 (both source and sink node). The push-relabel
algorithm works with preflows. The push-relabel algorithm
works with nodes (rather than sets of nodes) and the excess at a
node is pushed to those nodes closer to the sink as measured by
distance labels, relabel updates the value of the label.
The pseudoflow algorithm allows for several systematic ways
of processing the weak-over-strong vertices. The best of these
methods are the lowest label and highest label variants. See the
above referenced papers for full details of the pseudoflow
algorithm. Here we will only discuss how to implement the
lowest and highest label methods.
The lowest and highest label methods work with the concept
of a distance label. A distance label for a node is a
non-decreasing function and is non-decreasing with level, within
any generated tree. See Hochbaum (2001) for proof that a
distance label is non-decreasing with level within a tree and for a
weak node v is a lower bound on level (v). This distance label
function is similar to the distance labels introduced by Goldberg
(1985) and those used in network flow methods such as
push-relabel (Goldfarb and Chen, 1997).
In the initial normalised embedded spanning tree Tx0, all strong
nodes are assigned the label 2 and all weak nodes the label 1. To
efficiently manage the strong branches, a priority queue with
index is created and maintained. A counter keeps track of the
number of strong root nodes and an index list pointing to the first
strong root node with each label is maintained (initially all 0).
Initially all positive nodes are strong and are the roots of their
respective branches. All these nodes have label 2 and are placed
in the queue. At this stage order is arbitrary, since all strong
nodes have label 2 although the actual order determines how
branches are processed. A pointer to the first node with label 2 is
placed in the index list. When selecting the next strong tree to
process the top of the queue (either highest or lowest order) is
selected and removed from the queue. When the merger and
normalisation processes generate a new strong branch it is
inserted into the queue at the top position for that label.
99
D C W MUIR
For most pit designs the arcs are all directed upwards and reflect
the slope constraints on mining. This means that subproblem
decomposition such as level-by-level optimisation (Lipekewich
and Borgman, 1969) can be done. In general, any closed subset
of nodes can be optimised and then augmented with a larger
closed subset and the procedure repeated as often as necessary
until the entire graph has been processed. This is referred to here
as the LG subset and pseudoflow subset methods.
Prepass techniques are methods of generating limiting pits for
the optimisation. There are several reasons for limiting the
number of blocks, depending upon the optimisation method,
memory available and computational time required. Chen (1976)
describes various prepass methods on the profit matrix to limit
the volume to a closed subset containing all profitable blocks to a
given level. This reduces the number of blocks that have to be
optimised and the time for optimisation to that bench.
The largest pit that needs to be considered can be found by
using the set of all positive (profitable) blocks and expanding
them and dependent blocks to the surface. This pit is a closed
subset of the blocks and since it contains all positive blocks it
contains the ultimate pit (a subset of the positive blocks and their
dependents that is of maximum value).
These techniques are quite useful for large problems using the
generic LG methods. For pseudoflow or push-relabel methods,
unless the problem is very large and memory is a problem, the
extra effort for prepass probably would not reduce the overall
time. The program implemented here can use a limiting pit and
also a starting pit (eg a previous stage pit). Neither starting pits
nor limiting pits have been used in the cases studied here. Some
programs (eg Whittle) automatically ignore arcs (constraints) and
blocks that would never be mined. The pseudoflow methods after
initialisation never even look at blocks that are not positive or
within a positive block's dependence volume.
100
CASE STUDIES
Case 1: 220
TABLE 3
TABLE 1
LG
LGS
LLP
26
285
56
28
398
94
30
632
32
878
34
HLPQ
To bench
LG
LGS
LLP
LLPS
LLPQ
142
71
HLPQ
LLPS
LLPQ
186
91
23
31
19
19
71
71
247
107
35
13
36
144
97
239
156
11
130
327
125
54
17
41
1521
1114
1085
556
105
45
176
410
145
83
28
46
14 737
8340
2730
1257
384
146
1157
243
480
152
107
27
51
26 787
18 257
6621
3622
1369
749
36
1387
478
541
157
116
28
56
35 969
20 857
8086
5272
1042
893
38
1527
628
556
160
126
29
61
42 165
22 192
9560
6714
652
1003
66
47 608
22 837
11 654
7940
519
1053
71
56 843
23 668
12 976
9153
645
1140
Legend:
LG
Normal Lerchs-Grossmann
LGS
Subset Lerchs-Grossmann
Legend:
LLP
LG
Normal Lerchs-Grossmann
LLPS
LGS
Subset Lerchs-Grossmann
LLPQ
LLP
LLPS
LLPQ
HLPQ
HLPQ
TABLE 2
Statistics for level 38 for 220 x 119 x 38 profit matrix.
Profit value
LG
LLPQ
HLPQ
57 118 058
57 118 058
57 118 058
Blocks removed
95 228
95 228
95 228
Blocks remaining
830 754
830 754
830 754
Branches relinked
950 175
329 599
420 244
Branches pruned
1 703 036
459 454
638 088
STAGE PITS
Time (seconds)
1527
126
29
Legend:
LG
Normal Lerchs-Grossmann
LLPQ
HLPQ
Case 2: 450
Case 3: 200
101
D C W MUIR
Time
1800
1600
k2 n^2 log n
1400
k3 n^3
1200
Lerchs
Grossmann
1000
LG Subset
800
LL Pseudoflow
600
400
LL Pseudoflow
Subset
200
LL Pseudoflow
Priority Queue
HL Pseudoflow
Priority Queue
25
30
35
40
To Bench Level
FIG 1 - Optimisation times (seconds) versus nodes for Case 1. Times for various methods to bench levels.
k1 n^2
60000
k2 n^2 log n
k3 n^3
50000
Lerchs
Grossmann
40000
LG Subset
30000
LL Pseudoflow
20000
LL Pseudoflow
Subset
LL Pseudoflow
Priority Queue
10000
HL Pseudoflow
Priority Queue
0
30
35
40
45
50
55
60
65
70
75
To Bench Level
FIG 2 - Optimisation times (seconds) versus nodes for Case 2. Times for various methods to bench levels.
102
TABLE 4
Optimisation times (seconds) for various penalties for
200 160 55 profit matrix.
Penalty
LG
LGS
LLPQ
Ultimate (0)
95
66
429
HLPQ
19
500
115
87
301
19
1000
178
112
242
20
1500
290
145
129
19
2000
376
190
105
18
2500
330
217
55
18
3000
498
391
56
27
3500
307
313
20
16
4000
629
483
24
21
4500
1167
572
22
5000
265
381
5500
30
193
6000
99
6500
39
7000
22
7500
12
8000
8500
9000
Legend:
LG
Normal Lerchs-Grossmann
LGS
Subset Lerchs-Grossmann
LLPQ
HLPQ
CONCLUSIONS
The LG generic algorithm is pseudo-polynomial (Hochbaum,
1996), but for the practical cases studied here is more of the
order of (m n2) as shown in Figures 3 and 4. The highest and
lowest label pseudoflow priority queue variants are of the order
of (m n2) or (m n log n) if dynamic trees (Sleator and Tarjan,
1983) are used. Here n is the number of blocks (nodes) and m is
the number of arcs (slope constraints). In Case 1 we have m=13n
and in Case 2 we have m=81n. The last n or log n for the order of
the methods is related to the maximum length of the chain Cm for
the merger and pruning step. In the cases studied here the
maximum lengths <1000 <<n. In Figures 1 and 2, the priority
queue methods show this small chain length by having times
more of the order n2. Sleator and Tarjan Dynamic trees were not
used in these implementations since the chain Cm lengths were
relatively small. This empirical study and theory show that the
pseudoflow variants become increasingly more efficient than the
generic LG algorithm as the number of blocks increases. In
practice this means that larger models can now be economically
processed.
In Cases 2, 3 and numerous other trial runs (not included here)
the lowest label method times vary more than the highest label
times. The highest label times are usually shorter, more
consistent and normally increase with problem size. The
performance of the generic LG methods are more like the lowest
label results but are generally slower, but as shown in Case 3 can
be faster.
Pseudoflow methods give new life to the Lerchs-Grossmann
pit optimisation. The highest label method in particular is
consistently faster than the generic LG methods and usually
faster than the lowest label method. The increase in speed can be
from two to 50 times faster than the LG methods, and
theoretically much faster for larger problems.
The highest label method can also be used for the fast
generation of intermediate stage pits. These stage pits optimal for
the volume mined can form a starting point for NPV or
Fundamental Tree scheduling techniques.
The pseudoflow methods can also be applied to more general
network flow problems. The network flow formulation of
Johnson (1968) would be an interesting study. In the 1970s this
method was only capable of solving small problems due to
memory, processor constraints and available algorithms.
Another interesting study would be the use of the normalised
strong trees in the LG and pseudoflow optimised stage pits to
generate the Fundamental Trees defined by Ramazan (2001) and
used by Johnson, Dagdelen and Ramazan (2002).
ACKNOWLEDGEMENTS
The author thanks Dr Dorit Hochbaum for her encouragement
and correspondence on the LG and pseudoflow algorithms. Also
thanks to Dr Roussos Dimitrakopoulos for his encouragement to
write this paper and to the referees for additional references,
thoughtful and simplifying comments and numerous corrections.
103
D C W MUIR
REFERENCES
Anderson, C, 2001. Pseudoflow solvers for the maximum flow problems,
UC Berkeley manuscript.
Borgman, L E, 1968. A computer solution to the three-dimensional
optimum design of open pit mines, Documentation Manual,
University of California, Berkeley (Proprietary to Chapman, Wood
and Griswold Ltd, Placer Developments Ltd and Brenda Mines Ltd).
Chen, T, 1976. 3-D pit design with variable wall slope capabilities, in
Proceedings 14th APCOM, pp 615-618 (Pennsylvania State
University: Pennsylvania).
Dimitrakopoulos, R, in press. Applied risk analysis for ore reserves and
strategic mine planning: Stochastic simulation and optimisation,
Springer SME, 350 p, Dordrecht.
Dimitrakopoulos, R, Farrelly, C and Godoy, M C, 2002. Moving forward
from traditional optimisation: grade uncertainty and risk effects in
open pit mine design, Trans Inst Min Metall (Section A),
111:A82-A89.
Dimitrakopoulos, R and Ramazan, S, 2004. Uncertainty based production
scheduling in open pit mining, SME Trans, 316:106-112.
Godoy, M C and Dimitrakopoulos, R, 2004. Managing risk and waste
mining in long-term production scheduling, SME Trans, 316:43-50.
Goldberg, A V, 1985. A new max-flow algorithm, Tech report
MIT/LCS/TM-291, MIT, Cambridge MA.
Goldfarb, D and Chen, W, 1997. On strongly polynomial dual algorithms
for the maximum flow problem, Special Issue of Mathematical
Programming B, 78(2):159-168.
Hanson, N, 1997. Towards a broader view of cut-off grade in resource
estimation and reserve reporting, in Resource to Reserve Inputs
Seminar, pp 11-16 (The Australasian Institute of Mining and
Metallurgy: Melbourne).
Hochbaum, D S, 1996. A new-old algorithm for minimal cut on closure
graphs, UC Berkeley manuscript, June.
Hochbaum, D S, 1997. The Pseudoflow algorithm: a new algorithm and a
new simplex algorithm for the maximum flow problem, UC Berkeley
manuscript, April.
Hochbaum, D S, 2001. A new-old algorithm for minimum cut and
maximum-flow in closure graphs, Networks, special 30th anniversary
paper, 37(4):171-193.
Hochbaum, D S, 2002. The Pseudoflow algorithm: a new algorithm for
the maximum flow problem, UC Berkeley manuscript, December.
Hochbaum, D S and Chen, A, 2000. Performance analysis and best
implementations of old and new algorithms for the open-pit mining
problem, Operations Research, 48(6):894-914.
104