# Ant Colony Algorithm for Just-in-Time Job Shop Scheduling with Transportation Times and Multirobots

Authors: Fatima El Khoukhi; Tarik Lamoudan; Jaouad Boukachour; Ahmed El Hilali Alaoui
Journal: ISRN Applied Mathematics
 (2011)

---

## Abstract

Handling rapidly evolving technology and almost daily changes in demand and customer satisfaction, while maintaining competitiveness in a highly competitive environment, requires good coordination and planning of both production and logistics activities on the shop floor, namely: machines and tools. The goal is to optimize costs and reduce delivery lead times in order to provide the customer just in time; we focus on the job shop scheduling problem (JSSP), which is one of the most complex problems encountered in real shop floor. In this paper, we study a generalized (JSSP) including transportation times and a set of additional constraints on the number of transporter vehicles and their multiple transfer capabilities and also on the limited capacity of input/output of machines. The objective is to minimize in one hand tardiness and earliness penalties on delays and advances compared to the lead-time delivery of finished jobs and on the other hand the number of empty moves of transporter vehicles.


---

## Body

## 1. Introduction

Scheduling may be defined as the allocation of resources to tasks overtime to optimize a criteria. From the view point of production scheduling, the resources and tasks are commonly referred to a machines and jobs and the commonly used criteria is the completion times of jobs (makespan). In this paper, we study a variant of JSSP where the jobs have to be transported between the machines by one or several transporter vehicles. At JSSP, each job has its own processing order through the machines (a sequence of operations). Each operation must be processed on a fixed machine on which it has to be processed without preemption for a given duration. Each machine can process just one operation at each time and each job can be performed on one machine at each time. Additionally, transportation times are considered.The JSSP is known to be strongly NP-hard and exists in several variants according to the additional constraints considered such as, the classical problem [1], the flexible one [2], the cyclic problem [3], the dynamic job shop scheduling [4], the stochastic case [5], the reentrant problem [6], the case with separable setup time [7], the blocking job shop [8].The JSSP, classified NP-complete, has attracted many researchers, [1, 7, 9, 10]. Including the transportation times between different machines, gives rise to a number of variants of the classical JSSP, particularly those concerned with job shops and transportation times. According to [11], there are two kinds of problems (1) the first one occurs in production manufacturing, when we need to transport jobs between machines and (2) the second one generally occurs at the level of delivery of products to customers. In many industries, production and delivery systems are integrated, with finished products being transferred from a manufacturing execution service to a customer delivery service. In this case, the most common form of delivery to the customer is by vehicle, with the makespan being given by the last delivery date.In both types, the commonly used objective is to find a scheduling solution which minimizes the makespan. Related works that examine the JSSP with the transportation times (either type 1 or 2), include the works of [12–17]. Additionally, Yuan et al. [18] studied the complexity of flow shop problem with transportation times, in order to minimize the makespan. Brucker et al. [19] considered the job shop scheduling with limited capacity buffers. Finally, Caumond et al. [20] give a linear formulation taking into account the maximum number of jobs allowed in the system, limited input/output buffer capacities, empty trips and no-move-ahead trips simultaneously.In this paper, our contribution presents one generalization version of the JSSP with transportation times, integrating the different additional constraints mentioned previously, including the existence of several transporter vehicles with multiple transfer capacity in the shop. Moreover, our model incorporates other constraints related to storage buffers associated with each machine taking into account the case of limited buffer spaces. In our case, we study specially the transportation activities, the empty or not. To achieve a just in time (JIT) production [21], the goal is to minimize the earliness and tardiness penalties with regard to the delivery deadline of finished products, as well as penalties on empty activities.The remainder of the paper is organized as follows. In Section2, we give a formal definition of the considered scheduling problem and state some additional assumptions. Section 3 deals with the mathematical modeling of the problem and Section 4 presents our method of resolution. The computational results can be found in Section 5. Finally, a conclusion is given in Section 6.


## 2. Problem Context

In this work, we study the JSSP with transportation times taking into account the following constraints:(i)
JIT scheduling in order to respect the delivery times (latest completion time) imposed by customers,(ii)
a set of homogenous transporter vehicles,(iii)
a transporter vehicle has a finite capacity of transfer more than one (in terms of a number of tasks they can carry),(iv)
a station = {input + machine + output} (see Figure1),(v)
a station input/output buffers has a limited capacity, not necessary the same for both storage spaces,(vi)
two deposits, the initial one for arrival jobs and the final one for finished jobs.Figure 1
Station model used in this paper.We show below a mathematical formulation of the problem, with all basics constraints of the classical JSSP, and additional transport constraints concerning the transporter vehicles, their transfer capacity and the limited capacity of storage buffers associated with each machine.


## 3. Mathematical Formulation

### 3.1. Classical Data

(i)
m: number of machines,(ii)
M={M1,M2,…,Mm}: set of machines,(iii)
n: number of jobs,(iv)
J={J1,J2,…,Jn}: set of jobs,(v)
Oiσik: the kth task of the job i,(vi)
σik: the machine required by the task Oiσik,(vii)
Ji={Oiσi1,Oiσi2,…,Oiσini}: technological Sequence associated with the job i, with ni, the number of operations of the job i,(viii)
Piσik: processing time of the operation Oiσik,(ix)
riσik: earliest starting time of the operation Oiσik,(x)
diσik: due date of the operation Oiσik,(xi)
αik: earliness Penalty of the task with regard to its delivery deadline,(xii)
βik: tardiness Penalty of the task with regard to its delivery deadline.


### 3.2. Classical Decision Variables

