Keywords

1 Introduction

In manufacturing systems, different layouts are used to organize machines. Among them, the job shop allows to achieve the maximum flexibility in the production process. The job shop can handle a varying mix of products (that can be the result of the increasing variability in customer orders) to be produced in small batches and with different production cycles. Every product manufactured in a job shop has its own operation sequence and, therefore, its own routing in the system. Moreover, since transports between machines are hardly automatized in the job shop, the position of the machines on the shop floor is chosen to limit the time wasted to move a batch from an operation to the following one. However, due to the variety of production cycles, many products might have to travel through the entire shop floor to fulfil all the required operations. For this reason, the job transportation between machines is a critical issue in the job shop management.

Although the relevance of the transportation issue, few research works have addressed the job shop scheduling with transportation resources, with respect to the amount of job shop scheduling literature in which transportation has been neglected (the standard assumption is that number of transportation resources is unlimited and the transportation time is negligible).

Even without transportation resources, the job shop scheduling problem is a very complex optimization problem and it belongs to the class of non-deterministic polynomial time (NP hard) problems [1]. Due to this reason, many of the approaches proposed in the literature are heuristic, as exact approaches (e.g., branch and bound or dynamic programming) can solve only small-scale problems. Just to cite few, not exhaustive, examples, the most common algorithms are genetic algorithms [2, 3], tabu search [4], and particle swarm [5, 6].

When transportation is included, the complexity of the scheduling problem increases, as the complete problem can be seen as the integration of two sub-problems: a classical job shop scheduling problem and a vehicle routing problem. As previously mentioned, fewer papers have addressed it [7]. To illustrate some example, the flexible job shop scheduling problem in a cellular manufacturing environment has been considered in [8], including intercellular transportation times but omitting empty transportation times (i.e., the time the available transportation resource takes to arrive to the machine where there is a job needing to be moved). Also, the problem of simultaneous scheduling machines and AGVs in a flexible manufacturing system has been addressed in [9]. The automated guided vehicles do not have to return to the load/unload station after each delivery, and the problem is solved by an iterative procedure in which admissible time windows for the trip are constructed by solving the machine scheduling problem, which generates the completion times of each operation with a heuristic procedure. The flexible job shop scheduling problem with transportation constraints has been addressed in [10], where a set of identical transportation resources and empty transportation are considered, and a tabu search procedure is proposed for its solution. The classical job shop scheduling problem with transportation resources able to carry more than one task at a time has also been studied in [11].

From the examples discussed above, it clearly emerges that most of the literature focuses on the flexible job shop, in which each operation is not associated to a fixed machine but to a set of machines among which one has to be chosen. Although this problem can be harder to model and to solve than the job shop with fixed association among operations and machines (especially with exact solution approaches), the possibility to choose the machine can simplify the problem from the transportation resource standpoint. Moreover, to the authors’ knowledge, no work focuses on the optimal schedule for the transportation resources, rather they are treated as additional time to be considered (thus, the objective function includes only the completion time).

In this paper, we consider the integrated job shop scheduling problem with transportation resources, in which the job shop is characterized by fixed routing and fixed association between operations and machines, and the transportation includes the empty transportation time. Differently from most of the papers in the literature, the objective function includes penalties for tardy jobs and transportation resource costs, with the aim of finding the optimal (from the economic standpoint) number of transportation resources, together with the optimal schedule of jobs on machines and on transporters.

The integrated job shop machine and transportation resource scheduling is modeled by a mixed-linear programming model. Due to the complexity of the problem, a simulation-optimization solution approach is proposed, and a case study from the textile industry is used to test its applicability in a real context.

The reminder of the paper is organized as follows. In Sect. 2 the problem is mathematically represented as a MILP model and its solution complexity is discussed. The simulation-optimization approach and its application to the case study are presented in Sect. 3. Section 4 concludes the paper discussing the limitations of the approach and future research directions.

2 Problem Description

