You are on page 1of 105

Surpac Minex Group

Pit Optimiser
in Surpac Vision
June 2006

Table of Contents
Introduction ................................................................................................................................ 1
Requirements ............................................................................................................................ 1
Objectives .................................................................................................................................. 1
Workflow .................................................................................................................................... 1
Optimisation Theory .................................................................................................................. 2
Data Requirements and Block Model Preparation .................................................................... 7
Exercise 1 - Optimisation........................................................................................................... 8
Exercise 2 - Ore Discounting Factor........................................................................................ 74
Exercise 3 - Assigning Net Values to block model .................................................................. 82

Optimisation Theory
Overview
An optimal pit for a deposit is one that maximises profit and satisfies both cost and slope
constraints. Designing an optimal pit is a challenging and complex problem that is difficult to
solve. As a result, several mathematical algorithms have been developed to solve this problem in
a reasonable time frame. The Pit Optimiser developed by the Surpac Minex Group is based on a
variation of the Lerchs Grossman algorithm that was first proposed by Koenigsberg in 1985.
The Pit Optimiser works on a block model of the deposit where each block must have a net value
that represents the economic value that will be returned if that block is extracted in isolation. The
Pit Optimiser then considers each of these blocks in turn to work out which combinations of
blocks should be mined in order to return the highest possible total value given mining constraints
for a particular sale price. The result is a 3D surface that represents the base / limit of the pit that
maximises the total value of the mine and any further extension of the pit will not increase the
total return.
Requirements
Prior to performing the exercises in this chapter, you should:

Be familiar with the basic principles of Surpac Vision.

Be familiar with the Block model module and the Geological database module

Pit optimisation works on a block model of the deposit to be mined and the surrounding material.
With any block model, only a subset of blocks will actually contain material of sufficient grade to
make them worthwhile to mine once they are exposed at the surface. In order to reflect this
information, each block must be assigned a value that essentially shows the net cash flow that
would result from mining that block in isolation. This value must be positive for an ore block and
can be calculated as the sale price minus the costs of mining and milling. For waste and air
blocks, this value will be zero or a negative value representing the cost of mining that block.
To illustrate this, the diagram below shows a cross section of a deposit. For simplicity, all air
blocks in the block model for this ore body will be given a value of $0, the mining cost associated
with extracting an ore or waste block will be set at $3, while the sale price for each ore block will
be $20.

The diagram below shows a cross section of the block model for this deposit. Each block has
been assigned a net value indicating the cost of extracting the block if it were already exposed.

Once all the blocks have been assigned a net value showing the cost of extracting just that block
as if it were already exposed, each block is then considered in turn and all the blocks that are
needed to be mined in order to uncover it are identified. From these blocks, it is then possible to
calculate the total net value of a block in relation to its position in the model. This will be the net
value of the block in question minus the cost of mining all the blocks that need to be mined before
it can be extracted.

In the above example, we have assumed that in order to mine a block, the block directly above it
must be extracted first. Therefore, to calculate the total net value of a block, you would take the
net value of the block and subtract the net value for all the blocks above it.

After the total net value for each block is calculated, it is then a matter of finding the combination
of blocks to extract that will result in the maximum return for that deposit.
As shown below, the maximum value for a vertical pit (90 degree slope angle) for this deposit is
$40. This is computed by adding up the total net values of the blocks along the base of the pit
outline.

If more blocks were extracted, the total return of the pit would actually decrease as shown below.
When an extra column of blocks is extracted, the value of the pit is $39.

Likewise with a smaller pit, the total return is only $38. This is illustrated below.

An optimal pit is one which returns maximum revenue. A slightly smaller pit will leave revenue on
the pit walls, while a slightly bigger pit is unprofitable at its limit.
In pit optimisation, wall slope angles are an important consideration when calculating the optimum
pit because these angles determine which blocks need to be mined before a certain block can be
extracted. This in turn affects the total net value for each block and will result in different blocks
forming the optimal pit. The above simplified case assumed a slope angle of 90 degrees which is
unrealistic. If on the other hand, a slope angle of 45 degrees is assumed, the following results
would be achieved.

The maximum value for a 45 degree slope pit would give a value of $13 and is once again
calculated by adding up all the total net values of the blocks along the base of the optimum pit.

Regardless of the slope angle used, a slightly smaller or larger pit would result in less return as
shown in the two diagrams below.

As can be seen from the above, finding the optimal pit for a deposit is not a simple process.
There are many different combinations and sizes of pit outlines that need to be assessed before it
is possible to determine which pit will return the most profit for a given sale price.
This process can be repeated by increasing the sale price to calculate more profitable pits closer
to the surface that are shorter term (2 to 3 years). In effect, a series of nested pit shells can be
produced and used as a rough guide for determining the schedule of the mine or estimating the
maximum net present value of the mine.
The two algorithms that the Surpac Minex Group pit optimiser uses are the Floating Cone and
Lerchs Grossman techniques to determine an optimal pit for a deposit. These two algorithms are
discussed later.

Data Requirements and Block Model Preparation


The minimum data requirements for the Pit Optimiser are:
The block model containing quality data and an attribute indicating which blocks are ore and
which are waste blocks in the model or alternatively, an attribute representing the net value for a
block. The net value for a block is the net cash flow generated after the block has been extracted
and processed, and can be calculated as follows:
Block Net Value = Sale Price (Mining Costs + Milling Costs)

Sale Price is the price of the material that it can be sold at. For ore material, this will be a positive
value as it can be sold and for waste and air material, this will be zero because they cannot be
sold.
Mining Costs refer to the cost of extracting the block as if it were the only block in the model. It
does not include the cost of extracting the immediate blocks above it. Both ore and waste blocks
will have an associated mining cost. Air blocks cost nothing to extract and therefore have no
mining costs.
Milling Costs represent the cost of processing ore material through the mill. Only ore blocks will
have a milling cost component and hence, waste and air blocks have no milling costs.
From the above calculation, ore blocks will always have a positive net value while waste blocks
will have a negative net value and air blocks have a zero net value.
The net value must be expressed in either dollars per mass unit (eg. $/tonne) or dollars per
volume unit (eg. $/m3) of ore. This will be discussed in more detail later.
Topography DTM surface
Once all the necessary attributes have been added to the model and the topography surface has
been prepared, the pit optimisation parameters can be entered and the pit optimiser will produce
a pit shell or series of nested pit shells representing the base of the optimal pit at given sale price.

Exercise 1 - Optimisation
Overview
To generate an optimal pit for a ore deposit where the net value of each block in the model must
be calculated automatically by the Pit Optimiser from given sale prices and costs. As an
additional requirement, the resultant optimal pit must have wall slope angles of no greater than 45
degrees around the entire wall of the pit.
Requirements
The data files required for this exercise are: gold.mdl, topo1.dtm, topo1.str
These files are located in the dem/training/pitopt directory where Surpac Vision has been
installed.
Getting started
Set your current working directory to be the directory containing the files to be used for this
exercise. To do this, left click with the mouse on the directory in the navigator and then right click
to pop up a menu. Select Set As Work Directory from this menu.
Display the block model menu by right clicking with the mouse at the end of the main menu bar
(to the right of the Help menu). When discussing any block model functions in this tutorial, they
will be referred to from this menu.
Open the block model file gold.mdl by selecting this file from the navigator with the left mouse
button and while holding down this button, dragging the mouse pointer into the graphics viewport.
The block model status item should appear at the bottom of the Surpac window as shown below:

From the Block model menu, select Summary. This will display a form summarising the
properties of the block model and should appear as follows:

The important features of the block model to note are the user block size of 20m x 20m x 20m
and that four levels of sub-blocking have been allowed making the minimum possible block size
5m x 5m x 5m.
In addition, it can be seen from the list of attributes that we are dealing with an ore deposit where
the background value of gold is -99.00 and there is also an ore_type attribute that classifies the
different ore materials in the model by an integer value.
From the information in the block model, it can be seen that there is no attribute containing the
net value for each block and so the Pit Optimiser will have to automatically calculate it.
Press Apply on the form to close it.
From the Block model menu, select Display, to display the entire block model. The following
form should appear:

Fill in the form as displayed above and press Apply to draw the model with block faces. The
model should be centred in the graphics viewport as the Rescale option has been checked and
should look similar to the image below:

To get a better indication of where the ore deposit is located in the block model, a graphical
constraint can be added to display only the blocks where the gold value is greater than zero.

10

From the Constraints menu, select New graphical constraint, enter the information as shown
below and Apply the form.

The block model is displayed as shown below:

11

Colouring the blocks by the gold grades shows the quality distribution throughout the deposit. The
gold grades for this deposit range from values of 0.02 to 15.24. In this example, the gold grades
will be coloured by the range 0,16,2:
From the Display menu, select Colour model by attribute, enter the information as shown
below and Apply the form.

