You are on page 1of 72

SME Annual Meeting 2017

Workshop COSMO Suite

Simultaneous Stochastic Optimization of


Mineral Value Chains

with a starting simple example


Outline
Introduction

Workshop Goals

Input Data

Using the COSMO Suite

Conclusions

2
Introduction - COSMO Suite

COSMO Suite is a tool to help you:


Organize your simulation data (e.g. orebody models).

Model your mineral value chain, with complex, non-


linear transformations in the processing streams.

Perform stochastic simultaneous optimization.

Quickly generate & analyze risk profiles of production


forecasts.

Visualize your orebodies and extraction sequence.


3
Simultaneous Stochastic Optimization of Mineral Value Chains

Mineral Value
Chain Model

Orebody Simulations Mine 1 Orebody Simulations Mine 2

Multiple Elements
Sim 1 Material Types
Geological Zones Sim 1 Sim 2
(boundaries, volumes)
4
Sim 2 Sim n Sim n
This Workshop A Copper Deposit
Input: Orebody Simulations (Cu)

A Simple Mineral Value Chain Model

Sim 1

Sim 2 Sim n

About 15 to 20 is a
reasonable number
(see support scale effects)

5
Input Data
Orebody Simulations Pit & Zones

X Y Z Mass (t) Cu (t) MaterialType X Y Z Zone


(0/1)
1
Info: Info:
20 Cu orebody simulations (individual files) Geotechnical zones are static
Minimum coordinates: 12670, 9670, 39 across all scenarios.
Block sizes: 20x20x10 m3 1 zone: 45o slope angles.
Model size: 99x64x36 (blocks, xyz) Pre-processed pit not
Block Density: 2.7 t/m3 necessary, but helps to speed
Materials: 0 (Waste), 1 (Mineralized) up this workshop.
C:\Demo\Input Data\CuSim1.txt C:\Demo\Input Data\Zones.txt

C:\Demo\InputData\CuSim20.txt 6
Input Data
Orebody Simulations Information provided for each block
Column Units Simulated? Information
Header
X Meters No X coordinate taken at center of block
Y Meters No Y coordinate taken at center of block
Z Meters No Elevation (Z) taken at center of block
Mass Tonnes No (20m * 20m * 10m)*(2.7 t/m3) = 10 800 t
CuTonnage Tonnes Yes (Block copper grade (%) * Mass) / 100
MaterialType N/A No Coded (pre-processed):
1: Block lies within the mineralized envelope
0: Block lies outside the mineralized envelope
(bedrock)
Recall:
Block sizes are 20m * 20m * 10m in the X, Y, Z directions, respectively.
Block density is 2.7 t/m3
Block copper tonnages have been pre-processed (block copper grades are not provided).
7
Input Data
Parameter Value

Life of mine (years) 8


Economic discount rate (%) 10
Copper price ($/t) 3747.75
Recovery (%) 90
Mining cost ($/t) 1.10
Processing Cost ($/t) 9.0
Mining capacity (Mtpa) 28
Processing rate (Mtpa) 7.5
Slope angle 45
8
USING THE COSMO SUITE

1. Getting started
2. Loading data sets
3. Modelling the value chain
4. Configuring the optimization model
5. Optimizing
6. Risk analysis and visualization
Getting Started
From the USB Key COPY Directory:
COSMO_Workshop_2017 to your drive c:\ (or Desktop)

Go To Directory .
C:\COSMO_Workshop_2017\COSMO Suite Installer

Use setup.exe to install COSMO Suite

Pin COSMO Suite symbol


on your taskbar

10
Getting Started
1 Launch COSMO Suite from desktop

2 Create a new
project

Navigate to 3
C:\COSMO_Workshop_
2017\
4 Select Folder
11
USING THE COSMO SUITE

1. Getting started
2. Loading data sets
3. Modelling the value chain
4. Configuring the optimization model
5. Optimizing
6. Risk analysis and visualization
Loading Data Sets
Objectives:
1. Load all orebody simulations into COSMO Suite as a simulated
data set.
2. Load the geotechnical zones into COSMO Suite as a non-
simulated data set.

13
Loading Data Sets
1 Select the data tab

3 Give it a name

4 Select simulated

