Skip to main content
Log in

MineLib: a library of open pit mining problems

  • Published:
Annals of Operations Research Aims and scope Submit manuscript

Abstract

Similar to the mixed-integer programming library (MIPLIB), we present a library of publicly available test problem instances for three classical types of open pit mining problems: the ultimate pit limit problem and two variants of open pit production scheduling problems. The ultimate pit limit problem determines a set of notional three-dimensional blocks containing ore and/or waste material to extract to maximize value subject to geospatial precedence constraints. Open pit production scheduling problems seek to determine when, if ever, a block is extracted from an open pit mine. A typical objective is to maximize the net present value of the extracted ore; constraints include precedence and upper bounds on operational resource usage. Extensions of this problem can include (i) lower bounds on operational resource usage, (ii) the determination of whether a block is sent to a waste dump, i.e., discarded, or to a processing plant, i.e., to a facility that derives salable mineral from the block, (iii) average grade constraints at the processing plant, and (iv) inventories of extracted but unprocessed material. Although open pit mining problems have appeared in academic literature dating back to the 1960s, no standard representations exist, and there are no commonly available corresponding data sets. We describe some representative open pit mining problems, briefly mention related literature, and provide a library consisting of mathematical models and sets of instances, available on the Internet. We conclude with directions for use of this newly established mining library. The library serves not only as a suggestion of standard expressions of and available data for open pit mining problems, but also as encouragement for the development of increasingly sophisticated algorithms.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3

Similar content being viewed by others