As discussed in the previous section, the integrated job shop scheduling problem with transportation resources can be seen as a classical job shop, in which job operations have to be sequenced on machines, with the additional requirement of scheduling the transportation activities on the transporters. In the considered problem, the additional request of finding the optimal number of transportation resources is considered.

Specifically, let \(N\) be the jobs to process. Each job \(i\) has a set \(\aleph_{i}\) of consecutive operations to be performed. To simplify the notation, it is assumed that operation j of job i is exactly the jth operation of the job in \(\aleph_{i}\). The route of each job in the shop floor (i.e., the sequence of machines associated to the operations of the job) could be partially or entirely different from that of the other jobs.

Job i has a release date \(rd_{i}\) and a due date \(dd_{i}\). If the job is not completed before \(dd_{i}\), a tardiness penalty is paid. The processing time \(p_{ij}\) of operation j of job i is known and fixed, and so is the machine \(k_{ij}\) on which it has to be processed. Due to the limited number of transportation resources and to the not negligible transportation time between machines, for each job, each operation cannot start immediately after the end of the previous one, but the job has to be transported to the machine associated to the next operation. When a transporter becomes available, the next job to be transported must be decided considering both the completion time of jobs at their machines and the distance between the current position of the available transporter and the jobs waiting to be moved.

The objective is to select the appropriate number of transportation resources (also referred to as transporters, in the following), and to sequence all the jobs on the machines and on the transportation resources, in order to minimize the total cost of the tardiness and of the transportation resources.

Using the parameters and the variables summarized in Table 1, the integrated job shop machine and transportation resource scheduling problem can be modelled as follows.

