Short-term scheduling of an open-pit mine with multiple objectives

ABSTRACT This article presents a novel algorithm for the generation of multiple short-term production schedules for an open-pit mine, in which several objectives, of varying priority, characterize the quality of each solution. A short-term schedule selects regions of a mine site, known as ‘blocks’, to be extracted in each week of a planning horizon (typically spanning 13 weeks). Existing tools for constructing these schedules use greedy heuristics, with little optimization. To construct a single schedule in which infrastructure is sufficiently utilized, with production grades consistently close to a desired target, a planner must often run these heuristics many times, adjusting parameters after each iteration. A planner's intuition and experience can evaluate the relative quality and mineability of different schedules in a way that is difficult to automate. Of interest to a short-term planner is the generation of multiple schedules, extracting available ore and waste in varying sequences, which can then be manually compared. This article presents a tool in which multiple, diverse, short-term schedules are constructed, meeting a range of common objectives without the need for iterative parameter adjustment.


Introduction
Open-pit mining is a commonly used method for the extraction of a range of metal ores, including iron, copper and gold. Horizontal layers of earth (known as benches) are extracted, from top to bottom, to form a stepped wall cavity (Hustrulid and Kuchta, 2006). The orebody of a mine is divided into a set of blocks. Each block is a region of earth with an estimated grade (percentage of metal in the block), quality (levels of contaminants) and tonnage. A short-term schedule selects a set of these blocks to be mined in each week of a (typically) 13-week horizon, and routes the mined material to a destination: a processing facility, a stockpile or a waste dump. Ore passing through each processing facility is blended (combined) to form a product. This article considers the short-term scheduling of a single open-pit mine, producing a single ore product with lower and upper bounds on its grade and quality. Equipment capacities must not be exceeded, all processing facilities must be utilized to their available capacity in each week, and mining precedences constrain the order in which blocks can be extracted.
This article presents a novel algorithm for the generation of multiple candidate solutions to this scheduling task, given a priority ordering over a set of supported objectives. Each candidate solution is a schedule-an allocation of material source (block or stockpile) to destination (stockpile or processing facility) movements to each period in the scheduling horizon. The quality of a schedule is characterized by its performance across a range of objectives. In the presence of hard constraints enforcing full use of available processing capacity, maintaining consistent production of ore whose grade lies within desired lower and/or upper bounds is usually the most important objective. Objectives may be defined to reduce spurious equipment moves, or maximize the alignment of each schedule to an over-arching longer-term plan. It may be important, for example, to avoid the mining of specific areas of the mine site (to be 'saved' for a later date), unless necessary to keep produced ore grades within bounds or to utilize the available processing facilities fully.
In prior work, Blom, Pearce and Stuckey (2016) present a rolling-horizon-based algorithm for the generation of a single short-term schedule at a single mine. This algorithm divides a horizon of T periods into two aggregate periods of size 1 and T−1. The size of an aggregate refers to the number of periods it contains (or spans). A mixed integer program (MIP) models the short-term scheduling problem across this two-period horizon. Decision variables define which blocks are to be extracted in each period, and the destination of this material. Constraints place restrictions on the use of truck, dig unit and processing resources. Given a solution to this two-period MIP, the activities of the first period are fixed, and one rolls forward one period to consider the remaining horizon. A second twoperiod MIP, covering periods 2 and 3 to T, is solved, and the activities of period 2 fixed. This process continues until all T periods are scheduled. This article presents a novel variation of this algorithm, in which multiple distinct schedules are generated, concurrently, each optimized with respect to an ordered sequence of objectives. This concurrent rolling-horizon-based (CRH) algorithm aggregates time periods into N ≥ 2 groups, reflecting the concept of receding horizon control (Goodwin et al., 2006), solving a series of N-period MIP representations of the scheduling problem to generate each schedule. A split-and-branch approach (Section 5) is used to generate multiple schedules.
The CRH algorithm uses an optimize-and-prune approach to optimize each generated schedule with respect to multiple objectives. Given a sequence of objectives, ordered from highest to lowest priority, CRH considers each objective in turn when solving each N-period MIP. Each MIP is solved with respect to the first objective in this sequence. Constraints are then added to prune from the space of feasible solutions all those that are inferior to the obtained solution. The MIP is then re-solved with respect to the second objective in the sequence, and this process of pruning its feasible solution space repeated. The solution obtained to the MIP, after consideration of the final objective in the sequence, is used to fix the activities of the relevant period.
The CRH algorithm has been implemented in a short-term scheduling system, developed in conjunction with an industry partner. With this tool, a scheduler is able to create a variety of optimization scenarios, where each scenario is a sequence of available objectives to consider, listed from highest to lowest priority. The presented tool is able to generate multiple distinct short-term schedules for a mine site, each satisfying a set of relevant constraints (described in Section 3.3) within minutes. For each of these schedules, the order in which blocks are extracted, and the performance of each schedule with respect to the chosen objectives, is visualized in the form of tables, charts and maps.
The presented CRH scheduler is demonstrated in the short-term scheduling of an existing openpit mine producing several million tons of ore per year. Two data sets have been provided by an industry partner for the purpose of demonstrating the tool's capabilities. Each data set relates to a distinct point in time, describing the state of the mine and the blocks of ore and waste available for extraction. The time required by CRH to find sets of candidate schedules with respect to a variety of optimization scenarios, and the degree to which these schedules meet the specified objectives, is reported. This article describes a range of modelling and implementation choices, made in the design and construction of this tool, presenting practical advice for ensuring its efficiency.
The key contributions of this article are: an adaptation of the rolling-horizon-based approach of Blom, Pearce and Stuckey (2016) to generate concurrently multiple distinct short-term block extraction schedules via a novel split-and-branch algorithm; the application of an optimize-and-prune approach to optimize each schedule with respect to a sequence of priority-ordered objectives; and practical advice on how these approaches can be implemented efficiently. This advice, which outlines key implementation choices designed to ensure efficient performance of the algorithms presented both in this article and in the work of Blom, Pearce and Stuckey (2016), is provided in an Online Supplement (http://dx.doi.org/10.1080/0305215X.2016.1218002).
The remainder of this article is structured as follows. Section 2 compares the presented work with existing literature on the scheduling of open-pit mines and multi-objective optimization. An MIP representation of the short-term scheduling problem is presented in Section 3. The CRH algorithm is described in two parts. First, an adaptation of the rolling-horizon-based algorithm of Blom, Pearce and Stuckey (2016) is presented, for which a series of MIPs (with time periods aggregated into N ≥ 2 groups) are solved to generate a single schedule, optimized with respect to a sequence of objectives (Section 4). Using the components of this algorithm as building blocks, the complete CRH algorithm is presented in Section 5. The CRH algorithm is applied to an existing open-pit mine in Section 6.

Related work
Blom, Pearce and Stuckey (2016) present a decomposition-based algorithm for the short-term scheduling of multiple open-pit mines across multiple time periods. A key component of this algorithm is a method for generating multiple schedules for a number of individual mine sites. These schedules are formed by repeatedly solving an MIP with varying bounds on the grade of ore produced by the mine (i.e., blending constraints are modified between solves). The presented CRH algorithm generates multiple schedules with a split-and-branch approach (Section 5), where each schedule aims to produce ore within a fixed set of grade bounds. Both CRH and the algorithm of Blom, Pearce and Stuckey (2016) utilize a rolling-horizon-based approach, optimizing with respect to multiple objectives. Blom, Pearce and Stuckey (2016) consider only two objectives-the satisfaction of blending goals, and the maximization of mine productivity-while the tool presented in this article supports dozens of objectives. The modelling of mine operations in this article is more sophisticated than that of Blom, Pearce and Stuckey (2016). This article models the activities of multiple types of truck and dig unit. Blom, Pearce and Stuckey (2016) consider only a single trucking and extraction capacity (in tons). In practice, a fraction of the material sent to a plant, over the course of a week, is rehandled via a run-of-mine stockpile (ROM), using additional trucking resources. Dig unit productivity is reduced in regions of the mine that are difficult to excavate. Implicit rehandling and varying dig unit productivity are modelled in this article, but not by Blom, Pearce and Stuckey (2016).
The use of rolling-horizon-based methods for mine scheduling is not new. Goodwin et al. (2006) use receding horizon control to solve a long-term mine planning problem. Time is discretized into multiple periods of increasing size, with each consecutive period covering a larger timespan. The scheduling problem is solved with respect to the discretized horizon, and the activities of the first period fixed. The remaining periods are re-discretized, and the scheduling problem solved on the reduced horizon. This process continues until a schedule, whose time periods are uniformly discretized, is generated.
Cullenbine, Wood and Newman (2011) present a sliding time window heuristic (STWH) for solving a long-term mine planning problem, in which a sequence of integer programs (IPs) are generated and solved. In each IP, the full set of constraints is enforced in a window of w periods, initially spanning periods 1 to w. A Lagrangian relaxation of the model is enforced outside of this window. The solution to this IP is used to fix the activities of period 1, after which the window slides forward by one period. The decision variables of the subsequent IP are fixed for period 1, subject to all problem constraints in the w periods in the window, and a relaxation of the model thereafter. The STWH terminates once the last period in the horizon is scheduled.  apply the STWH in the search for an initial feasible solution to an ultimate pit and block sequencing problem, while O'Sullivan and Newman (2015) apply the STWH to underground mine scheduling. The CRH algorithm enforces the full set of problem constraints across the whole horizon. Moreover, the focus is on the short-term scheduling of open-pit mines, whereas Cullenbine, Wood and Newman (2011) and  focus on long-term planning.
Diverse approaches exist for solving mathematical programs in the presence of multiple objectives. A common goal in the solving of such programs is the generation of non-dominated solutions. Given a series of objectives, a solution is non-dominated if there does not exist an alternative that performs better relative to one objective without performing worse relative to another. Numerous reviews of such approaches exist, for example see Ehrgott and Gandibleux (2002), Ehrgott and Wiecek (2005), Chinchuluun and Pardalos (2007) and Clímaco (2007, 2009). In the present application, natural priority orderings exist over the objectives of interest. Given such an ordering over objectives, a solution is non-dominated if there does not exist an alternative that performs equally well in all objectives up to position i, but better against the objective in position i+1. The optimize-andprune approach employed by CRH finds schedules that are, by this definition, non-dominated given a sequence of priority-ordered objectives. The existing literature on the scheduling of open-pit mines typically focuses on a narrow range of objectives: the maximization of net present value (relevant over long-term horizons); the minimization of costs; and the formation of correctly blended products. To the best of the present authors' knowledge, no work exists in the mine scheduling literature in which multiple distinct schedules are generated with respect to a diverse range of customizable objectives.
Current tools used, in practice, for the short-term scheduling of open-pit mines typically apply greedy heuristics to generate a block extraction sequence. Similar to early work by Gershon (1987), these tools schedule each period in turn, with blocks selected for mining on the basis of their desirability according to a set of short-and long-term objectives. Achieving the correct blend of ore in the period being scheduled is a short-term objective. Gershon (1987) identifies a range of long-term objectives designed to increase the likelihood that the set of short-term objectives can be achieved in later periods. Encouraging the mining of material that will expose processable ore for later extraction is an example of such an objective. The planners that use these tools, however, find that many iterations of parameter changes, adjustment to objective weights, rule changes (restricting the movement of material along various source to destination pathways), and precedence additions (forcing certain blocks to be extracted before others), are required to create a satisfactory schedule. The approach presented in this article more reliably supports the satisfaction of objectives across a horizon. It does so by capturing future decisions and constraints, over a coarse discretization of the remaining horizon, when it schedules the activity of each period. Each decision that is made in period t is subject to the performance of objectives on a coarse approximation of the remaining T−t periods.
The scheduling of mines over longer-term horizons (typically spanning decades) has been well studied in the literature-see Osanloo, Gholamnejad and Karimi (2008), Newman et al. (2010), Askari-Nasab et al. (2011), Espinoza et al. (2012 and  for reviews. By contrast, short-term scheduling has received little attention. The key point of difference between the short-term problem presented in this article, relative to scheduling over longer horizons, is the level of detail at which mine operations are modelled. Consequently, there are significant differences in the decision variables and constraints that define the short-and long-term scheduling problems-in particular, dig unit and truck behaviour and mining precedences are modelled in greater detail in the short-term.

Modelling the mining environment
A mine is modelled in terms of a set of blocks, B, each with a defined geometry and composition. Each block contains one or more different types of material (e.g. high grade, low grade and waste). To access a block b, at least one set of blocks in its precedence list A b must be extracted entirely. For example, consider the arrangement of blocks in Figure 1. Block b 0 can be accessed by removing one of two sets of blocks, The modelling of precedences in terms of a disjunction of block groups differs from much of the existing literature on scheduling for open-pit mines, in which each b ∈ B is assigned a single set of blocks, all of which must be extracted before b can be accessed. Modelling mining precedences in terms of groups-of-sets is not new, however. O'Sullivan and Newman (2015) consider an underground mining scenario in which activities (such as extraction and backfilling) are typically dependent on a number of sequences of activities (where each sequence can be progressed concurrently alongside the others) being performed beforehand. The advantage of disjunctive precedences is that the direction by which each block is approached is not fixed a priori, affording more flexibility in how the orebody is mined. Schedule generation is more time consuming, however, when disjunctive precedences are used, as shown in Section 6.
Material is excavated from each block by a dig unit, and then hauled, by truck, to a destination: a stockpile s ∈ S (including one or more waste dumps); or a processing plant p ∈ P. Material on a stockpile can be extracted, by a dig unit, and hauled, by truck, to a plant. Ore produced by each plant p ∈ P is uniformly blended to form a product (uniform blending is assumed in the scheduling of open-pit mines). Multiple types of dig unit and truck are used at the mine. This article models the operation of plants in more detail than usually present in the literature. Each plant p ∈ P is assigned a rehandling and yield percentage, R p and Y p . A fraction R p of the total tons of material sent to plant p, from blocks in B, will be implicitly rehandled via a run-of-mine stockpile, consuming both truck and dig unit resources. This means that a fraction (R p ) of the material sent to plant p will be re-directed to a ROM, and then extracted from this ROM and sent to plant p. ROMs are located close to each plant, but are not explicitly modelled (i.e. the movement of material to and from each ROM is not scheduled). Each plant p ∈ P yields a fraction Y p of its input feed (p produces xY p tons of ore given an input feed of x tons).
This article considers the short-term scheduling of an open-pit mine producing a single ore product whose composition is defined in terms of the percentage of a range of attributes q ∈ Q (metal grade and contaminants), in each period of a T-period horizon. A solution is a schedule stating the tons of material to be extracted from each source s ∈ S ∪ B, in each period, and the destination d ∈ S ∪ P to which it will be sent.
In this section, an MIP model, MIP STP , of the short-term scheduling problem for a single openpit mine, producing a single ore product, is presented. This MIP is repeatedly solved, as described in Section 4, over the course of a rolling-horizon-based algorithm. Instances of MIP STP are solved over a horizon that reduces in size over the course of the algorithm (i.e. from 1, . . . , T to 2, . . . , T and so on until the horizon spans just one period T). To reduce the complexity of each solve, MIP STP is defined on a discretization of the T-period horizon in which time periods are aggregated into groups of non-uniform and increasing size (with the first aggregate containing only one period). A procedure for performing this aggregation is provided in the Online Supplement (http://dx.doi.org/10.1080/0305215X.2016.1218002). For example, a horizon of thirteen periods can be discretized into three period-aggregates as follows: Original horizon: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} Discretized horizon: {{1}, {2, 3, 4, 5}, {6, 7, 8, 9, 10, 11, 12, 13}}.

Notation
This section defines the indices and sets, functions, parameters, and decision variables that characterize the mining environment.

Indices and sets
Set of blocks in the block model of the mine. l ∈ L Set of modelled material types (e.g. high grade, low grade, waste). s ∈ S Set of stockpiles available at the mine. p ∈ P Set of plants (processing options) available at the mine. q ∈ Q Attributes defining the composition of ore and waste. τ ∈ R k Set of truck types operating at the mine site. δ ∈ R d Set of dig unit types operating at the mine site. k ∈ A b Each k is a group of blocks that, if removed, will provide access to block b ∈ B. There can be multiple ways of accessing b, by removing different groups of blocks (A b defines the different ways in which b can be accessed). j ∈B Each j is a group of blocks, each group defining a region of the mine site.

size(t)
Returns the number of time periods in period-aggregate t ∈ T . periods(t) Returns the set of time periods in period-aggregate t ∈ T . blocks(j) Returns the set of blocks in region j ∈B of the mine. blocks(k) Returns the set of blocks in group k ∈ A b for some b ∈ B. nbors(B ) Returns the set of blocks outside of B ⊂ B that are a dependency (according to mining precedences) of some block inside B .

T bl1
Tons of material l ∈ L in block b ∈ B at the start of the horizon t = 1.
Size of stockpile s ∈ S (in tons) at the start of t = 1 (material movement restrictions ensure that all stockpiles contain only one material type l ∈ L). G sq1 Fractional percentage of attribute q ∈ Q in stockpile s ∈ S (t = 1). G sq1p Fractional percentage of attribute q ∈ Q in stockpile s ∈ S (t = 1) after it has been through processing in plant p ∈ P.
Minutes required, by truck type τ ∈ R k , to travel from material source s ∈ S ∪ B to destination d ∈ S ∪ P and back to s (cycle time).
jdτ Average minutes required, by truck type τ ∈ R k , to travel from a block in region j ∈B to destination d ∈ S ∪ P and back to j (cycle time).

R pτ
Cycle time (in minutes) assumed for the implicit rehandling of each truckload of material sent to plant p, from the mine deposit (i.e. from blocks and not stockpiles) with truck type τ ∈ R k . γ b 'Dig factor' assigned to block b ∈ B, γ b ≥ 1, expressing difficulty of mining-the tons of dig unit capacity used by mining Maximum number of blocks in region j ∈B allowed to remain in a 'partially mined' state at the end of t ∈ T .
Decision variables Binary of value 1 iff b ∈ B has been completely extracted by the end of t ∈ T . a st Tons of material on stockpile s ∈ S at the end of t ∈ T . y kt Binary of value 1 iff the block group k ∈ b∈B A b has been completely extracted by the end In each t ∈ T , a fraction R p of the material sent to a plant p ∈ P, from blocks B, is diverted to an unmodelled ROM. In the same period, a dig unit extracts this material from the ROM, and trucking resources haul this material to plant p. This implicit rehandling is unscheduled in the sense that which blocks are to be diverted to an ROM are not specified. Variables are created for each truck and dig unit type to denote the total tons of material they haul, and extract, in the process of implicit rehandling. r pτ t Tons of material hauled to plant p ∈ P by truck type τ ∈ R k , via implicit rehandling at an unmodelled ROM, in t ∈ T . r pδt Tons of material extracted from an unmodelled ROM (due to implicit rehandling) by dig unit δ ∈ R d and hauled to plant p ∈ P, in t ∈ T .
Variables are defined to model the tons of material extracted from each region j by each dig unit type δ, e jδt , and transported to a destination by each truck type τ , e jdτ t . e jdτ t Tons extracted from region j ∈B and sent to destination d ∈ S ∪ P with truck type τ ∈ R k , in t ∈ T . e jδt Tons extracted from region j ∈B, in t ∈ T , with dig unit type δ ∈ R d .

Objectives
The MIP STP model is solved with a variety of objectives using an optimize-and-prune approach, described in Section 4. Each objective is defined in terms of an expression to be optimized, and a set of associated prune constraints, as per Definition 3.1.

Definition 3.1 ([-Objective])
. Each objective z ∈ Z is defined as a tuple: where ξ(z) is an expression to be optimized (ξ(z) = max ψ or ξ(z) = min ψ) over a horizon and PR(z) a set of prune constraints. Let x z denote the optimal solution of MIP STP when solved with respect to z. After solving MIP STP with objective z, constraints PR(z) are added to the model, discarding from its feasible solution space all solutions that are inferior to x z with respect to z. The general form of PR(z) is shown in Equation (2).
The presented solver supports over 40 objectives, including: maximizing the utilization of trucks; maintaining desired material movement between selected regions and stockpiles; maintaining bounds on the tons of waste mined in selected regions; and maintaining the grade of stockpile and plant feed within desired bounds. In Section 6, the presented solver is demonstrated in a range of optimization scenarios, composed of a variety of commonly optimized objectives. Two of these objectives are formally defined in this section. Definitions for each of these objectives are provided in the Online Supplement (http://dx.doi.org/10.1080/0305215X.2016.1218002).

Maintaining alignment with a longer-term plan (z align )
A longer-term plan identifies the blocks B LTP ⊂ B that should be extracted by the end of the horizon. This objective aims to maximize the tons of material extracted from blocks in this set. The prune constraints for z align take the form shown in Equation (2).

Maintaining product grades within desired bounds (z grade )
This objective aims to keep the levels of each attribute q ∈ Q in the ore produced by the mine in each period-aggregate t ∈ T within desired lower (L qt ) and upper (L qt ) bounds. Let h pt and ρ qt denote the tons of material sent to plant p ∈ P in t, and the tons of attribute q produced by the mine in t, respectively. where Let ν denote the value of ψ grade in the best found solution to MIP STP , instantiated with ξ(z grade ). The prune constraints for z grade are shown in Equation (8): Several variations of z grade are supported in which grade deviation above desired upper bounds, below desired lower bounds, or from the original bounds narrowed by one half, and three quarters, are minimized. Also supported are objectives that minimize deviation between the level of each q ∈ Q, individually, and its original or narrowed bounds.

Constraints
Constraints (9)-(11) restrict the tons of material extracted from each block b ∈ B to what initially exists, T bl1 for l ∈ L, and define the binary indicators y bt , y blt andŷ bt .
All variables denoting the movement of material along an invalid path (e.g. material of type l ∈ L in block b ∈ B to a stockpile or plant that cannot accept that material) assume a value of zero. The presented scheduler supports restrictions on the regions of a mine in which truck and dig unit types are allowed to operate. All variables denoting an invalid use of a truck or dig unit type (e.g. the extraction of material from a set of blocks by a dig unit not permitted to access those blocks) assume a value of zero.
Constraint (12) sets binary y kt to 1 if and only if all blocks in group k ∈ b∈B A b have been completely mined by the end of period-aggregate t ∈ T (ŷ bt equals one for every block in group k). Constraint (13) prevents block b from being mined in t, unless at least one group k ∈ A b is completely mined by the end of t. In long-term scheduling problems, each block is accessed by extracting the 5 or 9 blocks above it. In the short-term, however, precedences exist between each block and those that lie both above and next to it.
Separation constraints are defined to enforce mining precedences between blocks. Blom, Pearce and Stuckey (2016) provide a set of such constraints, which is replicated here. A block b ∈ B is immediately accessible if |A b | = 0 (i.e. no other blocks must be removed before b can be accessed). The set P contains all contiguous groups of blocks B ⊂ B for which ¬∃b ∈ B such that |A b | = 0 (i.e. no block inside B is immediately accessible). Let nbors(B ) return the set of blocks {b|b ∈ B , k ∈ A b , b ∈ blocks(k)} (i.e. the 'neighbours' of the blocks in B ). In the process of solving MIP STP , selected instances of constraint (14) are added via a separation algorithm, described in the Online Supplement (http://dx.doi.org/10.1080/0305215X.2016.1218002). This separation algorithm is the same as that used by Blom, Pearce and Stuckey (2016), but does not appear in that work for space reasons. Each contiguous set of blocks mined in t ∈ T (maximal with respect to set inclusion) must contain a block that is immediately accessible in t. This prevents the mining of groups of blocks, each supporting the mining of the other in constraint (12), but neither being immediately accessible. Figure 2 illustrates this, with blocks b 0 and b 1 scheduled to be mined, despite being surrounded by blocks that are not scheduled for extraction. Constraint (14) states that if a block in B is mined in t ∈ T , then at least Constraints (15) and (16) distribute the work involved in the implicit rehandling of material via (unmodelled) ROMs across truck and dig unit types. Constraint (17) distributes the work involved in extracting material from stockpiles across dig unit types: Recall that e jδt denotes the tons of material extracted from region j ∈B, in t ∈ T , by dig unit type δ ∈ R d , and e jdτ t the tons of material extracted from region j ∈B and sent to destination d ∈ S ∪ P, in t ∈ T , by truck type τ : The capacities of dig unit and truck types, in each period, are enforced by constraints (20) and (21). Parameter¯ jdτ denotes the average cycle time (in minutes), for truck type τ ∈ R k , to haul a truckload of material from a block in region j ∈B to destination d ∈ S ∪ P. Recall that u sδt denotes the tons of material extracted from stockpile s ∈ S by dig unit type δ ∈ R d in period-aggregate t ∈ T . The capacity of each dig unit type δ and truck type τ , in t ∈ T , are respectively denoted by C δt (in tons) and C τ t (in minutes): Constraints (22)-(24) ensure stockpile capacities are respected in each period-aggregate t ∈ T . Recall that a st denotes the tons of material on stockpile s ∈ S at the end of t ∈ T : Selected stockpiles S ⊆ S can have material deposited on, or reclaimed from, them but not both, in the same time period. Let v st and w st denote binary variables, one for each t ∈ T and stockpile s ∈ S (v st takes on a value of one if material is reclaimed from s in t, and w st takes on a value of one if material is deposited onto s in t). Constraints (25)-(27) enforce this restriction on each s ∈ S . Reclaiming and depositing material from and on a stockpile in the same period allows the MIP to 'cheat' by sending material of low quality to the stockpile and reclaiming it at the 'average' stockpile grade. Stockpiles are not restricted in this way in an aggregate spanning multiple periods, as in this case it is natural for both depositing and reclaiming to take place.
b∈B l∈L Each plant p ∈ P must be supplied an amount of material, in each t ∈ T , equal to its capacity C pt : A practical schedule mines blocks from start to finish in a continuous manner, avoiding the need to return to a block at a later time to complete its extraction. To encourage the continuous mining of blocks, constraints are added restricting the number of blocks that can exist in a 'partially mined' state at the end of t ∈ T in region j ∈B (P jt ):

A multi-objective rolling-horizon-based algorithm
Blom, Pearce and Stuckey (2016) present a rolling-horizon-based algorithm for constructing a single production schedule, optimized with respect to two fixed objectives. A horizon of T periods is discretized into two period-aggregates of size 1 and T−1 (the size of a period-aggregate refers to the number of periods it contains). A two-period MIP model of the scheduling problem is solved, first with an objective to minimize deviation between the grade of produced ore and desired bounds.
Constraints are added to this MIP, preventing this deviation from exceeding that experienced in the obtained solution. The two-period MIP is re-solved with an objective to maximize equipment productivity. The activities of period 1 are fixed to those scheduled in this second solution. The algorithm next considers a two-period scheduling problem covering periods 2 to T, repeating this process to fix the activities of period 2. The algorithm terminates once all T periods have been scheduled. This section presents an adaptation of the rolling-horizon-based algorithm of Blom, Pearce and Stuckey (2016) in which a horizon of T periods is discretized into N T periodaggregates of non-uniform and increasing size (Listing 1). The result is a fine discretization of time at the start of the horizon, and an increasingly coarse discretization toward the end. A procedure for discretizing a horizon in this way is provided in the Online Supplement (http://dx.doi.org/10.1080/0305215X.2016.1218002). The first aggregate in this discretized horizon has a size of one. The presented rolling-horizon-based algorithm solves a series of N-period instances of MIP STP (Section 3) to build a schedule progressively. Schedule generation is optimized with respect to an arbitrary sequence of objectives Z, ordered from highest to lowest priority. A feasible schedule is an instantiation of variables x that satisfies the constraints of Section 3.3. The presented algorithm is described using the following notation.

Additional notation t
Time periods in the original (non-discretized) horizon. x Set of all decision variables defined in Section 3.
The variables in x defining the activities of period t . Split and branch factor used to control the number of schedules generated by the CRH algorithm (described in Section 5).
The presented rolling-horizon-based algorithm schedules the activities of each period t in turn via repeated calls to ProgressSchedule (Step 5). With this procedure, a schedule is progressively built, one period at a time. Starting at t = 1, this procedure discretizes the T-period horizon into N (or fewer) period-aggregates (Step 13). MIP STP (Section 3) is instantiated over the discretized horizon T to form M T (Step 14). Model M T is repeatedly solved with a series of different objectives. In Steps 15-18 of ProgressSchedule, each objective z in the sequence Z is considered in turn. For each z ∈ Z, M T is solved with respect to ξ(z) (Step 16), to find the optimal solution x z . In practice, time limits are imposed on the solving of each MIP, and x z denotes the best solution found in this time limit. Prune constraints PR(z) are added to M T , discarding from the feasible solution space all solutions that are lower in quality (with respect to z) than x z . Each x z defines a candidate instantiation for x t . Upon consideration of the last objective z in Z, the algorithm sets x t = x z t , fixing the activities of period t . If M T is infeasible (has no solution), ProgressSchedule will fail, and schedule generation will stop (Steps 6 and 17).
One reason for such a failure is that the decisions made in periods prior to t have led to a mine state in which there is insufficient processable ore available to supply processing equipment to their full capacity. The modelling of the entire horizon in M T , albeit in a coarse manner, aims to reduce the likelihood of such failures, however feasibility is not guaranteed. The case study of Section 6 shows that these failures do not occur often. In one of the nine optimization scenarios considered, the presented CRH algorithm produces six schedules instead of the expected nine (three schedules became Listing 1 A rolling-horizon-based algorithm for the generation of a schedule x, given a horizon of T periods, objectives Z and discretization factor N 1: x ← ∅ 2: t ← 1 3: Initialize starting mine state 1 4: while t ≤ T do 5: Compute new mine state t +1 on the basis of x t 8: t ← t + 1 9: end while 10: return x The new mine state t +1 is computed to reflect the tons of material, of each type l ∈ L, remaining in each block at the end of period t , in addition to the size and grade of each stockpile s ∈ S (Step 7). The presented algorithm rolls forward by one period (Step 8), and repeats Steps 11-20 with t = 2. The discretized horizon T now covers periods {2, . . . , T}. Steps 4-9 repeat until the activities of all periods have been fixed.
In each subsequent call to ProgressSchedule, where t > 1, parameters T s1 , G sq1 and G sq1p , for stockpile s ∈ S, attribute q ∈ Q and plant p ∈ P, in the constraints of Section 3.3, are replaced with T st , G sqt and G sqt p , as defined in t . The grade of each stockpile s ∈ S, at the start of period t , is known, allowing us to model the changing state of stockpiles without nonlinear constraints.

Candidate generation via split-and-branch (CRH)
This section presents a concurrent rolling-horizon-based (CRH) algorithm. This algorithm implements a split-and-branch approach for the generation of multiple candidate schedules given a sequence of objectives Z, ordered from highest to lowest priority (Listing 2). A split factor, α s , and branch factor, α b , control both the number and diversity of schedules generated, and are user-defined parameters. CRH marks α s periods in the horizon as split points, as shown in Figure 3, labelling t = 1 as the first split point, and distributing the remaining α s − 1 split points evenly across the horizon. The set of these split points is denoted SP. The CRH algorithm, defined in Listing 2, fixes the activities performed in a frontier of candidate schedules, X , one period at a time, until reaching a split point t ∈ SP. At each split point t ∈ SP, a branch occurs, where each candidate x ∈ X is replaced by α b new schedules. The schedules spawned from x are equivalent to x, for all t < t , but diverge in the activities scheduled for period t . Up to α α s b schedules are generated by the algorithm (the branch Listing 2 The CRH algorithm for multiple schedule generation, given a horizon of T periods, objectives Z, discretization factor N, split points SP and branching factor α b 1: X ← ∅ 2: t ← 1 3: x 1 ← ∅ x i refers to the ith schedule constructed by the algorithm 4: Initialize starting (t = 1) mine state 11 for schedule x 1 5: X ← {x 1 } 6: for each x i in X do 9: t ← t + 1 25: end while 26: return X factor to the power of the number of split points). Schedules that reach a dead end in period t (the constraints of Section 3.3 cannot be satisfied) are removed from the frontier.
The set of candidate schedules, X , is initially empty (Step 1). An empty schedule x 1 is created, in which no activities have been fixed (Step 3), and added to X (Step 5). The notation x i refers to the ith schedule constructed by the algorithm. A mine state, 1t , describing the tons of material remaining in each block, and the composition of each stockpile, at the start of each period t is maintained alongside x 1 (the subscript 1 in 1t denotes that this is the state of the mine at the start of period t if schedule x 1 is performed). For each time period t in our horizon, CRH concurrently fixes the activities of period t in each schedule in X (Steps 8-23). At t = 1, CRH progresses schedule x 1 (the only schedule currently in X ) by fixing the activities of period 1 (Step 9). A slight variation of the ProgressSchedule procedure of Listing 1 is defined in which, given a time period t , mine state it , parameters T and N, and a sequence of objectives Z, both schedule x i (with the activities of period t fixed) and the model M T (constructed and instantiated with the final objective in Z) are returned. This procedure is denoted ProgressSchedule' . If ProgressSchedule' fails to progress schedule x i , this schedule is removed from X (Steps 10-13).
Once the activities of period t in schedule x i ∈ X have been fixed (Step 9), CRH checks if t is a split point (Step 15). If t ∈ SP, the algorithm computes α b − 1 alternative sets of activities for t in x i via ReplicateDiversify (Step 18). ReplicateDiversify takes, as input, the MIP model formed  by ProgressSchedule' , M T , after it has been solved with respect to each objective in Z. Using the populate method of CPLEX R 12.6, ReplicateDiversify fills a solution pool with solutions of M T that have diverse instantiations of its integer variables-see Danna et al. (2007) for a description of the populate method. These integer variables indicate whether a block is mined, or completely extracted. Diversity in their instantiation results in schedules that mine blocks in a different sequence. Each repeated call to ReplicateDiversify selects the next solution in this pool, from which a new schedule is constructed and added to X (Step 19).
At t = 1, Steps 16-21 take the first α b − 1 solutions in the pool populated by ReplicateDiversity, and use these solutions to fix the activities of period t = 1 in α b − 1 new schedules, x 2 , . . . , x α b . A mine state, it , is maintained alongside each schedule x i , recording the tons of each block, and state of each stockpile, at the start of each period t , on the basis of the actions performed in x i . Each newly constructed schedule, together with its corresponding mine state, are added to X and (Steps 19 and 20).
After the first iteration of Steps 7-25, X contains α b schedules with the activities of period 1 fixed. Steps 7-25 are repeated, progressing each of these schedules, and updating their associated mine states in , until the algorithm reaches the next split point t ∈ SP. For schedule x i , ReplicateDiversify copies the activities of x i , for each t < t , into each of the α b − 1 schedules it creates. The activities of period t , in these new schedules, are determined via the population of a solution pool, as described above. CRH terminates once all T periods have been scheduled in each of the α α s b schedules constructed. Figure 4 demonstrates how the CRH algorithm creates and progresses multiple candidate schedules given a 13-period horizon, and parameters α s = 2, α b = 3 and N = 3.

Case study
The presented solver is evaluated on two data sets derived from a currently operating open-pit mine producing several million tons of a single product each year. In the first data set, denoted DS1, there are 404 grade blocks, 434 blast blocks, 5 material types, 5 quality attributes, 10 modelled stockpiles, 4 plants, 4 dig unit types and 3 truck types. Of the 838 blocks, 161 have no associated mining precedences (i.e., are immediately accessible), and 206 have disjunctive precedences (more than one way of accessing the block). In the second data set, denoted DS2, there are 526 grade blocks and 296 blast blocks. Of the 822 blocks, 321 have no associated precedences. Each block b has at most one way of accessing it |A b | ≤ 1. The number of material types, quality attributes, stockpiles, plants, dig unit types and truck types, is the same in both data sets. Equipment capacities, target grades and bounds on production grades, in each week of a 13-week horizon, differ between the two data sets. Each data set represents the state of the mine at two distinct time points, one year apart. Valid source-to-destination pathways are the same for both DS1 and DS2. This section demonstrates the efficiency with which the CRH solver finds schedules in a range of scenarios, and how the properties of these schedules change in response to changes in the objective sequence. All experiments in this article have been run on a machine with an Intel Xeon E5-1650 v2 3.5 GHz processor and 64 GB RAM. All MIPs have been solved with CPLEX R 12.6.
For data set DS1, five distinct scenarios are considered (Table 1), labelled DS1 a−e . These scenarios include the following objectives: maximizing alignment of the schedule with a longer-term plan (z align , Section 3.2.1); encouraging the continuous mining of blocks (z cont , mining blocks continuously until completely extracted); keeping stockpile sizes within desired bounds in each time period (z piles ); keeping the tons of waste mined in each period within desired bounds (z waste ); keeping the tons of material mined from specific regions within desired bounds (z regions ); and minimizing deviation between the grade of ore produced in each period and desired bounds (z grade , Section 3.2.2). Formal definitions for each of these objectives are provided in the Online Supplement (http://dx.doi.org/10.1080/0305215X.2016.1218002).
Scenarios DS1 b−d replicate DS1 a with a single objective removed: DS1 b does not keep the tons of waste mined within desired bounds; DS1 c does not align schedules with a longer-term plan; DS1 d aims to keep product grades below desired upper bounds only (narrowed by one half); and DS1 e ignores objectives relating to production grade entirely. Table 1 records the number of schedules generated for each scenario and the time taken by the present authors' solver to form those schedules (using parameters α s = 2, α b = 3 and N = 2). Table 2 compares the kilotons of waste mined, in each period, in the schedules generated for scenario DS1 a (which aims to mine at least 250 kt of waste each period) to those generated for DS1 b (which includes no waste-related objective). The schedules formed for DS1 a mine more waste, on average, than those generated for DS1 b .
A longer-term plan identifies the set of blocks which should be removed by the end of the scheduling horizon. The schedules generated for scenario DS1 a mine, on average, 79.9% (standard deviation 2%) of the blocks in the relevant longer-term plan. An average of 68.4% (1.5%) of these blocks are mined across the schedules generated for scenario DS1 c , where one does not optimize with respect to longer-term plan alignment.
In all of the schedules formed for DS1 a , product grades lie within upper and lower site bounds, with very slight average deviations above (and below) narrowed site bounds present in some periods (no more than 0.1 , where denotes the gap between the target grade of an attribute and its nonnarrowed bounds). The schedules generated for DS1 d , in which only deviation above upper grade bounds (narrowed by half) is considered, exhibit similarly small deviations above these bounds. In the schedules generated for DS1 e , in which no optimization with respect to product grade occurs, attribute grades fall below narrowed lower bounds, and exceed narrowed upper bounds, by up to 3 , on average. These results show that the CRH solver can keep product grades within desired upper and lower bounds by minimizing deviation from narrowed upper and lower bounds.
The mine in the presented case study is primarily concerned with the levels of two contaminants, q 2 and q 3 . In DS1, all attributes have associated lower and upper bounds. The second data set, DS2, defines upper bounds for attributes q 2 and q 3 , hard cutoff bounds on all remaining contaminants, and a lower bound on metal content (attribute q 1 ). Table 3 lists each of the optimization scenarios applied to the second data set, DS2, the number of schedules found in each scenario, and the time taken to generate those schedules. Each scenario has been solved with α s = 2, α b = 3 and N = 2. Schedule generation is considerably less time consuming on this data set. The addition of disjunctive precedences in DS1 adds significant complexity to the problem.
The schedules created for scenarios DS2 a−d are compared in terms of how well they keep attributes q 2 and q 3 below upper bounds, and q 1 above its lower bound. Across all schedules generated for DS2 a Minimize deviation of q 3 in produced ore above upper bound (narrowed by half, z q3,0.5 grade ) minimize deviation of q 2 above upper bound (narrowed by half, z q2,0.5 grade ) minimize deviation of q 1 below lower bound (z q1 grade ) keep tons of material mined in specific regions within bounds (z regions ) encourage the continuous mining of blocks (z cont ) and keep tons of waste mined within bounds (z waste ) Table 4. Number of schedules generated, and solver runtime, for varying values of α s and α b .

Parameters
Schedules generated Time ( scenarios DS2 a−d , product grades exhibit only slight deviations below the lower bound for q 1 (less than 0.1 in magnitude, on average). The schedules generated for scenarios DS2 b and DS2 d perform best at maintaining q 2 and q 3 below upper bounds (narrowed by half). This is unsurprising, as the objectives of DS2 b and DS2 d aim to keep q 2 and q 3 below upper bounds (narrowed by three quarters). Scenario DS2 c , in contrast, aims to keep q 2 and q 3 below non-narrowed upper bounds only. Each of the above experiments use a discretization factor of N = 2. Each schedule has thus been generated by solving a series of two-time-period MIPs. The following experiment considers the influence of this parameter on the degree to which the resulting schedules satisfy desired objectives. Consider a variation of DS2 a , denoted DS2 e , in which an objective to keep stockpiles sizes below upper bounds is inserted in the fourth position. Let s 1 and s 2 denote two stockpiles in the case study mine with preferred upper boundsS s 1 andS s 2 on their size at the end of each week. For N = 2, 3 and 4, 9 schedules are generated in 184, 319 and 443 s, respectively. For N = 2 and 3, excess kilotons are present on s 1 and s 2 in three time periods (the magnitude of these deviations is smaller for N = 3). For N = 4, excess kilotons are present on s 1 in only one time period.
Increasing the split (α s ) or branch factor (α b ) increases both solve times and the number of schedules generated by the CRH algorithm. Recall that α α b s schedules are generated by CRH. For varying α s and α b , Table 4 reports the number of schedules generated, together with solve times, for scenario DS2 a . Schedule construction is parallelized, so that the generation of 81 schedules (α s = 4 and α b = 3) takes less than three times more wall clock time than the generation of 9. Each of these schedules produce ore with a different grade profile, extraction sequence and schedule of stockpile to plant movements.

Concluding remarks
This article has presented: a tool for the short-term scheduling of an open-pit mine, demonstrated on a currently operating site producing several million tons of ore each year; and a novel concurrent rolling-horizon-based algorithm for the generation of multiple distinct production schedules, each optimized with respect to a sequence of objectives. The presented system supports over 40 objectives, from which a planner can construct a diverse range of optimization scenarios. The tool presented in this article for the short-term scheduling of open-pit mines advances the current state of the art with its ability to generate multiple candidate schedules, with respect to sequences of multiple objectives, each of which satisfies hard constraints on the utilization of processing plants. This system is capable of generating these schedules within minutes, whereas existing tools require days of parameter adjustment to achieve satisfactory results.

Disclosure statement
No potential conflict of interest was reported by the authors.

Funding
This work is funded by an Australian Research Council (ARC) Linkage grant [LP110100115] in conjunction with an industry partner.