Scheduling Setup

Note: Studio NPVS+ does not currently support Multimine projects. This facility will be available in a future version.

Studio NPVS+ represents the latest evolution of life of mine planning for open pit operations. The Scheduling Setup screen is used to define constraints, targets and other controls for your scheduling scenario. These are processed by an advanced solver to generate the optimal strategic extraction sequence maximizing Net Present Value (NPV).

Studio NPVS+ vs. Studio NPVS

The key difference between Studio NPVS and Studio NPVS+ is in the scheduling engine used to calculate an optimal extraction sequence. Studio NPVS+ aims to meet the same goals as Studio NPVS (practical, honouring constraints, matching haulage and destination capabilities and so on) but does so using a more flexible and powerful solving engine.

The solver that powers Studio NPVS+ is called "Maroma" and is referred to as such throughout the associated help topics.

The Maroma Solver

Maroma is a mixed integer program (MIP) solver. Linear programming (LP) maximises an objective function subject to linear constraints. The variables to be solved for take on real positive values. There are very efficient algorithms for solving these problems that have been in use since the 1960s.

In mining operations and other problems, there are scheduling problems where some of the variables must take an integer or Boolean (0 or 1) value resulting in a mixed integer linear program. These problems are more difficult to solve. An upper bound for the optimal solution can be obtained by allowing the integer variables to take on non-integer values and solving the resulting linear program. The solution to the linear program will have most decision variables decided either way (0 or 1), but with some between 0 and 1.

To obtain the optimal MIP solution, each non-integer decision variable in the LP solution, must be solved with the decision variable bound to 0 or 1 – this can be slow because there are up to 2n LP problems to solve where n is the number of non-integer decision variables. This is the main reason optimality can’t be guaranteed because it may not be possible to search the entire set of problems within a reasonable time. Not all these problems have to be solved because each solution provides a lower bound, so some decisions will result in a worse solution than the best lower bound.

Instead of trying to find the optimal solution, LP problems can be solved until the gap between the best known solution and the lowest relaxed solution is below a given value termed the optimality gap. i.e. It can be guaranteed that the best solution is no worse than gap% worse than the optimal solution. Better solutions to a MILP problem can be obtained by reducing the optimality gap, but this will increase the time taken to obtain a solution. This is true of all MILP solvers (for example, CPLEX, Gurobi, Maroma).

Maroma uses the BZ algorithm to increase the speed of solving MILP problems, particularly for large problems, by recognising that the mine planning problem can be considered to first determine the order in which to extract each block in the mine, and then to determine where to send each parcel within the block (dump, plant, stockpile).

It is a rapid, effective solver that is adept at defining the optimal solution for both small and large scale optimization problems found in life of mine planning.

Note: The Maroma solver will always take advantage of multiple CPUs if they are available. As such, the previous option to add a scheduler case to a "batch" (Project Map >> Right-click Case Name >> Case Study >> Add to Batch) is no longer available or required. You can still batch process the economic model, ultimate pits and pushbacks in Studio NPVS+.

Solver Configuration

Solver settings are defined on the Scheduler Setup screen once economic model, ultimate pit and pushback settings have been defined and the relevant precursor data prepared.

The Scheduler Setup screen features the following categories:

  • Periods – Define scheduling periods, using a combination of quarters and years.

  • Pushbacks – Define the pushbacks to be scheduled.

  • Mining Rates – Set the rate of mining for your schedule, either as a constant for all periods or as a custom rate for individual periods.

  • Bench Advance – Define sinking rate(s).

  • Stockpiles – Create and define the settings for the stockpiles.

  • External Sources – Configure the fixed or variable settings for external material sources (say, an underground mine).

  • Ore Destinations – Define ore destination constraints per period.

  • Ore Bins—Define the ore bins for the rock types associated with your project. 

  • Grade Constraints – Define grade constraints by destination.

  • Quality Constraints – Define constraints that aren't applicable to a particular destination or other targets.

  • Options – Define parameters for the Maroma solver.