Table 1 Parameters and decision variables of the mathematical model
$$\min \mathop \sum \limits_{{{\text{i}} = 1}}^{{\text{N}}} {\text{c}}_{{{\text{TA}}}} \cdot {\text{TA}}_{{\text{i}}} + \mathop \sum \limits_{{{\text{t}} = 1}}^{{\text{T}}} {\text{g}}_{{{\text{TR}}}} {\updelta }_{{\text{t}}}$$
(1)
$${\text{s}}.{\text{t}}.\,\,{\text{C}}_{{{\text{i}}1}} \ge {\text{rd}}_{{\text{i}}} + {\text{p}}_{{{\text{i}}1}} + {\text{d}}_{{{\text{i}}1{\text{i}}2}} \quad \quad \forall {\text{i}}$$
(2)
$${\text{C}}_{{{\text{ij}}}} \ge {\text{C}}_{{{\text{i}}\left( {{\text{j}} - 1} \right)}} + {\text{p}}_{{{\text{ij}}}} + {\text{d}}_{{{\text{iji}}\left( {{\text{j}} + 1} \right)}} \quad \quad \forall {\text{ i}},{\text{ j}} = 2, \ldots ,{\text{ n}}_{{\text{i}}}$$
(3)
$${\text{C}}_{{{\text{ij}}}} \ge {\text{WT}}_{{{\text{i}}^{\prime } {\text{j}}^{\prime } {\text{ijt}}}} + {\text{d}}_{{{\text{iji}}\left( {{\text{j}} + 1} \right)}} \quad \quad \forall {\text{ t}},{\text{i}} \ne {\text{i}}^{\prime } ,\,{\text{j}} = 1, \ldots ,{\text{n}}_{{\text{i}}} ,\,{\text{j}}^{\prime } = 1, \ldots ,{\text{n}}_{{{\text{i}}^{\prime } }}$$
(4)
$${\text{C}}_{{{\text{ij}}}} \ge {\text{C}}_{{{\text{i}}^{\prime } {\text{j}}^{\prime } }} + {\text{p}}_{{{\text{ij}}}} - {\text{M}}\beta _{{{\text{iji}}^{\prime } {\text{j}}^{\prime } }} \quad \quad \forall {\text{i}} \ne {\text{i}}^{\prime } ,{\mkern 1mu} {\text{j}} \in \aleph _{{\text{i}}} ,{\mkern 1mu} {\text{j}}^{\prime } \in \aleph _{{{\text{i}}^{\prime } }} ,{\mkern 1mu} {\text{k}}_{{{\text{ij}}}} = {\text{k}}_{{{\text{i}}^{\prime } {\text{j}}^{\prime } }}$$
(5)
$${\text{C}}_{{{\text{i}}^{\prime } {\text{j}}^{\prime } }} \ge {\text{C}}_{{{\text{ij}}}} + {\text{p}}_{{{\text{i}}^{\prime } {\text{j}}^{\prime } }} - \left( {1 - {\upbeta }_{{{\text{iji}}^{\prime } {\text{j}}^{\prime } }} } \right){\text{M}}\quad \quad \forall {\text{i}} \ne {\text{i}}^{\prime } ,\,{\text{j}} \in \aleph_{{\text{i}}} ,\,{\text{j}}^{\prime } \in \aleph_{{{\text{i}}^{\prime } }} ,\,{\text{k}}_{{{\text{ij}}}} = {\text{k}}_{{{\text{i}}^{\prime } {\text{j}}^{\prime } }}$$
(6)
$$\begin{aligned} {\text{WT}}_{{{\text{i}}^{\prime } {\text{j}}^{\prime } {\text{ijt}}}} & \ge {\text{C}}_{{{\text{i}}^{\prime } {\text{j}}^{\prime } }} - {\text{p}}_{{{\text{i}}^{\prime } {\text{j}}^{\prime } }} + {\text{d}}_{{{\text{i}}^{\prime } {\text{j}}^{\prime } {\text{ij}}}} - {\text{M}}\left( {2 - {\upalpha }_{{{\text{ijt}}}} - {\upalpha }_{{{\text{i}}^{\prime } {\text{j}}^{\prime } {\text{t}}}} + {\upgamma }_{{{\text{iji}}^{\prime } {\text{j}}^{\prime } {\text{t}}}} } \right) \\ & \quad \quad \quad \forall {\text{t}},\,{\text{i}} \ne {\text{i}}^{\prime } ,\,{\text{j}} = 1, \ldots ,{\text{n}}_{{\text{i}}} ,\,{\text{j}}^{\prime } = 1, \ldots ,{\text{n}}_{{{\text{i}}^{\prime } }} \\ \end{aligned}$$
(7)
$$\begin{aligned} {\text{WT}}_{{{\text{iji}}^{\prime } {\text{j}}^{\prime } {\text{t}}}} & \ge {\text{C}}_{{{\text{ij}}}} - {\text{p}}_{{{\text{ij}}}} + {\text{d}}_{{{\text{iji}}^{\prime } {\text{j}}^{\prime } }} - {\text{M}}\left( {3 - {\upalpha }_{{{\text{ijt}}}} - {\upalpha }_{{{\text{i}}^{\prime } {\text{j}}^{\prime } {\text{t}}}} - {\upgamma }_{{{\text{iji}}^{\prime } {\text{j}}^{\prime } {\text{t}}}} } \right) \\ & \quad \quad \quad \forall {\text{t}},\,{\text{i}} \ne {\text{i}}^{\prime } ,\,{\text{j}} = 1, \ldots ,{\text{n}}_{{\text{i}}} ,\,{\text{j}}^{\prime } = 1, \ldots ,{\text{n}}_{{{\text{i}}^{\prime } }} \\ \end{aligned}$$
(8)
$$\mathop \sum \limits_{{{\text{t}} = 1}}^{{\text{T}}} {\upalpha }_{{{\text{ijt}}}} = 1\quad \quad \forall {\text{i}},\,{\text{j}} = 1, \ldots ,{\text{n}}_{{\text{i}}}$$
(9)
$${\text{TC}}_{{\text{i}}} \ge {\text{C}}_{{{\text{ij}}}} \quad \quad \forall {\text{i}},\,{\text{j}} = 1 \ldots {\text{n}}_{{\text{i}}}$$
(10)
$${\text{TA}}_{{\text{i}}} \ge {\text{TC}}_{{\text{i}}} - {\text{dd}}_{{\text{i}}} \quad \quad \forall {\text{i}}$$
(11)
$${\upgamma }_{{{\text{iji}}^{\prime } {\text{j}}^{\prime } {\text{t}}}} \le \frac{{{\upalpha }_{{{\text{ijt}}}} + {\upalpha }_{{{\text{i}}^{\prime } {\text{j}}^{\prime } {\text{t}}}} }}{2}\quad \quad \forall {\text{t}},\,{\text{i}} \ne {\text{i}}^{\prime } ,\,{\text{j}} = 1, \ldots ,{\text{n}}_{{\text{i}}} ,\,{\text{j}}^{\prime } = 1, \ldots ,{\text{n}}_{{{\text{i}}^{\prime } }}$$
(12)
$${\updelta }_{{\text{t}}} \ge \frac{{\mathop \sum \nolimits_{{{\text{i}} = 1}}^{{\text{N}}} \mathop \sum \nolimits_{{{\text{j}} = 1}}^{{{\text{n}}_{{\text{i}}} }} {\upalpha }_{{{\text{ijt}}}} }}{{\text{T}}}\quad \quad \forall {\text{t}}$$
(13)
$${\text{C}}_{{{\text{ij}}}} \ge 0\quad \quad \forall {\text{i}},\,{\text{j}} = 1 \ldots {\text{n}}_{{\text{i}}}$$
(14)
$${\text{TC}}_{{\text{i}}} \ge 0\quad \quad \forall {\text{i}}$$
(15)
$${\text{WT}}_{{{\text{iji}}^{\prime } {\text{j}}^{\prime } {\text{t}}}} \ge 0\quad \quad \forall {\text{t}},\,{\text{i}} \ne {\text{i}}^{\prime } ,\,{\text{j}} = 1, \ldots ,{\text{n}}_{{\text{i}}} ,\,{\text{j}}^{\prime } = 1, \ldots ,{\text{n}}_{{{\text{i}}^{\prime } }}$$
(16)
$${\text{TA}}_{{\text{i}}} \ge 0\quad \quad \forall {\text{i }}$$
(17)
$${\upbeta }_{{{\text{iji}}^{\prime } {\text{j}}^{\prime } }} \in \left\{ {0,1} \right\}\quad \quad \forall {\text{i}},\,{\text{i}}^{\prime } ,\,{\text{j}} = 1, \ldots ,{\text{n}}_{{\text{i}}} ,\,{\text{j}}^{\prime } = 1, \ldots ,{\text{n}}_{{{\text{i}}^{\prime } }}$$
(18)
$${\upalpha }_{{{\text{ijt}}}} \in \left\{ {0,1} \right\}\quad \quad \forall {\text{t}},\,{\text{i}},\,{\text{j}} = 1, \ldots ,{\text{n}}_{{\text{i}}}$$
(19)
$${\upgamma }_{{{\text{iji}}^{\prime } {\text{j}}^{\prime } {\text{t}}}} \in \left\{ {0,1} \right\}\quad \quad \forall {\text{t}},\,{\text{i}},\,{\text{i}}^{\prime } ,\,{\text{j}} = 1, \ldots ,{\text{n}}_{{\text{i}}} ,\,{\text{j}}^{\prime } = 1, \ldots ,{\text{n}}_{{{\text{i}}^{\prime } }}$$
(20)
$${\updelta }_{{\text{t}}} \in \left\{ {0,1} \right\}\quad \quad \forall {\text{t}}$$
(21)