Press Apply to colour the model using the above grade range.

12

The block model should appear as shown below:

Rotate the constrained block model around to gain familiarity with the deposit.
The object of this exercise is to generate the base of the pit for this deposit that will return the
most profit at a given sale price.
Before entering the pit optimisation parameters, we must set the units that will be used when
specifying the maximum allowable slope angles for the optimal pit. The two options available are
decimal degrees or gradients. For this exercise, we will choose decimal degrees.
From the Customise menu, select Default preferences, then click on the Coordinate
System/Units tab pane as highlighted in the image below.

Select Degrees for the Angle units field, then press Apply to set these units.

13

From the Block model menu, select Pit optimisation. The following form will appear prompting
you to enter the name of the parameters file.

The parameters file is a file created to store all the pit optimisation parameters that are entered on
the next form so that on subsequent runs of the pit optimisation it is possible to redisplay all the
parameter values that were previously entered. Modifications can then be made to these
parameters and the pit optimiser can be run again. All modifications will be saved back to the
parameter file.
The parameter file has a .pop extension. Enter in gold_$unit for the parameter file name for this
example.
Press Apply to display the Pit Optimiser parameters form.

As can be seen above, the form is made up of five different tab panes labelled Ore Type, Mining
Costs, Slopes, Vertical Limits and Optimisation.

14

Parameters for each of these tab panes should be entered in the order they appear and are
discussed in the following pages:

15

Ore Type
This tab pane is used to identify whether a block is an ore block or a waste block. It also tells
the Pit Optimiser whether it has to calculate the net value for each block or whether the value
is already stored in the model.

If you click on the down arrow button on the Method combo box, you will see there are three
different methods available - $/unit, $/mass and $/volume.
Select $/unit from the Method combo box.
For this exercise, the $/unit option from the Method combo box has been selected as this is the
only method that automatically calculates the net value for each block given sale prices, milling
and mining costs. For this method, the sale price must be stated in dollars per unit of ore (e.g.
$/g). The other two methods, $/mass and $/volume, require the net value for each block to be
already calculated.

16

Each of the three different methods is discussed in detail below:


$/unit
With this method, the net value for each block is automatically calculated from the sale price,
milling costs and mining costs that will be defined later for each ore type in the model. The sale
price for the ore must be expressed in monetary units per unit of ore where the unit of ore is the
same unit of measurement as the quality measurement of the ore.
For example, if grades for the ore material to be mined are measured in grams per tonne (g/t), the
unit of measurement would be a gram and hence, sale prices need to be expressed as dollars
per gram ($/g).
Alternatively, if grades for the ore material to be mined are measured in percentages (%), the unit
of measurement would be a percent and hence, sale prices need to be expressed as dollars per
percent of ore ($/percent).
It is important to note that using this method to define the sale price, the net value for each block
does not have to be calculated and stored in the model before running the pit optimisation. The
Pit Optimiser will automatically calculate the net value for each block from the sale prices, mining
costs and milling costs that have been assigned for each different ore type.
$/mass
To use this method, the block model must contain an attribute that stores the net value for each
block. This must be calculated prior to performing the optimisation and must be expressed in
monetary terms per mass unit of material within a block (e.g. dollars per tonne).
The net value for a block can be calculated using the Attributes Maths function, if the sale
price, mining costs and milling costs are all stored as attributes in the model. As mentioned
earlier, the net value for a block is calculated as follows:
Net Value = Sale Price (Mining Costs + Milling Costs)
If any additional costs need to be factored in, they too can be added into the calculation.
To use this method, the specific gravity for each different ore type must be known in order for the
Pit Optimiser to work with mass units.
This method assumes the net value assigned to each block is correct and any blocks with a
negative or zero value are waste and air blocks respectively, and any blocks with a positive value
are ore blocks. Special care must be taken when calculating the net value for each block as any
errors will result in an incorrect optimal pit being generated for the deposit.
$/volume
Similarly, the $/volume method requires a net value attribute to be stored in the model. The net
value must be expressed in monetary terms of per volume unit (e.g. dollars per cubic metre). This
method only uses volumes to determine the optimal pit for the deposit.

17

Ore Type

If you click on the down arrow on the Ore Type combo box, you will only be able to select one of
the integer attributes that are stored in the model.
Select the ore_type attribute from the Ore Type tab pane.
The Ore Type attribute is an integer attribute that classifies each block as belonging to a
particular ore type. Each different ore type is assigned a unique integer and different sale prices,
costs and recovery properties can be defined for each different ore type. The Ore Type attribute
can be assigned using the Attributes Maths (MC add link) function from the block model
menu.
In our block model, the Ore Type attribute is called ore_type and each block has been given an
ore_type value of one. This means that all the blocks in the model are ore blocks (not waste) and
therefore will be processed by the Pit Optimiser. In reality, only a portion of blocks in the model
are actually part of the ore deposit and hence the Pit Optimiser will use the Sale Price Curves
(discussed later) to determine if a block is really an ore block or is actually waste.
Select the ore_type attribute from the Ore Type combo box. Next to this combo box is a button
labelled Populate Tables. This button relates to the Sale Price Curves and Milling Cost Curves
tab panes at the bottom of the Ore Type tab pane and is used to populate the Ore Type combo
box in these tab panes. It looks at the ore_type attribute and displays all the possible unique
integer values assigned to this attribute into the combo box for selection.

18

SG (Optional)

The SG field is an optional field and should be left blank if there is no specific gravity field in the
model. For this exercise, leave this field blank.
If the specific gravity / density for each block in the model is stored as an attribute, this attribute
should be selected here so that tonnages for the ore can be calculated.
For this exercise we will leave this field blank and assign a default SG for gold later when
defining the Sale Price Curves...

19

Grade

If you click the down arrow on the Grade combo box, all the possible real, float and integer
attributes in the model will be listed.
Select the gold attribute from this list.
The Grade field is used to specify the quality attribute in the model for the material being mined or
the material that determines whether an ore block classified by the Ore Type attribute (MC add
link) is to be treated as ore or waste given grade cutoffs for this attribute. The grade cutoffs are
defined when setting up the Sale Price Curves (discussed later).
In this exercise, the attribute of concern is the gold attribute. Select gold from the Grade combo
box on the Ore Type tab pane.

20

Yield

If you click the down arrow on the Yield combo box, all the real, float and integer attributes in the
model will be listed.
It is possible to factor in different process plant recoveries depending on a Yield attribute. For
example in a gold deposit, it could contain the percent of oxide ore in each ore block, and the mill
recovery would increase as the oxide content increased.
If you are modelling processing recovery on the input grade to the mill and/or the ore type, or are
using a fixed recovery, then you should choose the same attribute you selected for the grade
attribute, or leave it blank. By default it will be set as equal to the grade attribute.
Select the gold attribute from the Yield combo box on the Ore Type tab pane to indicate the gold
grade will be used to model our milling recovery.

21

Sale Price Curves

To work out the sale price for each ore block in the model so the Pit Optimiser can calculate its
net value, mathematical curves can be set up for each ore type.
For complex pricing structures, several grade cutoffs can be used to define different sale prices
for different qualities of the ore. The sale price for each block will be linearly interpolated from the
curve given its quality value.

22

Ore Type

Click on the Populate Tables button to list all the different ore types in the model in the Ore Type
combo box in the Sale Price Curves tab pane. These values are taken from the Ore Type field
located to the left of the Populate Tables button.
Select 1 from the Ore Type combo box.
The Ore Type field will allow you to set up a sale price curve for a particular ore type in the model.
For this exercise, we will set up a price curve for Ore Type 1. Note that this is the only value
available to choose from because the ore_type attribute in our block model considers every block
to be an ore block.

23

Sale Price

Enter in a value of $23.00 for the Sale Price of the ore material after it has been extracted and
processed through the mill.
This is where the sale price for a particular ore type is entered. The sale price must be expressed
in terms of monetary units per unit of ore material.
In this example, the grades have been measured in grams per tonne (g/t) and so the units used
to specify the sale price is per gram.
A value of $23.00 for the Sale Price indicates the price is $23.00 for a gram of gold.
If the grade has been measured in % metal per tonne, and the metal value was $10,000/tonne,
then the sale price would be $ value of one percent metal per tonne ie 1% x $10,000 = $100.
Note a grade of 3% would be stored in the grade attribute as a value of 3 and not 0.03 in order for
the above example to work correctly.

24

Grade Cutoff

