Solver

The production schedule will be optimised by using a mathematically proven Mixed Integer Programming (MIP) solver. Running the optimisation process will define which blocks should be mined in which period, to achieve the objective. On completion, the Mining Period attribute for each task is populated and a Start date and Finish date are calculated.

These dates indicate a possible mining sequence, based on the period and the horizontal, vertical and stage dependencies. By doing this, the tasks can be animated to give a realistic indication of what the mine will look like at any future date.

Periods

Use sliding window

The built-in solver has the option of defining a sliding window. This breaks the problem into smaller, overlapping time horizons in order to reduce the solution time.

For example:

If the time horizon is 14 years, then choosing to use an 8 year sliding window with a 5 year overlap, will reduce the problem into 3 smaller parts. The first “pass” will consider all mining blocks, using a time horizon of 8 years. This solution will determine the blocks mined in the first 3 years (Window size - Overlap).

The second “pass” will exclude these blocks from the problem and this solution will determine the blocks to be mined in years 4 to 6.

The final pass will solve for years 7 to 14.

In practice, the solution obtained using sensible sliding window values will not be significantly different to the solution for all mining blocks across the complete time horizon. However, the performance gains can be significant. Considering the example above, common sense suggests that knowing which blocks will be mined in years 9 to 14 will have little effect on the blocks mined in years 1 to 3.

Built-in

Micromine includes a built-in solver which is highly optimised with support for multiple processor cores. The number of cores that can be utilised is dependent on the Limit the number of cores Micromine can use setting on the Resources > Multi-core Processing tab of the Options | System form.

A less optimised solver is provided for backward compatibility (select the Use legacy solver check box).

Gurobi

Micromine provides an interface to a well-recognised commercial solver, Gurobi. To use this, you will either need a Gurobi licence, or you will need to purchase time from the Gurobi cloud service. Gurobi is one of several commercial solvers on the market, which are actively maintained and improved over time. While they have better performance and are able to solve more complex problems than the solver included in Micromine, the solution will be the same, or very similar, irrespective of the solver you choose to use.

Use system settings

When you select this option, the settings you have defined on the Gurobi tab of the Options | System form, will be carried across all projects on the same machine. This means you do not need to set Gurobi settings for each new project.

Use project settings

If Gurobi system settings (described above) have been set, they will be overridden by the project settings you define here. Click the Settings button to apply settings which are local to the current project.

Termination Criteria (per window)

Choose how the solver will be terminated per window, based upon the active (as selected by the adjacent check box) criteria you have selected and specified.

Solution quality

(Optional.) Select to terminate the solver when a specified solution quality is achieved.

As an integral part of its operation, the solver determines and maintains an upper limit for the total profit that could be produced from any solution that satisfies the design parameters. Expressing the total profit produced from the solver’s current solution as a percentage of this upper limit provides a measure of the “quality” of the current solution.

Specify the minimum quality (0.00% <= x <= 100.00%) of a feasible solution to be achieved before the solver is terminated. If not specified, the solution quality defaults to 95%.

Objective value

(Optional.) Select to terminate the solver when a specified value of the objective (total profit from the mined stopes) is achieved.

Specify the minimum total profit to be produced from a feasible solution before the solver is terminated.

Improvement of objective value

(Optional.) Select to terminate the solver once it becomes clear that significant additional time may be required to produce solutions with higher total profits.

Minimum percentage

(Improvement of objective value only.) Specify the minimum percentage improvement in the total profit between successive solutions.

Maximum minutes

(Improvement of objective value only.) Specify the maximum number of minutes of processing time that may be used to produce the minimum improvement in the total profit.

Example: The default settings of Minimum percentage = 0.01 and Maximum minutes = 15 specify that, if the improvement in the total profit between the current solution and the previous one is less than 0.01% and more than 15 minutes of processing time was required to achieve that improvement, the solver should be terminated and current feasible solution should be used.

Run-time minutes

(Optional.) Select to terminate the solver after a specified number of minutes has elapsed.

Specify the maximum number of minutes of processing time to be used before the solver is terminated.

Number of solutions

(Optional.) Select to terminate the solver after a specified number of solutions has been found.

Specify the maximum number of solutions to be found before the solver is terminated.

Optimise