The objective function (1) minimizes the total tardiness penalty and the transportation resource cost. Constraints (2) state that the first operation of each job cannot be completed before its release date \(rd_{i}\) plus the first operation processing time and the time needed to move the job to the next machine. Constraints (3) and (4) ensure the precedence between consecutive operations of the same job. Specifically, constraints (3) represent the technological precedence while constraints (4) are needed as jobs are not always transferred to the next operation as soon as they are ready to be transported, as the transporters could be already busy in other transports. Constraints (5) and (6) guarantee that at most one part is processed by each machine at the same time. They are the classical disjunctive constraints and are used to sequence operations of different jobs requiring the same machine. Constraints (7) and (8) schedule the transporters and set their availability time. These constraints are only relevant when operation j of job i and operation j′ of job i′ are both assigned to the same transporter \(t\) (i.e., \(\alpha_{ijt} = \alpha_{{i^{\prime } j^{\prime } t}} = 1\)). Constraints (9) assure that each transport is performed by a single transporter. Constraints (10) and (11) define the completion time of the last operation of job \(i\) and its tardiness, respectively. Constraints (12) link the binary variable used to assign each job to a transporter with the one used to schedule the transports assigned to every transporter. Constraints (13) are used to assess if a transporter is used. The number of used transportation resources is then given by \(\sum\nolimits_{t = 1}^{T} {\delta_{t} }\). Finally, variable domains are set by constraints (14)–(21).