Enter a value of 0.0 for the Grade Cutoff of the ore material to indicate the sale price specified in
the previous field only applies to blocks which have a grade value above 0.0. Any block with a
value below 0.0 will be treated as waste.
The Grade Cutoff value applies to the Grade attribute described above. The value entered in this
field represents the lowest grade that must be satisfied in order for the Sale Price to apply. For
example you may specify that any block with a grade of less than 0.01 g/t should have a sale
value of $0
In our example, we will say any block with a gold grade value greater than or equal to 0.0 is
considered to be part of the ore resource. The optimiser will still determine if an ore resource
block should be treated as an ore block or as a waste block, by calculating the respective value of
the block when considered as ore and then as waste.

25

Default SG

Specify a default specific gravity for Ore Type 1 to be a value of 2.5. This default value will apply
to any block that does not have an SG value specified in the SG (Optional) field that was
discussed above.

The Default SG value for each different ore type can be specified in this field. This value will apply
to all blocks that do not have an SG specified by the attribute selected in the SG (Optional) field.
As we did not specify an SG field, all ore blocks will have an SG value of 2.5.

26

Recovery (%)

The last field to define for the Sale Price Curve is the mining recovery percentage. This recovery
percentage is applied to the block tonnage to determine the proportion of the ore material that is
recovered from the mine for milling. The remainder of the ore is lost and has no value.
Enter in a value of 100.0 % in the Recovery (%) field to indicate that 100 % of all ore blocks with
an Ore Type of 1 are recovered during mining.
For this exercise, it is assumed 100 % of the ore is recovered for the mill after mining.
Sale Price Curve Definition
The Sale Price Curve defined implies any block with a gold grade value of greater than or equal
to 0.0 will be sold for $23.00 per gram and 100 % of this ore will be recovered after mining for
processing in the mill. All blocks that have a gold grade value of less than zero will be treated as
waste blocks and will have a sale price of $0.00 per gram associated with it. Essentially, a
constant sale price curve has been defined.
More than one entry can be made for each different ore type defining different sale prices and
recovery values for different grade cutoffs. This will result in a cost curve being formulated and
the sale price for each grade value will be linearly interpolated if it falls between the two cutoff
values. The next exercise will show an example of a complex sale price curve.

27

So far, the Ore Type tab pane should appear as follows:

Now the milling cost curves can be defined. Left click on the Milling Cost Curves tab pane on the
Ore Type tab pane to display the table where the milling cost curves are defined for each ore
type.

28

The following information is required to set up a milling cost curve:


Ore Type

Select 1 from the Ore Type combo box. The values in the combo box should have already been
populated when the Populate Tables button was pressed when the Sale Price Curves were
being defined.
The Ore Type combo box is used to select the ore type for which a milling cost curve is to be
defined. We will set up a Milling Cost Curve for Ore Type 1.
Mill Grade

29

Enter in a Mill Grade of 0.0 to define a milling cost associated with any ore blocks that have a mill
grade (Yield attribute value) of greater than or equal to 0.0.
In our example where we have set the Yield attribute to equal the Grade attribute, the Mill Grade
is the grade of the ore material being fed into the mill. In our exercise, this is the gold attribute.
In our example, the Mill Grade is similar to a grade cutoff value. It is possible to define different
mill grades as having different or constant Yield % (mill recovery) and milling costs, to form a
curve in order to linearly interpolate the milling cost associated with processing a particular ore
block.
We will define a constant Milling Cost Curve for mill grades of greater than or equal to 0.0.
Yield (%)

The Yield is the percentage of ore retained after milling that can be sold. This field applies to the
attribute selected in the Yield field that was discussed earlier.
Enter a value of 93 % for the Yield %. In our example this effectively means 93 % of the gold is
recovered after processing.

30

Cost ($/mass)

The Cost field is the milling cost for each mass unit of ore material. An example of a mass unit is
$/tonne.
Enter a value of $25.00 for the milling cost of Ore Type 1 with a mill grade of greater than or
equal to 0.0. This cost must be the cost per mass unit of the ore. In our case, it is the cost per
tonne of ore.

Milling Cost Curve Definition


The above entry defines a constant curve such that any mill grade value of zero or greater will
produce a yield of 93 % and will cost $25.00 per tonne to process.
If another entry were defined for the same ore type, but for a different mill grade with different
yield and cost, a curve would be used to determine the cost for all mill grade values processed by
the mill.

31

The Milling Cost Curves tab pane should appear as follows:

Mining Costs
Mining costs associated with extracting a block only need to be defined if the $/unit ore type
method is selected on the Ore Type tab pane. This is because all mining costs must already be
factored into the net value attribute for all blocks when using the $/mass and $/volume ore
method types.
Waste and ore mining costs can vary from block to block or at deeper levels in the pit. To allow
for such changes, each block in the model must be classified into groups such that all blocks in a
particular group have the same mining costs. Each grouping of blocks is referred to as a different
rock type in the model.

32

The Mining Costs tab pane appears as follows:

Click on the Mining Costs tab pane.


There are three separate tab panes on this form:

Rock Type Definition


This is where the different rock types in the model are defined.

33

Method
There are three possible ways to classify a block as a certain rock type. Each of these methods is
described in detail below.
To view the different options for defining rock types, click on the button with the down arrow on it
next to the Method field.

Method: Attribute
An integer attribute can be added to the block model that distinguishes blocks of different mining
costs. Unique integers can be assigned to each rock type using the Attribute Block Maths
function. This method would be used when the mining costs associated with blocks adjacent or
blocks near each other differ and it is not possible to define a horizontal zone to assign the
different rock types.
This attribute, if set up correctly, can also be the same attribute that describes the different ore
types in the model. Unique identifiers also need to be added for waste rock types as well as ore
rock types.

34

Method: Depth
Different rock types can be set up by defining depth ranges from the topography surface
downwards. Depths are entered with sequentially increasing values as shown below:
Rock Type
1
2

Depth (m)
500
700

In the above example, the first depth is specified as 500 metres. This is equivalent to creating an
identical topography surface at a level 500 metres below the original topography. Any blocks that
fall within these two surfaces will be considered to be of the same rock type. In this case, all
blocks with Rock Type 1 will have the same mining costs associated with them.
Following from this, all blocks that lie between the 500 metre and 700 metre zone below the
topography will fall into the category of Rock Type 2 and will have different ore and waste costs
from Rock Type 1.
Method: Elevation
Rock types can also be assigned by a range of elevations from the topography surface.
Elevations are entered with sequentially decreasing values as shown below:
Rock Type
1
2
3

Elevation (m)
5500
5200
4700

By defining the rock types with this method, the above example classifies all the blocks below the
topography with an elevation greater than or equal to 5500 metres as Rock Type 1; all the blocks
with an elevation in the range 5200 >= z < 5500 as Rock Type 2 and all the blocks with an
elevation in the range 4700 >= z < 5200 as Rock Type 3.
Select Depth as the method. By selecting this method, a table will appear with two columns
labelled Rock Type and Depth.
In this exercise, we will use the Depth method to define the different rock types in the model. In
our example we will assign the same rock type for all blocks so that the ore and waste mining
costs are the same for each block in the model.

35

Enter a value of 1 under the Rock Type column and a value of 300 m in the Depth column.

This tells us that all the blocks in the model that are within the zone between the topography and
a depth of 300 m below the topography are of Rock Type 1. For our block model, 300 m below
the topography covers the entire depth of the model.
Note:
1) Rock type is a virtual attribute, created at run time, when using the Depth method as in this
example. To use a real attribute stored in the block model, select the attribute method and then
select the required attribute.
2) If you use more than one Rock Type, you must enter the depth values in ascending order.

Next we must assign both waste and ore mining cost curves for each of the different rock types in
the model. To define the waste mining costs, click on the Waste Mining Costs tab pane on the
Mining Costs tab pane.

36

Waste Mining Costs

Once all the different rock types in the model have been defined, a cost curve can be created for
each rock type that represents waste. Cost curves are defined by reference elevations where the
cost of extracting and hauling a block below/above that elevation is known.
Note:
We have defined the rock type by depth from the surface topography, but we are now defining
mining costs by both rock type and elevation. i.e. we are not defining by rock type and depth.

Cost curve definitions are defined as shown in the table below:


Rock Type
default
1
1
2

Mining Cost
($/volume)
6.0
4.0
3.0
5.0

Reference Elevation
0
650
700
800

Haulage Cost
($/volume)
3.0
1.0
0.5
2.0

A default entry is automatically added to the cost curves table. This default entry is used to
specify the waste mining cost curve that will be used for any block in the model with a rock type
that does not have a waste mining cost curve specifically defined for it or no rock type has been
associated with it. The default entry in the above example can be interpreted as The cost to mine
and haul any default block is $6.00 + $3.00 = $9-00.
In the above example there are two rows for rock type 1, that can be interpreted as follows The
cost to mine and haul any waste block between the base of the block model and the lowest
reference elevation (650) is $4.00 + $1.0 = $5.00, and the cost to mine & haul any waste block
between the top reference elevation (700) and the top of the model is $3.00 + $0.50 = $3.50.

