A hybrid method based on linear programming and variable neighborhood descent for scheduling production in openpit mines
Abstract
Production scheduling of openpit mines is an important problem arising in surface mine planning as it determines the raw materials to be produced yearly over the life of the mine, assesses the value of the mine, and contributes to the sustainable utilization of mineral resources. Finding the optimal schedule is a complex task, involving large data sets and multiple constraints. This paper introduces a twophase hybrid solution method. The first phase relies on solving a series of linear programming problems to generate an initial solution. In the second phase, a variable neighborhood descent procedure is applied to improve the solution. Upper bounds provided by CPLEX are used to evaluate the efficiency of the proposed method. Its performance is also assessed by comparing it to recent solution methods proposed in the literature and to an alternate method implemented in commercial mine planning software commonly used by professional mine planners. The results of these computational experiments indicate the efficiency of the proposed method and its superiority over the other methods. It finds excellent solutions (within less than 3.2 % of optimality on average) for large instances of the problem in a few seconds up to a few minutes. It also provides new bestknown solutions for benchmark instances from the literature, and it can solve instances recentlypublished algorithms have found intractable.
Keywords
Variable neighborhood descent Hybrid methods Scheduling Openpit mine planning1 Introduction
Production scheduling of openpit mines is an important issue in surface mine planning as it determines the raw materials to be produced yearly over the life of the mine, assesses the value of the mine, and contributes to the sustainable utilization of mineral resources. The problem is complex as it involves large data sets and multiple constraints, placing a strain on computational resources.
The mineral deposit is represented as a threedimensional array of blocks. Each block has a weight and a metal content estimated using information obtained from drilling. To recover the metal, the block must first be extracted from the ground and then treated in a plant. These operations are termed mining and processing, respectively. The set of blocks can be divided into two distinct subsets: the set of ore blocks sent to the plant (i.e., blocks that are processed to produce metal), and the set of waste blocks formed by the remaining blocks. Waste blocks are not processed, but the physical nature of the problem requires mining them in order to have access to ore blocks. Blocks that should be removed to have access to a given block are called its predecessors. Each block also has an economic value representing the net profit associated with it. Hence, for an ore block, this value is equal to the selling revenue less the mining and the processing costs. For a waste block, it is equal to minus the cost of mining the block.

Reserve constraints: a block can be mined at most once during the horizon.

Slope constraints: a block cannot be mined before its predecessors.

Mining constraints: the total weight of blocks (waste and ore) mined during each period of the horizon must not exceed the available extraction equipment capacity, referred to as the mining capacity.

Processing constraints: the total weight of ore blocks processed during each period of the horizon must not exceed the processing plant capacity.
Exact methods solve optimally the MPSP, but their major limitation is that they can only be applied to instances of relatively small size. Solving instances of realistic size, where the number of blocks is typically in the order of tens to hundreds of thousands, requires prohibitive computational times. To reduce the number of binary variables and thus make larger instances computationally tractable by exact methods, Ramazan and Dimitrakopoulos [25] propose a mixed integer programming formulation where only the variables associated with ore blocks are restricted to be binary. Another approach for handling the large number of binary variables exploits the structure of the problem to aggregate blocks into groups, leading to a reduction in the number of variables [5, 24]. Aggregation, however, can severely compromise the validity and usefulness of the solution [3]. It causes loss of profitability and may even lead to infeasible solutions [5]. In order to reduce the number of binary variables, Bley et al. [4] address a different approach involving cutting planes. The authors add to the integer programming formulation inequalities derived by combining the constraints of the problem to eliminate a number of decision variables from the model prior to optimization. Their results indicate that adding such inequalities is, in the majority of the cases tested, beneficial for reducing the CPU time required by the solver. However, their experiments were conducted on instances containing only hundreds of blocks and \(5\) or \(10\) periods.
Heuristics and metaheuristics can tackle large instances of the MPSP in a reasonable amount of time, but they do not guarantee optimality. Their efficiency and robustness can be improved by combining them with other techniques. A number of such hybrid methods have been developed over the years. Sevim and Lei [26] and Tolwinski and Underwood [27] combine heuristics with dynamic programming techniques. More recent approaches combine heuristics with exact methods. Moreno et al. [22] introduce an algorithm for solving the linear relaxation of the MPSP and an LPbased heuristic to obtain feasible solutions. However, the algorithm proposed by the authors to solve the linear relaxation is only applicable to the variant of the MPSP with a single resource constraint per period and for which such a constraint is an upper bound (i.e., referring to the description given in the beginning of this section, the variant of the MPSP including either the mining or the processing constraints in addition to the slope constraints). Bienstock and Zuckerberg [3] propose another algorithm for solving the linear relaxation of the MPSP that can handle any number of resource constraints.
Another hybrid approach for the MPSP is the one by Amaya et al. [1]. Starting from an initial feasible solution generated using Gershon’s heuristic [17], the authors iteratively fix parts of the incumbent solution and reoptimize the ”unfixed” parts. This defines an integer programming subproblem at each iteration that is solved exactly, using the commercial solver CPLEX. Chicoisne et al. [11] use a similar approach. They first use the method in [22] to generate a feasible solution, followed by an improvement integer programmingbased heuristic, which is an enhanced version of that in [1]. Cullenbine et al. [12] also solve a series of mixedinteger programs that have fixed variables. The authors consider, however, a variant of the MPSP incorporating lower bounds on mining and processing, which is, as noted by the authors, harder to solve than the variant where the lower bounds are omitted (i.e., the variant described in the beginning of this section and considered by Chicoisne et al. [11]). The drawback of the recent hybrid algorithms [11, 12] is that they rely on time consuming integer programming algorithms. The method in [11] can solve instances with up to five million blocks and 15 years but might require 8 h to improve the solution and cannot handle lower bound constraints. On the other hand, the method in [12] can handle lower bound constraints but has been able to tackle only instances with up to 25,000 blocks and 15 periods.
In this paper, we propose a variable neighborhood descent based method for the MPSP. Variable neighborhood descent (VND) is a variant of variable neighborhood search [18]. The basic idea is the same: neighborhood change to escape from local optima, but the different neighborhoods are explored using a best improvement local descent. VND has been shown effective in solving a variety of combinatorial optimization problems (see [8] for an example). To generate the initial solution to be improved by the VND procedure, we develop a decomposition based heuristic. The basic idea is to reduce the complexity of the problem by exploiting its structure and decomposing it into easier to solve subproblems. Each subproblem is associated with one period, and solving it consists of solving a linear program, not an integer or a mixedinteger program. This is followed by a repair heuristic to make the solution of the subproblem feasible if necessary. When all subproblems are considered, their solutions are combined to obtain a feasible solution of the original problem (the initial solution).
We applied the method described above to solve two different variants of the MPSP: the variant described in the beginning of this section, commonly studied in the literature, and the variant incorporating lower bounds on mining and processing, considered in [12] and known to be more difficult to solve. For both variants, the computational results indicate that the proposed solution method is very effective and robust, providing, for all the tested instances, nearoptimal solutions in a few seconds up to a few minutes. It generally outperforms recentlyproposed solution methods for the MPSP and provides new bestknown solutions for benchmark instances from the literature.
From a broad perspective, the method proposed in this paper is a hybrid method combining mathematical programming algorithms with heuristic search techniques, able to tackle large instances of the MPSP. In this sense, it is similar to recent approaches in the literature. However, it has key characteristics which differentiate it from existing methods. First, it doesn’t resort to aggregation to tackle large instances of the problem. Second, it doesn’t rely on solving a series of integer or mixed integer subproblems but rather exploits the problem structure and uses variable neighborhood descent to quickly find improving solutions. When generating the initial solution, it uses an exact method to solve linear programs. Because of that, its running time has a slower growth rate compared to recent solution methods in the literature. Third, it is not a specialized method tailored to solve one variant of the MPSP, but it can be easily adapted to account for additional constraints. Last but not least, it doesn’t require any external software, such as CPLEX, in order to be implemented. Indeed, although CPLEX is used in this study to solve the linear programs when generating the initial solution, any maximum flow algorithm, such as the pseudoflow algorithm proposed by Hochbaum [19], can be used.
Note that this paper deals with the deterministic version of the MPSP, which assumes that all the problem parameters are well known. There exist other versions where one or some components of the problem (e.g., prices, metal content, etc.) are not known with certainty. These stochastic versions of the MPSP have received increasing attention in recent years (see for instance, [2, 6, 7]).
The remainder of the paper is organized as follows: In Sect. 2 a mathematical formulation of the problem is provided. In Sect. 3 the heuristic for generating an initial solution is outlined. In Sect. 4 the components of the variable neighborhood descent heuristic used to improve the solution are described. The results of an extensive computational study are presented in Sect. 5. This is followed by conclusions in Sect. 6.
2 Mathematical formulation