Due to the huge number of binary values and big-M constraints, the proposed model is hard to solve with standard approaches or commercial solvers (e.g., ILOG Cplex). In such a case, two alternatives are usually available: (1) to develop exact ad-hoc methods, mainly based on decomposition into sub-problems, which, however, can hardly address very large instances; (2) to use heuristic or meta-heuristic approaches, which can easily treat very large problems, but without any guarantee on the solution quality. In both cases, however, it is difficult to address the variability of processing times and of due dates (i.e., customers’ orders).

To efficiently take the variability into account, in this paper the problem is solved by a simulation-based optimization procedure, implemented within a commercially available software. Specifically, Rockwell Arena simulation software is used to develop a Discrete Event Simulation model to replicate the job shop scheduling with transportation resources and to evaluate the performance of different scheduling and transportation policies with a fixed number of transporters; the commercial optimization tool OptQuest is used to vary the number of transporters to find the optimal one.

This approach is heuristic, as OptQuest adopts heuristic algorithms to solve the optimization problem, and the machine and transportation scheduling are both based on “rules” (e.g., maximum priority, minimum distance, etc.). However, it has the flexibility to easily address very different scenarios and, hence, to find bounds that could be further used in optimization approaches. For this reason, various operational problems are usually evaluated through simulation-optimization using commercially available softwares [12,13,14].

As the proposed approach is based on a simulation model, which is case-dependent, the case study will be presented before the discussion of the simulation-optimization model.

3 Case Study

As an example of integrated job shop machine and transportation scheduling, the finishing department of a textile company (that will remain anonymous for confidentiality reasons) has been considered.

The finishing department is the last phase, and one of the more complex departments, of the textile production. It includes very different processes made on many different product types, to assure that every manufacturing process can be properly completed. More than one thousand different items need to be finished in this department. They can be divided in two main families, worsted (used to make coats) and woollen fabrics (used to produce suits). The pieces of fabrics are often grouped in small lot sizes due to the large demand variety. Although all the final products are pieces of fabric, the sequence of the operations varies from item to item. For instance, at the beginning of the production process, worsted fabrics must be singed, to obtain an even surface by burning off projecting fibers, while woollen fabrics have to be carbonized, to remove vegetable fibers from wool in an acidic treatment. Moreover, within the same operation, a lot of differences can arise, as every piece of fabric can be washed and fulled in many ways (depending on the final aspect the product must have), thus resulting in very different processing times.

The fabric production cycles are often very long, as they include both wet and dry finishing operations, and a lot of transports are necessary to move every batch from a machine to the next one, especially when operations of the wet and dry finishing are done alternatively, and this usually takes a long time. The transportation issue becomes very critical in high demand periods, as the shop floor is almost 100% saturated and buffers are full. Currently, when the machine operator finishes processing a batch, she has to stop the machine and to transport the fabrics to the machine where the successive operation has to be done. Therefore, some machines risk being idle even if there are jobs to work, thus risking inefficiency in the system (e.g., lower service level). For this reason, the Company is evaluating the possibility of introducing some new operators to manage the fabric transportation, thus avoiding that the machine workers stop their processes.