37

All blocks between the two reference elevations will be linearly interpolated. e.g. at an elevation of
675 the cost to mine and haul would be $3.50 + $0.75 = $4.25
The entry for rock type 2 can be interpreted as The cost to mine and haul any waste block
between the base of the block model and the first reference elevation (800) is $5.00 + $2.0 =
$7.00, and the cost to mine & haul any waste block between the last reference elevation (800)
and the top of the model is $5.00 + $2.0 = $7.00. ie rock type 2 has a constant cost curve of
$7.00.
It is important to note that in this example all mining costs are expressed as per volume unit of
rock (eg. dollars per cubic metre $/cu.m).

A default entry is automatically added to the cost curves table. For this exercise, we can leave the
default as is because we know all the blocks in the model have been assigned a rock type value
of 1.

38

To define the waste mining cost curve for Rock Type 1, a new line must be created in the table.
To do this, right click with the mouse in the grey area under the default entry of the table. A menu
will pop up. Select Add from this menu to add an empty line to the table.

Once a blank row has been added to the table, enter in the following cost curve information for
Rock Type 1. This defines a constant curve such that it costs $5 + $0.01 to extract a volume unit
of the waste.

39

Ore Mining Costs


Once the waste mining costs are defined, click on the Ore Mining Costs tab pane to define the
ore mining costs for each rock type.

Costs associated with mining ore and hauling it from the pit are defined in the same manner as
waste mining costs discussed above. Cost curves are set up for each rock type representing ore
using reference elevations.

Fill in the Ore Mining Costs as shown to define a constant mining cost curve for Rock Type 1.
As can be seen from the ore mining cost curve, it costs $5.75 + $0.02 = $5.77 to extract a volume
unit of ore from the pit.

40

Block Classification
When the Pit Optimiser examines a block, it works out from the Ore Type tab pane parameters
what its sale price is and whether the block is actually an ore or waste block according to the Sale
Price Cost Curves and the Ore Types that have been defined. Once it is known whether a block
is ore or waste, the Pit Optimiser can then determine the mining costs associated with the block
from the Waste Mining Cost and Ore Mining Cost Curves that have been defined.

Slopes
Next we can define the maximum slope angles for the optimum pit shell that will be produced.
Click on the Slopes tab pane on the Pit Optimisation Parameters form.
The Slopes tab pane should be displayed as shown below:

Maximum slope constraints must be specified to control the shape of the resultant optimal pit
shells. These slope constraints ultimately determine which blocks need to be extracted before a
particular block can be mined and therefore, determines the total net value for a block when
taking into account the blocks above it.
When specifying slope angles, the angle must represent the average slope of the benches and
batters, and must be measured in either decimal degrees or gradients. At the start of this
exercise, we selected decimal degrees for our angle measurements.

41

It is possible to set up different slope angles for different materials or compositions of materials in
the deposit. To do this, you would need to add a new integer attribute to your model that
classifies each block into the different areas that is referred to as a rock type.
You would select the attribute from the Rock Type field and then press Populate Tables.
In our exercise, we will keep things simple and define one set of slope angles that will apply to the
entire model. To do this, we do not have to select an attribute for the Rock Type field. Instead, we
will define default slope angles in the table below:

42

Slope angles must be specified for each of the eight cardinal directions (N, NE, E, SE, S, SW, S,
and NW) and is to be measured from the centre of the pit looking outwards along each of these
directions.
The first entry in the table labelled default will apply to the entire model if a Rock Type attribute is
not defined or a block in the model has not been given a rock type value.
In our exercise, we specified that the resultant optimal pit should have slope angles of no greater
than 45 degrees.

Enter in a value of 45 under the Default column for the table entry labelled default.
Note that when you enter a value, the rest of the angles for the eight cardinal directions are
automatically populated with the same value. If any of the angles need to be changed from this
default, just use the left mouse button to click in that field to modify the value.
If we were to define different slope angles for different rock types in the model, an entry would be
added to the table for each different rock type.
Note
It is important to note that the actual slope angles of the resultant optimal pit shells will be a
compromise between the maximum slope angles defined for each rock type and the plausible
angles that can be formed from the block size specified by the optimisation run. For example if
you specify to re-block during optimisation to 80m x 80m in the X and Y directions, and use a
maximum slope angle of 45 degrees, then you are implying that it is valid to also step up 80m in
the vertical direction, before stepping across 80m horizontally and still maintain a wall angle of 45
degrees. Therefore even though you are not re-blocking in the vertical direction, you can end up
with undesirable results when re-blocking in the X and Y directions.

43

Vertical Limits
Next we can set up the vertical limits of the optimisation to reduce processing time on the number
of blocks processed. Click on the tab pane labelled Vertical Limits on the Pit Optimisation
Parameters form.

In order to minimise the number of blocks that are processed in the optimisation, it is possible to
define a limiting topography surface and base surface or elevation. Any blocks above the
topography or below the base surface / elevation will be ignored in the optimisation.
If the topography surface does not cover the extents of the block model when in plan view, any
blocks outside the extents of the surface will as be ignored by the optimiser. This is equivalent to
cookie cutting the block model in the z direction to the limiting base surface or elevation and
discarding all the blocks outside this area.
Note:
The topography surface will need to encompass an area big enough to cover the surface extents
of the largest optimum pit shell. You will not know the size of the largest pit shell until you have
run the optimisation, so it is better to cover too large an area with the surface topography in the
first instance you may be able to trim the topography for subsequent optimisation runs.

44

Select the file topo1.dtm for the topography surface.

For this exercise we do not have a limiting base surface prepared so we will set a limiting
elevation instead.
Leave the defaults for the Base definition as shown in this image. The limiting elevation is set to
0.0 m because this is the base of the block model.

45

If we had a base surface, the Method chosen would be DTM and the location for the surface
would be selected from the browser.
Finally, the parameters that determine the optimisation method that will be used and where the
results will be stored can be defined.

Optimisation
Click on the Optimisation tab pane on the Pit Optimisation Parameters form to set up these
parameters. The Optimisation tab pane is shown below:

The optimisation parameters determine the method that the pit optimiser will use to calculate an
optimal solution for a deposit at a given sale price. There are two mathematical algorithms to
choose from the Floating Cone method and the Lerchs Grossman method.
These two algorithms can be run separately or the Floating Cone method can be run prior to the
Lerchs Grossman to identify an initial optimisation quickly for the Lerchs Grossman. It is also
possible to control the amount of processing each algorithm does before producing a result.
Pit shells (dtm surfaces) are produced showing the base of the optimum pit for a particular sale
price and these pit outlines can also be written back into the block model for verification. Sale
price discounting factors can also be applied to show the variations in the optimum pits at
different prices. Nested pits are produced and can be used as an indication for maximising the
net present value (NPV) for the mine and for mine planning. In addition, detailed reports can also
be produced.

46

Floating Cone
An explanation of all the fields on this tab pane is given below.

By selecting to run the Floating Cone algorithm, a solution will be produced quickly however the
result may not be the optimal pit for the deposit. It may only be a sub-optimal pit.
For our exercise, we will not run the Floating Cone algorithm so leave this field unchecked.
Interrupt : Increment %

47

The Increment % field is used in conjunction with the Floating Cone algorithm and determines if
the optimisation is allowed to run to completion or stop early in order to save computation time.
A value of 0 % will result in the algorithm running to completion whereas a value greater than 0 %
will force the algorithm to stop prematurely. Typical used values are between 0.11%.
Lerchs Grossman

It is possible to run the Lerchs Grossman algorithm in conjunction with the Floating Cone
algorithm. The Floating Cone algorithm will produce an initial sub-optimal pit for the Lerchs
Grossman algorithm to work on and therefore, reduce the time taken to produce an optimal result.

48

Interrupt : Major Cycles


As with the Floating Cone algorithm, it is possible to interrupt the Lerchs Grossman algorithm to
save computation time. This algorithm works in cycles and will pause at specified cycles to
determine the ratio between the current cycles pit value and the volume. When there is no
change in this ratio, an optimal solution is reached.

The Major Cycles field is used to decide which cycle the ratio between the current value of the
pit and volume will be calculated.
A value of zero will allow the algorithm to run to completion; anything greater will stop the
algorithm early on a cycle that is a multiple of the Major Cycles value.
Typical values to use are anything between 10 and 40.
We will let the algorithm run to completion, so enter a value of 0 in this field.

49

Block Size (X, Y)

