1 Introduction

With the increasing focus on sustainability and environmental awareness, the various transformation processes of renewable materials and their reuse and recycling possibilities are experiencing a growing interest. Wood is one of the prime examples of such a renewable material, as it has a huge variety of primary uses (e.g. construction, furniture, energy, paper) while also being a prime candidate for reuse and recycling. Two overlapping fields both contribute to this concept; namely, cascading use of wood and circular economy. Cascading tries to enhance the utilization of wood through the sequential steps of reuse, recycle, and finally, transformation to energy (Jarre et al. 2020). This can result in the decrease of fresh wood used as a resource and provides an opportunity for discarded wooden products to be used instead. The movement of resources in such a network of various woodworking sectors was modeled by Taskhiri et al. (2019) for a use-case in Lower Saxony, Germany. Circular economy is a concept where the traditional forward supply chain of products is augmented by a reverse supply chain as well, where the focus is on the optimization of resource usage by repair, reuse, refurbishing, remanufacturing, and recycling, keeping resources in this closed loop as long as possible (Balanay et al. 2022).

Optimization of the traditional forward product flows of wood is a well-researched area, with problems ranging from harvesting (Santos et al. 2019; Mesquita et al. 2021) through facility-level decision-making (e.g. sawmilling Maturana et al. 2010), cutting pattern optimization (Koch et al. 2009) to network-level modeling (Pekka et al. 2019). However, the utilization of waste wood and the reverse flows of this material are not widely studied. Waste wood can originate from a variety of sources, the two main groups being residual industrial wood (from the woodworking industry) and used wooden products (ranging from demolition waste to household items). However, similarly to other biomass residues, waste wood is mostly considered a resource for energy production (Tripathi et al. 2019), and scientific studies usually concentrate on this aspect, while there might be more sustainable recycle possibilities (Garcia and Hora 2017).

As it was mentioned, the literature studying the optimization problems of waste wood is scarce. The two main research areas are the resource flow of waste wood for energy (Greinert et al. 2019; Marchenko et al. 2020) and the optimization problems of network design (Devjak et al. 1994; Burnard et al. 2015; Trochu et al. 2018; Egri et al. 2021). While the previous studies concentrate mostly on network-level decisions, optimization problems in the nodes of waste wood logistics networks should also be studied. One important step is the processing of the collected waste, which is usually done through shredding, as most end-uses (e.g. energy or chipboard) require wood to be shredded to a certain size.

This paper presents the scheduling of a waste wood processing plant, where the incoming wood deliveries are processed by a series of transformation steps to produce shredded wood. Two mathematical models are designed for the problem to handle the overlapping of the automated processing steps in order to provide as continuous operation as possible. One of these is a discrete-time model, which is closer to the classical way of scheduling tasks in such a facility (Floudas and Lin 2004), while the other is a precedence-based model that utilizes continuous-time variables for the timing of activities. While precedence-based models tend to achieve better performance if all tasks to be executed are known in advance, they are not trivial to extend with capacity constraints on shared resources or to allow preemption. Time discretization models, on the other hand, can model such features easily, but usually require a larger number of integer variables. Moreover, the investigated problem class features a special processing step, whose position in the production sequence depends on resource assignment. The performance effects of modeling such a unique requirement for either technique were unknown a priori and also contributed to the goals of our investigation. The efficiency of the proposed models is shown on instances that were randomly generated based on real-world distributions from the literature, and their results will be compared on these same datasets.

This work is an extension of the conference proceedings publication of Dávid et al. (2021b), which acts as a preliminary version of this paper. While the above publication only presented the major parts of the precedence-based model, this paper presents both a discrete- and continuous-time model for the representation of the waste wood shredding problem. The presented topic is a variation of our previously published work on scheduling waste wood processing facilities in Dávid et al. (2021a). This previous study considered the uncertainty of the type and origin of the incoming deliveries (which is not tackled in the current paper), but it did not allow any overlapping between the various processes of the facility and only tackled the continuous case.