Typically, settings are applied in a top-bottom order for an initial run, but all are accessible for creating parameter sensitivity cases in the search for the best result (that is, one that meets all targets, whilst honouring constraints and capabilities).

How Studio NPVS+ Mines Benches and Blocks

It is often desirable to make processing decisions on the basis of smaller units than are necessary for extraction decisions. Thus, blocks may be split into multiple 'parcels', with extraction decisions being made on the bench level (that is, they apply equally to all parcels of a block), while processing decisions are made independently for each parcel.

As such, all of the parcels in a given block are always taken in the same period, but the decision as to how each is processed remains separate.

In the more general context, a parcel can be considered a 'sub-job', where the job as a whole is a combination of all of its sub-jobs, such that the job as a whole is scheduled period-wise to a period or periods, but each sub-job may be performed in a different way.

A block need not, in general, by taken completely in a single period, rather a proportion is taken in each period. So, for each parcel of a block, the total proportion taken in a period is the same, but that proportion can be allocated differently among the various destinations.

What does this mean, in practical terms, in Studio NPVS+?

Pushback Benches are modelled as mining blocks and block model blocks are modelled as parcels. This results in all parcels on a bench being mined simultaneously in the same proportion. This solves practical scheduling problems, for example, where on the lowest bench of a model, the scheduler can mine only the ore leaving the waste blocks behind.

Stockpiles

The speed achieved by Maroma is partly gained by the way in which it treats stockpiles. For each parcel, there is a decision variable for each mining period and each of its possible destinations. If a parcel is mined in a particular period and sent to a stockpile, there is a separate decision variable for each of the later periods that it can be reclaimed and sent to the plant.

Maroma defines two kinds of stockpiles: warehouse and mixed (see "Scheduling Setup: Options" on page 44). When reclaiming a parcel from a warehouse stockpile, the contents of the parcel are reclaimed exactly as it was stockpiled. When reclaiming a parcel from a mixed stockpile, the properties of the material reclaimed are calculated from the mass weighted average of all material in the stockpile at the time of reclaim. Mixed stockpiles require additional constraints and are more complex to solve.

Warehouse stockpiles can be further simplified by restricting the number of periods that parcels can remain on the stockpile (Maximum periods to reclaim parameter). This reduces the number of variables in the problem at the cost of forcing the model to reclaim from the stockpile when it may be more profitable to process material taken directly from the mine.

Maroma solves the mixed stockpile problem by first solving the warehouse problem and converting the solution to a mixed stockpile problem solution. This requires more time and memory, so if the user is finding that it takes too long to obtain a solution, the following steps can be taken to obtain a solution more quickly:

  • Increase the optimality gap.

  • Choose warehouse instead of mixed stockpiles.

  • Choose a small number for the Maximum Reclaim parameter.

  • Try increasing the number of cores.

  • Reduce the number of periods to switch to multipass.

  • Remove minimum constraints.

  • Reduce the number of ore bins.

Cores

The number of cores parameter selects the number of parallel cores to run the solver on. More cores should increase the speed but reduces the amount of memory available to each core. So, it is not easy to determine what is the optimal number of cores to use. Using a large number of cores may impact the performance of other applications running on your PC.

The results obtained from two identical projects but with different numbers of cores are not guaranteed to be identical. Nevertheless, the solver obtains a solution within the optimality tolerance. Some randomness is used in obtaining this solution. Before the first run of a project, Maroma generates a sequence of random numbers which are used in all subsequent project runs. If a single core is used, running the project twice will use the same set of random numbers and should result in an identical solution. However, when multiple cores are used, the order in which the set of random numbers is accessed cannot be guaranteed due to other activity on the PC. Therefore, the solutions obtained need not be identical because there are many schedules which satisfy the constraints of the problem.

Saving Scheduling Settings

In the top right corner of the Scheduling Setup screen, you will see the following buttons:

  1. Save Settings – Save the current scheduler settings but leave the Scheduler Settings screen displayed.

  2. Save and Close – Save settings and close the screen.

  3. Close – Close the screen without saving settings.

Note: Once saved, your settings are restored next time the Scheduling Setup screen displays.