The block size that the pit optimiser works on can be different to the user block size of the block
model. A list of possible block sizes that can be used will appear in the combo box list.
For this exercise, we will use the user block size of 20, 20.

Note:
Using a block size equal to the user block size generally gives the best slope approximations.
Using a block size smaller than the user block size (in a sub-blocked model) generally results in
worse slope approximations due to geometry problems for slope directions that are not normal to
the block faces
Use the function BM MODEL SUMMARY to find the user block size.
It is important to note that the actual slope angles of the resultant optimal pit shells will be a
compromise between the maximum slope angles defined for each rock type and the plausible
angles that can be formed from the block size specified by the optimisation run. For example if
you specify to re-block during optimisation to 80m x 80m in the X and Y directions, and use a
maximum slope angle of 45 degrees, then you are implying that it is valid to also step up 80m in
the vertical direction, before stepping across 80m horizontally and still maintain a wall angle of 45
degrees. Therefore even though you are not re-blocking in the vertical direction, you can end up
with undesirable results when re-blocking in the X and Y directions.

50

Results
The Pit Optimiser produces reports, pit shells of the optimum pit and also writes back information
to the block model for verification. The following fields determine where the output produced will
be saved:
Pit Attribute

All the blocks that are in the resultant optimal pit can be flagged with a value that corresponds to
one of the values entered in the Discount % field (discussed below) and will be stored in the
attribute chosen in the Pit Attribute field.
The discount % values can be stored in an existing attribute, or by entering a new attribute name,
an attribute will be created to store these values.
Enter an attribute name of discount into the Pit Attribute field.
Note that all blocks in the model will be given an initial default value of -9999.0.
Saving the discount percentage values back to the model is useful for calculating volumes and
guiding the design of a practical pit based on the shape of the optimal pit shell that has been
generated. It is important to remember optimal pits may not be practical.
Discount %
The Discount % field is used to generate a series of nested pit shells.
A discount percentage is a percentage that is subtracted from the sale price of the ore material to
return a new sale price, and therefore results in a different optimal pit being produced from the
sale price entered on the Ore Type tab pane. Discount percentages can be applied to the sale
price of the ore to calculate the sensitivity of the optimal pit to variations in the sale price. For
each discount percentage entered in the Optimisation tab pane, an optimal pit shell will be
generated and can be saved or displayed in graphics for comparison.

51

The convention the Pit Optimiser uses when specifying discount percentages is that positive
numbers reduce the sale price for the ore by that percentage, while negative numbers increase
the sale price for the ore by that percentage. For example, if the sale price of some ore material is
set to $23 per unit, the following shows the new sale price for the ore once a discount percentage
is applied:
Discount Factor
20
10
0
-10
-20

Original Sale Price


$/unit
23.00
23.00
23.00
23.00
23.00

Discount Value $/unit

New Sale Price $/unit

- 4.60
- 2.30
0.00
+ 2.30
+ 4.60

18.40
20.70
23.00
25.30
27.60

By specifying several discount factors to apply to the sale price, a series of nested optimal pit
shells will be generated such that, the optimum pit with the lowest sale price (highest discount
factor) is the most profitable pit and therefore should be mined the earliest.
The pit with the next lowest sale price, is the next most profitable pit (second highest discount
factor) and should therefore be mined next. This is shown graphically below:

10 %
Discount

20 %
Discount

0%
Discount

As can be seen in the diagram above, by selecting decreasing discount factors and therefore
increasing sale prices, an optimum mining sequence can be generated from the nested pits to
maximise the Net Present Value (NPV) of the project.

52

For this exercise, we will keep things simple by not applying any discount factors and hence enter
a value of 0.0 for the first row of the Discount % field so that it will generate an optimum pit using
the sale price specified on the Ore Type ($23.00) tab pane.
In this case, the sale price that will be used is $23.00 per gram of gold.

Output Pit Location

The pit shell representing the base of the optimal pit for the Discount % (sale price) defined in the
previous field can be saved to a dtm file.

53

Enter in a value of pit for the Output Pit Location field. By default, the discount % value for the
pit is appended to the filename. In this example, the pit shell for a discount % of zero will be
saved to a file called pit0.dtm.
If this field is left blank, the optimal pit shell will not be saved.
Saving the pit shell is beneficial as it can be contoured and sectioned, volumes can be reported
and it can assist in practical pit design.

Output Pit Layer

The resultant pit shell can be displayed in graphics immediately after the optimisation is complete.
This will only happen if a graphics layer name for this pit is entered into this field.
Enter in a value of pit0 for the Output Pit Layer field so that the pit shell for a discount % of zero
will be saved to a layer called pit0 where 0 reflects the discount value of the optimal pit.
If the layer name is left blank, the optimal pit shell will not be displayed in graphics.

54

Pit Colour

Each pit shell can be displayed in a different colour, when you choose to display the shells in
graphics. By selecting different colours, it makes it easier to differentiate between the different
pits produced for each discount factor.
In this exercise, select forest green to represent the shell with a zero discount factor.
Value Attribute

55

The Pit Optimiser will calculate the net value for each block according to the sale price (given
discount %), milling costs and mining costs for the ore and waste material. This value can be
stored back into the block model and is expressed in $/volume units.
Enter in a value of net_value0 for this field.
The value attribute can be stored in an existing attribute or a new attribute that will be
automatically added to the model.
Saving this information makes the attribute suitable for use as the net value attribute when using
the $/volume method for defining ore types.
Overwrite Existing Result Files

If the result filenames selected already exist on your system, the files can be overwritten if the
Overwrite Existing Result Files field is checked.
If this field is not checked, the results from this optimisation will not be saved if the files already
exist.
For this example make sure this field is checked

56

Shrinkage
Since the surface representing the base of the pit is based on blocks from the block model, it will
have vertical faces. These vertical faces prevent the surface from being used as a DTM in other
functions because a DTM is not allowed to have vertical faces. These vertical faces however can
be avoided if the base of each block at the bottom of the pit is shrunk slightly.
The following diagram shows a section through a resultant optimal pit shell without shrinkage.
When looking in plan view, the base of the optimal pit is a 40 m x 40 m block. This causes vertical
edges to be created in the pit shell and Surpac Vision does not accept this as a valid dtm. As a
result, the pit shell cannot be used for contouring, sectioning or volumes.

To resolve this problem, a Shrinkage factor can be applied to the blocks to shrink them slightly to
eliminate the vertical edges. If a shrinkage value of 10 m is introduced for the example above, this
reduces the base of the optimal pit to a 20 m x 20m block to form the following pit shell:

57

If a shrinkage factor of 20 m or more is used, the base of the pit in plan view will appear as a
single point as shown in the diagram below:

The Shrinkage field lets you specify the amount of shrinkage to use. A value greater than the X,
Y extents (block size specified above) reduces each horizontal surface to a point.
For this example, we will use a very small Shrinkage value of 0.1 m. This should create shell
edges that are slightly non-vertical and so will form a valid dtm.

58

The Optimisation tab pane should now be filled in as follows:

Output Report File Name

A report file is created that summarises the final value of the optimal pits produced and their
volumes. It also details the intermediate results calculated by both the Floating Cone and Lerchs
Grossman algorithms and reports all the input parameters entered that resulted in these pits
being computed.
Enter a report name of gold_opt_report in the Output Report File Name field. The extension
and format of the report is determined by the next field. A report will always be produced and so
you must fill in a name for the report.

59

Output Report File Format


The output report can be written out to six different formats:
*.not
*.csv
*.htm / .html
*.rtf
*.pdf
*.ps

Surpac Note File


Comma Separated File
Hypertext Markup Language
Rich Text Format
Adobe Acrobat
Postscript

To produce a Surpac Note file of the report, select .not from the Output Report File Format
field.
The resultant report file will be called gold_opt_report.not.

60

Debug Report
The Debug Report option will report intermediate results produced by the Floating Cone and
Lerchs Grossman algorithm depending on which algorithm/s were chosen. The debug information
shows the pit value, volume and ratio between the two for each cycle of the algorithm.

Note:
The number of debug blocks output can be increased in the menu, Customise => Default
preferences => Applications tab

Check the Debug Report box to report the debug information.

61

From Surpac Vision version 5.2 onwards, you can select to report by bench elevation. Un-tick the
Bench Report option for this exercise. In the next section we are going to use the alternative
method of achieving this by using block model reporting.
Press Apply on the Pit Optimisation Parameters form to run the pit optimisation.
Results
Report
As soon as the optimisation is complete, a window will pop up with the report generated from the
optimisation. A copy will also be saved in the format specified on the Optimisation tab pane of
the Pit Optimisation Parameters form. You should have a Surpac note file called
gold_opt_report.not in your current working directory.