\(T\): the scheduling horizon.

\(t\): period index, \(t=1,\ldots ,T\).

\(N\): the number of blocks.

\(i\): block index, \(i=1,\ldots ,N\).

\(\mathcal {P}_i\): the set of predecessors of block \(i\); i.e., blocks that have to be removed to have access to block \(i\).

\(\mathcal {S}_i\): the set of successors of block \(i\); i.e., \(s\in \mathcal {S}_i\) if \(i\in \mathcal {P}_s\).

\(\mathcal {\overline{P}}_i\): the set of immediate predecessors of block \(i\). The relationship between block precedences is transitive; i.e., if block \(j\) is a predecessor of block \(i\), and if block \(k\) is a predecessor of block \(j\), then block \(k\) is also a predecessor of block \(i\). This transitivity property is used to describe the immediate predecessors as being those that are not implied by any other pair of precedences. In the example above, \(k\) is not an immediate predecessor of \(i\).
Figure 1 gives a 2dimensional illustration of the sets \(\mathcal {P}_i\), \(\mathcal {S}_i\), and \(\mathcal {\overline{P}}_i\) when precedences are defined by a 45degree slope angle and one level above.

\(w_i\): the weight of block \(i\) (typically in tons).

\(\theta _i\): a parameter indicating the group of block \(i\)
\(\theta _{i}=\left\{ \begin{array}{ll} 1&{}\text{ if } \text{ block }\; i\; \text{ is } \text{ an }\; ore\; \text{ block, }\\ 0&{}\text{ otherwise } \text{(i.e., } \text{ if }\; i\; \text{ is } \text{ a }\; waste\; \text{ block). } \end{array} \right. \)

\(v_i\): the economic value of block \(i\).

\(d\): the discount rate per period.

\(v_i^{t} = \displaystyle {\frac{v_i}{(1+d)^{t}}}\): the discounted economic value of block \(i\) if mined in period \(t\). Note that we assume that ore blocks are processed during the same period that they are mined and that the profit is also generated during that period.

\(M^{t}\): the mining capacity available at period \(t\).

\({\varTheta }^{t}\): the processing capacity available at period \(t\).

A binary variable is associated with each block \(i\) for each period \(t\):
\(x_{i}^{t}=\left\{ \begin{array}{ll} 1&{}\text{ if } \text{ block }\; i\; \text{ is } \text{ mined } \text{ by } \text{ period }\; t,\\ 0&{}\text{ otherwise. } \end{array} \right. \)
This means that if block \(i\) is mined in period \(\tau \), then \(x_{i}^{t} = 0\) for all \(t=1,\ldots , \tau 1\) and \(x_{i}^{t} = 1\) for all \(t = \tau ,\ldots , T\). If \(i\) is not mined during the horizon, then \(x_{i}^{t} = 0\) for all \(t=1,\ldots , T\).
The solution procedure, which includes two phases, is described in the next sections.
3 Phase 1 to construct an initial feasible solution (SH)
In this section, a general overview of the algorithm used to generate an initial feasible solution is first presented. This is followed by a stepbystep description of it.
3.1 Overview of the algorithm
The subproblems associated with the periods \(t\) (\(t = 1, \ldots , T\)) are solved sequentially (in increasing order of \(t\)), and the solutions of the subproblems are combined to generate the initial solution. The procedure to deal with the subproblem associated with each period \(t\) can be summarized as follows: First, a set of blocks to be mined in \(t\) is identified by solving a linear programming model. This solution satisfies the slope constraints, but it may violate the mining constraints and/or the processing constraints. In this case, a repair heuristic is applied to modify the solution in order to satisfy these constraints.
3.2 Step 1 solving the subproblem for period \(t\)
We specify and solve a linear programming subproblem to determine a set of blocks \(\mathcal {B}^{t}\) to be mined in period \(t\).
The reserve and the slope constraints are considered to specify the constraints of the subproblem. Let us denote by \(\mathcal {R}^{t}\) the set of blocks not mined at the beginning of period \(t\) (\(\mathcal {R}^{1} = \{1, \ldots , N\}\) and \(\mathcal {R}^{t} = \mathcal {R}^{t1} \setminus \mathcal {B}^{t1} \) if \(t=2,\ldots , T\)). In order to satisfy the reserve constraints, the blocks to be included in \(\mathcal {B}^{t}\) should be selected from \(\mathcal {R}^{t}\). Consider any candidate block \(i \in \mathcal {R}^{t}\). The slope constraints require that to include \(i\) in \(\mathcal {B}^{t}\), we must also include all blocks \(j\in \mathcal {N}_i = \mathcal {P}_i \cap \mathcal {R}^{t}\) (the set of blocks that are predecessors of \(i\) and not mined yet).
To specify the objective function of the subproblem, we consider the mining and the processing constraints. Indeed, \(i\) should not be included in \(\mathcal {B}^{t}\) if \(w_i + \sum _{j\in \mathcal {N}_{i}} w_j > M^{t}\) or \(\theta _i w_i + \sum _{j\in \mathcal {N}_{i}} \theta _j w_j >{\varTheta }^{t}\) because this would lead to violation of the mining constraints or the processing constraints. The economic value \(v_i\) of such a block \(i\) is thus modified and set to a large negative value to penalize its extraction. Note that we extend this penalty of extraction to any block \(i \in \mathcal {R}^{t}\) such that \(w_i + \sum _{j\in \mathcal {N}_{i}} w_j > \alpha M^{t}\) or \(\theta _i w_i + \sum _{j\in \mathcal {N}_{i}} \theta _j w_j >\alpha {\varTheta }^{t}\), where \(\alpha \) is a random number in the interval \([\alpha _{1}, \alpha _{2}]\) if \(t<T\), and \(\alpha = 1\) if \(t = T\). Moreover, \(\alpha _1\) and \(\alpha _2\) are parameters of the procedure in the interval \(]0,1]\).
Note that the algorithm described above can be seen as using logical implications of the constraints to exclude some blocks, and then, considering the remaining blocks, to find an ultimate pit, but to do that, instead of considering the economic value of each block, the value per unit of weight is considered. In our tests, we found that using the normalized value (i.e., value per unit of weight) leads to better results compared to using the original value.
Even if the mining and processing constraints are used partly to discard some blocks from \(\mathcal {B}^t\) (those whose modified economic values are set to \(C\)), \(\sum _{i \in \mathcal {B}^t} w_i\) (respectively, \(\sum _{i \in \mathcal {B}^t} \theta _{i}w_i\)) may exceed the mining (respectively, the processing) capacity available at period \(t\). We therefore introduce a heuristic allowing us to satisfy the mining and the processing constraints for period \(t\) (if they are violated).
3.3 Step 2 to satisfy the mining and the processing constraints
We use a sequential heuristic procedure where at each iteration a block is removed from the set \(\mathcal {B}^{t}\) and added to the set \(\mathcal {R}^{t+1}\). Let us analyze a typical iteration.
Consider the set \(\mathcal {E} = \{i\in \mathcal {B}^{t} \, : \, s\not \in \mathcal {B}^{t} \, \, \forall s\in \mathcal {S}_i\}\) of blocks \(i\in \mathcal {B}^{t}\) having no successors in \(\mathcal {B}^t\). Clearly, only these blocks can be removed from \(\mathcal {B}^{t}\) while satisfying the slope constraints. For each candidate block \(i\in \mathcal {E}\), let \(f_i = \displaystyle \frac{v_i}{w_i}+\sum \nolimits _{p\in \mathcal {P}_i \cap \mathcal {B}^t} \frac{v_p}{w_p}\) be the total unit economic value of \(i\) and its predecessors that belong to \(\mathcal {B}^t\). Select the block \(i^* \in \mathcal {E}\) minimizing the value of \(f_i\). Ties are broken up randomly. Remove \(i^*\) from \(\mathcal {B}^t\), add it to \(\mathcal {R}^{t+1}\), and update \(\mathcal {E}\). Note that the rule used to select the blocks in \(\mathcal {E}\) induces some lookahead features to remove less valuable blocks from \(\mathcal {B}^{t}\) . However, it does not guarantee that a feasible solution of good quality will be obtained.
4 Phase 2 to improve the solution (VND)
As mentioned before, the solution \(x = \displaystyle {\cup _{t=1}^{T}}\mathcal {B}^t\) generated in Phase 1 is feasible, and it is improved by applying an adaptation of the Variable Neighborhood Descent method (VND) proposed by Hansen and Mladenovic [18]. The basic idea of VND is to combine different descent heuristics based on different neighborhood structures to escape from local optima. In the following, we first describe the neighborhood structures used in our adaptation of the VND method. Next, we outline the procedure used to improve the solution \(x\).
4.1 Neighborhood structures

