A hybrid method based on linear programming and variable neighborhood descent for scheduling production in open-pit mines
- First Online:
- Received:
- Accepted:
DOI: 10.1007/s10898-014-0185-z
- Cite this article as:
- Lamghari, A., Dimitrakopoulos, R. & Ferland, J.A. J Glob Optim (2015) 63: 555. doi:10.1007/s10898-014-0185-z
- 7 Citations
- 1.3k Downloads
Abstract
Production scheduling of open-pit 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 two-phase 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 best-known solutions for benchmark instances from the literature, and it can solve instances recently-published algorithms have found intractable.
Keywords
Variable neighborhood descent Hybrid methods Scheduling Open-pit mine planning1 Introduction
Production scheduling of open-pit 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 three-dimensional 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 LP-based 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 re-optimize the ”unfixed” parts. This defines an integer programming sub-problem 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 programming-based heuristic, which is an enhanced version of that in [1]. Cullenbine et al. [12] also solve a series of mixed-integer 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 sub-problems. Each sub-problem is associated with one period, and solving it consists of solving a linear program, not an integer or a mixed-integer program. This is followed by a repair heuristic to make the solution of the sub-problem feasible if necessary. When all sub-problems 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, near-optimal solutions in a few seconds up to a few minutes. It generally outperforms recently-proposed solution methods for the MPSP and provides new best-known 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 sub-problems 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 pseudo-flow 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 2-dimensional illustration of the sets \(\mathcal {P}_i\), \(\mathcal {S}_i\), and \(\mathcal {\overline{P}}_i\) when precedences are defined by a 45-degree 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 step-by-step description of it.
3.1 Overview of the algorithm
The sub-problems associated with the periods \(t\) (\(t = 1, \ldots , T\)) are solved sequentially (in increasing order of \(t\)), and the solutions of the sub-problems are combined to generate the initial solution. The procedure to deal with the sub-problem 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 sub-problem for period \(t\)
We specify and solve a linear programming sub-problem 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 sub-problem. 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}^{t-1} \setminus \mathcal {B}^{t-1} \) 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 sub-problem, 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 look-ahead 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 2-dimensional illustration of an exchange move involving two blocks, \(i\) and \(j\), with \(T=2\).
\(N^2\) (Shift-after): 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 shift-after 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 shift-after. Figure 3 illustrates the Shift-after move where block \(i\) and its successors mined in period \(1\) are moved to period \(2\).
\(N^3\) (Shift-before): 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 shift-before 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. As for the Shift-after neighborhood, the slope constraints are necessarily satisfied, but the mining and the processing constraints in period \((t-1)\) must be satisfied in order to allow this shift-before. Figure 4 illustrates the Shift-before 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 , (T-1)\), 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 Shift-after neighborhood (\(N^2\)). Once the search of \(N^2\) is completed, if the solution has been improved, return to \(N^1\); otherwise, use the Shift-before 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 Shift-after neighborhood (\(N^2\)) is explored before the Shift-before 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 E7-8837 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 real-world 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 open-pit 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 | ||
zuck-small | 9,400 | 20 |
Metal type: Unknown | ||
Block size: Unknown | ||
Block weight \(w_i\): variable | ||
zuck-medium | 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 | ||
zuck-large | 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 sub-problems \((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 sub-problems \((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 SH-VND (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 SH-VND 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 SH-VND 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 SH-VND and the optimal value of the linear relaxation.
\(Ave\, CPU\): the average solution time in seconds.
SH-VND 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.
SH-VND 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 near-optimal 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 SH-VND. 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 SH-VND.
\(\#\, 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 SH-VND: instances generated from actual mineral deposits
Set | Problem | \(N\) | \(T\) | SH-VND | 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 SH-VND: instances generated from actual mineral deposits
Instance | \(\%Gap^{init}\) | \(\%Gap^{final}\) | \(\%Imp._{VND}\) | Exchange (\(N^1\)) | Shift-after (\(N^2\)) | Shift-before (\(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 SH-VND, 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 SH-VND and WM
Set | Instance | \(N\) | \(T\) | \(\%Ave\, Gap\) | \(Ave\, CPU\) (seconds) | |||
---|---|---|---|---|---|---|---|---|
SH-VND | WM | \(\%Imp.\) | SH-VND | 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, SH-VND dominates WM. On average, when SH-VND 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 SH-VND 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 SH-VND, 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 set-up 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 SH-VND 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 non-tabu 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, Shift-after, and Shift-before), moves that would violate constraints (17)–(20) are not allowed.
Evaluating the efficiency of SH-VND to account for additional constraints: instances generated from actual mineral deposits
Set | Problem | \(N\) | \(T\) | SH-VND | 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 Shift-before (\(N^2\)) neighborhood is again the best one; that is, the one that improves the most the solution
The Shift-after (\(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 SH-VND 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\)) | Shift-after (\(N^2\)) | Shift-before (\(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 SH-VND and ExTS-LS: instances in the first benchmark set
Instance | \(N\) | \(T\) | \(\%Min\, Gap\) | \(\%Max\, Gap\) | \(\%Ave\, Gap\) | \(Ave\, { CPU}\) (s) | ||||
---|---|---|---|---|---|---|---|---|---|---|
SH-VND | ExTS-LS | SH-VND | ExTS-LS | SH-VND | ExTS-LS | SH-VND | ExTS-LS | |||
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 SH-VND significantly dominates ExTS-LS. On average, the gap is improved by \(17\,\%\) and the solution time is reduced by a factor of 450 when SH-VND is used. Furthermore, all the solutions generated by SH-VND over the 10 runs are better than the one found using ExTS-LS. Although SH-VND is not as successful as ExTS-LS 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 ExTS-LS 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 SH-VND: instances in the first benchmark set
Instance | \(\%Gap^{init}\) | \(\%Gap^{final}\) | \(\%Imp._{{ VND}}\) | Exchange (\(N^1\)) | Shift-after (\(N^2\)) | Shift-before (\(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 SH-VND to account for additional constraints: instances in the first benchmark set
Problem | \(N\) | \(T\) | SH-VND | 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 SH-VND 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\)) | Shift-after (\(N^2\)) | Shift-before (\(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 SH-VND on instances from MineLib
Instance | \(N\) | \(T\) | \(\%Ave \, Gap\) | \(Best \, Known \, Gap\) | \(Ave \,CPU \) (s) |
---|---|---|---|---|---|
SH-VND | LR+Modified TopoSort | SH-VND | |||
newman1 | 1,060 | 6 | 1.68 | 4.10 | 0.08 |
zuck-small | 9,400 | 20 | 1.80 | 7.70 | 7.77 |
zuck-medium | 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 |
zuck-large | 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 SH-VND when solving the instances in the second benchmark set (instances from MineLib)
Instance | \(\%Gap^{init}\) | \(\%Gap^{final}\) | \(\%Imp._{VND}\) | Exchange (\(N^1\)) | Shift-after (\(N^2\)) | Shift-before (\(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 |
zuck-small | 3.83 | 1.80 | 53.10 | 14.70 | 1.70 | 10.50 | 0.02 | 7.90 | 5.07 |
zuck-medium | 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 |
zuck-large | 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 best-known 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 SH-VND (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 Shift-before neighborhood (\(N^3\)) would rank first, the Exchange neighborhood (\(N^1\)) second, and the Shift-after neighborhood (\(N^2\)) last.
Comparing SH-VND, LR-MTS, and LR-MTS-VND on instances from MineLib
Instance | \(\%Ave \, Gap\) | ||
---|---|---|---|
SH-VND | LR-MTS | LR-MTS-VND | |
newman1 | 1.68 | 4.10 | 2.34 |
zuck-small | 1.80 | 7.70 | 4.88 |
zuck-medium | 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 |
zuck-large | 8.07 | 1.10 | 0.56 |
sm2 | 5.85 | 0.20 | 0.04 |
Evaluating the efficiency of each step of LR-MTS-VND when solving the instances in the second benchmark set (instances from MineLib)
Instance | \(\%Gap^{init}\) | \(\%Gap^{final}\) | \(\%Imp._{{ VND}}\) | Exchange (\(N^1\)) | Shift-after (\(N^2\)) | Shift-before (\(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 |
zuck-small | 7.67 | 4.88 | 36.39 | 19.20 | 1.73 | 17.70 | 0.59 | 6.30 | 0.07 |
zuck-medium | 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 |
zuck-large | 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 LR-MTS results; that is, the best results previously published, by using the VND approach either combined with SH or with LR-MTS. As can be observed, LR-MTS-VND outperforms LR-MTS, as the best-known solution to each instance has been improved using LR-MTS-VND. However, LR-MTS-VND does not always produce better results than SH-VND (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 LR-MTS 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 Shift-before is reduced when the initial solution is generated using LR-MTS (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 LR-MTS, either the mining capacity or the processing capacity is reached in almost all periods where blocks are mined. This restricts the efficiency of the Shift-before 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 SH-VND outperforms CPLEX in terms of solution time. It is worth mentioning though that, unlike CPLEX, it doesn’t provide optimal solutions but rather sub-optimal solutions (very close to the optimal for almost all the tested instances). SH-VND 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 SH-VND to recent solution methods proposed in the literature, the results indicate that it is better than the ExTS-LS method proposed by [11], providing an excellent compromise between solution time and solution quality, as well as a new best-known solution for the instance Marvin. SH-VND and/or LR-MTS-VND also provide new best-known solutions for all the 8 instances from MineLib [15], indicating their superiority over the LR-MTS method. Another interesting feature of the proposed solution method is that it is not a specialized method tailored to solve one variant of the open-pit 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, SH-VND, indicating the superiority of SH-VND over that method. Because SH-VND 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 SH-VND 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 open-pit 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 open-pit 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 large-scale optimization problem.
We have proposed a hybrid method (SH-VND), 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, SH-VND does not rely on time-consuming 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 SH-VND 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.
SH-VND can also easily handle more complex variants of the open-pit 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 recently-published 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 sub-problems 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.
Acknowledgments
The work in this paper was funded by NSERC CRDPJ 411270-10, NSERC Discovery Grant 239019-06, 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.
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.