62

The report generated for this exercise should look like the following:

Surpac Minex Group


Pit Optimisation
Optimisation Report
08-Jun-06
Results:
Discount
0.00

Volume
3,860,000.00

Value
31,872,712.00

Output
pit0.dtm

Debug:
**** Model Geometry Summary ****
X
Y
Z
Number of Blocks =
57
47
54
Block Size
=
20.00 20.00
5.00
$/unit calculations
--------------------------------------------------------------------------------------------------Block coordinates (Y, X, Z): ( 7070.000, 1200.000, -2.500)
Retrieved 1 block.
$/unit calculations
1.

Block size (Y, X, Z): ( 20.000, 20.000,


5.000)
Block volume: 2000.00 m3
No SG attribute.
Ore type: 0
No Sale Price or Milling cost curve for this ore type. Block treated as waste.
Block is waste, value: -10020.00

Total value of blocks: -10020.00


:
-5.01 $/m3
All optimiser blocks outside the block model are treated identically, no further debug information will be output for these
blocks.

63

Starting Lerchs Grossman.


Cycle - Maximum Current
- Value/Volume Ratio
No.
Value Value
Volume - Total Incr.
10
34200800
10337389
190000 54.40731 54.40731
20
33462832
10337389
190000 54.40731
30
33033760
10337389
190000 54.40731
40
32768912
10337389
190000 54.40731
50
32537160
10337389
190000 54.40731
60
32429250
11188417
298000 37.54502 7.87989
70
32315832
11188417
298000 37.54502
80
32246756
11188417
298000 37.54502
90
32141822
11188417
298000 37.54502
100
32060916
11188417
298000 37.54502
110
32016234
11188417
298000 37.54502
120
31979832
11188417
298000 37.54502
130
31929592
11188417
298000 37.54502
140
31888778
11188417
298000 37.54502
145
31872712
31872712
3860000 8.25718 5.80693
Optimum Pit Value = 31872712
Volume =
3860000

Inputs:
ORE TYPE
Method...: $/unit
Ore Type.: ore_type
SG.......: Grade....: gold
Yield....: gold
Sale Price Curves:
Ore Type
1

Sale Price
23.00

Grade Cutoff
0.000

Default Sg
2.50

Recovery (%)
100.00

Milling Cost Curves:


Ore Type
1

Mill Grade
0.000

64

Yield (%)
93.00

Cost ($/mass)
25.00

MINING COSTS
Rock Type Definition:
Method...: Depth
Rock Type
1

Depth
300.00

Waste Mining Costs:


Rock Type
default
1

Reference Elevation
0.00
230.00

Mining Cost ($/volume)


0.00
5.00

Haulage Cost ($/volume)


0.00
0.01

Reference Elevation
0.00
230.00

Mining Cost ($/volume)


0.00
5.75

Haulage Cost ($/volume)


0.00
0.02

Ore Mining Costs:


Rock Type
default
1

SLOPES
Rock Type: Rock Type
default

Default

North

North-east

East

South-east

South

Southwest

45

VERTICAL LIMITS
Topography Location: topo
Topography ID......: 1
Base Elevation.....: 0

OPTIMISATION
Lerchs Grossman Interrupt: 0
Block Size (X, Y)........: 20, 20
Shrinkage................: 0.1
Pit Attribute............: discount

As can be seen in the report, the optimum pit for this ore deposit has a net value of
$31,872,712.00 and volume of 3,860,000 m3 when no discount percentages are applied to the
sale price of gold.
The Debug information printed to the report tells us how the Lerchs Grossman algorithms came
to the optimal solution.

65

West

North-west

Graphics Layer
In addition to the report, the optimum pit shell for the sale price of $23.00 per gram of gold will be
displayed in graphics with the constrained block model that was set up earlier. The pit shell will be
stored in a graphics layer called pit0, as was specified on the Optimisation tab pane. This should
appear as follows:

The above image shows which blocks from the ore deposit will be mined from the optimum pit
(displayed in yellow). If you did not choose to save the pit shell to a dtm file, you can save it now
by making the graphics layer pit0 the active graphics layer and then go to File Save String /
DTM to save the pit shell.
This dtm file can now be used for contouring, extracting cross sections, reporting reserves and
can assist in practical pit design. The optimum pit may not be a practical pit as ramps and
benches still need to be incorporated into the design.
Pit Attribute
If the discount percentage was written back to an attribute in model, it is possible to constrain the
block model by the different discount values and use the constrained models for cross sections,
reporting reserves and assisting in practical pit design.
In this exercise, we wrote the discount percentage back to an attribute called discount. To look
at the blocks that fall within this pit, we need to firstly remove the last graphical constraint that
only shows the blocks that have gold grade values of greater than zero. To do this, select
Constraints Remove Last Graphical Constraint from the block model menu.
To show all the blocks within the optimum pit calculated, we can constrain the model to show only
the blocks where the discount attribute is equal to 0.0 because no discount percentage was
applied in our calculation.

66

Fill in the Constraints New Graphical Constraint form as follows:

After pressing apply on this form, only the blocks within the optimum pit will be displayed. The
constrained block model should be similar to the image below:

It is possible to report quality information, volume and tonnages from the optimum pit using the
discount attribute. To do this, select Block Model Report from the block model menu.

67

Enter the following details on the form that appears:

Press Apply to display the Block Model Report form and enter in the following information to
report the average gold grade, volume and tonnage for 20 m benches:

68

Press Apply on this form to add two constraints on the model. The first constraint is to only report
from blocks with a gold value of greater than zero ie. the ore blocks; ignore the waste blocks:

The second constraint is to report from only blocks that have a discount value of 0.0 and
therefore are within the optimal pit:

Press Apply on this form to produce the report, as shown in the image following:

69

Net Value
The net value for each block has been written into the model and stored in an attribute called
net_value0, as was specified on the Optimisation tab pane. The value shows the net value
($/volume) that would be obtained from a particular block if it were extracted in isolation. This net
value is calculated from the Sale Price Curves, Milling Cost Curves and Mining Cost Curves that
were defined on the Pit Optimisation Parameters form.
Remembering that net values are negative for waste blocks and positive for ore blocks, you can
colour the model to show which blocks have been categorised as waste blocks and ore blocks in
the optimal pit.

70

From the Block model menu, select Display, then Colour model by attribute and fill in the form
as shown below.
Note that the second colour in the colour list has been changed to red.

All waste blocks will be displayed in blue and all ore blocks will be displayed in red. This can be
seen in the following image:

71

Important Note:
If you were to display only the blocks in the model with a positive net value (the ore blocks), you
may find that some of those blocks actually have negative gold grades (waste). This is shown in
the diagram below. The red coloured blocks are the blocks with a positive net value and a gold
grade of greater than zero. The blue coloured blocks are blocks with a positive net value however
have a negative gold grade value.

This will occur when constraints have been used in the estimation of the model. For example, a
block may be sub-blocked and only a portion of those sub-blocks may have been estimated with
a value. When calculating the net value for the block, the sale price of the sub-blocks with a
positive gold grade cover the cost of also extracting the waste sub-blocks and so therefore, it is
possible for waste sub-blocks to have a positive net value.
The net value of the block is calculated based on the block size that was specified on the
Optimisation tab pane of the Pit Optimisation Parameters form. All sub-blocks within these blocks
are assigned the same net value.
Message Window
Finally, the message window will report similar to the following information:
Total Resource Nett Value = -604,953,220.80
Number of Model Blocks = 139,785
Number of Positive Blocks = 798
Results are in the file pit0.dtm
Results are in the file c:/data_sets/pit_optimiser/tutorial_data\gold_opt_report.not

72

The Total Resource Net Value that is reported is the sum of all the net values for each block in
the entire model, not just the blocks in the optimal pit. In our case, we have a very large negative
value because there are more waste blocks in the model than ore blocks.
Note that this total resource net value is different to the pit value shown in the report that is
produced as the pit value only sums the net values of the blocks that are just within that optimal
pit.
The Number of Model Blocks is how many blocks in the model; the Number of Positive
Blocks are the number of ore blocks that have been identified in the model and the remaining
two lines report the dtm file the pit shell has been saved to and the name of the report file.

73

Exercise 2 - Ore Discounting Factor


Overview
Using the same optimisation parameters as the previous exercise, we will add a positive and
negative discount factor to the sale price of gold. Remember that positive discount values reduce
the sale price of the gold whereas negative discount values increase the sale price.
As a result, different optimal pits will be generated for each different sale price and therefore a
nested series of pit shells will be produced.
The data files required for this exercise are:
block_model.mdl
topo1.dtm
topo1.str
gold_$unit.pop
Note that the optimisation parameters file gold_$unit.pop was created in the previous exercise, if
you do not have this file, use the file gold_$unit_ex1.pop instead.