In this context, the proposed simulation-optimization approach has been applied to quantify the impact of shop floor transportation on the global performance of the shop floor. Specifically, a simulation-based optimization model has been created to solve the cost optimization problem modeled in Sect. 2, and, hence, to identify the optimal number of transportation resources the Company should have.

3.1 The Simulation-Based Optimization Model

Simulation-based optimization procedures are usually exploited to solve complex optimization problems. They are traditionally composed of two detached modules that work iteratively until the optimal solution is found, or a defined stopping condition is met [15]. The optimization module gives as output a system configuration that is given as input to the simulator. The system performance of the proposed configuration is evaluated with the simulation, whose performance measures are given back to the optimization module [16].

In this paper, the simulator (implemented in Arena) evaluates the performance of different scheduling and transportation policies, given a fixed number of transporters (and fixed transportation and tardiness costs) as input. Referring to the mathematical model in Sect. 2, the simulator addresses all the constraints related to the scheduling and transportation dynamics, i.e., Eqs. (2)–(12). The optimization tool (OptQuest), instead, let the model vary the number of transportation resources. More generally, the optimization is used to define the scenarios to evaluate with the simulator, and to choose the optimal one. The objective function in Eq. (1) is evaluated, and various values of transportation resources are identified and given as input to the simulator. Figure 1 summarizes the simulation-optimization iterations, and the information given as input to the two modules.

Fig. 1
figure 1

Simulation-based optimization scheme

The simulation module replicates the operations of the finishing department of the Company. As more than 1000 items are processed in the finishing department, to reduce the complexity of the simulation, they are grouped in 12 fabric categories, each one including items characterized by similar production cycles, and the finishing processes of these categories have been simulated (\(i = \left\{ {1, \ldots ,12} \right\}\)). For each category, the due date distributions have been fitted from historical data (provided by the Company), and the same holds for the processing times of each operation. For each category, the set \(\aleph_{i}\) of consecutive operations to be performed is given as input, and all the machines that perform the operations are modelled in the simulation environment. The set \(\aleph_{i}\) contains from 8 to 20 operations for each fabric category. Each machine picks a job from its queue and processes it. To assure the minimization of the tardiness, the machines always pick the job with the closest due date. The machines process the fabrics in batches, whose size varies according to the specific fabric category. When a job finishes to be processed in a machine, it waits for an available transporter to be delivered to the next operation. When a transporter becomes idle, it moves to the closest machine with a job waiting to be moved. The total number of transporters per working shift is given as input from OptQuest.

Using as input the tardiness of the jobs given by the simulator, the optimization module finds the optimal number of transporters (i.e., the one that minimizes the objective function), and so on until no new solution is found by the optimization module.

3.2 Experimental Design

The simulation-optimization experiment has been designed as follows. The simulator, for each given number of transporters, performs 15 replicates of one year (i.e., the length of each replicate is 1 year of simulated time). This number of replicates has been chosen through the two-step method [15], and it leads to a reliable confidence interval of the throughput of the bottleneck machines (which is a critical performance measure for the considered production system).

To compute the objective function in (1), the unit cost of transporters and the unit cost of tardiness are needed (they are given as input to the optimization tool). The cost of the transporter \(g_{TR}\) has been estimated by the Company and it includes, in addition to the salary, all the training courses constantly done, the medical assurance provided by the Company, the subsidy for the meal in the canteen, the medical examinations each worker has to do periodically and their necessary equipment. The estimated transporter cost is not reported in the paper for confidentiality reasons. The cost of the tardiness, instead, is more complex to estimate. For some fabrics it is negligible, for others it might depend on the length of the delay, and sometimes tardiness might even cause the cancellation of the order and might contribute to the loss of a customer. For this reason, different levels of cost were considered. Thus, the daily unit cost of tardiness has been varied from 0 to 1000 €/(pcs * day) with a step of 5. Moreover, two different speed values have been considered for the transporter movements: 40 and 60 m/min.