References

  • Ahuja, R. K., Magnanti, T. L., & Orlin, J. B. (1993). Network flows: theory, algorithms, and applications. Englewood Cliffs: Prentice Hall.

    Google Scholar 

  • Akaike, A., & Dagdelen, K. (1999). A strategic production scheduling method for an open pit mine. In C. Dardano, M. Francisco, & J. Proud (Eds.), Proceedings of the 28th applications of computers and operations research in the mineral industries conference (APCOM), Golden, CO (pp. 729–738).

    Google Scholar 

  • Amaya, J., Espinoza, D., Goycoolea, M., Moreno, E., Prevost, T., & Rubio, E. (2009). A scalable approach to optimal block scheduling. In 35th APCOM, Vancouver, Canada.

    Google Scholar 

  • Askari-Nasab, H., Awuah-Offei, K., & Eivazy, H. (2010). Large-scale open pit production scheduling using mixed integer linear programming. International Journal of Mining and Mineral Engineering, 2, 185–214.

    Article  Google Scholar 

  • Askari-Nasab, H., Pourrahimian, Y., Ben-Awuah, E., & Kalantari, S. (2011). Mixed integer linear programming formulations for open pit production scheduling. Journal of Mining Science, 47, 338–359. URL:http://dx.doi.org/10.1134/S1062739147030117.

    Article  Google Scholar 

  • Beasley, J. (1990). OR-library: distributing test problems by electronic mail. Journal of the Operational Research Society, 41(11), 1069–1072.

    Google Scholar 

  • Bienstock, D., & Zuckerberg, D. (2009). A new LP algorithm for precedence constrained production scheduling. Optimization Online. URL:http://www.optimization-online.org/DB_HTML/2009/08/2380.html. Unpublished. Columbia University, BHP Billiton, August.

  • Bienstock, D., & Zuckerberg, D. (2010). Solving LP relaxations of large-scale precedence constrained problems. In: Lecture notes in computer science (Vol. 6080, pp. 1–14).

    Google Scholar 

  • Bixby, R. E., Boyd, E. A., & Indovina, R. R. (1992). MIPLIB: a test set of mixed integer programming problems. SIAM News, 25, 16.

    Google Scholar 

  • Boland, N., Dumitrescu, I., Froyland, G., & Gleixner, A. (2009). LP-based disaggregation approaches to solving the open pit mining production scheduling problem with block processing selectivity. Computers & Operations Research, 36(4), 1064–1089.

    Article  Google Scholar 

  • Brickey, A. (2012). Personal communication.

  • Busnach, E., Mehrez, A., & Sinuany-Stern, Z. (1985). A production problem in phosphate mining. Journal of the Operational Research Society, 36(4), 285–288.

    Google Scholar 

  • Caccetta, L., & Hill, S. (2003). An application of branch and cut to open pit mine scheduling. Journal of Global Optimization, 27(2–3), 349–365.

    Article  Google Scholar 

  • Carlyle, W. M., Royset, J., & Wood, R. K. (2008). Lagrangian relaxation and enumeration for solving constrained shortest-path problems. Networks, 52, 256–270.

    Article  Google Scholar 

  • Chandran, B., & Hochbaum, D. (2009). A computational study of the pseudoflow and push-relabel algorithms for the maximum flow problem. Operations Research, 57(2), 358–376.

    Article  Google Scholar 

  • Chicoisne, R., Espinoza, D., Goycoolea, M., Moreno, E., & Rubio, E. (2012). A new algorithm for the open-pit mine scheduling problem. Operations Research, 60(3), 517–528. doi:10.1287/opre.1120.1050.

    Article  Google Scholar 

  • Cullenbine, C., Wood, R., & Newman, A. (2011). A sliding time window heuristic for open pit mine block sequencing. Optimization Letters, 88(3), 365–377.

    Article  Google Scholar 

  • Dagdelen, K., & Johnson, T. (1986). Optimum open pit mine production scheduling by Lagrangian parameterization. In 19th APCOM, University Park, PA (pp. 127–141).

    Google Scholar 

  • Denby, B., & Schofield, D. (1994). Open-pit design and scheduling by use of genetic algorithms. Transactions of the Institution of Mining and Metallurgy, Section A: Mining Industry, 103, A21–A26.

    Google Scholar 

  • Deutsch, C. (2004). The place of geostatistical simulation in resource/reserve estimation. In Intern. conf. mining innovation (MININ), Santiago, Chile.

    Google Scholar 

  • Fytas, K., Pelley, C., & Calder, P. (1987). Optimization of open pit short- and long-range production scheduling. CIM Bulletin, 80(904), 55–61.

    Google Scholar 

  • Fytas, K., Hadjigeorgiou, J., & Collins, J. (1993). Production scheduling optimization in open pit mines. International Journal of Surface Mining, 7(1), 1–9.

    Google Scholar 

  • Gay, D. M. (1985). Electronic mail distribution of linear programming test problems. Mathematical Programming Society COAL Bulletin, 13, 10–12. Data available at http://www.netlib.org/netlib/lp.

    Google Scholar 

  • Gershon, M., & Murphy, F. (1989). Optimizing single hole mine cuts by dynamic programming. European Journal of Operational Research, 38(1), 56–62.

    Article  Google Scholar 

  • Gleixner, A. (2008). Solving large-scale open pit mining production scheduling problems by integer programming. Master’s thesis, Technische Universität Berlin.

  • Hochbaum, D. (2001). A new-old algorithm for minimum cut in closure graphs. Networks, 37(4), 171–193.

    Article  Google Scholar 

  • Hochbaum, D., & Chen, A. (2000). Performance analysis and best implementations of old and new algorithms for the open-pit mining problem. Operations Research, 48(6), 894–914.

    Article  Google Scholar 

  • Johnson, T. (1969). Optimum open pit mine production scheduling. In A. Weiss (Ed.), A decade of digital computing in the mining industry. New York: American Institute of Mining Engineers. Chap 4.

    Google Scholar 

  • Johnson, D., & Niemi, K. (1983). On knapsacks, partitions, and a new dynamic programming technique for trees. Mathematics of Operations Research, 8(1), 1–14.

    Article  Google Scholar 

  • Kawahata, K. (2006). A new algorithm to solve large scale mine production scheduling problems by using the Lagrangian relaxation method. PhD thesis, Colorado School of Mines.

  • Kim, Y., & Zhao, Y. (1994). Optimum open pit production sequencing—the current state of the art. In Preprint—soc. mining, metallurgy and exploration annual meeting proc., Littleton, CO: SME of the AIME.

    Google Scholar 

  • Klingman, D., & Phillips, N. (1988). Integer programming for optimal phosphate-mining strategies. Journal of the Operational Research Society, 39(9), 805–810.

    Google Scholar 

  • Krige, D. (1951). A statistical approach to some basic mine valuation problems on the Witwatersrand. Journal of the Chemical, Metallurgical and Mining Society of South Africa, 52(6), 119–139.

    Google Scholar 

  • Lambert, W., Brickey, A., Eurek, K., & Newman, A. (2012). Open pit block sequencing formulations: a tutorial (Working Paper).

  • Lane, K. (1988). The economic definition of ore: cutoff grade in theory and practice. London: Mining J. Books Limited.

    Google Scholar 

  • Lee, T. (1984). Planning and mine feasibility study—an owners perspective. In G. McKelvey (Ed.), Proceedings of the 1984 NWMA short course ‘Mine feasibility—concept to completion’, Spokane, WA.

    Google Scholar 

  • Lerchs, H., & Grossmann, I. (1965). Optimum design of open-pit mines. CIM Bulletin, LXVIII, 17–24.

    Google Scholar 

  • Munoz, G. (2012). Modelos de optimizacion lineal entera y aplicaciones a la mineria. Master’s thesis, Dpto. Math. Engineering, Universidad de Chile, Santiago, Chile.

  • Newman, A., Rubio, E., Caro, R., Weintraub, A., & Eurek, K. (2010). A review of operations research in mine planning. Interfaces, 40(3), 222–245.

    Article  Google Scholar 

  • Osanloo, M., Gholamnejad, J., & Karimi, B. (2008). Long-term open pit mine production planning: a review of models and algorithms. International Journal of Mining, Reclamation and Environment, 22(1), 3–35.

    Article  Google Scholar 

  • O’Sullivan, D., & Newman, A. (2012). Long-term extraction and backfill scheduling in a complex underground mine (Working Paper).

  • Ramazan, S. (2007). The new fundamental tree algorithm for production scheduling of open pit mines. European Journal of Operational Research, 177(2), 1153–1166.

    Article  Google Scholar 

  • Reinelt, G. (1991). TSPLIB—a traveling salesman library. ORSA Journal on Computing, 3, 376–384.

    Article  Google Scholar 

  • Sevim, H., & Lei, D. (1998). The problem of production planning in open pit mines. INFOR. Information Systems and Operational Research, 36(1–2), 1–12.

    Google Scholar 

  • Somrit, C. (2011). Development of a new open pit mine phase design and production scheduling algorithm using mixed integer linear programming. Dissertation, Colorado School of Mines, Golden, CO.

  • Sundar, D., & Acharya, D. (1995). Blast schedule planning and shiftwise production scheduling of an opencast iron ore mine. Computers & Industrial Engineering, 28(4), 927–935.

    Article  Google Scholar 

  • Tabesh, M., & Askari-Nasab, H. (2011). Two-stage clustering algorithm for block aggregation in open pit mines. Mining Technology, 120, 158–169.

    Article  Google Scholar 

  • Tan, S., & Ramani, R. (1992). Optimization models for scheduling ore and waste production in open pit mines. In 23rd APCOM (pp. 781–791). Tucson: SME of the AIME.

    Google Scholar 

  • Underwood, R., & Tolwinski, B. (1998). A mathematical programming viewpoint for solving the ultimate pit problem. European Journal of Operational Research, 107(1), 96–107.

    Article  Google Scholar 

  • Whittle (2009). Whittle consulting global optimization software. Melbourne, Australia.

  • Zhang, M. (2006). Combining genetic algorithms and topological sort to optimize open-pit mine plans. In M. Cardu, R. Ciccu, E. Lovera, & E. Michelotti (Eds.), 15th mine planning and equipment selection (pp. 1234–1239). Torino: FIORDO S.r.l.

    Google Scholar 

  • Zuckerberg, M. (2011). Personal communication.