Requirements
This exercise assumes you have done the previous exercise and you are familiar with all the
fields on the Pit Optimisation Parameters form and the data that was used.
If at any time you are unsure about any field on the form, refer back to the previous exercise.

Ore Discounting Factor


If you still have the previous results displayed on your screen, reset graphics.
Make sure you have the block model file gold.mdl open and that you have the block model menu
displayed.
From the Block model menu, select Pit Optimisation , then enter gold_$unit on the form
displayed and press Apply. There is no need to enter in the file extension for this field. If you do
not have this file, use gold_$unit_ex1 instead.
This parameter file contains all the optimisation parameters that were entered into the Pit
Optimisation Parameters form in the last exercise and these values will be displayed on the next
form that pops up. This enables you to rerun the previous optimisation or make modifications to
the parameters and then run a new schedule. Any changes made to the values on the Pit
Optimisation Parameters form will be written back to this parameter file.
In this exercise, the only parameters we will be modifying are the discounting percentages that
will be applied to the sale price. For the previous exercise, no discounting percentages were
applied. This time we will compare the optimum pits produced for a 10% discount (a decrease in
sale price to $20.70 per gram) and a -10% discount (an increase in sale price to $26.30 per
gram).

74

Click on the Optimisation tab pane on the Pit Optimisation Parameters form and fill in the
discount percentages as shown below:

Apply the form and the pit shells should be displayed in graphics and appear similar to the
following image:

-10 %
Discount

0%
Discount

10 %
Discount

75

As was discussed in exercise one, smaller optimum pit shells will be produced as the sale price of
the ore material decreases. This is what can be seen from the above results. The thistle coloured
pit corresponds to a discount of 10 % (sale price is reduced by 10 %). This pit is smaller than the
optimum pit generated for the sale price with no discount (yellow coloured pit), which is smaller
than the optimum pit generated for a discount value of -10 % (sale price increases by 10% - the
blue coloured pit).
A series of nested pits have been calculated.
Report
Once again, a window will pop up to display a summary of each optimum pit and should appear
as follows:

Discount
-10.00
0.00
10.00

Volume
4,326,000.00
3,860,000.00
2,386,000.00

Value
41,486,199.00
31,872,712.00
23,806,499.00

Output
pit-10.dtm
pit0.dtm
pit10.dtm

From the above report it can be seen, the higher the sale price for the ore, the higher the value of
the pit. Therefore the pit with the lowest price (the most discount) should be mined first because
the pit is smaller and so has less risk associated with it. The pit is breakeven at a lower sale price.
A graph can be generated to show the changes in sale price with the net value of the pits:

$45,000,000
$40,000,000
Pit Value ($)

$35,000,000
$30,000,000
$25,000,000
$20,000,000
$15,000,000
$10,000,000
$5,000,000
$0
$20.70

$23.00

$26.30

Sale Price ($/g)

Pit Attribute
If a series of nested pits are created, the smallest pit containing the block will have its discount
value written back to the block model in the Pit Attribute. To show this, do the following:
Reset graphics to clear the optimal pit shells from the screen. We do not need to save these as
they have already been saved.

76

From the Block model menu, select Display, then Display block model, to display the block
model. Apply the following defaults:

From the Block model menu, select Constraints, then Remove all graphical constraints, to
remove any constraints applied on the block model.
Now constrain the model to only see the blocks that have a discount attribute value of > -9999.00
(the default value).
From the Block model menu, select Constraints, then New graphical constraints, enter in the
following constraint:

By colouring the blocks by the discount factors, we will be able to see what blocks belong to each
pit.

77

From the Block model menu, select Display then Colour Model by Attribute, and fill out the
form as shown below:

As can be seen by the following image, each block will be populated with the discount value for
the smallest pit that contains it:

78

Message Window
The message window gives a summary of the net value for the entire block model and the nested
pits, from the highest sale price to the lowest sale price, are generated. The report should appear
as below:
Total Resource Nett Value = -589,942,742.10
Number of Model Blocks = 139,785
Number of Positive Blocks = 913
Results are in the file pit-10.dtm
Total Resource Nett Value = 31,438,803.89
Number of Model Blocks = 74,503
Number of Positive Blocks = 453
Results are in the file pit0.dtm
Total Resource Nett Value = 22,915,224.05
Number of Model Blocks = 74,270
Number of Positive Blocks = 370
More Discounting
This time we will generate six nested optimal pits to compare the results of increasing discounting
factors.
Reset graphics to remove the previous results.
From the Block model menu, select Pit Optimisation, then select the pit optimisation
parameters file that was used to generate the nested pits above. This file should be called either
gold_$unit.pop or gold_$unit_ex1.pop.

79

Click on the Optimisation tab pane and enter in the following discounts leaving all the other
parameters the same.

The following pit shells will be displayed in the graphics viewport:

10 %
Discount

0%
Discount

60 %
Discount

50 %
Discount
By examining these results carefully, you can see that the more discount applied, the smaller the
optimal pit and hence, the smaller the net value of the pit.

80

This is also shown by the report that is generated:


Discount
0.00
10.00
20.00
30.00
40.00
50.00
60.00

Volume
3,860,000.00
2,386,000.00
722,000.00
664,000.00
642,000.00
614,000.00
454,000.00

Value
31,872,712.00
23,806,499.00
18,669,302.00
14,603,836.00
10,771,492.00
7,036,592.00
3,650,717.00

Output
pit0.dtm
pit10.dtm
pit20.dtm
pit30.dtm
pit40.dtm
pit50.dtm
pit60.dtm

The above results can be graphed as follows:


35,000,000

Pit Value ($)

30,000,000
25,000,000
20,000,000
15,000,000
10,000,000
5,000,000
0
9.20

11.50

13.80

16.10

18.40

20.70

23.00

Sale Price ($/g)

Producing a series of nested pit shells as above can also be used as a guide for the pit
development (push backs) throughout the life of the mine.

81

Exercise 3 - Assigning Net Values to block model


Use block maths to assign the net value of each block in the model based on gold grade cutoffs.
The cutoff and sale prices that will be used are shown in the following table:
Gold Grade Range (g/t)
1 1.3
1.3 1.5
> 1.5

Sale Price ($/t)


16
18
20

In addition, the cost of extracting both ore and waste blocks is $5/t.
You will now generate an optimal pit where the maximum allowable slope angle is 30 degrees for
the entire pit except for the southern region where the maximum allowable slope is 40 degrees.
Open the block model gold.mdl if it is not already open.
A new attribute must be added to the model to store the net value for each block.
From the Block model menu, Select Attributes, then New, to create a float attribute as follows:

The background value for the net value has been set to -5 to indicate that the cost of mining a
block (whether it is ore or waste) is $5/tonne.
From the Block model menu, select Save, to save the block model so that it remembers the new
attribute.
The next step is to incorporate the sale price into the net_value attribute for all the ore blocks in
the model.
From the Block model menu, select Attributes, then Maths.

82

The first mathematical assignment that will be assigned will be the sale price of $16/t for any
blocks with a gold grade between 1.0g 1.3g. Enter the following function into the Attributes
Maths form:

Press Apply on this form to display the block model constraints form. The following constraints
are to be applied:

83

Press Apply on this form to assign the net value for all blocks with a gold grade between 1.0g
1.3g.
From the Block model menu, select Save to save the new net_value assignment. A confirmation
form will appear, press Yes to proceed.
Verify that the maths assignment worked. From the Block model menu, select Display, then
Display Block Model. From the Block model menu, select Constraints, then New Graphical
Constraints and enter the following:

Only the blocks with a gold grade range between 1.0g 1.3g will be displayed as these will be
the only blocks that now have a net value of greater than the default value of -5.
The reason why the constraint net_value > 0 was used above is because when assigning net
values, all ore blocks must have a positive net value (profitable to mine) while waste blocks must
have a negative net value (cost incurred to mine).

84

The following image should be displayed on your screen:

For extra verification, lets colour the blocks to make sure only the blocks within the gold grade
range 1.0g 1.3g are displayed in this constraint.
From the Block model menu, Select Display Colour Model By Attribute from the block
model menu and enter in the following information:

85

You should see by rotating the block model around that all the blocks displayed should be
coloured in blue. This is shown below:

Now we will assign the net value for any blocks with a gold grade range between 1.3g 1.5g. The
sale price for these blocks is $18/t.
From the Block model menu, select Attributes, then Maths, and fill out the form as shown
below:

Press Apply on this form to display the constraints form.

86

Fill out the form as shown below.

Press Apply on the constraints form to perform the mathematical operation.


