Production scheduling for strategic open pit mine planning: A mixed-integer programming approach

Orlando Rivera Letelier, Daniel Espinoza, Marcos Goycoolea, Eduardo Moreno, Gonzalo Muñoz

Research output: Contribution to journalArticlepeer-review

32 Scopus citations


Given a discretized representation of an ore body known as a block model, the open pit mining production scheduling problem that we consider consists of defining which blocks to extract, when to extract them, and how or whether to process them, in such a way as to comply with operational constraints and maximize net present value. Although it has been established that this problem can be modeled with mixed-integer programming, the number of blocks used to represent real-world mines (millions) has made solving large instances nearly impossible in practice. In this article, we introduce a new methodology for tackling this problem and conduct computational tests using real problem sets ranging in size from 20,000 to 5,000,000 blocks and spanning 20 to 50 time periods. We consider both direct block scheduling and bench-phase scheduling problems, with capacity, blending, and minimum production constraints. Using new preprocessing and cutting planes techniques, we are able to reduce the linear programming relaxation value by up to 33%, depending on the instance. Then, using new heuristics, we are able to compute feasible solutions with an average gap of 1.52% relative to the previously computed bound. Moreover, after four hours of running a customized branch-and-bound algorithm on the problems with larger gaps, we are able to further reduce the average from 1.52% to 0.71%.

Original languageEnglish
Pages (from-to)1425-1444
Number of pages20
JournalOperations Research
Issue number5
StatePublished - Sep 2020


  • Column generation
  • Cutting planes
  • Heuristics
  • Integer programming applications
  • Open pit mining
  • Production scheduling


Dive into the research topics of 'Production scheduling for strategic open pit mine planning: A mixed-integer programming approach'. Together they form a unique fingerprint.

Cite this