Download references

Acknowledgements

Eduardo Moreno and Marcos Goycoolea thank CONICYT grants ACT-88 and Basal Center CMM, Universidad de Chile. Daniel Espinoza and Marcos Goycoolea acknowledge FONDECYT grant #1110674. Daniel Espinoza is grateful for ICM Grant #P05-004F. The authors all acknowledge the donors of several anonymous data sets, and the comments of two anonymous referees on previous versions of this paper.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Alexandra Newman.

Appendix A: File format specifications

Appendix A: File format specifications

1.1 A.1 General assumptions

All files are ASCII, and lines beginning with the character ‘%’ are assumed to be comments. Each line contains fields delimited (separated) by a space, a horizontal tabular character, or a colon character (ASCII codes 32, 9 and 58, respectively). All separators at the beginning of a line are discarded. Multiple contiguous separators are treated as a single separator.

All entries are of the form <keyword> : <parameter_type>, or simply, a sequence of <parameter_type> definitions. <keyword> is an alphanumerical name used to identify certain entries, and <parameter_type> defines a variable or data of a certain type. The types <str>, <int>, <char> and <dbl> correspond to a string (not containing a separator), an integer, a character, or a double type, as in C and other popular programming languages. We assume that all entries are given in the order specified in this document.

We introduce a flexible format, because this is the way in which many practitioners transfer information about block models at the time of this writing. By maintaining the status quo, we hope that the mining community will contribute to and use the library. Additionally, in practice, not all mines use the same information. For example, in some mines, the blocks have information on three different concentrations of minerals; some information might pertain to contaminants, while other information might pertain to sub-products. Having that information is essential to compute correct values for the block depending on the processing technology used.