3.3 Numerical Results

Figure 2 shows how the optimal number of transporters varies with different values of tardiness cost and transporter speed. With low speed (40 m/min), one transporter per working shift is the optimal solution if the daily unit tardiness is below 30 €/(pcs * day); two transporters per working shift are needed when the cost of tardiness increases above 30 €/(pcs * day). In this case, even increasing the tardiness penalty to unrealistic values, more than two transporters per working shift are never necessary. This is explained by the high cost of transportation resources together with the small reduction in the total tardiness that an additional transporter would allow to reach. In other words, the saving in tardiness cost does not offset the cost of additional transporters.

Fig. 2
figure 2

Optimal number of transporters with varying cost of tardiness

Similar results are obtained for the case of transporters moving with high speed (60 m/min). In this case, two transporters are needed when the cost of tardiness is greater than 120 €/(pcs * day). The boundary unit tardiness cost increases with respect to the previous case because, as the transporters are faster in their movements, the total tardiness is smaller (being transported in a short time, the jobs will have a smaller completion time and hence a smaller tardiness, all the rest being equal) and one more transporter per working shift becomes necessary for larger costs of tardiness. Also in this case, however, three transporters are never necessary.

As no more than two transporters are required for each value of the tardiness cost, for readability reasons, Fig. 2 shows only values lower than 200 €/(pcs * day).

The above discussed system behavior can be more deeply analyzed by considering the low-speed case (as it is the most critical one). As reported in Table 2, with low speed, Cta = 40 €/(pcs * day) and two transporters per working shift, 8.87% of the total fabrics produced in one year are delivered to customers with a delay, whereas the 9.33% of produced fabrics are late if only one transporter per working shift is used. With three transporters per working shift, no improvement can be appreciated, meaning that, when three transporters are available, the transporters are no longer the bottleneck of the process. Moreover, it appears that transporters can reduce the number of late jobs but not the average delay. This can be related to the naive priority rule approach in the management of machine and transporter queues; however, it gives an indication on the severity of the bottleneck and how it can move from transporters to machines, depending on the system conditions. This is also confirmed by the comparison with the current situation with no transporter: the introduction of transporters is able to reduce the late jobs but not the average delay. Notice that, although the variation of the percentage of fabrics with delay is small, the savings of adding one more transporter can be relevant depending on the total yearly number of orders. For instance, in the case of 20,000 orders per year, switching from 0 to 1 transporter would decrease the number of fabrics with delay from 1874 to 1866 delayed fabrics. If the cost of tardiness is 40 €/day * pcs, then 4160 €/year are saved. If the tardiness is a relevant penalty (for instance, 125 €/pcs * day), then moving to 0–1 transporter would let the Company save 13,000 €/year. The yearly savings should be considered as part of a trade-off with the cost of hiring one more transporter and with the target customer service level the Company aims at achieving. The results for higher speed are similar, and for this reason, they are not reported in the paper.

Table 2 System performance with different transporters, speed = 40 m/min

The results discussed above depend on the numbers of jobs (i.e., of customer orders) that have to be processed and, since the fabrics produced and sold by the Company are affected by seasonality, the possibility of hiring a second seasonal transporter only for the months with larger demand must be evaluated. With larger demand, the machines are highly saturated, possibly causing some delivery delays. In this case, having more transportation resources available can assure a continuous and fast supply of every machine to prevent additional delay. To study this situation, the mean percentage of fabrics with delay and the mean delays have been considered separately for each month. The case of transporter speed = 40 m/min is reported in the following, but similar results hold for the case of higher speed.