2 Problem definition

The proposed models in Sects. 3 and 4 minimize the total weighted lateness of a plant that processes waste wood deliveries from collection centers and households. Each delivery has a given arrival time, a due date for completing its processing, and a priority weight.

There are 5 main processing steps each delivery has to go through:

  • Inspection and sorting (\({{\texttt{IS}}}\))

  • Metal separation (\({{\texttt{MS}}}\))

  • Coating removal (\({{\texttt{CR}}}\))

  • Shredding (\({{\texttt{SH}}}\)) and reshredding (\({{\texttt{RS}}}\))

  • Screening (\({{\texttt{SC}}}\))

The main step is shredding, for which dedicated, high-throughput machines are available. Subsequently, shredded wood goes through screening, where large pieces are selected for reshredding. Reshredding is executed by the same shredding machines, while screening also has its dedicated units.

Metal separation can be done either by a magnetic separator in an automated fashion or manually by a dedicated crew. In the former case, it has to be done after the main shredding operation, otherwise, it precedes coating removal, and follows inspection. Both of these initial steps are carried out by their dedicated crews and based on the quality of the delivery, coating removal is only needed for a portion of it.

The overall process of the plant is illustrated in Fig. 1.

Fig. 1
figure 1

The possible flow of treatment and transformation processes for waste wood (green: manual steps, gray: machine steps)

Intermediate materials produced by machines may be transported to the subsequent step while the rest of the batch is still being processed, i.e., these steps behave in a continuous fashion. Manual steps, however, can be considered batch subprocesses. Neither the manual nor the automated steps may be interrupted apart from the end of the shifts. In the latter case, production must resume as it was when the next shift starts. Automated steps may have an input storage/buffer that can hold shredded wood for as long as needed. The capacities of these storages are sufficiently large to enable fully batch operation if equipment availability would require it.

Screening is always done in parallel with shredding, and the selected wood parts are redirected back to the same machine. Thus, the shredding cannot end while screening (and metal separation if done automatically) is done. The possible timing of these steps is illustrated in Fig. 2 with both options for metal separation.

Fig. 2
figure 2

Possible timing of processing steps for both metal removal options

There may be several available machines for automated steps, which can be assigned to either different or the same delivery at a given time. The dedicated crews, however, may not be split up between different jobs.

The wood type of a delivery may be solid (\({{\texttt{S}}}\)) or derived (\({{\texttt{D}}}\)), which main factor for the percentage of wood / shredded wood that requires coating removal / reshredding. These values are estimated based on statistical data from the literature

Formally, the problem data may be given by the following sets and the parameters listed in Table 1:

J:

Finite set of jobs/deliveries

S:

\(=\{{{\texttt{IS}}},{{\texttt{MS}}},{{\texttt{CR}}},{{\texttt{SH}}},{{\texttt{SC}}}\}\) set of steps

M:

Finite set of machines and dedicated crews

Note, that from the modeling point of view, dedicated crews do not differ from machines, as they cannot be split, so M is considered to entail \(\{crew\_{{\texttt{IS}}}, crew\_{{\texttt{CR}}}, crew\_{{\texttt{MS}}}\}\) which refer to the manual execution of the corresponding steps.

Each machine/crew is dedicated to the execution of a single subprocess. \(s_m\) will refer to the step which \(m\in M\) can process.

Table 1 Input parameters

3 Discrete-time model

A discrete-time model was the first to be developed for the problem as this is closer to the classical way of scheduling the timing of real-world events inside a facility. Tasks can only start at predefined time points, which may be suboptimal but easier to apply in practice with work shifts.

Time is discretized through a global time grid, whose time points are \(\Delta \) hours from each other. The last time point is set to 3 days later than the latest deadline, to account for the delay:

The index set of the time points is denoted by P:

$$\begin{aligned} P = \left\{ 0,1,\dots , P^{max} \right\} \end{aligned}$$