1.2 A.2 The block-model descriptor file

The Block-Model Descriptor File stores model information at a block-by-block level. Each line in the file corresponds to a block in the model. All lines have the same number of columns. These columns are organized as follows:

<int id> <int x> <int y> <int z> <str 1> ⋯ <str k >

Each row contains the following information about a block:

  • id stores a unique identifier for the block, where the block identifiers are numbered, starting with zero.

  • x, y, z represent the coordinates of the block, where a zero z-coordinate corresponds to the bottom-most shelf in the orebody and the z-axis points in the upwards direction. The y-axis points directly towards the viewer while the x-axis points to the left of the viewer.

  • str 1,…,str k represent optional user-specified fields that may represent, e.g., tonnage, ore grade, or information about impurities. These values can be of any pure type declared before and must comply with our delimiter rules for parsing. This flexibility is allowed to match the usual formats used in the industry.

1.3 A.3 The block-precedence descriptor file

The Block-Precedence Descriptor File articulates precedence relationships between blocks in the model. Information is represented at a block-by-block level. Each line in the file corresponds to a block in the model and its corresponding set of predecessors. Precedence relationships are described as follows:

<int b> <int n> <int p 1> ⋯ <int p n >

Each row gives the following precedence information:

  • b stores the unique identifier of a block.

  • n stores the number of predecessors specified for block b.

  • p 1,…,p n store the identifiers of the n predecessors of block b.

In general, we assume that p 1,…,p n are immediate predecessors of block b, but this is not a strict requirement. We assume that no two entries in the file can begin with the same identifier. If a block b has no predecessors, then the corresponding value n is set to 0 and no values p i are specified in the line.

1.4 A.4 Optimization-model descriptor file

The Optimization-Model Descriptor File is used to store the necessary information to formulate \(\mathit{(UPIT)}\), \(\mathit{(CPIT)}\), and \(\mathit{(PCPSP)}\).

1.4.1 A.4.1 The file format

NAME: <str s>

Identifies the data file.

TYPE: <str s>

Specifies the problem type. The value of s must be \(\mathit{(}UPIT)\), \(\mathit{(}CPIT)\), or \(\mathit{(}PCPSP)\).

NBLOCKS: <int n>

Gives the number of blocks in the problem.

NPERIODS: <int t max >

Identifies the number of time periods for the problem; this field is valid for formulating problems of type \(\mathit{(CPIT)}\) and \(\mathit{(PCPSP)}\).

NDESTINATIONS: <int d max >

Specifies the number of possible processing alternatives for each block; this field is valid for formulating problems of type \(\mathit{(PCPSP)}\).

NRESOURCE_SIDE_CONSTRAINTS: <int r max >

Identifies the number of operational resource constraints per time period; this field is valid for problems of type \(\mathit{(CPIT)}\) and \(\mathit{(PCPSP)}\).

NGENERAL_SIDE_CONSTRAINTS: <int m>

Identifies the number of general side-constraints for the problem, or equivalently, the number of rows in matrix A. This field is valid for problems of type \(\mathit{(PCPSP)}\).

DISCOUNT_RATE: <dbl α>

This specifies the discount rate used in computing the objective function. That is, \(\hat{p}_{bt} = \frac {p_{b}}{(1+\alpha)^{t}}\) and \(\tilde{p}_{bdt} = \frac{p_{bd}}{(1+\alpha)^{t}}\), where p b and p bd are quantities defined subsequently in the file.

OBJECTIVE_FUNCTION