As shown in Table 3, the months with larger production volumes correspond to the months with larger mean days of delay and percentage of delayed fabrics. During May, which is the month with the most critical delay (i.e., 1.13% of the annual produced fabrics are delayed in May), 0.12% of the annual produced fabrics on average are delivered on time by adding one transporter (i.e., an improvement of 10.5%). However, no improvement in the mean days of delay can be appreciated. The investment in hiring another transportation resource would be justified only if the cost of tardiness was very high compared to the cost of the transportation resource.

Table 3 Monthly system performance measures (speed = 40 m/min)

From the results, it clearly appears that the transportation is not always the bottleneck process of the finishing department. By analyzing the utilization of the machines, some of them can reach 100% utilization, especially in the peak-periods, and this is the main cause (in the current configuration of the finishing department and for the number of jobs causing these saturation levels) of the delays in the deliveries. If these bottlenecks were eliminated, by varying the number or speed of the machines, the schedule of every operation on each machine would surely change, and this change would possibly impact on the need for transportation resources of hiring more than one transporter per working shift.

4 Conclusions

Nowadays, customers demand a large variety of products in very short times, thus companies need to be flexible to respond as fast as possible to customers’ orders. Managing thousands of different articles (characterized by different production cycles) and avoiding delays in product delivery to the customers (maintaining a high service level) are crucial issues for firms.

When the large variety of final products corresponds to a low production volume of each of them, to achieve the maximum flexibility, manufacturers usually design the shop floor as a job shop. However, due to the variety of production cycles, products travel all around the shop floor to fulfil their operations. As a consequence, managing together the job shop scheduling and the transportation among machines is a very relevant and critical issue.

This paper dealt with the integrated job shop machine and transportation resource scheduling problem in which also the optimal number of transporters to be included has to be chosen. A mathematical model that includes the job shop scheduling and the transportation routing was developed. By minimizing the cost of late deliveries (i.e., the cost of the total tardiness) and the cost of the transportation resources, the model optimizes both the scheduling of jobs on machines, the number of transportation resources needed in the shop floor per working shift, and the scheduling of jobs on transporters.

The solution procedure for the resulting mathematical model is highly complex and time consuming, thus a simulation-based optimization procedure was developed. The simulation module is used to evaluate the performance of naive scheduling and transportation policies, given a fixed number of transporters. The optimization module finds the optimal number of transporters, given the unit tardiness cost and the unit transportation resource cost. The two modules iterate exchanging the respective output until no new solution is found.

The simulation-based optimization procedure was tested in a real case study of the finishing department of a textile company. More than one thousand different products need to be finished in the department, each of them with a specific sequence of operations, performed in tens of different machines within the shop floor. Currently, the machine operators move the jobs from one machine to the other, causing inefficiency and large delays. The model developed in the paper and the simulation-based optimization solution procedure were used to find the optimal number of transporters per working shift to be hired by the Company.

The solution procedure was implemented using Rockwell Arena and OptQuest softwares, and various scenarios of tardiness cost and transporter speed were evaluated, whereas the cost of the transporter was considered as fixed. Results showed that two transporters are enough to minimize the delays related to the transportation. In fact, when the number of transportation resources is larger than 2, some of the machines become the bottleneck of the department, which are 100% saturated independently from the number of transporters in the job shop.

Although the interesting results, which highlight the importance of correctly and efficiently managing transportation in complex shop floors as job shops, due to the interaction between transportation and machine utilization, the simulation-optimization approach developed in the paper is a heuristic approach, and, hence, give no assurance about the quality of the solution. Future research will address the development of an exact algorithm able to solve the job shop scheduling with transportation model, which has been formalized in the paper. Due to the complexity of the complete model, the exact algorithm should exploit some properties of the system. For instance, as the problem includes both a job shop scheduling and transportation issues, approaches based on a decomposition of the problem in these two aspects could be considered. In this case, attention must be paid to the coordination between the two sub-problems. Possible schemes are Bender [17] or Dantzig-Wolfe [18] decompositions.