5 Add simulations:
C:\...\Input Data\CuSim1.txt

C:\.... \Input Data\CuSim20.txt

2 Add a data set

14
Loading Data Sets

7 Give it a name

8 Not simulated

9 Add file:
C:\......\Input Data\Zones.txt

6 Add a data set

15
USING THE COSMO SUITE

1. Getting started
2. Loading data sets
3. Modelling the value chain
4. Configuring the optimization model
5. Optimizing
6. Risk analysis and visualization
Modelling the Value Chain
Objectives:

1. Create and configure a source which will be our copper mine.

Define the periods that it can operate (8 years).


Associate data sets (and attributes) with blocks.
Define mineralized and waste (barren) materials.
Create attributes to track annual mine tonnage + mining cost.

2. Create and configure a destination, which will be our waste dump.

3. Create and configure a destination, which will be our (simplified) model of


the ore processing stream.

Model the annual profits as a function of Cu and total tonnage.

4. Model material routing (and related destination decisions) from mine to


waste and ore processing. 17
Modelling the Value Chain
1 Select the value chain tab

2 Add a source (Cu Mine) Add a destination (Ore Processing) 3

Add a destination (Waste Dump) 4

What is a source? What is a destination?


Mines Stockpiles/homogenization pile
Advanced: existing Mill, crusher, port, customer
stockpiles (as blocks) Advanced: external sources
(not blocks)
18
Modelling the Value Chain

6 Give it a name 7 Give it a picture (C:\...\Images\Copper Mine.jpg)

9 Add period
range from
years 1-8

10 Press OK

5 Select your source 8 Add periods for the life-of-mine


(New Mine 0)
19
Modelling the Value Chain
11 Select Grids 13 Select both data sets
Select MaterialType and Mass
12 Select Blocks 14 attributes (originally in simulated
orebody models)

15 Enter block 17 Accept the


dimensions default values
(20x20x10) and press go.

16 Select the
18 Grid helper will do
Grid Helper
the heavy lifting 20
Modelling the Value Chain
Select Materials 19

21 Press go
Turn on the
Material Helper 20

23 Give them names

22 Select materials:
(Un-) Check the relevant (additive) attributes:
23
(0: Waste)
Waste: Mass
(1: Mineralization)
Mineralization: Mass, CuTonnage
21
Both: De-select Material and Zone
Modelling the Value Chain

25 Give it a name 26 Give it a picture

27 Select periods (click


on them, if they are
not already selected.
Selected = red,
Unselected = white)

24 Select a destination (New Destination 1)

22
Modelling the Value Chain

28 Repeat the previous steps


for the Waste Dump

23
Modelling the Value Chain
Send material from the mine to the processor
29 Show the materials by clicking the arrows

Click + drag on the green 30 31 Drag the link to the ore


dot as you hover over the processing material and
mineralization material release the mouse button

24
Modelling the Value Chain
Send material from the mine to the processor
Default attributes are
created to calculate
32
mass and total copper
tonnage received from
the mine

Attribute Connector:
Automatically define attributes
sent between locations.
Create/delete attributes at the
destination (ore processing)
with the +- buttons.
Links can be added/deleted
between existing. If linked, the
values will be added together
(i.e., CuTonnage from Mine 1 +
Accept the default
33 CuTonnage from Mine 2).
settings
25
Modelling the Value Chain
Send material from the mine to the waste dump

34 Repeat steps 29-32 to send


Mineralized Material to
Waste Dump Material

Optional: We dont need to


35 track Cu tonnage sent to the
Waste, so we can delete26the
auto-generated attribute.
Modelling the Value Chain
After repeating the steps, the value chain
should look like this:

Q: Why connect Mineralization


to Waste Dump?
A: The optimizer will
automatically create a
destination policy (i.e., cut-off
27
grade decision).
Modelling the Value Chain
38 Click on an attribute/material.
39 Create a new attribute

37 Select the Materials tab

36 Select the ore


processing location

28
Modelling the Value Chain
40 Give the attribute a name (Profits) 41 Select the type of
attribute
(expression)

Hint: different
types of attributes
can help you create
advanced models.

Attribute Type Description Example