\(N^1\) (Exchange): Let \(i\) and \(j\) be two blocks mined in periods \(t\) and \((t+1)\), respectively. An exchange consists of replacing \(\mathcal {B}^t\) and \(\mathcal {B}^{t+1}\) by \((\mathcal {B}^t\{i\})+\{j\}\) and \((\mathcal {B}^{t+1}\{j\})+\{i\}\), respectively. The exchange of two blocks is feasible if the resulting solution is feasible; i.e., only if it satisfies the slope, the mining, and the processing constraints. Figure 2 gives a 2dimensional illustration of an exchange move involving two blocks, \(i\) and \(j\), with \(T=2\).

\(N^2\) (Shiftafter): Let \(i\) be a block mined in period \(t\), and let \(\mathcal {I} = \{i\} \cup \{\text{ block } s\, : \, s\in \mathcal {S}_i \cap \mathcal {B}^t\}\) denote the set including \(i\) and its successors mined in the same period. A shiftafter consists of replacing \(\mathcal {B}^t\) and \(\mathcal {B}^{t+1}\) by \(\mathcal {B}^t\mathcal {I}\) and \(\mathcal {B}^{t+1}+\mathcal {I}\), respectively. Clearly, the slope constraints are satisfied in the resulting solution since the blocks are moved along with their successors. However, the mining and the processing constraints must be satisfied in period \((t+1)\) in order to allow this shiftafter. Figure 3 illustrates the Shiftafter move where block \(i\) and its successors mined in period \(1\) are moved to period \(2\).

\(N^3\) (Shiftbefore): Let \(i\) be a block mined in period \(t\), and let \(\mathcal {I} = \{i\} \cup \{\text{ block } p\, : \, p\in \mathcal {P}_i \cap \mathcal {B}^t\}\) denote the set including \(i\) and its predecessors mined in the same period. A shiftbefore consists of replacing \(\mathcal {B}^t\) and \(\mathcal {B}^{t1}\) by \(\mathcal {B}^t\mathcal {I}\) and \(\mathcal {B}^{t1}+\mathcal {I}\), respectively. As for the Shiftafter neighborhood, the slope constraints are necessarily satisfied, but the mining and the processing constraints in period \((t1)\) must be satisfied in order to allow this shiftbefore. Figure 4 illustrates the Shiftbefore move where block \(i\) and its predecessors mined in period \(2\) are moved to period \(1\).
4.2 Variable neighborhood descent procedure
The rules of a basic VND are applied: Start by exploring the Exchange neighborhood (\(N^1\)). When the search of \(N^1\) is completed (i.e., for all \(t=1,\ldots , (T1)\), no feasible exchange between pairs of blocks mined in periods \(t\) and \((t+1)\) exists to further improve the solution or to get a solution of equal value), restart a new search using the Shiftafter neighborhood (\(N^2\)). Once the search of \(N^2\) is completed, if the solution has been improved, return to \(N^1\); otherwise, use the Shiftbefore neighborhood (\(N^3\)). This process terminates when no move in any of the three neighborhoods improves the value of the objective function.
Note that the Shiftafter neighborhood (\(N^2\)) is explored before the Shiftbefore neighborhood (\(N^3\)) to create an opportunity for other blocks to be added to a given period \(t\) without exceeding the mining and the processing capacities available at \(t\). Indeed, by first moving blocks from period \(1\) to period \(2\) (last shifts using \(N^2\)), more capacity becomes available in period \(1\) to include other blocks from period \(2\) (first shifts using \(N^3\)).
5 Numerical results
The method described in this paper is tested on instances generated from actual mineral deposits, as well as on benchmark instances from the literature. All numerical experiments were performed on an Intel(R) Xeon(R) CPU E78837 computer (2.67 GHz) with 1 TB of RAM running under Linux. Before reporting the numerical results, we first introduce the instances and the parameters used in the experiments.
5.1 Test instances
5.1.1 Instances generated from actual mineral deposits
Economic parameters
Parameters  \(\text{ P }_{1}\)  \(\text{ P }_{2}\) 

Mining cost  $1/t  $1/t 
Processing cost  $9/t  $15/t 
Metal price  $2/lb  $900/oz 
Selling cost  $0.3/lb  $7/oz 
Discount rate  10 %  10 % 
Characteristics of the 10 instances generated from actual mineral deposits
Set  Instance  \(D\)  Number of blocks (\(N\))  Number of periods (\(T\)) 