The value of \(\Delta \) should be equal to the shift length, h, or \(\frac{h}{2}, \frac{h}{3}, \frac{h}{4}, \dots \), so there is a time point at the start of each shift.

Material flows are modeled with a State-Task Network (STN) representation, which was introduced by Kondili et al. (1993). The recipe has two production paths, as the task sequence is different depending on whether manual or automated metal separation is used. To model this, 2 different states are defined for intermediate states after inspection and sorting in the set of resource states:

$$\begin{aligned} R = \left\{ raw, {{\texttt{IS}}}, {{\texttt{MS}}}^m, {{\texttt{CR}}}^m, {{\texttt{CR}}}^a, {{\texttt{SH}}}^m, {{\texttt{SH}}}^a, {{\texttt{MS}}}^a, {{\texttt{SC}}}\right\} \end{aligned}$$

The tasks are also duplicated to account for the two production paths, so the input and output states of the two task variants can be different. For each step \(s \in S\), its input is given by \(in^m_s\) for the manual variant, and \(in^a_s\) for the automated variant. Similarly, the output is given by \(out^m_s\) and \(out^a_s\). The inputs and outputs can be seen in Fig. 3, where rectangles represent tasks, and circles denote states.

Fig. 3
figure 3

The State-Task Network representation of the process

As due dates and arrival times are given in days, some relations between days and time points must be defined. The set of days is denoted by D:

$$\begin{aligned} D = \left\{ 0,1,\dots , \max _{j\in J} d^s_j + 3 \right\} \end{aligned}$$

The time point at the start of day d is defined as \(st_d = \frac{d\cdot h}{\Delta }\).

To account for the percentages requiring coating removal and reshredding, virtual throughputs are defined for the machine-job pairs. If 20% needs coating removal from job j, the virtual throughput of this step will be 5 times the normal throughput. Conversely, if 20% needs reshredding, the virtual throughput of the shredding and screening steps will be the normal throughput divided by 1.2. In general, the virtual throughput \(c^v_{m,j}\) is calculated as:

The arriving material quantities are calculated for each time point:

$$\begin{aligned} q^a_{r,t} = {\left\{ \begin{array}{ll} q_j &{} \quad \text {if } r=raw, t = st_{d^a_j}\\ 0 &{} \quad \text {otherwise} \end{array}\right. } \qquad \forall r \in R, t \in P \end{aligned}$$

A big-M parameter is required for setting quantities. This is defined as:

$$\begin{aligned} M_q = \max _{s \in S} \left\{ \sum _{m \in M, j \in J: s_m = s} c^v_{m,j} \cdot \Delta \right\} \end{aligned}$$

3.1 Decision variables

To avoid increasing the number of variables, tasks are not duplicated in the model to represent the variants on the two production paths. Instead, a separate binary variable, \(a_j\) decides whether automated (\(a_j=1\)) or manual (\(a_j=0\)) metal separation is used for job j.

The variables of the discrete-time model are listed in Table 2.

Table 2 Decision variables for the discrete-time model

3.2 Constraints

As tasks are nonpreemptive, each must start exactly once. This is set by Eq. (1).

$$\begin{aligned} \sum _{t \in P} x_{j,s,t} = 1\quad \forall j \in J, s \in S \end{aligned}$$
(1)

A machine can only be processing a job at a time point if its corresponding step is started at the same time point, or if it was already processing the job in the previous time point. Equation (2) ensures this processing continuity, while Eq. (3) set the bound for the first time point.

$$\begin{aligned} y_{j,m,t}\le & {} x_{j,s_m,t} + y_{j,m,t-1} \quad \forall j \in J, m \in M, t \in P, t > 0\end{aligned}$$
(2)
$$\begin{aligned} y_{j,m,0}\le & {} x_{j,s_m,0} \quad \forall j \in J, m \in M \end{aligned}$$
(3)

Equation (4) prohibits a machine from processing multiple jobs at the same time.

$$\begin{aligned} \sum _{j \in J} y_{j,m,t} \le 1 \quad \forall m \in M, t \in P \end{aligned}$$
(4)

The quantity processed at a time point by a machine is bounded by its throughput capacity in Eq. (5).

$$\begin{aligned} q_{j,m,t} \le y_{j,m,t} \cdot c^v_{m,j} \cdot \Delta \quad \forall j \in J, m \in M, t \in P \end{aligned}$$
(5)

The total mass consumed and produced from each resource state is calculated from the machine quantities. As a machine can have different input and output states based on the production path selected by \(a_j\), separate constraints are needed for the 2 scenarios. Consumption is lower bounded in Eqs. (6) and (7) and production is upper bounded in Eqs. (8) and (9). Produced output always appears in the subsequent time point from the one where its input was consumed. Therefore, no production is allowed at the start, as stated by Eq. (10).

$$\begin{aligned}{} & {} q^-_{j,r,t} \ge \sum _{m \in M: in^m_{s_m} = r} q_{j,m,t} - M_q \cdot a_j \quad \forall j \in J, r \in R, t \in P\end{aligned}$$
(6)
$$\begin{aligned}{} & {} q^-_{j,r,t} \ge \sum _{m \in M: in^a_{s_m} = r} q_{j,m,t} - M_q \cdot (1-a_j)\quad \forall j \in J, r \in R, t \in P \end{aligned}$$
(7)
$$\begin{aligned}{} & {} q^+_{j,r,t+1} \le \sum _{m \in M: out^m_{s_m} = r} q_{j,m,t} + M_q \cdot a_j\quad \forall j \in J, r \in R, t \in P, t < P^{max} \end{aligned}$$
(8)
$$\begin{aligned}{} & {} q^+_{j,r,t+1} \le \sum _{m \in M: out^a_{s_m} = r} q_{j,m,t} + M_q \cdot (1-a_j)\quad \forall j \in J, r \in R, t \in P, t < P^{max} \end{aligned}$$
(9)
$$\begin{aligned}{} & {} q^+_{j,r,0} = 0\quad \forall j \in J, r \in R \end{aligned}$$
(10)

Material balance is set by Eq. (11) by calculating the change of stored quantity from a resource by adding the produced and arrived quantities and subtracting the consumed quantity from the storage level of the previous time point. At the first time point, production is not possible, so the difference between the initial supply and the consumption will be the stored quantity, as set by Eq. (12).

$$\begin{aligned} q^s_{j,r,t}= & {} q^s_{j,r,t-1} + q^+_{j,r,t} - q^-_{j,r,t} + q^a_{r,t}\quad \forall j \in J, r \in R, t \in P, t > 0 \end{aligned}$$
(11)
$$\begin{aligned} q^s_{j,r,0}= & {} - q^-_{j,r,0} + q^a_{r,0}\quad \forall j \in J, r \in R \end{aligned}$$
(12)

Equation (13) ensures the production of the final products in the required quantities.

$$\begin{aligned} \sum _{t \in P} q^+_{j,{{\texttt{SC}}},t} = q_{j}\quad \forall j \in J \end{aligned}$$
(13)

The above formulation would allow the overlapping of manual steps. However, as stated in the problem definitions, these are fully batch tasks, and no overlap is allowed. To model this, Eqs. (15) to (17) ensure that the precedence requirements are satisfied between applicable task pairs.

$$\begin{aligned} y_{j,m,t}\le & {} \sum _{t' = t+1}^{P^{max}} x_{j,{{\texttt{MS}}},t'}\quad \forall j \in J, m \in M, t \in P, t<P^{max}, s_m={{\texttt{IS}}}\end{aligned}$$
(14)
$$\begin{aligned} y_{j,m,t}\le & {} \sum _{t' = t+1}^{P^{max}} x_{j,{{\texttt{CR}}},t'} \quad \forall j \in J, m \in M, t \in P, t<P^{max}, s_m={{\texttt{IS}}}\end{aligned}$$
(15)
$$\begin{aligned} y_{j,{{\texttt{MS}}},t}\le & {} \sum _{t' = t+1}^{P^{max}} x_{j,{{\texttt{CR}}},t'}\quad \forall j \in J, t \in P, t<P^{max} \end{aligned}$$
(16)
$$\begin{aligned} y_{j,m,t}\le & {} \sum _{t' = t+1}^{P^{max}} x_{j,{{\texttt{SH}}},t'}\quad \forall j \in J, m \in M, t \in P, t<P^{max}, s_m={{\texttt{CR}}}\end{aligned}$$
(17)

A percentage of the material must return for reshredding, so shredding cannot finish before the end of screening. Eq. (18) ensures that shredding machines with sufficient throughput capacity remain active during the screening process. If metal separation is automated, the reshredded quantity enters this step again too. In this case, Eq. (19) ensures that metal separation machines with sufficient capacity stay active too.

$$\begin{aligned} \sum _{m \in M: s_m={{\texttt{SC}}}} q_{j,m,t} \cdot p^{{{\texttt{RS}}}}_{t_j}\le & {} \sum _{m' \in M: s_{m'}={{\texttt{SH}}}} y_{j,m',t} \cdot c^v_{m',j} \cdot \Delta \quad \forall j \in J, t \in P \end{aligned}$$
(18)
$$\begin{aligned} \sum _{m \in M: s_m={{\texttt{SC}}}} q_{j,m,t} \cdot p^{{{\texttt{RS}}}}_{t_j}\le & {} \sum _{m' \in M: s_{m'}={{\texttt{MS}}}, m' \ne {{\texttt{MS}}}} y_{j,m',t} \cdot c^v_{m',j} \cdot \Delta \nonumber \\{} & {} + M_q \cdot (1-a_j) \quad \forall j \in J, t \in P \end{aligned}$$
(19)

3.3 Objective function

To calculate the lateness, the unfinished variables are bounded by Eq. (20). If a job is being processed at a time point, it is unfinished on the day corresponding to that time point, and all previous days.

$$\begin{aligned} u_{j,d} \ge y_{j,m,t}\quad \forall j \in J, m \in M, d \in D, t \in P, st_{d} \le t \end{aligned}$$
(20)

In the objective function, the weighted count of the unfinished days after the due date of a job is calculated:

$$\begin{aligned} \text {minimize } \sum _{j \in J, d \in D: d > d^s_{j}} w_{j} \cdot u_{j,d} \end{aligned}$$

4 Precedence-based model

The second proposed model is based on precedence, i.e., the timeline is not discretized, continuous variables are assigned to the timing of events, and binary precedence variables are responsible for sequencing.

Before introducing the decision variables and constraints, several helper sets are defined to ease later formalism. A specific step of a specific job will be referred to as a task, which consists of a (js) pair. The set of all tasks is denoted by T:

$$\begin{aligned} T = J \times S \end{aligned}$$

The amount of material from a delivery that undergoes a certain step differs for steps and different material types. To ease formulation, the quantity of a task is denoted by \(q_{js}\), which can be defined as:

$$\begin{aligned} q_{js} = q_j \cdot {\left\{ \begin{array}{ll} 1 + p^{{{\texttt{RS}}}}_{t_j} &{} \quad \text {if } s\in \{{{\texttt{SH}}},{{\texttt{SC}}}\} \\ 1 + p^{{{\texttt{CR}}}}_{t_j} &{} \quad \text {if } s={{\texttt{CR}}}\\ 1 &{} \quad \text {otherwise} \end{array}\right. } \end{aligned}$$

As each machine is dedicated to a step, assignments are done between jobs and machines, the step can be deduced unambiguously. The set of all possible assignments is denoted by A:

Any pair of jobs may be assigned to the same machine/crew, thus, there is a chance of a collision that may require sequencing. The set of these triplets is contained in set C:

$$\begin{aligned} C = \left\{ (j,s,j') \in J\times S\times J \mid j \ne j'\right\} \end{aligned}$$

Finally, a big-M parameter is needed in several constraints. A suitable value can be given as:

4.1 Decision variables

The model uses the decision variables presented in Table 3.

Table 3 Decision variables for the precedence model

Since shutdown and setup times of machines are negligible, they are omitted from the model, the time representation simply shifts all of the shifts together and tackles them as a continuous time horizon. Also, the model assumes, that if a step of a job is split up among several machines, those machines start and finish working simultaneously.

4.2 Constraints

The first set of constraints enforces logical and mass balance constraints between the aforementioned variables.

Equation (21) enforces the common relation between precedence variables. If the execution of both tasks starts at the same time, one of the precedence variables can arbitrarily be chosen to be 1. In practice, this constraint reduces the number of these binary variables by half.

$$\begin{aligned} b_{j,s,j'} + b_{j',s,j} = 1\quad \forall (j,s,j') \in C \end{aligned}$$
(21)

f the manual crew is assigned to metal separation, the other machines cannot be assigned to it. This is expressed by Eq. (22).

$$\begin{aligned} a_{j,m} \le 1 - a_{j,crew\_{{\texttt{MS}}}}\quad \forall (j,m) \in A, s_m = {{\texttt{MS}}}, m \ne crew\_{{\texttt{MS}}}\end{aligned}$$
(22)

If a machine/crew is not assigned to a job, it cannot process any of it, otherwise, the maximum quantity is the total mass for that step, as expressed in Eq. (23).

$$\begin{aligned} q_{j,m} \le q_{j,s_m} \cdot a_{j,m}\quad \forall (j,m) \in A \end{aligned}$$
(23)

Equations (24) and (25) express that the total amount of processed quantity for a task should equal the mass of the job for that step.

$$\begin{aligned} \sum _{\begin{array}{c} (j,m) \in A \\ s_m=s \end{array}} q_{j,m}= & {} q_{j,s}\quad \forall (j,s) \in T, s\ne crew\_{{\texttt{MS}}}\end{aligned}$$
(24)
$$\begin{aligned} \sum _{(j,{{\texttt{MS}}}) \in A} q_{j,m}= & {} q_{j,s} + q_{j,s} \cdot p^{{\texttt{RS}}}_{t_j} \cdot (1-a_{j,crew\_{{\texttt{MS}}}})\quad \forall j\in J \end{aligned}$$
(25)

The completion time of a task should be at least as much later than its starting time, as the assigned crew/machine needs to process the assigned quantity. Equation (26) expresses this relation. Note, that the constraint binds for the non-assigned machines/crews as well, it is not relaxed by assignment variables. However, in that case, , thus it simply implies which must be true for all tasks.

$$\begin{aligned} t^c_{j,s_m} \ge t^s_{j,s_m} + q_{j,m} / c_{mj}\quad \forall (j,m) \in A \end{aligned}$$
(26)

The correct sequencing of the tasks of the same job are expressed by Eqs. (27) to (35). Some of these precedences are constant, others depend on the manual/automated assignment for metal separation.

$$\begin{aligned} t^s_{j,{{\texttt{CR}}}}\ge & {} t^c_{j,{{\texttt{IS}}}}\quad \forall j \in Jobs\end{aligned}$$
(27)
$$\begin{aligned} t^s_{j,{{\texttt{MS}}}}\ge & {} t^c_{j,{{\texttt{IS}}}}\quad \forall j \in Jobs \end{aligned}$$
(28)
$$\begin{aligned} t^s_{j,{{\texttt{CR}}}}\ge & {} t^c_{j,{{\texttt{MS}}}} - {{\textbf {M}}}\cdot (1-a_{j,crew\_{{\texttt{MS}}}})\quad \forall j \in Jobs \end{aligned}$$
(29)
$$\begin{aligned} t^s_{j,{{\texttt{SH}}}}\ge & {} t^c_{j,{{\texttt{CR}}}}\quad \forall j \in Jobs \end{aligned}$$
(30)
$$\begin{aligned} t^s_{j,{{\texttt{MS}}}}\ge & {} t^s_{j,{{\texttt{SH}}}} - {{\textbf {M}}}\cdot a_{j,crew\_{{\texttt{MS}}}}\quad \forall j \in Jobs \end{aligned}$$
(31)
$$\begin{aligned} t^s_{j,{{\texttt{SC}}}}\ge & {} t^s_{j,{{\texttt{SH}}}}\quad \forall j \in Jobs \end{aligned}$$
(32)
$$\begin{aligned} t^s_{j,{{\texttt{SC}}}}\ge & {} t^s_{j,{{\texttt{MS}}}} - {{\textbf {M}}}\cdot a_{j,crew\_{{\texttt{MS}}}}\quad \forall j \in Jobs \end{aligned}$$
(33)
$$\begin{aligned} t^c_{j,{{\texttt{SC}}}}\ge & {} t^c_{j,{{\texttt{MS}}}} - {{\textbf {M}}}\cdot a_{j,crew\_{{\texttt{MS}}}}\quad \forall j \in Jobs \end{aligned}$$
(34)
$$\begin{aligned} t^c_{j,{{\texttt{SH}}}}\ge & {} t^c_{j,{{\texttt{SC}}}}\quad \forall j \in Jobs \end{aligned}$$
(35)

Sequencing of the tasks assigned to the same machine or crew is expressed by Eq. (36). This constraint binds only when both (js) and \((j',s)\) are assigned to m and j is decided to precede \(j'\) in that stage.

(36)

4.3 Objective function

In order to express the objective function, the variables must be bound to the \(t^c_{j,{{\texttt{SH}}}}\) variables, as those mean the ending of processing for each job. This relation is expressed in Eq. (37).

(37)

Then, the objective function can be expressed as:

5 Case study

The models introduced in the previous sections were both tested on the same sets of instances. As acquiring real-life datasets with varied sizes and structures is not a trivial task, testing of the model was done with the same methodology presented in Dávid et al. (2021a): input instances were randomly generated based on available distribution data. Arrival times and deadlines of the deliveries were also chosen randomly, either in a 1-week or 2-week interval, depending on the instance set. Deadlines were due 3–5 days after arrival, which resulted in instances having either a 12-day (referred to as 1-week instances) or 19-day (referred to as 2-week instances) planning horizon (with the latest arrival plus the latest deadline). The number of deliveries was a multiple of 5 between 5 and 25 for the 1-week, and between 5 and 40 for the 2-week instances. The features of the waste wood deliveries were determined based on statistics in Kharazipour and Kües (2007), their sizes were determined using the capacities of biomass transport trucks (Laitila et al. 2016) and publicly available data on real machines (Komptech 2022) was used to determine throughput. Two different delivery types were used: small deliveries had a mass corresponding to the payload of a small truck (6–15 t) and the ones with large deliveries had a mass corresponding to the payload of an average-sized biomass transport truck (31–49 t). Masses of both delivery types were chosen uniformly randomly in the above-mentioned intervals. This resulted in 13 instance sets (one for each pair of delivery size and delivery number, e.g. ‘25 large deliveries’), with 10 different random instances in each set. The model was solved for all instances using the Gurobi 9.1 solver on a PC with an Intel Core i7-5820K 3.30 GHz CPU and 32 GB RAM. A running time limit of 3600 s was introduced to all test runs.

First, test results for instances with small deliveries will be presented for both the discrete- and continuous-time models (DT and CT respectively), followed by the results for instances with large deliveries. The rows of every result table present aggregated information for the 10 inputs of a specific instance set. The planning horizon and the applied model are given in the table description, while the header of the row (Jobs) denotes the number of jobs in each input of the given instance set. This is followed by three sets of information about the solution of these inputs; the number of instances that were solved to optimality in the given time limit (Opt) and their average running time (Avg. time (s)), the number of instances that only yielded suboptimal solutions in 3600 s (Subopt.) and their average optimality gap (Avg. gap), and finally the number of instances where no feasible solution was found (No sol.).

5.1 Small deliveries

Solutions for the instances with small deliveries over a 1- and 2-week arrival horizon are presented in Tables 4 and 6 for the discrete-time model and in Tables 5 and 7 for the continuous-time model.

Results of the DT model show that the optimal solution of the inputs within the time limit is only possible in the smallest instance sets (5 and 10 jobs) for both 1- and 2-week horizons. Moreover, this model failed to provide even feasible solutions for inputs from larger instance sets (20 and 25 in the 1-week cases and 30, 35, and 40 in the 2-week cases).

On the other hand, the performance of the CT model was good in all of the above instances. This model found optimal solutions for every input, with an average running time of under 1 s in every case (except for the 2-week set with 40 deliveries, where the average running time is slightly above 1 s).

Table 4 DT model results for 1-week instances with small deliveries
Table 5 CT model results for 1-week instances with small deliveries
Table 6 DT model results for 2-week instances with small deliveries
Table 7 CT model results for 2-week instances with small deliveries

5.2 Large deliveries

Solutions for the instances with large deliveries over a 1- and 2-week arrival horizon are presented in Tables 8 and 10 for the discrete-time model and in Tables 9 and 11 for the continuous-time model.

Observations here are similar to the instance sets with small deliveries. The DT model again only provides optimal solutions within the time limit for the smallest instance sets (5 and 10 jobs) for both 1- and 2-week horizons. Feasible solutions are once again not achieved at all for inputs of larger instance sets (20 and 25 in the 1-week cases and 30,35 and 40 in the 2-week cases).

The CT model performed well in all of the above instances. However, optimal solutions were not found for every instance set within the set time limit Except for the largest instances (25 jobs in the 1-week case and 35,40 jobs in the 2-week case), every input is either solved to optimality under a minute or a suboptimal solution is found within the given time limit.

Table 8 DT model results for 1-week instances with large deliveries
Table 9 CT model results for one-week instances with large deliveries
Table 10 DT model results for 2-week instances with large deliveries
Table 11 CT model results for 2-week instances with large deliveries

It can be seen from all the above results that the CT model outperformed the DT model for every instance set in any combination of 1- or 2-week planning horizons and small or large deliveries in the input. While the DT model had problems finding even feasible solutions for mid- and large-sized inputs, the CT model provided optimal solutions to all instances with small deliveries, and found feasible or optimal solutions to the majority of instance sets, except for the largest inputs in each group.

6 Conclusions

This paper presented the problem of machine scheduling in a waste wood processing plant where the incoming deliveries of wood are shredded. Two mixed-integer linear programming models were developed for the problem that allow overlapping of the machine processing steps, so the flow of material can be as continuous throughout the facility as possible. Moreover, the presented models address a unique scheduling feature of the investigated problem class, where resource assignment affects task dependencies within the recipe. The two models were compared to each other on instances that were randomly generated based on real-life statistical data.

While both models can tackle the considered problem class, the results of computational tests showed that the continuous-time model performs significantly better in all cases. It is capable of scheduling a large number of jobs over the short-term period of one week and a mid-term period of two weeks under a short solution time. This performance warrants further investigation in the application of such models for more complex, extended, or integrated scheduling problems with similar time frames. On the other hand, while such an extension may be simpler with discrete-time models, the tests showed that significant improvements have to be made before this type of model can be considered for more complex problems. Moreover, the development of metaheuristic algorithms together with exhaustive testing of larger planning periods of several weeks and a mix of different deliveries can be conducted in the scope of future work. Ideally, real-world datasets should also be collected and used for the testing of this model.