Expression Y=f(X). Function of other attributes (by name) Head grade=Metal/Total Mass
From Incoming Y=X1+X2. Adding incoming values directly Calculating total tonnes incoming
Attributes together from multiple mines
From Data Set Simulated/time-dependent attributes that do Simulated metal prices
not depend on inputs (Y=##)
From Look-up table XY mapping of inputs to outputs Recovery from a graderecovery
curve
29
Modelling the Value Chain

43 Check for errors.

42 Type in your expression:


Ore Processing Material CuTonnage * 0.9 * 3747.75 - 9*Ore Processing Material Mass

(Metal * Recovery * Price) - (Processing Cost * Tonnage)

The expression editor is here to help:


Suggesting names of attributes you can use.
Suggesting functions of interest (ln(), exp(), if(condition, true, false).
By using the keys on your keyboard, you can quickly navigate the list,
then press ENTER/RETURN when the correct attribute is found. 30
Modelling the Value Chain

How can we calculate the tonnage extracted per period


from the mine (so we can get the costs)?

There are often many ways to model the same thing:


1. Calculate at the mine-level.
2. Waste tonnage + Ore processing tonnage

Mine-level (Option 1) is preferable in some cases, but


it is entirely up to the modeller. We will do this.

31
Modelling the Value Chain
46 Select the Cu Mine root node (mine-level)
47 Create a new attribute

45 Select the Grids

Select the mine 44

32
Modelling the Value Chain
48 Name the attribute

49 Select the type that adds 50 Select the two


incoming attributes mass attributes

Mine-level attributes:
Add the values of attributes for all blocks mined in each period (e.g., to calculate the
total tonnage mined per year, we are adding the mass of all mineralized and waste
blocks extracted).
Can be used to track/limit quantities of specific types of materials extracted.
33
Modelling the Value Chain
Name the attribute
52 Mining Cost

53 Select an attribute from


user-defined expression
Define the expression to
54 calculate mining costs:
51 Create a new
mine-level Mine Tonnage * 1.10
attribute
Recall:
Mining cost is $1.10 / t
34
USING COSMO SUITE

1. Getting started
2. Loading data sets
3. Modelling the value chain
4. Configuring the optimization model
5. Optimizing
6. Risk analysis and visualization
Configuring the Optimization Model
Objectives:

1. Model value chain constraints:


Define maximum mining capacity of 28 Mtpa (years 1-8).
Define maximum ore processing capacity of 7.5 Mtpa (years 1-8).
Define minimum ore processing of 7.25 Mtpa (years 1-7) to keep
consistent feed and try to tighten risk profiles. Remove year 8 for partial-
year mining.
2. Model scheduling constraints
3. Configure objective function
4. Configure parameters for destination decisions (clustering)
5. Configure and run optimizer!

36
Configuring the Optimization Model
1 Select the optimization tab

2 Select the Value


Chain Constraints tab

3 Add a new
constraint to
the model

37
Configuring the Optimization Model

4 Select the
type of
constraint

5 Select the attribute that 6 Select where the left-hand 7 Enter the constraint
will be constrained attribute value must be , bound (applied
= or the right-hand value each year)

Types of constraints:
Bounds on attribute values: the value of an attribute is limited by another
numeric value (e.g., mine tonnage limited to 28.0 Mtpa).
Constraints on annual fluctuations: the amount that the value changes
between periods is constrained (e.g., changes in trucking hours must be 10%
per year to keep from wild fluctuations in staff). 38
Configuring the Optimization Model

Types of bounds:
Manual bounds are used when you want to enter values numerically (e.g.,
28.0 Mtpa mining capacity).
Attribute bounds are used when you want to limit one attributes value by
another (e.g., trucking hours is limited by the total number of hours available
after CAPEX decisions).

39
Configuring the Optimization Model

Try it!

Add an upper-bound constraint (maximum) on ore processed:


Ore Processing Material Mass 7500000

Add a lower-bound constraint (minimum) on ore processed*:


Ore Processing Material Mass 7250000
* Remove lower bound on 8th year to allow for partial-year
mining (see next slide).

40
Configuring the Optimization Model

Time-dependent constraints:
If the value of a constraint should vary with time, we can click the clock to
manually set the capacity for each period.
Add/remove constraints on specific periods by right-clicking in the table. 41
Configuring the Optimization Model
Objectives:
1. Model value chain constraints

2. Model scheduling constraints:


Slope constraints for single geotechnical zone (code 1), 45 degrees.
Smoothing + sink rate constraints (soft constraint, incur penalties for
schedules that arent smooth)
3. Configure objective function.
4. Configure parameters for destination decisions (clustering)
5. Configure and run optimizer!

42
Configuring the Optimization Model

10 Select slope constraints


9 Add
constraints

8 Select
Scheduling
Constraints

43
Configuring the Optimization Model
Types of scheduling constraints:
Slopes (hard, always enforced): define AZ/Dip directions for geotechnical zones.
Smoothness (soft, may be violated): penalize blocks within a smoothing radius that are
not mined in the same period.
Smoothness, layered deposits (soft, may be violated): same as previous smoothness,
but the smoothing radius is projected downwards onto the topography. This is for mines
that have significant hills or mountains.
Sink rate (soft, may be violated): penalize if an overlying block separated by specified
depth is mined in the same period.
Thin walls (soft, may be violated): penalize overlying blocks at a specified mining depth
(defined by a sink rate constraint) within the slope cone if they are mined in the same
period. This can be used to generate more push-back like pit designs. Recommended
only if combined with smoothness constraints.

Remarks:
Soft scheduling constraints must also be included in the objective function as a
penalty to have any impact on the sequence (we will see this later).
Using a large smoothing radius can substantially increase solver time. 44
Configuring the Optimization Model

11 Select the block grid


12 Select the zone attribute

14 Configure the zones


AZ/Dips (use default).

13 Scan the geotechnical zone file for


the zone codes (1). 45
Configuring the Optimization Model
16 Select smoothness
constraint
17 Select the block grid
18 Select the zone attribute

19 Scan the geotechnical zone file for


the zone codes (1).
20 Configure the zones
15 Add a new constraint smoothing radius
(specified in meters).
46
Configuring the Optimization Model

Try it!

Add a sink rate constraint of 60 meters (i.e., a maximum 6


bench/year sink rate).

47
Configuring the Optimization Model

48
Configuring the Optimization Model
Objectives:
1. Model value chain constraints
2. Model scheduling constraints

3. Configure objective function:


Maximize NPV:
ADD Profits, REDUCE Mining costs, 10% discount rate
Minimize deviations (20% risk discount):
REDUCE penalties from maximum mining & processing capacities
REDUCE penalties from not feeding mill with enough material
Minimize penalties from un-mineable schedules:
REDUCE penalties from not having smooth schedules or sinking
too quickly in a year
4. Configure parameters for destination decisions (clustering)
5. Configure and run optimizer
49
Configuring the Optimization Model

23 Move them to the


21 optimization objectives
Select by clicking on .
Objective
22 Select attributes (e.g. profits and
Function
mining costs), deviations (e.g.,
processing capacity constraints)
and smoothness/ sink rate
penalties by clicking on them.

50
Configuring the Optimization Model

24 25 26 27 28
Reduce mining Penalties are Economic Geo-Risk Multiplying
costs automatically set to discount discount factors (e.g.,
reduce (minimize) rates rates (x%) penalties per unit
(10%) of deviation)

See following slides 51


Configuring the Optimization Model

1 1 +
max , ,, , ,, + , ,,

Plant Feed Tonnage


Attributes of interest: 160% 1.9
Plant Silica-to-Magnesia Ratio

Revenues from metal


Tonnage (% Capacity)

140% 1.8

SiO2:MgO
120%
sale 100%
1.7

Mining, processing & 80%


60%
1.6
1.5
stockpiling costs 40%
1.4
20%
0% 1.3
0 20 40 0 10 20 30
5240
Period Period
Configuring the Optimization Model

1 1 +
max , ,, , ,, + , ,,

DEFAULT: Use Customize to


economic discount manage your
rate & cost of $1 geological risk

53
Configuring the Optimization Model

A Starting Point
Constraint Discount Rate Cost

Mining capacity ( constraint) 0.2 2.50

Ore processing ( constraint) 0.2 7.50

Ore processing ( constraint) 0.2 5.00

Smoothness penalties 0.1 15000

Sink rate penalties 0.1 1000


54
Configuring the Optimization Model

55
Configuring the Optimization Model

Basic settings define:


Whether or not you want to optimize or
fix the decisions.
29 30 What file will store the results.
Select the Select the Whether or not you want to initialize
Decisions tab destination policy from existing results for a warm start.
for the blocks

56
Configuring the Optimization Model

Custom settings:
Defined for each type of decision
variable (sequence, destinations,
processing streams).

57
Configuring the Optimization Model
Review of Cluster Destination Policies (Example)
Plotting the Cu/Au grades for each
Simulation 1 block in all scenarios
Au (gpt) Simulation #1 & 2
All Simulations

Cu (%)

Gold (ppm)
Simulation 2
Au (gpt)

Cu (%)

Copper (%)
58
Configuring the Optimization Model
Review of Cluster Destination Policies (Example)
Create clusters of similar grades and
Simulation 1 decide where to send the clusters
Au (gpt) Simulation #1 & 2
All Simulations

Cu (%) Mill

Gold (ppm)
Stockpile 1

Simulation 2
Au (gpt) Stockpile 2
Waste

Cu (%)

Copper (%)
59
Configuring the Optimization Model

31 Set up the clusters for the waste 32 Set up the clusters for the
material mineralized material
Why these settings?
Waste only needs one cluster because it can only go to one destination.
Mineralized material has more to discretize the distribution of copper tonnages
so more granular decisions can be made.
Caution: more clusters is not always better for stochastic models (sensitive). 60
Configuring the Optimization Model

33 34 35
Select extraction Let the optimizer Keep all default settings:
sequence choose the final pit optimize sequence, new
decision variable. size (rather than decisions (dont load from a
forcing it to mine file)
all blocks)
61
USING COSMO SUITE

1. Getting started
2. Loading data sets
3. Modelling the value chain
4. Configuring the optimization model
5. Optimizing
6. Risk analysis and visualization
Configuring the Optimization Model

Set up the
27
annealing
26 parameters
Select the
Solver tab 28 Press Play

63
Configuring the Optimization Model

Play Pause Stop Show risk profiles Visualize the


for current (running) current (running)
solution solution

64
Configuring the Optimization Model

Metaheuristics come with baggage: parameters


Temperature (between 0 and 1): the probability of accepting a sub-optimal
perturbation.
Cooling factor (between 0 and 1): a multiplier that acts to reduce the temperature.
Cooling schedule (>0): the number of iterations before we apply the cooling factor to
the temperature.
Iterations before diversification (>0): the number of iterations that will be performed
before the algorithm increases the temperature to get out of local optima (diversify).
Number of diversifications (>0): the number of times we will try to diversify the solution
(increase temperature) before terminating.
65
Configuring the Optimization Model
Current objective
function value

Current annealing
temperature (prob. of
accepting sub-optimal
perturbations)

29 Show/hide annealing
temperature
Show/hide algorithm
performance (developers)
Save performance data
66
USING COSMO SUITE

1. Getting started
2. Loading data sets
3. Modelling the value chain
4. Configuring the optimization model
5. Optimizing
6. Risk analysis and visualization
Risk Analysis & Visualization

Select the attribute you


1
wish to analyze

Configure the appearance of


2
your risk profiles

68
Risk Analysis & Visualization

Select Axes
3
Select the X or Y Axis
4
Customize axis titles,
5
min/max values,
increments

69
Risk Analysis & Visualization

6 Select visualizer

7 Select the attribute you would like to visualize


Select the attribute you
x
wish to analyze

8 Plot cross-sections by adjusting the


double-ended sliders

70
Risk Analysis & Visualization

9 Change minimum/maximum colours


and add filters to only see blocks
with values within specified ranges

Un-mined blocks:
If unmined blocks appear in the schedule, filter
the blocks with the code 9999 by applying a
filter for periods 1-8.
71
Conclusions & Future Work

COSMO Suite is a tool to help you:


Organize your simulation data, model your mineral value
chain, perform stochastic global optimization.
Quickly analyze and visualize your solutions.

We have only focused on foundations today:


The tool can be used to build complex non-linear global
optimization models that cant be solved using existing
software.

72

You might also like