\(\text{ P }_{1}\)  C1  20,000  4,273  3 
Metal type: copper  C2  15,000  7,141  4 
Block size: \(20\times 20\times 10\,\mathrm{m}\)  C3  10,000  12,627  7 
Block weight: \(w_i\) = 10,800 tons  C4  5,000  20,626  10 
C5  0  26,021  13  
\(\text{ P }_{2}\)  G1  20,000  18,821  5 
Metal type: gold  G2  15,000  23,901  7 
Block size: \(15\times 15\times 10\,\mathrm{m}\)  G3  10,000  30,013  8 
Block weight: \(w_i\) = 5,625 tons  G4  5,000  34,981  9 
G5  0  40,762  11 
For each of the 10 instances, the production capacities are identical in all periods and emulate those in realworld problems. For each period \(t\), the mining capacity \(W^t\) is set to \(\lceil 1.25 \frac{\sum _{i=1}^{N} w_i}{T}\rceil \) and \(\lceil 1.30 \frac{\sum _{i=1}^{N} w_i}{T}\rceil \) for instances in \(\text{ P }_1\) and \(\text{ P }_2\), respectively (i.e., \(\frac{\text{ total } \text{ amount } \text{ of } \text{ rock }}{\text{ number } \text{ of } \text{ periods }}\) plus a margin of \(25\,\%\) and \(30\,\%\), respectively). The processing capacity \({\varTheta }^t\) is set to \( \lceil 1.05 \frac{\sum _{i=1}^{N} w_i\theta _{i}}{T} \rceil \) \(\left( \hbox {i.e}, \frac{\text{ total } \text{ amount } \text{ of }\; ore}{\text{ number } \text{ of } \text{ periods } \text{ plus } \text{ a } \text{ margin } \text{ of } } 5\,\%\right) \).
5.1.2 First set of benchmark instances
As mentioned in the introduction, recent methods for solving the openpit mine production scheduling problem (MPSP) have been proposed by Amaya et al. [1], Moreno et al. [22], and Chicoisne et al. [11]. These methods have been applied to a set of four instances. In our experiments, we use two of these four instances; namely, AmericaMine and Marvin. Note that Marvin is also used in the studies by Bienstock and Zuckerberg [3] and Cullenbine et al. [12]. We don’t use the other two instances (AsiaMine and Andina) because they were not available in the public domain (due to confidentiality considerations).
Characteristics of the two instances in the first set of benchmark instances
Instance  Number of blocks (\(N\))  Number of periods (\(T\)) 

AmericaMine  19,320  15 
Metal type: polymetalic (not specified by the authors)  
Block size: Unknown  
Block weight \(w_i\): variable  
Marvin  53,668  15 
Metal type: copper and gold  
Block size: \(30\times 30\times 30\,\mathrm{m}\)  
Block weight \(w_i\): variable 
5.1.3 Second set of benchmark instances: MineLib test instances
Characteristics of the eight instances in the second set of benchmark instances (instances from MineLib)
Instance  Number of blocks (\(N\))  Number of periods (\(T\)) 

newman1  1,060  6 
Metal type: Unknown  
Block size: Unknown  
Block weight \(w_i\): variable  
zucksmall  9,400  20 
Metal type: Unknown  
Block size: Unknown  
Block weight \(w_i\): variable  
zuckmedium  29,277  15 
Metal type: Unknown  
Block size: Unknown  
Block weight \(w_i\): variable  
p4hd  40,947  10 
Metal type: gold and copper  
Block size: \(50\times 50\times 20\,\mathrm{ft}\)  
Block weight \(w_i\): variable  
marvin  53,271  20 
Metal type: gold and copper  
Block size: \(30\times 30\times 30\,\mathrm{m}\)  
Block weight \(w_i\): variable  
w23  74,260  12 
Metal type: Unknown  
Block size: \(25\times 25\times 20\,\mathrm{ft}\)  
Block weight \(w_i\): variable  
zucklarge  96,821  30 
Metal type: Unknown  
Block size: Unknown  
Block weight \(w_i\): variable  
sm2  99,014  30 
Metal type: Unknown  
Block size: Unknown  
Block weight \(w_i\): variable 
5.2 Parameter calibration
Version 12.5 of the commercial solver CPLEX was used to solve the subproblems \((SP^{t})\); i.e., the mathematical model (9)–(11) introduced in Sect. 3.2. The predual parameter of CPLEX was set to 1; that is, the dual linear programming problem is passed to the optimizer. This is a useful technique for problems with more constraints than variables [20]. All other CPLEX parameters were set to their default values. Note that although CPLEX is used in this study to solve the subproblems \((SP^{t})\), any maximum flow algorithm can be used.

\([\alpha _{1}, \alpha _{2}] = [0.6, 0.65]\)

\([\beta _{1}, \beta _{2}] = [0.95, 1]\).
Finally, the value of the parameter \(C\), used to define the modified economic values \(\bar{v_{i}}\) (i.e., the coefficients of the objective function (9)), was set to \(C=N {\max \limits _i} \,v_i\).
5.3 Hybrid method applied to instances generated from actual mineral deposits
The results of our computational experiments on the 10 instances described in Sect. 5.1.1 are reported below. We first present results for the variant of the MPSP described in Sect. 2 and commonly studied in the literature. Then we provide results for the variant where lower bounds on mining and processing are added to the constraint set. As mentioned Sect. 1, the variant incorporating lower bounds is considered in [12] and is known to be more difficult to solve.
5.3.1 MPSP described in Sect. 2
The linear relaxation of the MPSP formulation (1)–(8) was solved using the commercial solver CPLEX to obtain an upper bound on the optimal value, allowing us to assess the quality of the solutions produced with the proposed solution method, denoted SHVND (SH stands for the sequential heuristic used to generate the initial solution and VND for the variable neighborhood descent used to improve the initial solution).

\(\%Min\, Gap = \frac{Z_{LR}  Z_{best}}{Z_{LR}} \times 100\): the value of the relative gap between the value \(Z_{best}\) of the best solution obtained by SHVND over the 10 runs and the optimal value \(Z_{LR}\) of the linear relaxation.

\(\%Max\, Gap = \frac{Z_{LR}  Z_{worst}}{Z_{LR}} \times 100\): the value of the relative gap between the value \(Z_{worst}\) of the worst solution obtained by SHVND over the 10 runs and the optimal value of the linear relaxation.

\(\%Ave\, Gap = \frac{Z_{LR}  Z_{average}}{Z_{LR}} \times 100\): the value of the relative gap between the average value \(Z_{average}\) of the 10 solutions generated by SHVND and the optimal value of the linear relaxation.

\(Ave\, CPU\): the average solution time in seconds.

SHVND is very efficient in the sense that for each problem the value of \(\%Min\, Gap\) is less than \(2\,\%\) away from the upper bound provided by CPLEX. This indicates that at least one of the 10 solutions generated is of excellent quality. Even though 10 runs are required to achieve this \(\%Min\, Gap\), this is acceptable since the CPU time of a run is less than 1 min for all the tested instances.

SHVND is very robust in the sense that in all cases (considering the 10 instances and the 10 runs) the gap between the solution generated and the upper bound provided by CPLEX is smaller than \(3\,\%\), and in \(92\,\%\) of all cases, it is smaller than \(2\,\%\) (cf. values of \(\%Max\, Gap\)).

The time required to find these high quality solutions is very reasonable. For the smallest problem, C1, a nearoptimal solution is found almost immediately (less than 1 s). For the largest problem, G5, the CPU time is less than 1 min.

As expected, the solution time increases with the number of blocks in the instance, but the rate of increase is larger for CPLEX than for SHVND. Indeed, CPLEX may require more than 1 day (almost 27 h) to solve the linear relaxation of the largest problem, G5, while a very good feasible solution for this problem is obtained in less than 1 min by SHVND.

