Stochastic Models


Stochastic simulations requires equiprobable models to consider uncertainties related to geological aspects, such as grade and/or volume of ore.

While single scenarios of distinct models are run separately, a stochastic scenario consist of obeying all the single scenarios at once through an adapted resource block model that contains equiprobable values for a given set of variables, to which there is a certain level of uncertainty.

As a consequence, MiningMath will produce reports with a risk-profile presenting the probabilities P10 and P90, which are probabilities of 10% and 90%, respectively, minimum and maximum values and an expected value.

The purpose of this page is to briefly explain how to import data and manage stochastic constraints using MiningMath. Stochastic mine planning is a wide topic and relates to long academic debates beyond the scope of this technical material. Please, check here, especially the Master Thesis of Alexandre Marinho together with its references for a deeper understanding of stochastic mine planning.


Stochastic models have specific formatting for the headers of uncertain-fields. The figure below illustrates part of the McLaughlin Block Model, from MineLib, which is a Gold deposit.

Uncertain-fields are those which might vary from simulation to simulation, as explained before. Typically, grade fields contain uncertain information. Therefore, the user will need to rename each equiprobable possibility in a specific way: name each grade column as the same adding {#} (where # is a number from 1 up to n). The list below and the subsequent image highlight how grade headers should look like:

    • AU {1}

    • AU {2}

    • AU {3}

    • AU {4}

    • AU {5}

Note that, as gold is sold pure, the grade information will influence the economic values for the processing stream. Therefore, the user will need to calculate the Economic Values for each possible grade information, as highlighted in the image below.

Once you import your stochastic block model, the tabs Average and Sum will allow for constraints both on:

- Expected values to control the averages over all simulations. These constraints will guarantee that, in average, the indicators will be within the defined ranges. For example, take Expected Min = 99 and Expected Max = 101 for a certain constraint. If there are 3 simulations returning 80, 100 and 120, the average is 100, so this is within the range defined.

- All simulations to guarantee that each one of them respect certain criteria, that is, these constraints control the variability, the spread, of the results to be within a certain acceptable range. Taking the same example with All Min = 90 and All Max = 110, the previous solution wouldn't be feasible/accepted by the optimizer, as 80 < 90 and 120 > 110.

Stochastic optimization is an optimized way to combine all these modeled uncertainties into one schedule that maximizes the Expected NPV of the project.

Why average NPV (single and distinct scenarios) is greater than expected NPV (stochastic scenario)?

Running different scenarios individually, the optimizer will find the best result possible for each one.

Running a stochastic one, the optimizer will find the best solution that considers all assumptions. Therefore, the expected NPV will be reduced in comparison with the average NPV from the first approach because it is more close to the reality.