The objective function is given by one row for each block. Thus, this section has NBLOCKS lines. If the problem-type is either \(\mathit{(UPIT)}\) or \(\mathit{(CPIT)}\), the number of destinations is assumed to be one, i.e., NDESTINATIONS = 1. In this case, p b =p b1. Each line is of the form:

<int b> <dbl p b1> ⋯ <dbl \(p_{bd_{max}}\)>

That is, the first value (b) defines the block, and the next d max values describe the objective function values associated with each destination. No two lines can begin with the same identifier.

RESOURCE_CONSTRAINT_COEFFICIENTS

Here, we define the coefficients q br and \(\hat{q}_{brd}\), corresponding to constraints (5) and (10) in \(\mathit{(CPIT)}\) and \(\mathit{(PCPSP)}\). This entry consists of n lines, where n is at most the total number of non-zero coefficients in the aforementioned constraints. Specifically, each of these lines has the form:

<int b> <int r> <dbl v>

or

<int b> <int d> <int r> <dbl v>

The values of b, d, and r indicate the block, the destination, and the operational resource, respectively. The value of v represents the coefficient q br or \(\hat{q}_{brd}\). All coefficients that are not defined in this way have value zero.

RESOURCE_CONSTRAINT_LIMITS

Here, we define the limits \(\underline{R}_{rt}\) and \(\bar{R}_{rt}\) corresponding to constraints (5) and (10) in \(\mathit{(CPIT)}\) and \(\mathit{(PCPSP)}\), respectively. This entry consists of NRESOURCE_CONSTRAINTS lines, each having the form:

<int r> <int t> <char c> <dbl v 1>

or

<int r> <int t> <char c> <dbl v 1> <dbl v 2>

The value of r indicates the operational resource and the value of t indicates the time period in which the operational resource constraint holds. The value of c can be L (less-than-or-equal-to), G (greater-than-or-equal-to) or I (within an interval). If c has value L, then \(\underline{R}_{rt} = -\infty\) and \(\bar {R}_{rt}\) is equal to the value of v 1. In this case, v 2 is not defined. If c has value G, then \(\bar{R}_{rt} = \infty\) and the value of \(\underline{R}_{rt}\) is equal to v 1. In this case, v 2 is not defined. If c has value I, then v 1 has value \(\underline{R}_{rt}\) and v 2 has value \(\bar{R}_{rt}\). No default value is assumed for these limits. Thus, if an operational resource constraint has no specific type and limits, the instance is not well defined.

GENERAL_CONSTRAINT_COEFFICIENTS

Here, we define the coefficients A bdtj of matrix A, corresponding to constraints (11) in \(\mathit{(PCPSP)}\), where b is a block identifier, d a destination identifier, t a time period, and j a number between 0 and m−1, where m is the number of rows in A. This entry consists of n lines, where n is at most the total number of non-zero coefficients in matrix A. Specifically, each of these lines has the form:

<int b> <int d> <int t> <int j> <dbl v>

The values of b, d, t, j, and v indicate the block, the destination, the time period, the row, and the coefficient A bdrj in the matrix A, respectively. All coefficients that are not defined in this way have value zero.

GENERAL_CONSTRAINT_LIMITS

Here, we define the limits corresponding to constraints (11) in \(\mathit{(PCPSP)}\). This entry consists of NGENERAL_SIDE_CONSTRAINTS lines, each having the form:

<int m> <char c> <dbl v 1>

or

<int m> <char c> <dbl v 1> <dbl v 2>

The value of m indicates the row number of A. The value of c can be L, G or I. If c has value L, then \(\underline{a}_{m} = -\infty\) and \(\bar{a}_{m}\) is equal to the value of v 1. In this case, v 2 is not defined. If c has value G, then \(\bar{a}_{m} = \infty\) and the value of \(\underline{a}_{m}\) is equal to v 1. In this case, v 2 is not defined. If c has value I, then v 1 has value \(\underline{a}_{m}\) and v 2 has value \(\bar{a}_{m}\). No default value is assumed for these limits. Thus, if an operational resource constraint has no specific type and limits, the instance is not well defined.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Espinoza, D., Goycoolea, M., Moreno, E. et al. MineLib: a library of open pit mining problems. Ann Oper Res 206, 93–114 (2013). https://doi.org/10.1007/s10479-012-1258-3

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10479-012-1258-3

Keywords

Navigation