After the operation, make sure you save the model otherwise the results will be lost the next time
you open the model. To do this, select save from the block model menu and press Yes on the
confirmation form that pops up.
To graphically verify that the above operation worked, remove all the previous constraints from
the screen .
From the Block model menu, select Constraints, then Remove all graphical constraints.

87

From the Block model menu, select Constraints, then New Graphical Constraints and enter
the following to add new constraints.

88

Press Apply on the constraints form and only blocks that have a net value of greater than zero
(and therefore are ore blocks) and with a gold grade between 1.3g 1.5g will be displayed. This
means the mathematical operation was successful. If the operation was unsuccessful, no blocks
would have been displayed on the screen.
Now for the last mathematical operation that will be applied. All blocks with a gold grade of
greater than 1.5g will be given a sale price of $20/t.
From the Block model menu, select Attributes, then Maths, and fill out the form as shown
below.

Press Apply on this form to display the constraints form. Enter in the constraints as shown below:

Apply the constraints form to proceed and then select Save from the block model menu to save
the new net values for the blocks with a gold grade of greater than 1.5g.
Press Yes on the confirmation form that pops up.
From the Block model menu, select Constraints, then Remove all graphical constraints, to
remove the previous graphical constraints.
Reset Graphics to clear the graphics view port.

89

Now that we have a net value attribute stored in the model that takes into account mining costs
and sale prices of the blocks in the model, we can start entering the parameters for the
optimisation.
From the Block model menu, select Pit Optimisation, to display the Pit Optimisation form. We
will create a new parameter file for this exercise.

Press Apply to display the Pit Optimisation Parameters form.


We must now fill out the Ore Type tab pane.

Select $/mass from the Method combo box. We are selecting this method because the net_value
attribute that we just set up is expressed in $/t ($/mass unit).

90

As with the previous two exercises, we will select the ore_type attribute for the Ore Type field to
describe which areas of the model are to be considered as the same material.
Note that the ore_type attribute has assigned all the blocks in the model to be of the same
material.

For the SG (Optional) field, select the sg attribute in the model.

91

Select the net_value attribute that we created during the first exercise for the Net Value
Attribute field.
This attribute tells the Pit Optimiser which blocks are ore blocks (positive net values) and which
blocks are waste blocks (negative net values).
These are the only fields that need to be filled in this tab because the table on the Ore Type tab
pane only needs to be filled in if an attribute for the SG (Optional) field is not chosen.
Click on the Mining Costs tab pane to display the form below:

92

There is no need to enter any information in the Mining Costs tab pane because the mining costs
must already be taken into account in the net value attribute that was chosen on the Ore Type tab
pane.
Now click on the Slopes tab pane so we can define the maximum slope constraints for the
resultant optimal pits.

For this exercise we will select a maximum default slope angle of 30 degrees. Enter in a value of
30 in the default row of the Default column in the table.

93

This time we will add in an extra criterion that a maximum slope angle of 40 degrees is to be used
in the southern region of the pit.
To enter this information, left click the mouse into the field called South East and change the
current value of 30 to 40. Do the same for the field labelled South and South West.
Once the maximum slope angles of the resultant pit have been established, click on the Vertical
Limits tab pane.

As we are working with the same data set as the previous exercises, the vertical limits will be the
same.
Select topo1.str for the topography location and limit the base by an elevation of 0.0.
Click on the Optimisation tab pane to determine how the optimisation will find a solution.

94

Once again, select the Lerchs Grossman algorithm to perform the optimisation.
Check the Lerchs Grossman checkbox and leave the Major Cycles field at 0 so the optimisation
runs to completion.

We will write the results back to the block model and will store the value in a new attribute called
pit_number. To do this, type the new attribute name pit_number into the Pit Attribute field.

95

A report name must be entered to save a summary of the resultant optimum pit volume and net
value.
For this exercise, we will save the report to a Surpac note file called pit_$mass_report.not. To
do this, enter the file name pit_$mass_report into the Output Report File Name field and select
.not from the Output Report File Format combo box.

Finally, we will save the resultant DTM pit shell that will be created to a file called
pit_$mass0.dtm. Remember that the Discount % is automatically appended to the Output Pit
Location name. We also graphically display the result in a layer called pit_$mass and the pit
shell will be coloured in cyan.

96

There is no need to enter in an attribute name for the Value Attribute field above because we
manually calculated the net value for each block at the start of the exercise and so, we already
have the net value stored in the model.
Note:
With the $/mass and $/volume methods, you cannot enter in discount percentages to affect the
sale price of the ore. The reason for this is that the sale price has been incorporated into the net
value that we assigned at the beginning of the exercise. Therefore the Pit Optimiser does not
know the sale price of the ore to be able to apply discount factors.

Press Apply on the Pit Optimisation Parameters form to run the optimisation
The resultant optimal pit shell should appear in graphics as shown below:

By displaying the block model and constraining the pit to show only the blocks with a gold grade
value of greater than one (only blocks with a grade value of greater than one were given a sale
price), we will be able to see which ore blocks should be mined to maximise profit.

97

From the Block Model menu, select Display, then Display block model, to display the entire
model. Apply the drawing defaults shown below:

From the Block model menu, select Constraints, then New Graphical Constraints and enter
the following to add new constraints.

98

The graphical constraint should appear as follows:

From the Block model menu, select Block model then Report, and fill in the form to find out the
tonnage and average grade for gold in the optimal pit.

Press Apply on this form to display the Block Model Report form.

99

Fill in the form as shown below:

Press Apply on this form and constrain the report firstly by only considering all the blocks above
the optimum pit shell:

100

Secondly, only report on the ore blocks in the model:

After applying the above constraints, the following report should be generated. The volume and
tonnage is reported by 20 m benches:

Z
230.0 -> 250.0
210.0 -> 230.0
190.0 -> 210.0
170.0 -> 190.0
150.0 -> 170.0
130.0 -> 150.0
Grand Total

Volume
39500
107375
12000
38750
47500
4000
249125

Tonnes
94800
257700
28800
93000
114000
9600
597900

Gold
2.13
2.72
1.80
1.96
1.86
1.00
2.27

Report
The following report will be generated in the window that pops up:
Results:
Discount
0.00

Volume
552,000.00

Value
6,463,950.00

Output
pit_$mass0.dtm

This shows the volume of the optimal pit is 552,000 m3 and the net value of the pit is
$6,463,950.00 This report is saved to a file called pit_$mass_report.not.

101

Alternative way of getting bench reports available from Surpac version 5.2 onwards
Reset Graphics to clear the graphics view port.
Use the same block model that you have saved the net value attribute that takes into account
mining costs and sale prices.
From the Block model menu, select Pit Optimisation, to display the Pit Optimisation form and
use the parameter file gold_$mass.pop that was created for the above exercise.
Click on the Report tab and fill it in as shown below:

102

Results:
Discount
0.00

Bench
Elevation
130.00 150.00
150.00 170.00
170.00 190.00
190.00 210.00
210.00 230.00
230.00 250.00
Total pit

Volume
552,000.00

Value
6,463,950.00

Waste
Mass
0.00

Waste
Volume
0.00

Waste
Value
0.00

Ore Mass
11,840.00

Ore
Volume
4,000.00

104,591.25

44,000.00

162,843.75

58,000.00

135,670.00

56,000.00

135,005.00

48,000.00

36,622.50

16,000.00

34,418.75

12,000.00

111,643.75

46,000.00

367,645.00

130,000.00

200,723.75

88,000.00

138,418.75

50,000.00

589,251.25

250,000.00

451,552.00
637,744.00
143,609.00
503,914.00
875,621.00
2,612,440.
00

850,171.25

302,000.00

Output
pit_$mass0.dtm

Ore Value

Gold (1)

130,240.00

1.00

Stripping
Ratio
0.00

1,679,368.
00
1,457,411.
00
405,425.00

1.56

0.76

1.64

1.17

1.61

1.33

2.33

0.35

1.68

1.76

1.92

0.83

4,281,564.
00
1,122,382.
00
9,076,390.
00

Note: Even though you can get a quick bench report, by the optimiser Reports tab, it is not as
versatile as the Block Model Reporting. For example you can not specify constraints,/or the
number of decimal places to use when reporting.

Pit Attribute
From the Block model menu, select Constraints, then Remove all graphical constraints, to
view all the blocks in the model that are in the optimal pit. The entire model will be redisplayed.
From the Block model menu, select Constraints, then New Graphical Constraints and enter
the following to add new constraints.

103

This will show all the blocks within the optimal pit as shown below:

Rotated Block Models


The pit optimiser is only able to handle rotated models around the Z axis only. That is, a model
where the bearing has been set to something other than 0. It will not deal with a plunged or
dipped model.

104

You might also like