Scheduling and loading problem for multiple, identical dry kilns

The drying of sawn lumber is one of the major processing steps in sawmills with high production volumes. Existing publications on kiln drying analyse and improve technological conditions, while this paper focuses on the scheduling and loading planning with time availability of the individual dried packages. To improve dry kiln scheduling for multiple and identical kilns in large softwood processing sawmills, heuristic approaches are developed that generate kiln allocation plans according to existing production specifications. The aim is to minimise total tardiness for the drying of all sawn lumber packages while considering technological and capacity restrictions. These heuristics calculate the position, time and kiln for each package, thus solving scheduling and loading problems caused by capacity and stacking limitations. Several heuristic approaches are illustrated and tested with actual production data. In addition, the difference between static and dynamic scheduling for group and batch generation is analysed. Further improvements are possible through: drying of different lumber assortments in one batch, outsourcing the drying of special assortments or investing in supplementary kilns for drying smaller volumes within more flexible time slots.


Introduction and problem description
The rapid development of global wood markets and the resulting intensification of competition has, in recent decades, led to significant changes in the sawmill industry. Particularly, in softwood processing companies, a clear structural change from small and medium-sized enterprises to large sawmills has been observed (Baumann 2008). After sawing, green lumber boards are combined into packages. Subsequently, groups are formed from these packages that can be dried together due to their thickness. Batches are then generated with these groups. A batch is a possible kiln drying charge and a charge is a batch chosen for drying. To determine a possible drying charge, all possible batches are created using length patterns in accordance to the available kiln length. Thereby the available kiln width, which is subdivided into rows, is filled with packages, whereby stacking restrictions, shorter onto longer packages, are considered. This process is described in Sect. 3 in detail. The aim of controlled drying processes is to achieve the moisture content of the wood used, for example, for construction, furniture production and firewood, which is required for further process steps. Only controlled drying can prevent drying damage (cracking, splitting, boarding, warping).
Within these large sawmills, highly specialized sawing and profiling technology is applied. Those that are located in industrialised countries are confronted not only by high personnel and energy costs but also by high material prices. In order to continue to produce cost-effectively, they need to be able to react quickly to dynamic market influences through careful production planning and continuous improvement of the production processes. The use of planning methodologies for systematic process improvements in production not only leads to the best possible fulfilment of customer requirements, both in terms of quality and delivery reliability. It also contributes to an increase in resource efficiency. Unfortunately, continuous decision support systems with sophisticated planning methods for production planning are unavailable in sawmills (Huka and Gronalt 2017). Apart from the price of the raw material, kiln drying constitutes a further significant cost. Great potential exists to both mitigate the effect of high energy costs and satisfy the demand for improved quality. Wood drying is essential both as a precursor to further processing and for maintaining reliable output. The drying times for softwood are usually about 3 days. A variety of drying technologies are available differing from each other in terms of cost, time and achievable product quality.
This work examines the problems of production planning in conventional kiln drying under real life conditions. It aims to develop concepts to overcome these problems, since well organized and optimised kiln loading can improve throughput. Moreover, the need for temporary storage areas at mill site, required to wait for additional material, can be reduced. A distinction is made between the static and dynamic approach, which determines how long to wait for additional material. Furthermore, the competitive advantage can be increased by keeping delivery promises, which are achieved by minimising the tardiness of individual packages.
As a new aspect, the drying of different, compatible lumber dimensions is allowed in one kiln. The thickness may deviate by a certain degree. This is especially applicable in smaller sized sawmills and kilns with smaller batches of customer oriented demand. The hypothesis of the work is that it is technically possible to dry lumber of different thickness together, within some boundaries. Special climate control systems and the necessary exact determination of the initial moisture content can achieve this. Although this makes the problem of finding the right kiln charge more difficult it does enable the drying stage to be more closely synchronized with the rest of the production process. In this work, the benefit of combining different thicknesses of one wood species in a dry kiln is investigated. With the aim of minimising the overall tardiness of all output, the best fitting batch, according to release times and due date, is selected for drying.
The dry kiln scheduling and loading problem is solved to minimise the overall tardiness of all dried packages. In addition to a model formulation, which is presented in "Appendix 1", and a description of the solution approaches developed and implemented, a list of all assumptions upon which the model is based is provided. Although it is quite possible that a sawmill may have dry kilns of different sizes, dry kilns of identical size are assumed. The composition of the large units is therefore homogeneous (identical large objects). In addition, it is assumed that the lumber packages differ in their length. As can be seen in the problem overview in Fig. 1, the two sub-problems, the identical parallel machine scheduling problem and the multiple identical large object placement problem, must be solved simultaneously. Thus, to minimise total tardiness sawn lumber packages are assigned to the dry kilns by the criteria of space required and time needed.
In Sect. 2 the related literature is presented. Subsequently, in Sect. 3 solution approaches are presented. The numerical study is described in Sect. 4 and the results are discussed in Sect. 5. In Sect. 6, the concluding outlook, further potential for optimisation in the industry is examined. Fig. 1 The two sub-problems of the dry kiln scheduling and loading problem along the temporal and spatial axes 1 3 Scheduling and loading problem for multiple, identical dry… 2 Literature and preparatory work The problem of dry kiln scheduling and loading can be divided into two subproblems, scheduling and packing. The inhomogeneity of the raw material wood and the longer processing times compared to other process steps complicate the drying problem additionally. Moreover, it is highly influenced by the production flow of where and when drying takes place. Different wood processing industries require different drying techniques, such as classic kiln drying, continuous drying and vacuum kilns for solid wood or rotary dryers for chip drying in panel production. Consequently, many different parts of the drying problem for specific applications can be found in the literature. In Maccarthy and Liu (1993) the authors give a good overview of different production scheduling problems and solution methods such as heuristics, mathematical programming and artificial intelligence techniques. They not only look at different flow patterns throughout the production system but also at various objective functions and trends in research. In addition, they also discuss the gap between classic and real-world scheduling problems. Aggarwal et al. (1992) describe a model-based decision support system for a furniture manufacturing company. One of two different drying processes can be chosen to dry the wood. Thereby technological and capacity restrictions have to be complied with. The goal of the decision support system is to minimise the total costs, which are a combination of raw material, inventory and drying costs, whilst fulfilling the demand. The scheduling and grouping problem when drying tropical wood species is analysed by Simpson (1996). To group the assortment into similar drying times nine different periods needed to be determined in order to schedule them effectively.
A similar problem to the drying of lumber occurs when scheduling burn-in ovens in semiconductor manufacturing. Just as in wood drying, this production step is at the end of the production process and impacts significantly on delivery times and the performance of the whole process. Chandra and Gupta (1997) for example develop a procedure with simulation and heuristics to schedule the order of release and minimise the total lead time. Therein the authors introduce the concept of a minimum load for processing for the first time. This approach is also used in wood drying, as too small batches would lead to higher costs and technologically poorer drying. This is because the air exchange and air circulation is influenced by the free space in the dry kiln, leading to cracking, splitting, boarding or warping of the individual boards. Another application in semiconductor manufacturing is investigated by Wang et al. (2013). The aim of their work is to avoid tardy jobs and to minimise makespan as much as possible when scheduling jobs on unrelated parallel machines with sequence-dependent setup times. For this purpose, the authors develop an optimisation model and propose a technique to reduce the size of the mixed integer program formulation. To address planning problems in practice, the authors generate an initial solution and try to improve it through local search heuristics that include interchange, translocation and transposition between assigned jobs. The scheduling of lumber drying for hardwood flooring in turn is investigated by Gascon et al. (1998). There, a heuristic is introduced to minimise stock holding whilst satisfying demand and eliminating stock-outs. The heuristic determines the start date of drying for each type of wood to ensure a satisfactory inventory level. Another decision support system for the lumber procurement and dry kiln scheduling for the furniture industry is introduced by Huang et al. (1998). It aims to satisfy demand by planning the optimum timing and mix of lumber purchases to achieve satisfactory inventory levels with high kiln utilisation. The authors introduce neighbourhood search-based heuristics to solve the dry kiln scheduling problem of n independent and non-pre-emptive jobs on m non-identical parallel machines. The goal is to minimise the total weighted tardiness in a multi-period planning environment. Joines and Culbreth (1999) investigate the scheduling and sequencing problem for inventories of dried lumber in furniture manufacturing with the objective of minimising the costs of both drying and buying dried lumber. The problem is divided into two sub-problems. The solution is provided both by a hybrid genetic algorithm to determine the best sequence for drying and by an embedded linear program to determine the optimal balance between inventory and outsourcing. Yaghubian et al. (1999Yaghubian et al. ( , 2001 focus on the dry kiln scheduling problem for furniture industry. The integer linear models of the two papers take the kiln availability, capacity and transportation time from kiln to factory into account. The models and the introduced heuristics schedule n independent jobs on m non-identical parallel machines. In their first paper Yaghubian et al. (1999) minimise the maximal tardiness whilst maintaining the due dates. In their next paper Yaghubian et al. (2001) enhance the model with a dry-or-buy decision process to minimise the total drying and buying costs. The introduced heuristics are based on three-opt-like exchanges of jobs among the kilns. The heuristics solve the problem and give high quality solutions with significant time savings when compared to standard integer programming algorithms. Another decision support system for the furniture industry is proposed by Ouhimmou et al. (2008). Here the authors introduce a mixed integer program which includes procurement, inventory, outsourcing and demand allocation decisions. The goal is to minimise costs whilst maintaining a complete level of service. In order to include dry kiln scheduling on the tactical planning level, the authors develop a time composition heuristic. Only products within the same group are dried together. The 1 year planning horizon permits the investigation of seasonality in the raw material availability and demands. Karltun and Berglund (2010) investigate uncertainties in the kiln drying process and link the drying process to the entire production at a sawmill. Qualified personnel for kiln operation and forklifts have a great impact on scheduling. A specific machine loading problem in the field of semiconductor production, on the other hand, is described by Mathirajan et al. (2010). In contrast to the dry kiln scheduling problem, a discontinuous process is planned for just one machine taking into account different order sizes, processing times and availability along with due dates. Another commonality with wood drying is the simultaneous processing of multiple orders in a batch, the completion time being determined by the order that has the longest processing time. The objective is to minimise the weighted overall tardiness of all orders with a two-stage, heuristic approach. In a first step, the orders are sorted according to certain criteria and then combined into lots in compliance with the capacity restrictions, assuming that all orders are compatible with each other. In the second step, a simulated annealing algorithm is used to try to improve the solution by systematically exchanging orders from adjacent batches. Gaudreault et al. (2010Gaudreault et al. ( , 2011 investigate the softwood lumber supply chain. In Gaudreault et al. (2010) the authors solve the problem with an agent-based simulation. For this purpose, they develop two models, a mixed integer program and a constraint program to simultaneously plan and schedule the production process. Sawing, drying and finishing is included in the subsequent paper, Gaudreault et al. (2011). In these papers, it is assumed that it is not possible to mix different wood types or thickness within a drying batch. However, it is possible to select and combine several different drying procedures to minimise the total tardiness of customer orders. The solutions are compared and evaluated according to the runtime. A constraint programming hybrid method embedded in a mixed integer programming model is proposed by Marier et al. (2016). This is used to dynamically generate kiln loading patterns during the planning and scheduling of dry kilns. In order to minimise order tardiness, additional and more effective patterns are generated and fed into the optimisation model. Similar to the work by Marier et al. (2016) the solution approach to the dry kiln scheduling and loading problem developed in this paper simultaneously solves the two sub-problems. As an extension to their work, the accumulated, different sized green lumber packages can be dried together, respecting technical drying constraints and required moisture outcome. Thus, dry kiln scheduling can be synchronized with the entire production plan. This is contrary to the approaches developed so far, where a maximum number of the same dimensioned packages per dryer corresponds to the capacity restriction. Therefore, stacking restrictions can be neglected, as only same sized packages are dried together. This reflects the general assessment that the drying times for different sized packages vary due to initial and final moisture content and technical drying restrictions. A significant extension of this paper compared to other solutions found in the literature is a comparison of a static and dynamic planning approach for the generation of groups and batches. The additional gain of waiting for more raw material is analysed when minimising the overall tardiness. Moreover, the impact of the dry kiln width on the total tardiness is investigated as a decision support for future investment. In addition, the potential of outsourcing special assortments with small volumes is investigated. Above all, the developed optimisation approach in this paper serves to draw up operational production plans for lumber drying when combining different packages.

Materials and methods
The model provided in "Appendix 1" is based on Mathirajan et al. (2010). Their model is enhanced by the scheduling and loading of different dimensioned packages in a kiln. The introduced model is not linear and like most of the machine scheduling problems, that of dry kiln scheduling and loading is NP-hard (Yaghubian et al. 2001). Therefore, a heuristic solution approach is developed in order to solve the problem within a reasonable computational time.

A new solution approach for the dry kiln scheduling and loading problem
The sub-steps of the later described eight heuristics are illustrated in Fig. 2. Grey steps represent tasks that need to be performed once in the beginning or end of the planning whereas black tasks (group updating, batch generation and charge selection) are continuously performed whenever a kiln becomes available for drying.

Data initialization and pre-processing
After generating and sorting through the required data, the clustering of the sawn lumber into groups according to thickness is undertaken. Lumber from the sawmill is grouped into packages of approximately 1.9 m wide, 1.3 m height and 4 or 5 m in length which results in a volume of 7.54 cubic metres. To facilitate air circulation, space between the lumber in the packages has to be maintained which results in a varying number of pieces within a package. Consequently, just packages in one thickness group are considered for kiln drying simultaneously. When a kiln is free, available packages of the same group that are not already assigned to a kiln are considered and assembled into drying batches. Within the constraints of stacking and capacity, all possible length patterns are considered and the best fitting charge is assigned to a kiln. The detailed selection process is described in Sect. 3.1.4. This is repeated until all batches have been assigned. The first step in creating a feasible kiln schedule is to determine all possible length patterns based on the available grouped packages. These length patterns are the basis for the resolution of the kiln loading problem. They are used to generate batches, which are then selected for drying. Starting with the longest package, which will fit, it is assigned to one length pattern. The algorithm then continues by selecting the next longest and so on. Figure 3 shows the sequence of all possible length patterns generated for a 13 m wide kiln (usable 12 m wide) and 3, 4 and 5 m lumber packages. The length patterns are generated before the algorithm starts. One length pattern each can be used for one row of the dry kiln to fill the available space.

Fig. 2
Schematic sequence display of sub-steps for the developed heuristics, grey steps indicating task that need to be performed once and black steps are continuously done whenever a kiln is ready for drying

Group generation and updating
For technical reasons even drying can only be assured when packages from the same thickness group are dried together. Two ways of building groups, which differ only in the way in which special assortments are handled, are investigated. The first method, maxgroup, assigns special assortments where only a few packages exist initially. This results in a higher number of groups generated compared to the second method but packages are more evenly contributed among the groups. The second method, mingroup, produces fewer groups but with a higher number of packages in them. Packages where only a few batches need to be dried, due to small order quantities, are relegated to the end of group building. However, this leads to poor kiln capacity utilisation. For both methods, packages are assigned to groups, which are within certain thickness parameters, and both can be applied statically or dynamically to generate groups. In the static case, all packages that are produced within a year are used to generate groups. These groups are used in each planning period whereas, in the dynamic case, the groups are built at the beginning of each planning period utilising the packages produced within this period. Hence, the number of groups built differs at each planning period according to the raw material available for drying. Four different possible ways to build groups are investigated (staticmaxgroup, dynamic-maxgroup, static-mingroup and dynamic-mingroup) and every time a kiln becomes available, the groups are updated. All packages that are available for drying but not yet assigned to a drying batch are sorted by thickness and added to the appropriate group. In the static batch generation case, see Sect. 3.1.3, a fixed minimum number of available packages per group has to be guaranteed. This is necessary to avoid the generation of batches with unnecessarily poor capacity utilisation in the event of excess capacity. Since in comparison to dynamic batch generation, the possibility of a drying start delay in favour of better kiln utilisation is not evaluated. At the end of the planning period however, this constraint is lifted to plan the drying of all packages and compare the solutions.

Batch generation
The next step of the heuristic, the generating of possible drying batches, is shown in Fig. 4. After building groups with all packages available in period t, they are sorted according to availability. Then, when kiln capacity is available, potential batches are assembled for every thickness group. In the example considered, the kiln is restricted to three rows of packages with a maximum of four packages stacked on top of each other. The first step in building the batches for a kiln is to take four equal sized length patterns to fill one row and stack them on top of each other. This is known as wall-building. If there are not enough packages to fill three rows with four layers of equal length patterns stacked on top of each other the column-building approach is utilised. There, a common knapsack problem is solved. Pillars, stacked as high as possible, are formed with the longest available length. Then, the next column is filled and so on, until the capacity of the kiln is used up. Each package within a kiln gets a placement code identifying the row, column and height of its location. In Fig. 4 the two different approaches, wall-and column-building, can be seen. In the first two rows, examples of the wall-building approach with two different length patterns are shown. The length pattern used in row two has a lower value than that in row one. Therefore, when building possible batches, the algorithm starts with the stacked length pattern with the highest possible value. In row three, the sequence of stacking the packages is illustrated together with the placement code indicating position. It starts with the row and column number, which is followed by a letter denoting height. Figure 4 is not compatible with the model shown in "Appendix 1". It is intended to show the approach of wall-and column-building and the order of the wall-building approach. However, in contrast to the model, more length patterns than row numbers are used.
A further problem to consider is one of timing. Is it advantageous to wait for further packages to fill the capacity of a kiln in addition? If kiln capacity is the bottleneck in the process, waiting for more packages will be disadvantageous whereas with surplus capacity a forward planning approach is beneficial. The date when a kiln is available is denoted by t free with t load denoting the date when the next drying process in a kiln will start. Figure 5 shows the difference between a static and dynamic approach to build batches. The maximal tolerable delay for drying is indicated by t delay . If there are enough packages available at time t free , drying starts immediately in both approaches ( t free = t load , t delay = 0 ). The approaches only differ in the time t delay when waiting for additional packages. When this maximal delay is a constant for the static approach it is computed according to Cigolini et al. (2002). There the authors propose a dynamically determined waiting time for additional material to arrive in order to reduce the flow time without adversely affecting a machine's utilisation rate. The following formulas are used for the dynamic batch generation approach, for the notation see Table 7 in "Appendix 1".
If the sum of the additional accumulated tardiness when waiting for more packages is higher than the drying time of the charge, then drying starts. The newly computed start of drying at time t k is described by t load (t k ) . The number of available packages at time t free is labelled B 0 whereas B k is the number of packages available for drying at time t k . The first term of Eq. (1) computes the delay of drying for all packages, which would have been available for drying at time t free . The second term calculates the delay of all packages which become available between t free and t k−1 . Furthermore, the delay of the last package that becomes available at time t k is computed in the third term. Equation (2) denotes the newly calculated start of drying at time t k .

Charge selection
After building all possible batches a charge needs to be selected for drying. In this paper, two different selection methods are investigated. In the first, the index Possible delay to wait for further packages between the time a kiln becomes available and the drying start of the next load in the static and dynamic batch generation I b is computed for all batches and the one with the highest index is selected. This iteration is based on the apparent tardiness cost introduced by Vepsalainen and Morton (1987) in which the authors schedule jobs with specific due dates and delay penalties on multiple machines. For the computation, the following parameters denoted in Table 1 are needed.
The first term of the index (4) corresponds to a delay penalty for all packages contained in the batch that will be late after drying. Its computation is shown in Eq. 3. Therefore, the maximal tardiness of packages contained in this batch is multiplied by the number of packages ( w b ). Thus, batches causing poor capacity utilisation are not left until the end of the planning period. The next term effects the index if no tardiness is caused by the available batches and possible charges have the same capacity utilisation (term three). In this case a combination of drying duration, earliest due date and latest date of availability increases the index.
For the second charge selection method, the dynamic batch generation process is presupposed. The first step in the decision process described in Fig. 6 is to check to see if there is a full batch available for drying. If there is not it must be decided if the drying process should begin despite this. If the decision is to start drying, the charge where it is not worth it to wait for additional packages is chosen. Thus, after assigning all available packages to a group and all groups to a kiln to build charges, the heuristics generate the solution. (3)

Solution improvement
In order to improve the solutions created by the heuristics using static batch generation, a promising metaheuristic is applied. Tabu search algorithms extend local search procedures by using various memory structures to avoid cycles and local optima. For further information on tabu search, memory structures and search strategies see Laguna (2018). Due to the given conditions and requirements of wood drying, the different packages with varying drying time, a Tabu search algorithm is suitable to improve the already generated solutions and leave local optima. The algorithm tries to iteratively improve the current solution by generating close but slightly different neighbour solutions. These are created by exchanging the charge with the maximal tardiness with others in different kilns where the drying time is at least partly overlapping, see Fig. 7. The neighbour solution with the lowest tardiness replaces the current solution and the best known solution is updated if appropriate. Furthermore, at the end of each iteration the tabu list is updated to prevent undoing this move in case of a degradation of the objective value. The search is repeated until the maximal number of 1000 iterations is reached or the best known solution has not been improved for 100 iterations.

Numerical study
For testing and comparing the eight heuristics, real life production data from 1 year of a softwood sawmill is used, which can be found at https ://boku.ac.at/en/wiso/ pwl/resea rch/insta nces. From the beginning of July to the end of June 75,049 packages had been produced and dried leading to a production volume of 566,178 cubic metres of lumber. All heuristics follow the flow chart described in Fig. 2 and their differences are presented in Table 2.
Ten different planning periods within the 1 year production data are chosen at random. Following Huang et al. (1998) a planning horizon of 14 days is then considered. The start of the ten different and randomly generated planning periods can be seen in Fig. 8. Furthermore, also the sequence of generation is indicated in the figure.
To simulate real life conditions random availability for each kiln within the ten different planning periods is generated. Figure 9 perfectly illustrates the availability of the relevant kilns for the first test period. For this purpose, a random availability date within the relevant period is generated for each dry kiln to simulate existing planned drying orders.
For each lumber assortment and thus the different packages, the drying time is computed based on the method presented by Fortuin (2004) which is itself based  Fig. 8 Start of the ten different investigated planning periods and the sequence of their random generation within the production data of 1 year on Kollmann (1936). The drying time is influenced by: the initial and required final moisture level of the lumber, customer requirements concerning the quality of drying, the drying process capacity of the kiln, the season, wood type and the dimensions of lumber. In the sawmill under scrutiny the moisture content of lumber and loading and unloading times are based on experience, with other relevant values for the computation derived from Trübswetter (2009). The computed drying times have then been compared with the actual drying times from which an approximate drying time of 32 h for a dimension of 23 mm is calculated.
In Table 3 the actual number and volume of dried packages produced between the start and end of the randomly chosen test periods are noted.
To test the eight different heuristics, several varying parameter settings have been used, see Table 4. The first four are influenced by the available drying capacity that, during the planning period under consideration, is approximately 11,200 cubic metres. Parameter five and six are based on experience and actual procedures at the sawmill whereas the others have been determined empirically. Thus, the eight different heuristics used with the varying parameter settings (eight test runs for heuristic one to four and 24 for the other heuristics, five to eight) result in 320 test runs for the ten different test periods investigated. For detailed information on test run setups, see Tables 8 and 9 in "Appendix 1". Fig. 9 Availability dates of relevant kilns, kiln 17, kiln 10, kiln 11 and kiln 1, within the first investigated test period 1 3

Results
Following the individual test runs, the results are examined and presented in Table 5, which shows the average results of the test series and all test runs for each heuristic. The first four heuristics use dynamic batch generation and selection. Whereas the last four apply static batch generation and selection, followed by a tabu search approach to improve the initial solution, see Table 6. For all eight heuristics, initial solutions are found within seconds but the tabu search takes approximately a minute. A solution for the group generation used with heuristics three, four, seven and eight takes slightly longer to compute due to the significantly higher number of packages which are generated to groups in the static case (approximately 75,000) compared to the dynamic group generation approach (approximately 30,800 packages). Table 6 shows the average number of iterations for the tabu search procedure and reveals that the heuristics never reach the maximal permitted number of iterations. The tabu search is stopped due to the number of iterations without improvement.  In total, 631 through to 1242 charges are built for drying in each test series though only 12% on average contained more than one assortment. Additionally, the average total tardiness of all packages for each test series is shown in Tables 5 and 6. Note that the average tardiness per package lies between 23 and 58 min. The maximal tardiness per package of all test runs is between 4 and 8 days. This means that all packages start drying in the kiln at most 13 days after they are available for sawing as the maximum permitted storage time for green lumber is 5 days. While the generation of groups has no influence on the quality of the solution when considering tardiness, the approach to generating and selecting batches does have an impact. It affects not only the total tardiness, but also capacity and drying time utilisation. The static batch generation and selection used in heuristics five, six, seven and eight, when combined with the tabu search, results in an average tardiness reduction of 59%. In addition, on average, approximately 4% more capacity is used when these heuristics are applied.
The connection between capacity and kiln time utilisation can be seen in Table 5. Higher capacity utilisation leads to a reduction in kiln time which results in a reduction in total tardiness. This also validates the generated heuristics and their solutions. The results presented in Tables 5 and 6 show that the initial solution of heuristics five, six, seven and eight are already better than the solution generated with the first four heuristics. The addition of the tabu search improves this solution by, on average, 46%.
To investigate the impact of the width of the kilns on the tardiness with 12 m kilns, test runs on 20 m wide kilns are conducted. In the drying process 4 and 5 m packages are dried and therefore 20 is the lowest common multiple. Thus, length patterns with high capacity utilisation can be generated. The total kiln volume is kept constant resulting in fewer 20 m wide kilns. The results, shown in Fig. 10, indicate that the bigger the kiln the larger the total tardiness because there is a longer delay when waiting for material to fill the kiln. On average, the 20 m kilns result in 21% more tardiness. Static batch generation especially is effected by the width of the kiln. Utilisation can be improved by the width of kiln chosen by approximately 3% on average.
In addition, the effect of allowing a thickness deviation within the charge for drying is demonstrated with Fig. 11. A thickness tolerance of 20% within a group reduces total tardiness by, on average, 37%. In the main, a relaxation in thickness tolerance benefits dynamic batch generation. Thus, there is less need to wait for additional raw material to fill a kiln. Higher capacity utilisation is achieved due to the agglomeration of several assortments to fewer groups. A charge with a high utilisation is more easily found so that 8% more capacity can be used.  Figure 12 shows the effects of outsourcing drying charges when capacity utilisation is less than 80%. This analysis is made with two levels of thickness tolerance when building groups. Overall capacity utilisation obviously increases whereas the total tardiness and dried volume decrease. On average 20% of the dried volume is outsourced when generating groups with no thickness latitude. Logically, less volume, on average 11% over all test runs and heuristics, is outsourced when the thickness of lumber within a package can vary by 20%. The total tardiness decreases on average by 69% and 50% respectively. Furthermore, overall capacity utilisation can be improved by 17% and 10% respectively. Outsourcing has naturally more effect on the solutions generated by heuristics with dynamic batch generation, where the additional improvement step of the tabu search cannot be applied.

Discussion and outlook
Within the wood industry, dry kiln scheduling as a part of operational short-term production planning is increasingly important. In part, it is due to the increasing energy costs as well as the increasing customer demands for quality and delivery reliability. Long process times and technological restrictions require the careful (a) Total tardiness.

Fig. 10
Average results of all test runs for each heuristic with tabu search improvement for heuristic five, six, seven and eight comparing two possible kiln widths. a Total tardiness generated with each heuristic for 12 m and 20 m kilns. b Used capacity of 12 m and 20 m kilns for all eight heuristics when the overall drying capacity is kept the same (a) (b) Fig. 11 Average results of all test runs for each heuristic, with tabu search improvement if applicable, comparing two thickness tolerances when building groups. a Results of total tardiness for all eight heuristics for 0% and 20% allowed thickness deviation. b Capacity utilisation of each heuristic comparing two thickness latitudes planning of production processes to meet these requirements cost-efficiently. While the furniture and parquet industry already plan using support systems that take lumber drying into account, sophisticated planning methods for improvement are generally not applied in sawmills (Huka and Gronalt 2017). However, there is considerable optimisation potential in large (usually softwood) sawmills due to high output via multiple dry kilns, substantial capital commitment, a wide variety of specifications and varying initial moisture content. Average capacity utilisation of dry kilns could be improved by 2% and the kiln time utilisation reduced when comparing the results of all the heuristics introduced. At the same time, all packages are dried within a technologically reasonable time frame. In addition to the optimisation of the drying process, under the currently prevailing production targets it is possible to show further measures to improve the planning result. One possibility, presented in this paper, is the simultaneous drying of assortments of different thickness in one dry kiln batch. This leads to a considerable improvement in results with regard to total tardiness, spatial and temporal dry kiln utilisation. Although in practice this measure is usually not implemented, from a technological point of view utilising special climate control systems makes it possible. The differences in drying times due to the thickness deviations could also be mitigated by the combination of packages with different moisture contents. However, this would require an exact determination of the average moisture of each individual package. This is currently difficult, especially with wood moisture above the fibre saturation point, since it cannot be carried out quickly and cost-effectively. Future developments in technology, for example enabling the precise initial moisture content of each individual package to (a) (b) Fig. 12 Effects of outsourcing charges with less than 80% capacity utilisation on total tardiness, dried volume and overall capacity utilisation for all heuristics. a Groups of packages are built with the same dimensions of lumber. b When generating groups of packages a maximal thickness deviation of 20% is kept be measured, would improve capacity utilisation and reduce total tardiness. Drying quality would also be enhanced. In addition to the combination of different assortments in one drying batch, planning is also carried out taking into account different dry kiln widths whilst maintaining overall drying capacity. Although the kiln dimensions are generally considered as a given, it can be seen that the length and thus the capacity of the kiln also have a significant influence on the result. According to this, both the capacity utilisation and the total tardiness increase with increasing kiln length. This insight might well impact on, for example, future investment decisions. The smaller the kiln length and the higher the number of dry kilns required to maintain the same capacity, the more order-related drying is possible. However, this increasing customer focus may require an increase in investment and higher production costs necessitating the establishment of a compromise between costoriented and order-oriented production. Another effective measure to optimise kiln occupancy is the outsourcing of assortments with insufficient order volumes (special assortments). In this example, by outsourcing only 11% of the total lumber volume, total tardiness could be reduced by around 50% and kiln utilisation could be increased by approximately 10%. This shows that the drying of these special assortments causes the largest part of the total tardiness. Although it may be difficult to outsource this drying in practice because of additional transport and handling costs, an increase in drying costs and the unavailability of external capacity, the feasibility of this measure should at least be examined. Another option for implementing this outsourcing concept is the expansion of an existing drying plant with small, flexible drying units. An essential extension of the optimisation tool developed in this work, similar to the work by Marier et al. (2016), is the simultaneous solution of the machine scheduling and given loading problems. This is necessary because, when planning the loading of dry kilns at sawmills, different package lengths dried simultaneously in one kiln must be assumed. This is not the case with the approaches developed so far. Capacity restrictions could be met by specifying a maximum number of packages per drying batch so that stacking restrictions do not have to be taken into account. In the given example, compliance with these capacity and stacking restrictions is ensured by means of appropriately predefined length patterns and specific placement codes assigned to each package which determines the unique position within the drying batch. Additionally, the possibility of mixing batches with different thickness or moisture content in a dry kiln is analysed. Another investigation conducted in this study is the impact of static versus dynamical planning, namely the group and batch generation, on the total tardiness. Furthermore, the impact of the kiln size on the solution is investigated. In conclusion, not only does the optimisation tool serve the primary purpose of generating practical production plans for lumber drying but it can also be integrated into a complete production planning concept based on the study presented by Gaudreault et al. (2011). Additionally, it is able to provide support for future investment and outsourcing decisions. Beyond this, it can be linked to the planning of other production units through appropriate coordination mechanisms thus making an important contribution to optimisation of the entire internal value chain.
A subsequent research task is the generalisation of the problem presented here to several dry kilns of different sizes, whereby the choice of the size of these dry kilns represents a further sub-problem that must be solved. Moreover, the best combination of dry kiln sizes depending on production volume and distribution can be calculated. A further extension is the application of the presented model to dry kiln scheduling and loading for contract drying in case of overcapacity. In addition, it is possible to link the planning with upstream and downstream processing steps to better coordinate production.  The objective function shown in (5) is to minimise the summed up tardiness of all packages. Constraints (6) ensure that each package j is dried. The constraints (7) set the start time of drying for a batch b in a kiln k. This is compiled by the package with the latest availability contained in the batch. Constraints (8) define the duration of drying for a batch b in a kiln k. The thickest board in the package with the longest drying time sets the duration. The next constraints (9) determine the completion date of a batch b in a kiln k which is influenced by the starting and drying time of the packages included in the batch. To ensure that for each kiln k only one batch is dried at the same time constraints (10) are used. The batch has to be finished with drying in kiln k before the next batch can start in this kiln. The calculation of the due date for each package j is shown in Eq. (11). This is a given parameter, which is determined by the availability, drying time and by the maximum allowed storage time for each package j. Constraints (12) compute the eventual tardiness of a package when its drying is not finished before its due date. Otherwise, the tardiness is set to zero. The tardiness of a package j is at least as great as the maximum tardiness of all packages l that are in a kiln and batch along with this package j. The next three constraints (13), (14) and (15) specify the compatibility of packages j for one batch b and kiln k. The lower bound for batch b is fixed with constraints (13), the upper one with constraints (14). Constraints (15) ensure that the thickness of all packages j included in batch b and kiln k are within their boundaries. In this way only feasible combinations of packages j within batches b are allowed. Constraints (16) and (17) define the placement, stacking and capacity conditions within kiln k. These constraints handle the usage of predefined patterns. Constraints (16) guarantee that the number of used patterns p in batch b and in kiln k is less than or equal to the number of rows in kiln k. Constraints (17) define the number of packages j with length s contained in one batch b. Variables x and y are defined as binary in constraints (18) and (19).
∑ j∈J|L j =s x k,b,j = ∑ p∈P N p,s × y k,b,p ∀k ∈ K, b ∈ B, s ∈ S (18) x k,b,j ∈ {0, 1} ∀k ∈ K, b ∈ B, j ∈ J (19) y k,b,p ∈ {0, 1} ∀k ∈ K, b ∈ B, p ∈ P Table 8 Parameter configuration for the heuristics one, two, three and four generating eight different test runs for each heuristic The parameter numbers refer to Table 4 Parameter number 1 2 3 4 5 6 1 2 3 4 5 6 Test Parameter configuration Test Parameter configuration  The parameter numbers refer to Table 4 Parameter number