(i)
CiU: actual finish date of job i on machine U, with Ciσik the date of last operation Oiσik on the required machine σik,(ii)
(3.1)λik={1,ifCiσik≤diσik,0,otherwise,
The previous equation is the binary variable to record the earliness or lateness associated with delivery delay of operation Oiσik.


### 3.3. Classical Constraints

The  first constraint ensures that the first operations of the jobs must be processed respecting their corresponding earliest starting times(3.2)Ciσi1-Piσi1≥riσi1,∀i=1,…,n.
The second constraint guarantees the respects of the precedence sequences constraints predefined between the tasks of the same job(3.3)Ciσik≤Ciσik+1-Piσik+1,∀i=1,…,n,∀k=1,…,(ni-1).
The disjunction at the level of machines is specified in the third constraint(3.4)CEijU-PEijU≥Ci+j-EijU,∀i<j∈OU,∀U∈M,
with
(3.5)Eij={j,ifjobiprecedesj,i,otherwise,Ou={setofjobsrequiringthemachineU}.Remark 3.1.
Our constraint is an improvement of the constraint of disjunction appearing in the literature (see [22]) taking the following general form:
3bisCjU-CiU+H(1-aijU)≥PjU,∀i,j=1,…,n,∀U∈M,
with
(3.6)aijU={1,ifjobiprecedesjon⁡themachineU,0,otherwise,H:abigvalue.


### 3.4. Additional Data, Variables, and Constraints

In manufacturing production, a transporter vehicle undertaken to perform any or all of the following activities: loading the input of a station, unloading the output of a station and/or removing a task from one a station to another.In general, where the transporter vehicle can carry only one task at a time, two cases are presented:(i)
if the transporter vehicle moves from a source machine to a destination one in order to load it, then a transportation time is considered, it is a transport activity,(ii)
if the transporter vehicle moves from a source machine to a destination one without loading it, an empty travel time is considered; it is an empty movement activity.Here, we consider the problems that the transporter vehicles can carry more than one task at a time and for each machine there are two associated storage buffers input/output, where tasks can wait for their execution or transportation. In the remainder of this paper, we introduce the following definitions:(1)
a transporter vehicle performs a “transport activity” if it moves in a direct way from a station to another one to load it,(2)
a transporter vehicle performs an “empty movement activity” (even it is charged), if it moves in a direct way from a source station to a destination one without loading it.


#### 3.4.1. Additional Data

(1)
R: number of transporter vehicles in the workshop (assuming more than one),(2)
S={S1,S2,…,Sm}: set of stations,(3)
Cr: capacity of the transporter vehicle r (in terms of numbers of tasks to carry),(4)
εc: loading time of one or several tasks on the input of a station,(5)
εd: unloading time of one or several tasks from the output of a station,(6)
Cout(U): output Capacity of the machine U,(7)
Cin(U): input Capacity of the machine U,(8)
T: big value representing an upper bound for the production horizon,(9)
δsd: transportation time from a station s to a station d,(10)
δsd′: empty movement activity from a station s to a station d.


#### 3.4.2. Additional Decision Variables

We use additional decision variables to express the objective function and additional constraints on the transport of tasks between machines, and the activities of transporter vehicles(3.7)tiσik:startingtransportationtimeoftaskOiσik,xiσikr={1,ifthetaskOiσikistransportedbythetransportervehicler,0,otherwise,Siσikt={1,ifthetaskOiσikistransportedintimet,0,otherwise,Vra={1,ifthetransportervehicleisin``emptymovementactivity,"0,ifthetransportervehicleisin``transportactivity."


#### 3.4.3. Additional Constraints

A task can be handled by only one transporter vehicle at a time(3.8)∑r=1Rxiσikr=1,∀i=1,…,n,∀k=1,…,ni.
Each job requires ni+1 tasks of transport(3.9)∑r=1R∑k=0ni+1xiσikr=ni+1,∀i=1,…,n,σi0 and σi(ni+1) are two fictitious machines representing the initial and the final deposit of the jobs in the workshop.A task can be performed only after its transport(3.10)Ciσik+1-Piσik+1≥tiσik+δS(σik)S(σik+1)+εd,∀i=1,…,n,∀k=1,…,ni,
where S(σik) is the station associated with the machine σikEach task can be transported only after its completion(3.11)tiσik≥Ciσik+εc,∀i=1,…,n,∀k=1,…,ni.
The current capacity of the transporter vehicle r at time t (noted Crt) must not exceed its capacity(3.12)Crt=∑i=1n∑k=1niSσiktxiσikr≤Cr,∀r=1,…,R,∀t=0,…,T.
The load of a transporter vehicle at each time t must not exceed its current available capacity (Cr-Crt),(3.13)∑i=1n∑k=1nioutσiktxiσikr≤Cr-Crt,∀r=1,..,R,∀t=0,…,T
such as(3.14)outσikt={1,ifCiσik≤t<tiσik+1,0,otherwise.
The limited capacity of the outputs of machines is respected at every time t(3.15)∑i=1n∑k=1/σik=unioutσikt≤Cout(u),∀u∈M,∀t=0,…,T.
The limited capacity of the inputs of machines is respected at every time t(3.16)Cint(u)=∑i=1n∑k=1σik=uniint⁡σikt≤Cin(u)∀u∈M∀t=0,…,T,
with(3.17)int⁡σikt={1,iftiσik+δS(σi(k-1))S(σik)+εd≤t<Ciσik-Piσik,0,otherwise,
where Cint(u) is the current capacity of the input associated with the machine u.At every moment, the transporter vehicles should serve only the available inputs of the machines(3.18)∑r=1R∑i=1n∑k=1/σik=uniSiσiktxiσikr≤Cin(u)-Cint(u),∀u∈M,∀t=0,…,T.
The following recurrent formula computes the completion time of service of transporter vehicles on every machine which they serve, noted by Frs,(3.19)Frs=Frs-1+var(δ(s-1)s′+εc)+(1-var)(δ(s-1)s+εd+frsεc),∀r=1,…,R,∀s∈S,
with
(3.20)frs={1,ifthetransportervehicleunloadsthestations,0,otherwise.
Finally, we express the separation time restrictions due to the type of transporter vehicle activities, “transport activity” (transportation time δsd) or “empty movement activity” (time of empty travel time δsd′)(3.21)var(Frs+δsd′-Frd)+(1-var)(Frs+δsd+εd-Frd)≤0,∀r=1,…,R,∀s,d∈S,∀a∈Activities.


### 3.5. Objective Function

The objective function seeks to minimize the sum of earliness and tardiness penalties with regard to the delivery deadlines of the finished jobs, as well as the sum of the penalties on the empty movement activities of the transporter vehicles(3.22)Min⁡∑i=1n∑k=1ni(-αik)λik(βik)(1-λik)(ciσik-diσik)+∑r=1R∑a∈Activitiesmarvar
such as αik: earliness penalty on the task Oiσik,βik: tardiness penalty on the task Oiσik,mar: penalty on an “empty movement activity".


## 3.1. Classical Data

(i)
m: number of machines,(ii)
M={M1,M2,…,Mm}: set of machines,(iii)
n: number of jobs,(iv)
J={J1,J2,…,Jn}: set of jobs,(v)
Oiσik: the kth task of the job i,(vi)
σik: the machine required by the task Oiσik,(vii)
Ji={Oiσi1,Oiσi2,…,Oiσini}: technological Sequence associated with the job i, with ni, the number of operations of the job i,(viii)
Piσik: processing time of the operation Oiσik,(ix)
riσik: earliest starting time of the operation Oiσik,(x)
diσik: due date of the operation Oiσik,(xi)
αik: earliness Penalty of the task with regard to its delivery deadline,(xii)
βik: tardiness Penalty of the task with regard to its delivery deadline.


## 3.2. Classical Decision Variables

(i)
CiU: actual finish date of job i on machine U, with Ciσik the date of last operation Oiσik on the required machine σik,(ii)
(3.1)λik={1,ifCiσik≤diσik,0,otherwise,
The previous equation is the binary variable to record the earliness or lateness associated with delivery delay of operation Oiσik.


## 3.3. Classical Constraints

The  first constraint ensures that the first operations of the jobs must be processed respecting their corresponding earliest starting times(3.2)Ciσi1-Piσi1≥riσi1,∀i=1,…,n.
The second constraint guarantees the respects of the precedence sequences constraints predefined between the tasks of the same job(3.3)Ciσik≤Ciσik+1-Piσik+1,∀i=1,…,n,∀k=1,…,(ni-1).
The disjunction at the level of machines is specified in the third constraint(3.4)CEijU-PEijU≥Ci+j-EijU,∀i<j∈OU,∀U∈M,
with
(3.5)Eij={j,ifjobiprecedesj,i,otherwise,Ou={setofjobsrequiringthemachineU}.Remark 3.1.
Our constraint is an improvement of the constraint of disjunction appearing in the literature (see [22]) taking the following general form:
3bisCjU-CiU+H(1-aijU)≥PjU,∀i,j=1,…,n,∀U∈M,
with
(3.6)aijU={1,ifjobiprecedesjon⁡themachineU,0,otherwise,H:abigvalue.


## 3.4. Additional Data, Variables, and Constraints

In manufacturing production, a transporter vehicle undertaken to perform any or all of the following activities: loading the input of a station, unloading the output of a station and/or removing a task from one a station to another.In general, where the transporter vehicle can carry only one task at a time, two cases are presented:(i)
if the transporter vehicle moves from a source machine to a destination one in order to load it, then a transportation time is considered, it is a transport activity,(ii)
if the transporter vehicle moves from a source machine to a destination one without loading it, an empty travel time is considered; it is an empty movement activity.Here, we consider the problems that the transporter vehicles can carry more than one task at a time and for each machine there are two associated storage buffers input/output, where tasks can wait for their execution or transportation. In the remainder of this paper, we introduce the following definitions:(1)
a transporter vehicle performs a “transport activity” if it moves in a direct way from a station to another one to load it,(2)
a transporter vehicle performs an “empty movement activity” (even it is charged), if it moves in a direct way from a source station to a destination one without loading it.


### 3.4.1. Additional Data

(1)
R: number of transporter vehicles in the workshop (assuming more than one),(2)
S={S1,S2,…,Sm}: set of stations,(3)
Cr: capacity of the transporter vehicle r (in terms of numbers of tasks to carry),(4)
εc: loading time of one or several tasks on the input of a station,(5)
εd: unloading time of one or several tasks from the output of a station,(6)
Cout(U): output Capacity of the machine U,(7)
Cin(U): input Capacity of the machine U,(8)
T: big value representing an upper bound for the production horizon,(9)
δsd: transportation time from a station s to a station d,(10)
δsd′: empty movement activity from a station s to a station d.


### 3.4.2. Additional Decision Variables

We use additional decision variables to express the objective function and additional constraints on the transport of tasks between machines, and the activities of transporter vehicles(3.7)tiσik:startingtransportationtimeoftaskOiσik,xiσikr={1,ifthetaskOiσikistransportedbythetransportervehicler,0,otherwise,Siσikt={1,ifthetaskOiσikistransportedintimet,0,otherwise,Vra={1,ifthetransportervehicleisin``emptymovementactivity,"0,ifthetransportervehicleisin``transportactivity."


### 3.4.3. Additional Constraints

A task can be handled by only one transporter vehicle at a time(3.8)∑r=1Rxiσikr=1,∀i=1,…,n,∀k=1,…,ni.
Each job requires ni+1 tasks of transport(3.9)∑r=1R∑k=0ni+1xiσikr=ni+1,∀i=1,…,n,σi0 and σi(ni+1) are two fictitious machines representing the initial and the final deposit of the jobs in the workshop.A task can be performed only after its transport(3.10)Ciσik+1-Piσik+1≥tiσik+δS(σik)S(σik+1)+εd,∀i=1,…,n,∀k=1,…,ni,
where S(σik) is the station associated with the machine σikEach task can be transported only after its completion(3.11)tiσik≥Ciσik+εc,∀i=1,…,n,∀k=1,…,ni.
The current capacity of the transporter vehicle r at time t (noted Crt) must not exceed its capacity(3.12)Crt=∑i=1n∑k=1niSσiktxiσikr≤Cr,∀r=1,…,R,∀t=0,…,T.
The load of a transporter vehicle at each time t must not exceed its current available capacity (Cr-Crt),(3.13)∑i=1n∑k=1nioutσiktxiσikr≤Cr-Crt,∀r=1,..,R,∀t=0,…,T
such as(3.14)outσikt={1,ifCiσik≤t<tiσik+1,0,otherwise.
The limited capacity of the outputs of machines is respected at every time t(3.15)∑i=1n∑k=1/σik=unioutσikt≤Cout(u),∀u∈M,∀t=0,…,T.
The limited capacity of the inputs of machines is respected at every time t(3.16)Cint(u)=∑i=1n∑k=1σik=uniint⁡σikt≤Cin(u)∀u∈M∀t=0,…,T,
with(3.17)int⁡σikt={1,iftiσik+δS(σi(k-1))S(σik)+εd≤t<Ciσik-Piσik,0,otherwise,
where Cint(u) is the current capacity of the input associated with the machine u.At every moment, the transporter vehicles should serve only the available inputs of the machines(3.18)∑r=1R∑i=1n∑k=1/σik=uniSiσiktxiσikr≤Cin(u)-Cint(u),∀u∈M,∀t=0,…,T.
The following recurrent formula computes the completion time of service of transporter vehicles on every machine which they serve, noted by Frs,(3.19)Frs=Frs-1+var(δ(s-1)s′+εc)+(1-var)(δ(s-1)s+εd+frsεc),∀r=1,…,R,∀s∈S,
with
(3.20)frs={1,ifthetransportervehicleunloadsthestations,0,otherwise.
Finally, we express the separation time restrictions due to the type of transporter vehicle activities, “transport activity” (transportation time δsd) or “empty movement activity” (time of empty travel time δsd′)(3.21)var(Frs+δsd′-Frd)+(1-var)(Frs+δsd+εd-Frd)≤0,∀r=1,…,R,∀s,d∈S,∀a∈Activities.


## 3.4.1. Additional Data

(1)
R: number of transporter vehicles in the workshop (assuming more than one),(2)
S={S1,S2,…,Sm}: set of stations,(3)
Cr: capacity of the transporter vehicle r (in terms of numbers of tasks to carry),(4)
εc: loading time of one or several tasks on the input of a station,(5)
εd: unloading time of one or several tasks from the output of a station,(6)
Cout(U): output Capacity of the machine U,(7)
Cin(U): input Capacity of the machine U,(8)
T: big value representing an upper bound for the production horizon,(9)
δsd: transportation time from a station s to a station d,(10)
δsd′: empty movement activity from a station s to a station d.


## 3.4.2. Additional Decision Variables

We use additional decision variables to express the objective function and additional constraints on the transport of tasks between machines, and the activities of transporter vehicles(3.7)tiσik:startingtransportationtimeoftaskOiσik,xiσikr={1,ifthetaskOiσikistransportedbythetransportervehicler,0,otherwise,Siσikt={1,ifthetaskOiσikistransportedintimet,0,otherwise,Vra={1,ifthetransportervehicleisin``emptymovementactivity,"0,ifthetransportervehicleisin``transportactivity."


## 3.4.3. Additional Constraints

A task can be handled by only one transporter vehicle at a time(3.8)∑r=1Rxiσikr=1,∀i=1,…,n,∀k=1,…,ni.
Each job requires ni+1 tasks of transport(3.9)∑r=1R∑k=0ni+1xiσikr=ni+1,∀i=1,…,n,σi0 and σi(ni+1) are two fictitious machines representing the initial and the final deposit of the jobs in the workshop.A task can be performed only after its transport(3.10)Ciσik+1-Piσik+1≥tiσik+δS(σik)S(σik+1)+εd,∀i=1,…,n,∀k=1,…,ni,
where S(σik) is the station associated with the machine σikEach task can be transported only after its completion(3.11)tiσik≥Ciσik+εc,∀i=1,…,n,∀k=1,…,ni.
The current capacity of the transporter vehicle r at time t (noted Crt) must not exceed its capacity(3.12)Crt=∑i=1n∑k=1niSσiktxiσikr≤Cr,∀r=1,…,R,∀t=0,…,T.
The load of a transporter vehicle at each time t must not exceed its current available capacity (Cr-Crt),(3.13)∑i=1n∑k=1nioutσiktxiσikr≤Cr-Crt,∀r=1,..,R,∀t=0,…,T
such as(3.14)outσikt={1,ifCiσik≤t<tiσik+1,0,otherwise.
The limited capacity of the outputs of machines is respected at every time t(3.15)∑i=1n∑k=1/σik=unioutσikt≤Cout(u),∀u∈M,∀t=0,…,T.
The limited capacity of the inputs of machines is respected at every time t(3.16)Cint(u)=∑i=1n∑k=1σik=uniint⁡σikt≤Cin(u)∀u∈M∀t=0,…,T,
with(3.17)int⁡σikt={1,iftiσik+δS(σi(k-1))S(σik)+εd≤t<Ciσik-Piσik,0,otherwise,
where Cint(u) is the current capacity of the input associated with the machine u.At every moment, the transporter vehicles should serve only the available inputs of the machines(3.18)∑r=1R∑i=1n∑k=1/σik=uniSiσiktxiσikr≤Cin(u)-Cint(u),∀u∈M,∀t=0,…,T.
The following recurrent formula computes the completion time of service of transporter vehicles on every machine which they serve, noted by Frs,(3.19)Frs=Frs-1+var(δ(s-1)s′+εc)+(1-var)(δ(s-1)s+εd+frsεc),∀r=1,…,R,∀s∈S,
with
(3.20)frs={1,ifthetransportervehicleunloadsthestations,0,otherwise.
Finally, we express the separation time restrictions due to the type of transporter vehicle activities, “transport activity” (transportation time δsd) or “empty movement activity” (time of empty travel time δsd′)(3.21)var(Frs+δsd′-Frd)+(1-var)(Frs+δsd+εd-Frd)≤0,∀r=1,…,R,∀s,d∈S,∀a∈Activities.


## 3.5. Objective Function

The objective function seeks to minimize the sum of earliness and tardiness penalties with regard to the delivery deadlines of the finished jobs, as well as the sum of the penalties on the empty movement activities of the transporter vehicles(3.22)Min⁡∑i=1n∑k=1ni(-αik)λik(βik)(1-λik)(ciσik-diσik)+∑r=1R∑a∈Activitiesmarvar
such as αik: earliness penalty on the task Oiσik,βik: tardiness penalty on the task Oiσik,mar: penalty on an “empty movement activity".


## 4. Ant Colony Algorithm

According to our previous work [23–25], we found that ant colony algorithm is better than genetic algorithm in terms of solutions even sometimes with more execution time.For the resolution of the generalized version of the job shop with transportation times studied in this paper, we propose a resolution algorithm based on ant colony optimization that we denote by “ACOJST” (ant colony optimization for job shop with transportation times), in order to generate the starting times of operations, as well as their starting transportation times.Ants move on the problem graph (see Figure2). Each node is associated with a station Sk which is composed of the machine Mk and its input Ik and output Ok. A dotted arc represents a connection between the deposits, respectively, initial and final towards the various stations. A continuous arc connecting two stations represents the transfer path for the transporter vehicles. Finally, a quantity of pheromone τSkSh is associated with each arc of the proposed graph; this quantity simulates the density of transfer between the stations.Figure 2
Problem graph.Our algorithm contains two main stages, the initial deposit stage and the production one. The first stage initializes transporter vehicles by the first operations of jobs according to a heuristic that we developed. The heuristic takes into account the number of transporter vehicles, their capacity and the total capacity of the initial deposit (in terms of the number of operations to be transported). Then, the loaded transporter vehicles are directed to stations, according to a priority rule, priority is giving to the destination station for which each transporter vehicle will carry a maximum block of tasks in the minimum time. Moreover, to manage the transporter vehicles movements inside of the shop, we use a heuristic to avoid conflict that may be caused by the arrival of more than one transporter vehicle to the same station at the same time.During the production stage, we choose a task from the inputs buffer to be executed whenever the station is free. Managing the communication with every transporter vehicle with an input to load or an output to unload, and the need to continually choose the next station to be served are all the decisions that we take by appropriate rules. During the cycle of production, there are two steps.(1) Associate with the input of every station, a fictitious immovable ant called “ant machine”, is free to choose the task Oiσik to be executed whenever its required machine σik is available. The choice of this task is based on a priority rule favoring the task with the maximum ratio rapik(t) in σik:(4.1)Oiσik=argmax⁡Ojσjh∈Inputσikt(j=1,…,n,h=1,…,nj)⁡{rapjh(t)},
where
(4.2)rapik(t)=piσik∑h=1nipiσih,∀Oiσik∈Inputrt,Inputσikt = {tasks belonging in input of machineσikat the moment t}.(2) In addition, create a family of mobile ants called “ants' robots”, which help transporter vehicles to choose the next station to be served by distinguishing two scenarios.(i)
If the transporter vehicle is carrying one or several finished jobs, then facilitating the movement towards the final deposit.(ii)
If it does not carry any finished job then, the choice of the next station is made according to a transition rule making a compromise between the fact of facilitating the least loaded input and the most loaded output (to guarantee that the transporter vehicle serves at most, the chosen station). The rule, that we introduced, distinguishes between two scenarios, the quantity transported by the transporter vehicle overtake or not a threshold.
(a)
If the capacity of a transporter vehicle exceeds this threshold, we select stations corresponding to the tasks transported by the chariot of this transporter vehicle, in which case the station to be served is chosen according to the following transition rule:(4.3)d(t)=argmax⁡s∈Chario(r)(τhs)αq1(β,γ)q2(θ,ψ)q3.(b)
If the capacity of the studied transporter vehicle does not exceed this threshold, all the stations of the workshop are considered, in this case the station to be served is chosen according to the following transition rules:(4.4)d(t)=argmax⁡s∈S(τhs)αq1(β,γ)q2(θ,ψ)q3,
with:
(4.5)q1(β,γ)=(1-1(Cin(s)-Cint(s))+1)β(1(Cou(s)-Cout(s))+1)γ,q2(θ,ψ)=(1δcs+1)θ(1δcs′+1)ψ,q3=(card_bloc(r,s))(tmachine(s))(1Fs(s)).card_bloc(r,s): number of tasks transported by the transporter vehicle r towards the station stmachine(s): Total duration of activities of the station s during the horizon of production α, β, γ, θ, and ψ: These parameters express the compromise between the rate of pheromone, load of the input (less loaded) the load of the output (more loaded, see saturated), the transportation times and the empty movements (minimal).The goal is to reduce the empty travel and to minimize the transportation times while taking into account the quantity of pheromone, in order to minimize the makespan.(3) Pheromone can be update locally or globally:(i)
The local update is performed after every transfer of an “ant robot” from a source stationc to a destination one d, according to the following formula:
(4.6)τcd(k+1)=τcd(k)+τ0(1-ρ0).(ii)
The global update is performed at the level of the best solution obtained after each cycle of the algorithm, according to the following formula:(4.7)τm(i)m(i+1)(k+1)=τm(i)m(i+1)(k)+τ0(1-ρ0)(foreachpairofsuccessiveoperationofthebestsolution),with:(a)
m(i): request machine of the task number i,(b)
τs1s2(k): quantity of pheromone in the arc connecting the two stations s1 and s2, in the cycle k of the algorithm,(c)
τs1s2(k+1): quantity of pheromone in the arc connecting the two stations s1 and s2, in the current iteration, after update,(d)
τ0: initial quantity of pheromone,(e)
ρ0: rate of evaporation.


### 4.1. Algorithm Description

In Algorithm1, we summarize the different steps of our ant colony algorithm with: (i)
m(i): the request machine of the task i,(ii)
initial_deposit: initial deposit of the workshop,(iii)
Chario(r): set of tasks transported by the transporter vehicle number r,(iv)
c(r,t): current position,(v)
d(r,t): destination position of the transporter vehicle number r at the moment t,(vi)
N1max and N2max: stop tests,(vii)
τ0: initial quantity of pheromone,(viii)
ρ0: rate of evaporation,(ix)
τcd: quantity of the pheromone in the arc connecting the two stations c and d,(x)
S: number of stations,(xi)
R: number of robots.Algorithm 1
initialization stepDepot_initial←{firstoperationsofjobs}Chario(r)←Or, ∀r=1,…,R(Or⊂initial_deposit)d(r,0)←deplacer_robot(r), ∀r=1,…,R//heuristictomovethetransportervehiclec(r,0)=d(r,0), ∀r=1,…,RFor(it1=1,…,N1max)doFor(it=1,…,N2max)do//generateonesolutionFor(t=1,…,horizon)do//cycleofproductionFor(s=1,…,S)doTraiter_station(s)//treatmentofstationsEndForFor(r=1,…,R)dod(r,t)←traiter_robot(r)//treatmentoftransportervehiclesc(r,t)←d(r,t)//localupdateofpheromoneτcd=τcd+τ0(1-ρ0)EndForFor(s=1,…,S)doMise_ajour_station(s)//updateofstationsEndForEndForEndForSol←choisir_meilleure()//choseofthebestsolution//Globalupdateofpheromone.τm(i)m(i+1)=τm(i)m(i+1)+τ0(1-ρ0),for each pair of successive operation of solEndForEndalgorithm


## 4.1. Algorithm Description

In Algorithm1, we summarize the different steps of our ant colony algorithm with: (i)
m(i): the request machine of the task i,(ii)
initial_deposit: initial deposit of the workshop,(iii)
Chario(r): set of tasks transported by the transporter vehicle number r,(iv)
c(r,t): current position,(v)
d(r,t): destination position of the transporter vehicle number r at the moment t,(vi)
N1max and N2max: stop tests,(vii)
τ0: initial quantity of pheromone,(viii)
ρ0: rate of evaporation,(ix)
τcd: quantity of the pheromone in the arc connecting the two stations c and d,(x)
S: number of stations,(xi)
R: number of robots.Algorithm 1
initialization stepDepot_initial←{firstoperationsofjobs}Chario(r)←Or, ∀r=1,…,R(Or⊂initial_deposit)d(r,0)←deplacer_robot(r), ∀r=1,…,R//heuristictomovethetransportervehiclec(r,0)=d(r,0), ∀r=1,…,RFor(it1=1,…,N1max)doFor(it=1,…,N2max)do//generateonesolutionFor(t=1,…,horizon)do//cycleofproductionFor(s=1,…,S)doTraiter_station(s)//treatmentofstationsEndForFor(r=1,…,R)dod(r,t)←traiter_robot(r)//treatmentoftransportervehiclesc(r,t)←d(r,t)//localupdateofpheromoneτcd=τcd+τ0(1-ρ0)EndForFor(s=1,…,S)doMise_ajour_station(s)//updateofstationsEndForEndForEndForSol←choisir_meilleure()//choseofthebestsolution//Globalupdateofpheromone.τm(i)m(i+1)=τm(i)m(i+1)+τ0(1-ρ0),for each pair of successive operation of solEndForEndalgorithm


## 5. Computational Results

We validate our approach against two types of benchmarks from literature:(i)
1st type instances: those of Philippe Lacomme, downloadable from the following web page:http://www.isima.fr/~lacomme/Job_Shop_TL.html, for the case of a single transporter vehicle with a capacity of transition equal to 1,(ii)
2nd type instances: we change benchmarks from instances of type 1 to have several transporter vehicles, by changing the number of transporter vehicles, their capacity of transfer and the capacity of the spaces of input/output storages.Tests were performed on a Pentium (R) Dual-Core CPU E5200 @ 2, 50 GHz, 1 Go RAM. The number of jobs is between three and five and the number of machines was fixed at four, to which we add two fictitious machines represent the initial and final deposits.The results below are obtained with the capacity of the transporter vehicle between 1 and 2 and the capacity of the input and the output buffer is fixed to 2. The LB and UB present, respectively, the best known solutions (BKS) obtained by the branch-and-bound procedure coupled with  a discrete event simulation model (called B&B/simulation framework) [15] and by the procedure B&B [20], that extends the B&B/simulations.


### 5.1. Transporter Vehicles with a Capacity Equal to 1

#### 5.1.1. Use of a Single Transporter Vehicle

For the case of single transporter vehicle, the results obtained by ACOJST algorithm (see Table1 and Figure 3) show a small deviation (≤10%) for the first instances (LT133–LT355), for example, for the instance LT233 and LT255, our solutions are identical or nearly identical to the corresponding LB bounds. On the other hand, the deviations increase (>10%) for the large instances (LT433–LT555). This difference is justified by the fact that our algorithm is dedicated to several transporter vehicles.Table 1
Case of a single transporter vehicle.
InstancesnmLBUBLacomme solutionACOJSTDEV (%)LT133351781901781927.8LT144452142242142338,8LT155552482722542719.2LT233351481481481480LT244451601641601674.3LT255551691751691700.5LT333351992111992095LT344452052162052133.9LT355552102272102183.8LT4333527132427135029.1LT4444535341835343122LT4555542652043150117.6LT5333536547436551641.3LT5444547761247762931.8LT5555558565058573124.9DEV: deviation of the solution given by ACOJST from LB.Figure 3
Case of a single transporter vehicle.To validate our input management heuristic for the case of single transporter vehicle, we compared it with the proposed Argmin heuristic and four priority rules FIFO, LIFO, SPT, and LPT. The input management heuristic gives the best solutions in most cases.Table2 shows the results of this comparison.Table 2
The results of this comparison.
InstancesLBUBACOJSTFIFOLIFOLPTSPTArgmin(input management heuristic)LT133178190192193192192192193LT144214224233233233233233233LT155248272271271271271271271LT233148148148148148148148152LT244160164167167164164167164LT255169175170183182187184183LT333199211209213211214214212LT344205216213219219219219219LT355210227218228228228229228LT433271324350350350350351350LT444353418431431431431431431LT455426520501501501501501501LT533365474516516516516516516LT544477612629629629629629629LT555585650731731731731731731


#### 5.1.2. Case of Several Transporter Vehicles

In this case, we use only the input management heuristic.By comparing the results obtained by ACOJST in the case of multiple transporter vehicles with the LB given for the case of a single transporter vehicle (see Table3 and Figure 4), we note that the numerical results show that our algorithm is powerful in the case of several transporter vehicles and especially for instances of great dimension such as LT444, LT555.Table 3
Case of a set of transporter vehicles.
InstancesnmLBLacomme solutionACOJSPACOJSPACOJSP(R=1)(R=1)(R=1)(R=4)LT13335178178130117117LT14445214214140129132LT15555248254147131125LT23335148148144145145LT24445160160142145145LT25555169169149146146LT33335199199200200212LT34445205205205205205LT35555210210204204204LT43335271271203158144LT44445353353250172159LT45555426431264198173LT53335365365293230198LT54445477477363242231LT55555585585374285223R: the number of transporter vehicles.Figure 4
Study of the influence of the number of transporter vehicle in a shop with transport of a set of transporter vehicles.


### 5.2. Transporter Vehicles with a Capacity Equal to 2 and 3

The Figures5(a) and 5(b), associated with Tables 4(a) and 4(b), show the behavior of our approach according to the capacity of transfer of the transporter vehicle. Our study is done in the case of 3 transporter vehicles with 2 and 3 capacities. The results are less good than those obtained using 3 transporter vehicles with capacity 1 and this is due to the constraint of conflict of transporter vehicles, taking into account in the implementation.Table 4
(a) Case of 3 transporter vehicles with capacity equal to 2. (b) Case of 3 transporter vehicles with capacity equal to 3.
(a)InstancesnMACOJSPACOJSPGap (%)(R=3, Cap = 1)(R=3, Cap = 2)LT133351171267.7LT144451291354.7LT155551311342.3LT233351451514.1LT244451451482.1LT255551461481.4LT333352002031.5LT344452052050.0LT355552042050.5LT4333515818517.1LT444451721899.9LT45555198177-10.6LT5333523026314.3LT544452422576.2LT55555285264-7.4R: the number of transporter vehicles.Cap: the capacity of transfer of a transporter vehicle.Gap =[(B2-B1)/B1]*100.B1: The solution found by ACOJSP in the case of 3 transporter vehicles, capacity 1.B2: The solution found by ACOJSP in the case of 3 transporter vehicles, capacity 2.(b)InstancesnmACOJSPACOJSPGap (%)(R=3, Cap = 1)(R=3, Cap = 3)LT13335351171267.7LT14445451291290.0LT155555513115719.8LT23335351451535.5LT24445451451482.1LT2555555146143-2.1LT33335352002000.0LT34445452052050.0LT3555555204203-0.5LT433353515818919.6LT444454517219412.8LT455555519822312.6LT53335352302529.6LT544454524229220.7LT5555555285268-6.0Gap =[(B2-B1)/B1]*100.B1: The solution found by ACOJSP in the case of 3 transporter vehicles, capacity 1.B2: The solution found by ACOJSP in the case of 3 transporter vehicles, capacity 3.(a) Study the influence of transfer capacity in the case of a 3 transporter vehicles with 2 capacities. (b) Study the influence of transfer capacity in the case of a 3 transporter vehicles with 3 capacities.
(a)(b)


## 5.1. Transporter Vehicles with a Capacity Equal to 1

### 5.1.1. Use of a Single Transporter Vehicle

For the case of single transporter vehicle, the results obtained by ACOJST algorithm (see Table1 and Figure 3) show a small deviation (≤10%) for the first instances (LT133–LT355), for example, for the instance LT233 and LT255, our solutions are identical or nearly identical to the corresponding LB bounds. On the other hand, the deviations increase (>10%) for the large instances (LT433–LT555). This difference is justified by the fact that our algorithm is dedicated to several transporter vehicles.Table 1
Case of a single transporter vehicle.
InstancesnmLBUBLacomme solutionACOJSTDEV (%)LT133351781901781927.8LT144452142242142338,8LT155552482722542719.2LT233351481481481480LT244451601641601674.3LT255551691751691700.5LT333351992111992095LT344452052162052133.9LT355552102272102183.8LT4333527132427135029.1LT4444535341835343122LT4555542652043150117.6LT5333536547436551641.3LT5444547761247762931.8LT5555558565058573124.9DEV: deviation of the solution given by ACOJST from LB.Figure 3
Case of a single transporter vehicle.To validate our input management heuristic for the case of single transporter vehicle, we compared it with the proposed Argmin heuristic and four priority rules FIFO, LIFO, SPT, and LPT. The input management heuristic gives the best solutions in most cases.Table2 shows the results of this comparison.Table 2
The results of this comparison.
InstancesLBUBACOJSTFIFOLIFOLPTSPTArgmin(input management heuristic)LT133178190192193192192192193LT144214224233233233233233233LT155248272271271271271271271LT233148148148148148148148152LT244160164167167164164167164LT255169175170183182187184183LT333199211209213211214214212LT344205216213219219219219219LT355210227218228228228229228LT433271324350350350350351350LT444353418431431431431431431LT455426520501501501501501501LT533365474516516516516516516LT544477612629629629629629629LT555585650731731731731731731


### 5.1.2. Case of Several Transporter Vehicles

In this case, we use only the input management heuristic.By comparing the results obtained by ACOJST in the case of multiple transporter vehicles with the LB given for the case of a single transporter vehicle (see Table3 and Figure 4), we note that the numerical results show that our algorithm is powerful in the case of several transporter vehicles and especially for instances of great dimension such as LT444, LT555.Table 3
Case of a set of transporter vehicles.
InstancesnmLBLacomme solutionACOJSPACOJSPACOJSP(R=1)(R=1)(R=1)(R=4)LT13335178178130117117LT14445214214140129132LT15555248254147131125LT23335148148144145145LT24445160160142145145LT25555169169149146146LT33335199199200200212LT34445205205205205205LT35555210210204204204LT43335271271203158144LT44445353353250172159LT45555426431264198173LT53335365365293230198LT54445477477363242231LT55555585585374285223R: the number of transporter vehicles.Figure 4
Study of the influence of the number of transporter vehicle in a shop with transport of a set of transporter vehicles.


## 5.1.1. Use of a Single Transporter Vehicle

For the case of single transporter vehicle, the results obtained by ACOJST algorithm (see Table1 and Figure 3) show a small deviation (≤10%) for the first instances (LT133–LT355), for example, for the instance LT233 and LT255, our solutions are identical or nearly identical to the corresponding LB bounds. On the other hand, the deviations increase (>10%) for the large instances (LT433–LT555). This difference is justified by the fact that our algorithm is dedicated to several transporter vehicles.Table 1
Case of a single transporter vehicle.
InstancesnmLBUBLacomme solutionACOJSTDEV (%)LT133351781901781927.8LT144452142242142338,8LT155552482722542719.2LT233351481481481480LT244451601641601674.3LT255551691751691700.5LT333351992111992095LT344452052162052133.9LT355552102272102183.8LT4333527132427135029.1LT4444535341835343122LT4555542652043150117.6LT5333536547436551641.3LT5444547761247762931.8LT5555558565058573124.9DEV: deviation of the solution given by ACOJST from LB.Figure 3
Case of a single transporter vehicle.To validate our input management heuristic for the case of single transporter vehicle, we compared it with the proposed Argmin heuristic and four priority rules FIFO, LIFO, SPT, and LPT. The input management heuristic gives the best solutions in most cases.Table2 shows the results of this comparison.Table 2
The results of this comparison.
InstancesLBUBACOJSTFIFOLIFOLPTSPTArgmin(input management heuristic)LT133178190192193192192192193LT144214224233233233233233233LT155248272271271271271271271LT233148148148148148148148152LT244160164167167164164167164LT255169175170183182187184183LT333199211209213211214214212LT344205216213219219219219219LT355210227218228228228229228LT433271324350350350350351350LT444353418431431431431431431LT455426520501501501501501501LT533365474516516516516516516LT544477612629629629629629629LT555585650731731731731731731


## 5.1.2. Case of Several Transporter Vehicles

In this case, we use only the input management heuristic.By comparing the results obtained by ACOJST in the case of multiple transporter vehicles with the LB given for the case of a single transporter vehicle (see Table3 and Figure 4), we note that the numerical results show that our algorithm is powerful in the case of several transporter vehicles and especially for instances of great dimension such as LT444, LT555.Table 3
Case of a set of transporter vehicles.
InstancesnmLBLacomme solutionACOJSPACOJSPACOJSP(R=1)(R=1)(R=1)(R=4)LT13335178178130117117LT14445214214140129132LT15555248254147131125LT23335148148144145145LT24445160160142145145LT25555169169149146146LT33335199199200200212LT34445205205205205205LT35555210210204204204LT43335271271203158144LT44445353353250172159LT45555426431264198173LT53335365365293230198LT54445477477363242231LT55555585585374285223R: the number of transporter vehicles.Figure 4
Study of the influence of the number of transporter vehicle in a shop with transport of a set of transporter vehicles.


## 5.2. Transporter Vehicles with a Capacity Equal to 2 and 3

The Figures5(a) and 5(b), associated with Tables 4(a) and 4(b), show the behavior of our approach according to the capacity of transfer of the transporter vehicle. Our study is done in the case of 3 transporter vehicles with 2 and 3 capacities. The results are less good than those obtained using 3 transporter vehicles with capacity 1 and this is due to the constraint of conflict of transporter vehicles, taking into account in the implementation.Table 4
(a) Case of 3 transporter vehicles with capacity equal to 2. (b) Case of 3 transporter vehicles with capacity equal to 3.
(a)InstancesnMACOJSPACOJSPGap (%)(R=3, Cap = 1)(R=3, Cap = 2)LT133351171267.7LT144451291354.7LT155551311342.3LT233351451514.1LT244451451482.1LT255551461481.4LT333352002031.5LT344452052050.0LT355552042050.5LT4333515818517.1LT444451721899.9LT45555198177-10.6LT5333523026314.3LT544452422576.2LT55555285264-7.4R: the number of transporter vehicles.Cap: the capacity of transfer of a transporter vehicle.Gap =[(B2-B1)/B1]*100.B1: The solution found by ACOJSP in the case of 3 transporter vehicles, capacity 1.B2: The solution found by ACOJSP in the case of 3 transporter vehicles, capacity 2.(b)InstancesnmACOJSPACOJSPGap (%)(R=3, Cap = 1)(R=3, Cap = 3)LT13335351171267.7LT14445451291290.0LT155555513115719.8LT23335351451535.5LT24445451451482.1LT2555555146143-2.1LT33335352002000.0LT34445452052050.0LT3555555204203-0.5LT433353515818919.6LT444454517219412.8LT455555519822312.6LT53335352302529.6LT544454524229220.7LT5555555285268-6.0Gap =[(B2-B1)/B1]*100.B1: The solution found by ACOJSP in the case of 3 transporter vehicles, capacity 1.B2: The solution found by ACOJSP in the case of 3 transporter vehicles, capacity 3.(a) Study the influence of transfer capacity in the case of a 3 transporter vehicles with 2 capacities. (b) Study the influence of transfer capacity in the case of a 3 transporter vehicles with 3 capacities.
(a)(b)


## 6. Conclusion

In this work, we studied the general JSSP including temporal constraints related to the transportation of tasks between machines, the capacity of the transporter vehicle, and also their number and the spaces of storage input/output. In the first part of this work, we give a mathematical formulation of the problem and in the second part, we tried to adapt an ant colony algorithm with several heuristics. The work may be extended further by taking into account other real constraints like the management of the topology of stations in the shop and studying the dynamic case.



---

*Source: 165620-2011-06-22.xml*