\(\#\, Times\): the number of times that the neighborhood has been explored
 \(\%Imp._{N}\): the average improvement in percent gained by using the neighborhood. To compute the value of \(\%Imp._{N}\), we proceed as follows: Suppose that the neighborhood is explored for the \(k^{th}\) time (\(k = 1, \ldots , \#\, Times\)). Let \(\%Gap^{start}_{k}\) and \(\%Gap^{end}_{k}\) be the gap of the best solution found so far at the beginning and at the end of the exploration, respectively. The average improvement achieved by using the neighborhood is then:$$\begin{aligned} \%Imp._{N} = \frac{ \sum _{k=1}^{\#\,Times}\frac{\%Gap^{start}_{k}  \%Gap^{end}_{k}}{\%Gap^{start}_{k}} \times 100}{\#\,Times}. \end{aligned}$$
Evaluating the efficiency of SHVND: instances generated from actual mineral deposits
Set  Problem  \(N\)  \(T\)  SHVND  CPLEX  

\(\%Min\, Gap\)  \(\%Max\, Gap\)  \(\%Ave\, Gap\)  \(Ave\, CPU\) (seconds)  \(Ave\, CPU\) (seconds)  
\(\text{ P }_1\)  C1  4,273  3  0.63  0.91  0.74  0.49  11.38 
C2  7,141  4  0.72  0.79  0.74  1.51  145.36  
C3  12,627  7  1.28  2.31  1.95  5.10  2,250.15  
C4  20,626  10  1.63  2.82  2.11  14.89  21,919.40  
C5  26,021  13  1.50  1.86  1.66  23.87  47,237.90  
\(\text{ P }_2\)  G1  18,821  5  0.58  0.84  0.67  10.48  5,037.59 
G2  23,901  7  0.92  1.34  1.13  18.89  18,524.60  
G3  30,013  8  0.97  1.33  1.23  27.88  39,837.80  
G4  34,981  9  1.13  2.12  1.44  39.18  64,811.80  
G5  40,762  11  1.60  2.40  1.86  55.12  96,536.30 
Evaluating the efficiency of each step of SHVND: instances generated from actual mineral deposits
Instance  \(\%Gap^{init}\)  \(\%Gap^{final}\)  \(\%Imp._{VND}\)  Exchange (\(N^1\))  Shiftafter (\(N^2\))  Shiftbefore (\(N^3\))  

\(\#\,Times\)  \(\%Imp._{N}\)  \(\#\,Times\)  \(\%Imp._{N}\)  \(\#\,Times\)  \(\%Imp._{N}\)  
C1  1.29  0.74  42.61  5.40  4.82  4.00  0.28  3.20  7.05 
C2  1.44  0.74  48.54  7.40  3.91  4.60  0.25  3.40  8.53 
C3  3.01  1.95  35.20  8.70  2.15  7.10  0.18  4.20  6.42 
C4  4.24  2.11  50.21  8.90  1.48  8.20  0.17  4.40  5.25 
C5  3.65  1.66  54.54  9.90  1.37  8.70  0.58  5.10  9.48 
G1  1.25  0.67  46.28  6.40  0.48  5.10  0.04  3.50  12.84 
G2  1.96  1.13  42.18  8.00  0.57  6.40  0.04  3.50  11.19 
G3  2.46  1.23  50.08  8.80  0.84  6.70  0.05  3.30  12.99 
G4  3.31  1.44  56.29  9.20  0.94  6.60  0.10  4.00  13.83 
G5  3.98  1.86  53.28  11.20  1.40  7.70  0.21  3.60  12.23 
To further assess the performance of SHVND, we compare our results with those obtained by Whittle [28], which is, as mentioned earlier, a commercial mine planning software commonly used by professional mine planners. Three different algorithms are implemented in this software to solve the MPSP. We have used the Milawa NPV algorithm, which has been shown to find solutions with very high net present value (objective function (1)) compared to the other two algorithms [28]. In the following, we refer to the Whittle’s Milawa NPV algorithm as WM.
Comparing SHVND and WM
Set  Instance  \(N\)  \(T\)  \(\%Ave\, Gap\)  \(Ave\, CPU\) (seconds)  

SHVND  WM  \(\%Imp.\)  SHVND  WM  
\(\text{ P }_1\)  C1  4,273  3  0.74  14.48  94.89  0.49  43.00 
C2  7,141  4  0.74  18.26  95.95  1.51  64.00  
C3  12,627  7  1.95  19.58  90.04  5.10  78.00  
C4  20,626  10  2.11  20.98  89.94  14.89  85.00  
C5  26,021  13  1.66  3.19  47.96  23.87  101.00  
\(\text{ P }_2\)  G1  18,821  5  0.67  3.77  82.24  10.48  30.00 
G2  23,901  7  1.13  5.51  79.49  18.89  57.00  
G3  30,013  8  1.23  2.94  58.14  27.88  44.00  
G4  34,981  9  1.44  2.33  38.08  39.18  63.00  
G5  40,762  11  1.86  4.91  62.10  55.12  65.00 
Clearly, SHVND dominates WM. On average, when SHVND is used, the \(\%Ave \,Gap\) is improved by \(74\,\%\), and the \(Ave \, CPU\) is reduced by a factor of 3. Moreover, it can be seen from the values of \(\%Max \, Gap\) in Table 5 that, for all the tested instances, the 10 solutions generated by SHVND are strictly better than the one produced by WM. On the other hand, from Table 7, it appears that the values of \(\%Ave\, Gap\) obtained by WM are somewhat smaller for problems in \(\text{ P }_2\) than for problems in \(\text{ P }_1\), indicating that WM is not as robust as SHVND, which gives similar results for all instances.
5.3.2 MPSP with lower bounds on mining and processing
As mentioned in [12], these constraints are important for practical applications as they can prevent large setup costs incurred by stopping and restarting the processing operations. However, including them adds significantly to the complexity of the problem and hampers certain specialized computational methods proposed in the literature. The authors note that “even a small problem with lower bounds on resource consumption can be dramatically harder to solve than the same problem with those lower bounds omitted.” They give an example of a small test problem solved with CPLEX for which the solution time increases by a factor of 21 when lower bounds are added. To further test the proposed SHVND method, we examine how it performs when lower bounds on mining and processing are added (constraints (17)–(20)). Accounting for these constraints requires minor modifications to the solution procedure, which are described below.
Consider an initial solution generated using the procedure described in Sect. 3 and with the same parameter values as in Sect. 5.2. A repair method based on a simple tabu search is applied if this solution does not satisfy constraints (17)–(20). The neighborhood is obtained by moving a block \(i\) currently scheduled at period \(t\) to another period \(\tau \ne t\) provided that the slope constraints are satisfied. When moving \(i\) from \(t\) to \(\tau \), block \(i\) is forbidden to be scheduled at \(t\) for the next \(numIter\) iterations, where \(numIter\) is a random integer number chosen in \([0.8 N, 1.2 N]\) (moving \(i\) to \(t\) is declared tabu). At each iteration, one of the best nontabu neighbor solutions is selected, and the tabu search terminates when the solution is feasible. To maintain the feasibility of the solution during the second phase of the solution procedure (where we apply variable neighborhood descent), when exploring any of the three neighborhoods (Exchange, Shiftafter, and Shiftbefore), moves that would violate constraints (17)–(20) are not allowed.
Evaluating the efficiency of SHVND to account for additional constraints: instances generated from actual mineral deposits
Set  Problem  \(N\)  \(T\)  SHVND  CPLEX  

\(\%Min\, Gap\)  \(\%Max\, Gap\)  \(\%Ave\, Gap\)  \(Ave\, CPU\) (s)  \(Ave\, CPU\) (s)  
\(\text{ P }_1\)  C1  4,273  3  0.63  0.91  0.74  0.49  10.72 
C2  7,141  4  0.64  0.72  0.68  1.55  72.5  
C3  12,627  7  1.18  2.36  1.93  15.55  3,019.79  
C4  20,626  10  1.32  3.51  2.33  129.89  32,639.20  
C5  26,021  13  2.77  3.91  3.45  1,723.22  143,676.00  
\(\text{ P }_2\)  G1  18,821  5  0.58  0.84  0.67  11.64  3,118.11 
G2  23,901  7  0.94  1.33  1.13  20.80  19,430.60  
G3  30,013  8  0.98  2.01  1.29  34.50  35,087.70  
G4  34,981  9  1.01  2.23  1.70  51.02  63,296.70  
G5  40,762  11  2.19  3.54  2.92  1,108.80  146,317.00 

For each instance, except C5, the initial solutions are of very good quality, within less than \(5\,\%\) of optimality

VND was able to improve the initial solutions by more than \(50\,\%\) on average

The three neighborhoods perform well as they all improve the solutions for all the tested instances

The Shiftbefore (\(N^2\)) neighborhood is again the best one; that is, the one that improves the most the solution

The Shiftafter (\(N^3\)) neighborhood is not competitive although it performs slightly better than when solving the variant where the lower bounds are omitted, especially for the largest problems, C5 and G5, which are much harder to solve.
Evaluating the efficiency of each step of SHVND when lower bounds on mining and processing are added: instances generated from actual mineral deposits
Instance  \(\%Gap^{init}\)  \(\%Gap^{final}\)  \(\%Imp._{{ VND}}\)  Exchange (\(N^1\))  Shiftafter (\(N^2\))  Shiftbefore (\(N^3\))  

\(\#\,Times\)  \(\%Imp._{N}\)  \(\#\,Times\)  \(\%Imp._{N}\)  \(\#\,Times\)  \(\%Imp._{N}\)  
C1  1.29  0.74  42.61  5.40  4.82  4.00  0.28  3.20  7.05 
C2  1.32  0.68  48.42  7.70  3.69  5.00  0.17  3.40  8.59 
C3  2.94  1.93  34.28  20.80  1.05  18.50  0.25  3.60  3.77 
C4  4.72  2.33  50.64  14.80  1.14  16.00  0.24  4.90  2.89 
C5  10.31  3.45  66.54  21.00  0.69  22.50  2.23  7.70  1.92 
G1  1.25  0.67  46.28  6.40  0.48  5.10  0.04  3.50  12.84 
G2  1.91  1.13  40.88  8.10  0.58  7.10  0.05  3.70  10.56 
G3  2.41  1.29  46.43  9.60  0.85  9.70  0.09  4.50  8.84 
G4  3.26  1.70  47.84  12.20  0.85  9.50  0.11  7.20  6.96 
G5  4.60  2.92  36.59  18.30  0.46  19.90  1.15  4.20  2.02 
5.4 Hybrid method applied to the instances in the first set of benchmark instances
We now report the results of our computational experiments on the two benchmark instances described in Sect. 5.1.2. We first present results for the case where only upper bounds on mining and processing are considered, and then we provide results for the variant of the problem where lower bounds on mining and processing are considered as well.
5.4.1 MPSP described in Sect. 2
Comparing SHVND and ExTSLS: instances in the first benchmark set
Instance  \(N\)  \(T\)  \(\%Min\, Gap\)  \(\%Max\, Gap\)  \(\%Ave\, Gap\)  \(Ave\, { CPU}\) (s)  

SHVND  ExTSLS  SHVND  ExTSLS  SHVND  ExTSLS  SHVND  ExTSLS  
AmericaMine  19,320  15  3.56  1.00  4.43  1.00  3.96  1.00  17.71  28,800.00 
Marvin  53,668  15  1.71  2.30  2.12  2.30  1.90  2.30  64.06  28,800.00 
From Table 10, it can be seen that for the Marvin instance SHVND significantly dominates ExTSLS. On average, the gap is improved by \(17\,\%\) and the solution time is reduced by a factor of 450 when SHVND is used. Furthermore, all the solutions generated by SHVND over the 10 runs are better than the one found using ExTSLS. Although SHVND is not as successful as ExTSLS on the AmericaMine instance, it is still robust and able to find good solutions quickly. In [11], the authors report that the gap obtained after 15 min of running their local search procedure is about \(4.50\,\%\), indicating that the 10 solutions we found in less than 18 s are on average \(12\,\%\) better than ExTSLS solution after 15 min. Note that 15 min represent the time spent to improve the solution and doesn’t include the time required to generate the initial solution.
Evaluating the efficiency of each step of SHVND: instances in the first benchmark set
Instance  \(\%Gap^{init}\)  \(\%Gap^{final}\)  \(\%Imp._{{ VND}}\)  Exchange (\(N^1\))  Shiftafter (\(N^2\))  Shiftbefore (\(N^3\))  

\(\#\,Times\)  \(\%Imp._{N}\)  \(\#\,Times\)  \(\%Imp._{N}\)  \(\#\,Times\)  \(\%Imp._{N}\)  
AmericaMine  6.25  3.96  36.64  15.50  1.31  12.20  0.50  5.90  3.50 
Marvin  4.19  1.90  54.69  14.40  1.66  10.50  0.02  5.00  8.38 
5.4.2 MPSP with lower bounds on mining and processing
Evaluating the efficiency of SHVND to account for additional constraints: instances in the first benchmark set
Problem  \(N\)  \(T\)  SHVND  CPLEX  

\(\%Min\, Gap\)  \(\%Max\, Gap\)  \(\%Ave\, Gap\)  \(Ave\, { CPU}\) (s)  \(Ave\, { CPU}\) (s)  
AmericaMine  19,320  15  3.91  4.80  4.40  18.21  2,624.42 
Marvin  53,668  15  3.99  5.34  4.63  67.00  97,702.30 
Evaluating the efficiency of each step of SHVND when solving the instances in the first benchmark set with lower bounds on mining and processing
Instance  \(\%Gap^{init}\)  \(\%Gap^{final}\)  \(\%Imp._{VND}\)  Exchange (\(N^1\))  Shiftafter (\(N^2\))  Shiftbefore (\(N^3\))  

\(\#\,Times\)  \(\%Imp._{N}\)  \(\#\,Times\)  \(\%Imp._{N}\)  \(\#\,Times\)  \(\%Imp._{N}\)  
AmericaMine  6.47  4.40  32.05  14.40  1.03  13.70  0.47  5.70  2.71 
Marvin  5.78  4.63  19.75  17.30  0.83  17.80  0.02  4.90  1.44 
5.5 Hybrid method applied to the instances in the second set of benchmark instances (instances from MineLib)
Testing SHVND on instances from MineLib
Instance  \(N\)  \(T\)  \(\%Ave \, Gap\)  \(Best \, Known \, Gap\)  \(Ave \,CPU \) (s) 

SHVND  LR+Modified TopoSort  SHVND  
newman1  1,060  6  1.68  4.10  0.08 
zucksmall  9,400  20  1.80  7.70  7.77 
zuckmedium  29,277  15  8.08  13.40  121.60 
p4hd  40,947  10  6.61  0.50  78.57 
marvin  53,271  20  1.87  5.00  70.74 
w23  74,260  12  9.96  2.10  203.46 
zucklarge  96,821  30  8.07  1.10  1,003.97 
sm2  99,014  30  5.85  0.20  105.00 
Evaluating the efficiency of each step of SHVND when solving the instances in the second benchmark set (instances from MineLib)
Instance  \(\%Gap^{init}\)  \(\%Gap^{final}\)  \(\%Imp._{VND}\)  Exchange (\(N^1\))  Shiftafter (\(N^2\))  Shiftbefore (\(N^3\))  

\(\#\,Times\)  \(\%Imp._{N}\)  \(\#\,Times\)  \(\%Imp._{N}\)  \(\#\,Times\)  \(\%Imp._{N}\)  
newman1  2.58  1.68  34.89  8.90  2.53  4.10  0.01  7.50  2.55 
zucksmall  3.83  1.80  53.10  14.70  1.70  10.50  0.02  7.90  5.07 
zuckmedium  10.20  8.08  20.80  21.00  0.58  11.80  0.07  6.70  1.54 
p4hd  10.08  6.61  34.40  23.50  1.07  17.90  0.10  9.20  1.49 
marvin  3.79  1.87  50.78  14.50  1.35  12.80  0.02  8.60  4.64 
w23  15.54  9.96  35.91  33.70  0.52  21.70  0.04  15.40  1.68 
zucklarge  13.28  8.07  39.21  53.20  0.75  28.00  0.07  9.70  0.94 
sm2  8.13  5.85  27.99  48.20  0.19  28.40  0.09  57.10  0.37 
The results in Table 14 are promising as they indicate that the bestknown solution was improved for 4 out of the 8 instances from MineLib. The computational time required for solving each of the 8 instances is comparable with the time required to solve the instances from the other sets (previous experiments); that is, it ranges from a fraction of second to few minutes, even for the largest instances with more than 95,000 blocks and 30 periods. Regarding the efficiency of each step of SHVND (c.f. Table 15), the results are also similar to the previous experiments with the other sets of instances: VND is efficient in improving the initial solutions generated by SH, and overall, the Shiftbefore neighborhood (\(N^3\)) would rank first, the Exchange neighborhood (\(N^1\)) second, and the Shiftafter neighborhood (\(N^2\)) last.
Comparing SHVND, LRMTS, and LRMTSVND on instances from MineLib
Instance  \(\%Ave \, Gap\)  

SHVND  LRMTS  LRMTSVND  
newman1  1.68  4.10  2.34 
zucksmall  1.80  7.70  4.88 
zuckmedium  8.08  13.40  9.04 
p4hd  6.61  0.50  0.19 
marvin  1.87  5.00  3.20 
w23  9.96  2.10  1.06 
zucklarge  8.07  1.10  0.56 
sm2  5.85  0.20  0.04 
Evaluating the efficiency of each step of LRMTSVND when solving the instances in the second benchmark set (instances from MineLib)
Instance  \(\%Gap^{init}\)  \(\%Gap^{final}\)  \(\%Imp._{{ VND}}\)  Exchange (\(N^1\))  Shiftafter (\(N^2\))  Shiftbefore (\(N^3\))  

\(\#\,Times\)  \(\%Imp._{N}\)  \(\#\,Times\)  \(\%Imp._{N}\)  \(\#\,Times\)  \(\%Imp._{N}\)  
newman1  4.09  2.34  42.85  10.90  3.97  6.30  0.01  5.00  1.65 
zucksmall  7.67  4.88  36.39  19.20  1.73  17.70  0.59  6.30  0.07 
zuckmedium  13.40  9.04  32.56  31.30  0.50  23.20  1.02  4.20  0.05 
p4hd  0.52  0.19  62.46  28.10  2.15  25.10  1.33  3.90  0.51 
marvin  5.00  3.20  35.95  13.00  1.65  11.00  1.93  1.00  0.00 
w23  2.10  1.06  49.45  15.30  1.33  11.40  3.49  3.90  0.02 
zucklarge  1.07  0.56  47.35  18.60  1.12  14.10  2.72  3.70  0.01 
sm2  0.17  0.04  78.77  20.50  5.44  10.00  0.00  16.00  0.04 
Notice first that for each instance, we have been able to improve on LRMTS results; that is, the best results previously published, by using the VND approach either combined with SH or with LRMTS. As can be observed, LRMTSVND outperforms LRMTS, as the bestknown solution to each instance has been improved using LRMTSVND. However, LRMTSVND does not always produce better results than SHVND (4 out of the 8 instances only). Regarding the improvement in percent gained by VND (\(\%Imp._{VND}\)), it can be seen from Tables 15 and 17 that, on average, \(\%Imp._{VND}\) is higher when the initial solution is generated with LRMTS than when it is generated with SH (\(48.22\,\%\) versus \(37.13\,\%\)). Finally, when considering the efficiency of each neighborhood, one can observe that the efficiency of the neighborhood Shiftbefore is reduced when the initial solution is generated using LRMTS (recall that in all previous experiments, this neighborhood was the most efficient one). This is due to the fact that in the initial solutions generated using LRMTS, either the mining capacity or the processing capacity is reached in almost all periods where blocks are mined. This restricts the efficiency of the Shiftbefore neighborhood since it is impossible to find a feasible neighbor solution when applying this operator in most periods. Table 17 shows that when this situation occurs, the Exchange neighborhood is the best one among the three neighborhoods considered in this paper. These results clearly confirm that the use of more than one neighborhood is very useful for escaping local optima.
5.6 Summary
The proposed solution method SHVND outperforms CPLEX in terms of solution time. It is worth mentioning though that, unlike CPLEX, it doesn’t provide optimal solutions but rather suboptimal solutions (very close to the optimal for almost all the tested instances). SHVND outperforms Whittle, the commercial mine planning software commonly used by professional mine planners, in terms of efficiency and robustness. The 20 instances considered in this paper were solved within less than \(3.2\,\%\) of optimality, on average, in less than 2 min. When comparing SHVND to recent solution methods proposed in the literature, the results indicate that it is better than the ExTSLS method proposed by [11], providing an excellent compromise between solution time and solution quality, as well as a new bestknown solution for the instance Marvin. SHVND and/or LRMTSVND also provide new bestknown solutions for all the 8 instances from MineLib [15], indicating their superiority over the LRMTS method. Another interesting feature of the proposed solution method is that it is not a specialized method tailored to solve one variant of the openpit mine production scheduling problem, but it can be easily adapted to account for additional operational constraints. We have modified it to account for lower bounds on mining and processing. The results indicate that although the average CPU time is higher than in the case when the lower bounds are omitted, the solution quality does not deteriorate when accounting for lower bounds. On average, considering the 12 instances in which lower bounds on mining and processing were added, the gap is slightly above \(2\,\%\) (\(2.15\,\%\)) and the solution time is only about 4 min. The Marvin instance is intractable by the method proposed in [12], but it is successfully solved by the method we have developed, SHVND, indicating the superiority of SHVND over that method. Because SHVND doesn’t rely on solving integer programming problems, its running time has a slower growth rate compared to other solution methods in the literature such as the ones in [11] and [12]. Indeed, the CPU time of SHVND ranges between a fraction of second and 16 min for instances whose sizes vary from 1,060 blocks and 6 years to 99,014 blocks and 30 periods.
6 Conclusions
Production scheduling is a challenging and critical issue for mining companies exploiting openpit mines. Determining the block mining sequence is a crucial step in maximizing the net present value of the mining operation. It involves significant capital investment in the order of hundreds of millions of dollars and is a key factor in determining investment returns. Decisions on block scheduling are subject to various types of constraints, typically slope constraints, bounds on mining, and bounds on processing. An additional characteristic of openpit mine production scheduling, which makes the problem even more difficult, is that the number of blocks is large, in the order of tens to hundreds of thousands, yielding a largescale optimization problem.
We have proposed a hybrid method (SHVND), based on linear programming and variable neighborhood descent, able to solve large instances of this problem in a short amount of time. Unlike recent solution methods, SHVND does not rely on timeconsuming integer programming algorithms, and we believe this is one reason for its success. Instead, it relies on solving a series of linear programs to generate an initial solution. A variable neighborhood descent procedure is then applied to improve this solution.
Upper bounds provided by CPLEX were used to evaluate the efficiency of the proposed solution method. The performance of the method was also assessed by comparing it to recent solution methods proposed in the literature and to an alternate method implemented in commercial mine planning software commonly used by professional mine planners. The results indicate that SHVND is superior to existing solution approaches, allowing us to find high quality solutions in very short computational times. The average quality of the solutions produced overall is better than previously published results.
SHVND can also easily handle more complex variants of the openpit mine production scheduling problem, and the computational experiments indicate that it is successful on the variant incorporating lower bounds on mining and processing, able to find very good solutions for instances intractable with recentlypublished algorithms. Another important feature of the proposed method is that it doesn’t require any external software, such as CPLEX, in order to be implemented. Indeed, although CPLEX is used in this study to solve the subproblems when generating the initial solution, any maximum flow algorithm can be used.
Future research will be devoted to extending the method to account for uncertainty in the metal content of blocks and in metal prices.
Notes
Acknowledgments
The work in this paper was funded by NSERC CRDPJ 41127010, NSERC Discovery Grant 23901906, and the industry members of the COSMO Stochastic Mine Planning Laboratory: AngloGold Ashanti, Barrick, BHP Billiton, De Beers, Newmont, and Vale. Thanks are in order to Brian Baird, Peter Stone, Darren Dyck, and Gavin Yates of BHP Billiton for their support, collaboration, and technical comments. The authors also thank two anonymous referees for their valuable comments and suggestions that helped improve the paper.
References
 1.Amaya, J., Espinoza, D., Goycoolea, M., Moreno, E., Prevost, T., Rubio, E.: A scalable approach to optimal block scheduling. In: Proceedings of APCOM, pp. 567–575 (2009)Google Scholar
 2.Asad, M.W.A., Dimitrakopoulos, R.: Implementing a parametric maximum flow algorithm for optimum open pit mine design under uncertain supply and demand. J. Oper. Res. Soc. 64, 185–197 (2013)CrossRefGoogle Scholar
 3.Bienstock, D., Zuckerberg, M.: Solving LP relaxations of largescale precedence constrained problems. Lect. Notes Comput. Sci. 6080, 1–14 (2010)MathSciNetCrossRefGoogle Scholar
 4.Bley, A., Boland, N., Fricke, C., Froyland, G.: A strengthened formulation and cutting planes for the open pit mine production scheduling problem. Comput. Oper. Res. 37, 1641–1647 (2010)zbMATHCrossRefGoogle Scholar
 5.Boland, N., Dumitrescu, I., Froyland, G., Gleixner, A.M.: LPbased disaggregation approaches to solving the open pit mining production scheduling problem with block processing selectivity. Comput. Oper. Res. 36, 1064–1089 (2009)zbMATHCrossRefGoogle Scholar
 6.Boland, N., Dumitrescu, I., Froyland, G.: A multistage stochastic programming approach to open pit mine production scheduling with uncertain geology, Optimization Online. http://www.optimizationonline.org/DB_FILE/2008/10/2123.pdf. Accessed 21 Oct 2013 (2008)
 7.Lamghari, A., Dimitrakopoulos, R.: A diversified tabu search approach for the openpit mine production scheduling problem with metal uncertainty. Eur. J. Oper. Res. 212, 642–652 (2012)CrossRefGoogle Scholar
 8.Brimberg, J., Hansen, P., Mladenovic, N., Taillard, E.: Improvements and comparison of heuristics for solving the multisource Weber problem. Oper. Res. 48, 444–460 (2000)CrossRefGoogle Scholar
 9.Caccetta, L., Hill, S.P.: An application of branch and cut to open pit mine scheduling. J. Glob. Optim. 27, 349–365 (2003)zbMATHMathSciNetCrossRefGoogle Scholar
 10.Chatterjee, S., Lamghari, A., Dimitrakopoulos, R.: A twophase heuristic method for constrained pushback design. In: Castro, R., Emery, X., Kuyvenhoven, R. (eds.) Proceedings of MININ 2010, Conference on Mining Innovation. Santiago, Chile, pp. 195–204 (2010)Google Scholar
 11.Chicoisne, R., Espinoza, D., Goycoolea, M., Moreno, E., Rubio, E.: A new algorithm for the openpit mine production scheduling problem. Oper. Res. 60, 517–528 (2012)zbMATHMathSciNetCrossRefGoogle Scholar
 12.Cullenbine, C., Wood, R., Newman, A.: A sliding time window heuristic for open pit mine block sequencing. Optim. Lett. 5, 365–377 (2011)zbMATHMathSciNetCrossRefGoogle Scholar
 13.Dagdelen, K., Johnson, T.B.: Optimum open pit mine production scheduling by lagrangian parameterization. In: Proceedings of 19th International APCOM Symposium, pp. 127–142. Littleton, CO (1986)Google Scholar
 14.Denby, B., Schofield, D.: Openpit design and scheduling by use of genetic algorithms. Trans. Inst. Min. Metall. 103, A21–A26 (1994)Google Scholar
 15.Espinoza, D., Goycoolea, M., Moreno, E., Newman, A.: MineLib: a library of open pit mining problems. Ann. Oper. Res. 206, 93–114 (2013)zbMATHMathSciNetCrossRefGoogle Scholar
 16.Ferland, J.A., Amaya, J., Djuimo, M.S.: Application of a particle swarm algorithm to the capacitated open pit mining problem. In: Mukhopadhyay, S., Sen Gupta, G. (eds.) Autonomous Robots and Agents. Springer, Berlin (2007)Google Scholar
 17.Gershon, M.: Heuristic approaches for mine planning and production scheduling. Int. J. Min. Geol. Eng. 5, 1–13 (1987)CrossRefGoogle Scholar
 18.Hansen, P., Mladenovic, N.: Variable neighborhood search: principles and applications. Eur. J. Oper. Res. 130, 449–467 (2001)zbMATHMathSciNetCrossRefGoogle Scholar
 19.Hochbaum, D.C.: The pseudoflow algorithm: a new algorithm for the maximumflow problem. Oper. Res. 56, 992–1009 (2008)zbMATHMathSciNetCrossRefGoogle Scholar
 20.IBM: IBM ILOG AMPL version 12.2 users guide: standard (commandline) version including CPLEX directives (2010)Google Scholar
 21.Johnson, T.: Optimum production scheduling. In: Proceedings of the 8th international symposium on computers and operations research, pp. 539–562. Salt Lake City (1969)Google Scholar
 22.Moreno, E., Espinoza, D., Goycoolea, M.: Largescale multiperiod precedence constrained knapsack problem: a mining application. Electron. Notes Discret. Math. 36, 407–414 (2010)CrossRefGoogle Scholar
 23.Newman, A.M., Rubio, E., Caro, R., Weintraub, A., Eurek, K.: A review of operations research in mine planning. Interfaces 40, 222–245 (2010)CrossRefGoogle Scholar
 24.Ramazan, S.: The new fundamental tree algorithm for production scheduling of open pit mines. Eur. J. Oper. Res. 177, 1153–1166 (2007)zbMATHCrossRefGoogle Scholar
 25.Ramazan, S., Dimitrakopoulos, R.: Recent applications of operations research in open pit mining. Trans. Soc. Min. Metall. Explor. 316, 73–78 (2004)Google Scholar
 26.Sevim, H., Lei, D.: The problem of production planning in open pit mines. INFOR 36, 1–12 (1998)zbMATHGoogle Scholar
 27.Tolwinski, B., Underwood, R.: A scheduling algorithm for open pit mines. IMA J. Math. Appl. Bus. Ind. 7, 247–270 (1996)zbMATHGoogle Scholar
 28.Whittle, J.: FourX User Manual. Whittle Programming Pty Ltd., Melbourne (1998)Google Scholar
Copyright information
Open AccessThis article is distributed under the terms of the Creative Commons Attribution License which permits any use, distribution, and reproduction in any medium, provided the original author(s) and the source are credited.