A heuristic to schedule flexible job-shop in a glass factory

Post on 22-Feb-2023

5 views 0 download

Transcript of A heuristic to schedule flexible job-shop in a glass factory

European Journal of Operational Research 165 (2005) 525–534

www.elsevier.com/locate/dsw

A heuristic to schedule flexible job-shop in a glass factory

R. Alvarez-Valdes a,*, A. Fuertes b, J.M. Tamarit a, G. Gim�enez c, R. Ramos c

a Department of Statistics and Operations Research, University of Valencia, Valencia, Spainb Institute of Robotics, University of Valencia, Valencia, Spain

c DATADEC, Valencia, Spain

Received 1 November 2002; accepted 1 October 2003

Available online 8 June 2004

Abstract

We describe the design and implementation of a scheduling system in a glass factory. The factory produces a large

variety of manufactured glass objects in a complex process ranging from melting the glass in the furnaces and blowing it

automatically or manually to decorating, assembling and packing it. The structure basically corresponds to a flexible

job-shop scheduling problem with some special characteristics. On the one hand, dealing with hot liquid glass imposes

no-wait constraints on some operations. On the other hand, skilled workers performing some manual tasks are

modelled as special machines. The system produces approximate solutions in very short computing times, trying to

minimize a non-regular criterion defined by the user and based on due dates. It can be used to establish delivery dates

for new customer orders, taking into account current machine workloads, or to schedule a set of orders, trying to meet

given customer due dates.

� 2004 Elsevier B.V. All rights reserved.

Keywords: Scheduling; Job shop; Production; Heuristics; Operation synchronization; Overlapping

1. Introduction

This paper describes the design and implemen-

tation of a scheduling system in a glass factory.The factory produces a large range of manufac-

tured glass objects, more than 3000 different types

of pieces, and works under a make-to-order policy.

Whenever a new customer order arrives, the

* Corresponding author.

E-mail addresses: ramon.alvarez@uv.es (R. Alvarez-Val-

des), ariadna.fuertes@uv.es (A. Fuertes), jose.tamarit@uv.es

(J.M. Tamarit), ggimenez@itene.com (G. Gim�enez), rra-

mos@datadec.es (R. Ramos).

0377-2217/$ - see front matter � 2004 Elsevier B.V. All rights reserv

doi:10.1016/j.ejor.2004.04.020

information system checks if the required products

are in stock and, if is the case, the order is served

from existing stock. Otherwise, the system basi-

cally creates two kinds of production orders forthe shop. Some production orders correspond to

finished goods, ready to be sent out to customers,

and involve operations such as decorating,

assembling, packing and palletization. Other pro-

duction orders correspond to semi-elaborated

products which involve operations in the furnaces,

blowing, cooling and bulk packing. Lot sizing

considerations determine the number of pieces ofeach intermediate product in these orders, the

number of which is typically much larger than the

quantity required by a customer. For instance, if

ed.

526 R. Alvarez-Valdes et al. / European Journal of Operational Research 165 (2005) 525–534

an order demands 500 wine glasses of a givenmodel, a production order would consist of deco-

rating and packing these 500 glasses, and a previ-

ous production order would consist of blowing

10,000 glasses, 500 of which would proceed to the

original order and the remaining 9500 would be

stored. So this scheme introduces precedence

relationships between production orders.

The operations to be performed on the piecescan, and in fact should, overlap. If an order con-

sists of decorating and packing 500 glasses, we do

not have to wait until all the glasses have been

decorated to start packing them. Sometimes this

overlapping is automatic, that is, as soon as the first

piece has been processed on one machine it goes

directly to the next machine. On other occasions

the overlapping is limited by structural constraints,such as the dimensions of the box to be packed or

the capacity of the container used to move the

pieces from one machine to the next. Overlapping

can even happen between operations of different

orders, linked by precedence constraints.

Some orders have an operation in which raw

materials (basically recycled glass) are melted in

one furnace to produce liquid glass and then an-other operation on a blowing machine in which the

glass is shaped while still hot. These operations

must be processed in a special type of no-wait

mode, in which every time a glass bit comes from

the furnace, it is immediately shaped in the blow-

ing machine. Therefore, rather than talking of no-

wait mode, a term usually applied to operations,

we talk of synchronizing these operations, piece bypiece. This synchronization is not restricted to a

pair of operations, but extended to other opera-

tions in the same production order or in some of

its successors. In fact, after being shaped, the pie-

ces are placed on a conveyor belt where, while they

cool down, they are transported at a constant

speed to the packing area. Once there, the pieces

must be packed before they arrive at the end of thebelt. Hence, the packing operation must also be

synchronized with the blowing operation with a

fixed delay specified by the length of the belt and

its speed.

The factory has different types of machines.

Apart from machines that can be considered

standard in terms of scheduling theory, there are

several machines specific to this type of factory.The furnaces in which the glass is melted can serve

several blowing machines simultaneously. In this

sense, they are multi-task machines, working on

several production orders at the same time. Pack-

ing is done manually by a team of workers. The

number of packers varies throughout the day and

they process several packing operations at a time,

attending to the pieces coming from the differentbelts. Some of the blowing operations are carried

out by automatic blowing machines and some

others by teams of highly skilled workers. In the

latter case, the operations can usually be per-

formed by several different teams and the pro-

duction manager gives each of these teams a

priority in processing the operation according to

the type of operation. Some machine flexibility istherefore introduced because the team to do these

operations has to be assigned by the scheduling

system.

Some machines are continuously available, but

others are not. When an operation is assigned to a

machine working only a daily shift and its pro-

cessing time exceeds the shift length, the process

stops when the shift ends and starts again at thebeginning of the following shift. However, other

interruptions, such as pre-emption, are not al-

lowed. Other types of unavailability also have to

be considered. On the one hand, each machine can

have its own calendar, with non-working days,

holidays or maintenance breaks. On the other

hand, when scheduling a set of new orders the

manager can decide not to modify the existingproduction plan and so the new orders must be

scheduled in a way that respects the previous

machine workload.

The company intends to use the scheduling

system in two ways. The user can input a set of

orders and ask the system to schedule them as

soon as possible in order to propose a delivery date

to the client. Another possibility is to set a duedate for each order and ask the system to satisfy as

much as possible as many of those due dates. In

both situations, apart from the primary objective

there are some secondary objectives to consider,

such as minimizing the work in progress and using,

whenever possible, machines with high priorities to

process the operations.

R. Alvarez-Valdes et al. / European Journal of Operational Research 165 (2005) 525–534 527

2. The scheduling problem

Scheduling problems in the glass industry have

received a lot of attention in recent years. How-

ever, work in this area is mainly devoted to mass-

production items, such as bottles of different types

and colors [15,19], with characteristics and objec-

tives, basically machine workload balancing, quitedifferent from our case.

Our problem is basically a flexible job shop, a

model that has received some attention in the

scheduling literature [3,4,9]. However, it has some

special characteristics which have to be modelled

adequately. The elements of the problem are:

• Jobs

� A set of jobs J1; . . . ; Jm has to be scheduled.

Some of the jobs correspond to finished goods

and others are components for the other jobs.

� There are precedence constraints between

jobs, specifying the order of production.

When there is a precedence constraint be-

tween jobs Ju and Jv, it is because job Jv re-quires some units processed by job Ju. Wedenote by ruv the proportion of job Ju re-

quired by job Jv.� Jobs without successors may have a due date,

dj, an early date, ej, and a late date, lj. If thedue date cannot be met exactly, the job

should be finished in the interval ðej; djÞ. Ifthat is not possible, it should finish in the

interval ðdj; ljÞ. If that is not possible, itshould finish before ej, while the less desir-

able option is to finish it after lj.� Jobs also have an urgency level, uj, reflecting

the importance of satisfying their due dates.

This level can be different for each job, being

similar to the weight assigned to jobs in

scheduling theory, or it can be used to parti-

tion jobs into subsets defined by different ur-gency levels.

• Machines

� The shop consists of a set of machines

M1; . . . ;Mn. The set includes teams of work-

ers specialized in particular types of opera-

tions (blowing, packing, decorating,. . .).� Each machine has its own set of working

shifts and its own calendar of available days.

Besides that, each machine may have some

unavailable intervals as a result of previous

commitments.

� Some machines can only process one job at a

time, but others can process several jobs at

the same time (multi-task machines).

� The number of workers doing packing oper-

ations varies throughout the day. For in-stance, 15 workers do the morning shift

(06:00–14:00), 12 the afternoon shift (14:00–

22:00) and 3 the night shift (22:00–06:00).

This situation is modelled as a multi-task ma-

chine with varying speed, where sk;t1;t2 is the

speed of machine k in the interval ðt1; t2Þ.• Operations

� Each job consists of one or more operationsOij.

� Each operation Oij must be processed on one

machine of the set lij, where pijk is the pro-

cessing time of operation Oij on machine

Mk 2 lij. The set lij is ordered according to

user-defined priorities for using every ma-

chine for a given operation.

� The operations of a job can overlap. The ex-tent of this overlapping is limited by a coeffi-

cient, ovij, defined as the proportion of

operation Oij that has to be processed before

its successor Oi;jþ1 can start. This coefficient

is 1 if no overlapping is allowed and can be

very low, near to 0, if there is automatic over-

lapping, in which as soon as the first unit of

operation Oij is processed it becomes part ofthe next operation and is immediately pro-

cessed.

The overlapping, ovij, of two operations

determines the earliest starting time of the

second operation, so that it is guaranteed

that a sufficient proportion of Oij is already

processed and also that Oi;jþ1 does not finish

before the last of the units coming from Oij

have arrived. In the left hand part of Fig. 1

the first condition applies, but in the right

hand part the first condition would produce

a starting time too early for the second

operation, depicted by the dotted arrow, and

the second condition determines the earliest

starting time of Oi;jþ1. Ivens and Lambrecht

[10] address a similar situation, but they

jj+1

pijk*ovij

If pijk <pi,j+1,k`

pijk*ovj,j+1

j+1

jpijk*ovj,j+1

If pijk > pj,i+1,k

j+1

Fig. 1. Overlapping of operations.

528 R. Alvarez-Valdes et al. / European Journal of Operational Research 165 (2005) 525–534

model it by defining a finish–start relation-

ship between operations. Their solution

cannot be applied to our case because the

processing times may change, as will be ex-

plained in the next section.� The last operation Ouk of a job Ju and the first

operation Ov1 of one of its successors, job Jv,can also overlap. On the one hand, job Jvonly needs a proportion ruv of its predecessorJu and could start as soon as that proportion

of Ouk is processed. On the other hand, oper-

ations Ouk and Ov1 can overlap and the start-

ing time of Ov1 depends on ruv and ovuk(Fig. 2).

In fact, the starting time of Ov1 also de-

pends on other possible successors of job Ju.In Fig. 3, Job2 and Job3 compete for the

units processed in operation O13. If Job2 gets

its required proportion of Job1 first, and its

first operation O21 starts according to r12 andov13, Job3 must wait and cannot start in the

O11 O12 O13

Job1 : 10000 glasses

O22 O23O21

Job2 : 500 decorated glasses

p13k*ov31 * r12

Fig. 2. Overlapping of jobs.

O11 O12 O13

Job1 : 10000 glasses

O22O21 O23

Job2 : 500 decorated glasses model 1

O31 O32 O33

Job3 : 1000 decorated glasses model 2

Fig. 3. Competition between jobs.

time indicated by the dotted arrow because

its required proportion r13 will come from

O13 after r12 of Job2. The order in which jobs

are considered is given by non-decreasing

due dates.

• Synchronizing the operations of a job

� Some operations, like those handling hot li-

quid glass, must be processed in a no-waitmode. These no-wait constraints appear in

the processes of different types of indus-

tries, such as the production of steel [18]

and concrete wares [6] or in the chemical

and pharmaceutical industries [12]. The no-

wait conditions make problems computa-

tionally harder and many efforts are being

made to study them from the complexitypoint of view [7] and to propose exact and

heuristic solution procedures [11,17].

However in our case the no-wait condi-

tion has to be applied piece by piece. In this

sense, we talk of synchronizing the opera-

tions: the first unit processed in the first

operation goes directly to the second opera-

tion and so on until the last piece is pro-cessed. Hence, the starting times of both

operations must be almost simultaneous just

as their finishing times must also be. If the

processing times of these operations are not

equal, we need to modify one of them, the

shortest one, to make them of equal length.

In Fig. 4, a pair of operations has to be

synchronized, Oi;j involving a furnace Mk andOi;jþ1 involving a blowing machineMl. In this

case the first one is shorter, pi;j;k ¼ 10, and its

length is stretched to match the second

pi;jþ1;l ¼ 100, as indicated by the arrows. As

the furnace is a multi-task machine, if it has

Blowing machine

pij+1 = 100

Furnace

pij = 10

p’ij = 100

pi,j+1 = 100

Blowing machineBLOCK

Furnace (10%)

Fig. 4. Synchronizing two operations.

BlowingFurnace Cooling Packing

waiting time

Blowing machine

Furnace (10%)

Cooling (15%)

Packing (20%)waiting time

BLOCK

Fig. 5. Synchronizing several operations of a job.

R. Alvarez-Valdes et al. / European Journal of Operational Research 165 (2005) 525–534 529

100 minutes to process an operation which

only takes 10, it uses just 10% of its capacity,

and the remaining 90% is available to oper-

ations of other jobs requiring this furnace.

The pair of operations constitutes a block

and the block is considered as a single item to

be scheduled in the planning process.Sometimes this synchronization involves

more than two operations, as in Fig. 5. In

this example, the four operations of the job

must be processed in this way, including a

fixed waiting time before packing, which is

the time needed for the pieces to be trans-

ported by the conveyor belt.

The synchronization must take into ac-count the possibility of different working

shifts for the machines involved. If a machine

stops the process of an operation at a given

time, the other operations must also stop at

the corresponding times, as appears in Fig. 6

in which we represent the availability of the

machines involved in the block of Fig. 5. The

non-working periods of the blowing machine,the shaded areas, are passed to the other

machines, also taking into account the wait-

ing time for the last operation of the block.

• Synchronizing operations of different jobs

� In Fig. 3 we showed the competition between

Fig. 6. Synchronizing working shifts.

jobs, that is to say, the situation in which

more than one successor is waiting for the

units processed by the last operation of a

job. There the arrows indicated minimum

starting times for the operations. But some-

times these operations, though belonging to

different jobs, must be synchronized. There-

fore, the time lags depicted by the arrowsare fixed and must be exactly satisfied. In this

case, we have a multiple block which is also

considered as a single item to be scheduled.

These synchronization procedures, which mod-ify the processing times of some operations, and the

varying speed of machines make it impossible to

know in advance the actual processing time of

operations, if we define it as the difference between

the finishing and the starting times. Therefore, the

existing priority rules and algorithms cannot be

used as they are and must be adapted to our

problem, as will be shown in Section 3.

• Objectives

� The main objective is to minimize the total

cost associated to the finishing times of the

jobs corresponding to final products. If wedenote by fi the finishing time of job Ji, thenwe want to

MinXi

uicðfiÞ; ð1Þ

where

cðfiÞ ¼

0 if fi ¼ di;k1ðdi � fiÞ if ei 6 fi 6 di;k1ðdi � eiÞ þ k2ðfi � diÞ

if ei 6 fi 6 li;k1ðdi � eiÞ þ k2ðli � diÞ þ k3ðei � fiÞ

if fi 6 ei;k1ðdi � eiÞ þ k2ðli � diÞ þ k3eiþ k4ðfi � liÞ if fi P li:

8>>>>>>>>>><>>>>>>>>>>:

ð2ÞIn this expression, k1, k2, k3 are parameters

whose non-decreasing values reflect the cost

of the position of fi with respect to di, ei andli. This is a non-convex function to be min-

imized, as is shown in Fig. 7.� If the system is used to determine the earli-

est starting time of a job and no due date is

k1(di-e )

0

k1(di-e ) + k2(li-d )

k1(di-e ) + k2(li-d )+k3 ei

ei di li

i i

i i

i

Fig. 7. Cost function of a job.

530 R. Alvarez-Valdes et al. / European Journal of Operational Research 165 (2005) 525–534

given, the program assigns the initial time of

the planning horizon as its due date. In that

way, the job is always delayed and minimiz-

ing the cost associated to the job is equivalent

to scheduling it at the earliest opportunity.

� There are some secondary objectives to be

taken into account. Among them, the most

important is minimizing the work in pro-gress, that is, the intervals between consecu-

tive operations of a job and between jobs

linked by precedence constraints. Another

objective is to use, whenever possible, ma-

chines with high priorities for processing

the operations.

3. Solving the scheduling problem

We have developed a heuristic algorithm to

produce good quality solutions in short computing

times because on many occasions the system will

be used on-line to establish delivery dates for new

customer orders. In order to solve the problem, we

first decompose it according to urgency levels andsolve the subproblems in order on a decreasing

level of urgency. The algorithm that solves the

subproblems has two phases. First, it builds an

initial feasible solution. Second, the solution is

improved by trying to minimize the primary cost

function and also by taking into account the sec-

ondary objectives.

3.1. Building an initial feasible solution

When building the initial solution, we try to

process each operation as soon as possible, satis-

fying the precedence and resource constraints de-scribed above. We intend to develop a compact

schedule, maximizing machine utilization and

minimizing work in progress. If some jobs finish a

head of their due dates, it would be relatively easy

to move them nearer to those due dates in a second

phase.

The algorithm proceeds forward in time, start-

ing at time 0 until a given planning horizon T isreached or all the jobs have been finished. It basi-

cally follows the parallel scheme used in resource-

constrained project scheduling [5], but with two

differences. First, an operation can start before its

predecessors are finished, according to the allowed

overlapping between them. Second, when an

operation Oij is a candidate for being put in process

at a period t, it may be that more than one machinefrom its set lij is available and different alternatives

to process the operation can be considered.

During the description of the algorithms in this

section, we will use the term operation in a wide

sense, including simple operations as well as blocks

and multiple blocks. When a block is considered,

all its operations are taken into account in the

checking for antecessors, successors and machineavailabilities.

The algorithm can be summarized in the fol-

lowing steps:

• Step 0: Initialization

� t ¼ 0, where t is the current planning time.

� Qk ¼ fOi1jJob Ji has no predecessors and

Mk 2 li1g.Qk is the queue of machine k, the set of opera-

tions that can be processed by that machine at that

time.

• Step 1: Assigning operations to machines at

time t� For each machine Mk, available at time t,

with Qk 6¼ ;:

– Build the list of candidates.

Lkt ¼ fOij 2 Qk that can start at time tg:ð3Þ

This is the most complex step of the algo-

rithm.

If the operation Oij is simple (no blocks in-volved), we first calculate its finishing time taking

R. Alvarez-Valdes et al. / European Journal of Operational Research 165 (2005) 525–534 531

into account its processing time pijk, the workingshifts of Mk and its speed sk;t1;t2 , where t1 ¼ t and t2is the end of the process of Oij. Then, we have to

check if the machine is available for the time re-

quired to process the operation without interrup-

tion. Finally, we have to consider its immediate

predecessors. If the predecessors belong to the

same job, we have to take into account the possi-

bility of overlapping, as in Fig. 1. If the operationis the first of a job, and the predecessor belongs to

another job, there may be competition of jobs, as

in Fig. 3. If the operation Oij makes part of a block

or a multiple block, we estimate the finishing times

of each operation of the block and synchronize

these operations, as in Fig. 5. Then we study the

availability of the required machines for each

operation. Finally, for the first operation of theblock, we consider its immediate predecessors, as

in the previous case.

Only if all these conditions are satisfied, will an

operation or block go into the candidate list.

– Calculate the priority of each operation

Oij 2 Lkt (see Section 3.2).

– Assign operations to machines according to

the priorities, while there is still somecapacity left. For monotask machines, only

one operation is processed at a time, but

for multitask machines several operations

can be processed simultaneously.

– Delete them from the corresponding Qk.

– Update the availability of machine Mk (and

other machines involved when processing a

block).

j¼k

• Step 2: Termination test

If all the jobs are finished, stop.

Otherwise, go on to Step 3.

• Step 3: Updating Qk

For each operation Oij with all its predecessors

sequenced.

� For each machine Mk 2 lij, Qk ¼ Qk [ fOijg.� Compute a lower bound LBijk on the

minimum time in which Oij could start in

machine Mk, taking into account all the

operation’s characteristics and machine

availability.

• Step 4: Determining a new time tFor each machine Mk, let ak ¼ nearest time,

beyond t, in which Mk will be available.

Then, the new time t ¼ min16 k6m fmaxfak;minfLBijk;Oij 2 Qkggg.

If t > T , stop. The planning horizon has been

reached.

Otherwise, go back to Step 1.

3.2. Priority rule

At Step 1, the set of candidates is orderedaccording to a priority criterion and put in process

as long as the machine has enough capacity left.

For monotask machines, this is reduced to putting

in process the highest priority operation, but in

multitask machines more than one operation can

be processed simultaneously.

Several priority rules have been considered.

Firstly, several classical rules, SPT, MDD [2],ATC [20], S/RPT and CR+SPT [1], COVERT

[16], which have proved their efficiency in many

studies. Furthermore, according to the results of

a more recent comparative study by Rajendran

and Holthaus [14] for flowshops and job-shops

with several objectives related to flowtime and

tardiness we have added several more recent rules

such as RR [13], PT+WINQ+SL [8], AT–RPT[14].

This set of rules has been adapted to our

problem and tested on a set of real- life instances

provided by the factory, with up to 307 jobs, 864

operations and 31 machines. The results show that

MDD, SPT, RR and PT+WINQ+SL work very

well in this problem. The solutions obtained by

these rules in the sequencing phase can varygreatly, up to 40% of the solution value, but after

the improving phase they are quite similar, less

than 4% of difference, in terms of satisfying due

dates and minimizing the work in progress. As

MDD works slightly better than the other alter-

natives, it is being used in the current implemen-

tation. According to this rule, if at a given time tthe job Ji is awaiting its kth operation and it re-quires ni operations to be completed with pro-

cessing times pijk, the modified due date for the job

Ji is given by

d 0i ¼ max di; t

(þXni

pi;j;k

):

(6)

(5)

Commondue-date

Commondue-date

Commondue-date

J2

J2

J2

J1

J1

J1

J1

J1

(1)-(2)

(3)

Commondue-date

(4)

Commondue-date

Fig. 8. Example of double move.

532 R. Alvarez-Valdes et al. / European Journal of Operational Research 165 (2005) 525–534

3.3. Improving the initial solution

The output of the first phase is a compact

schedule in which operations are processed as soon

as their predecessors and machine availability al-

low them to start. The due dates have so far been

just an indirect reference used in the priority cri-

terion. In this second phase, a local search proce-dure will adjust the finishing times of the jobs to

their due dates, also taking into account the sec-

ondary objectives.

We define a simple move in which an opera-

tion, or a block, changes its starting time. By

using this move for all the operations of the job,

we move the whole job. When the job is to be

moved to the right, we start moving operations inreverse order from the last to the first. If the job

is to be moved to the left, we move operations

from first to last.

We also define a more complex double move,

consisting of a six-step procedure:

1. Select a job J1 to be improved with respect to its

due-date.2. Identify another job J2 which is preventing J1

from being better adjusted to its due-date.

3. Remove job J2 from the current solution.

4. Read just J1 to its due-date, using simple moves.

5. Sequence J2 following Phase I procedure.

6. Adjust J2 to its due-date.

If the new solution is globally better than theoriginal one, the move is made and the process

moves on to another job. Raaymakers and Hooge-

veen [12] propose a similar move in their simulated

annealing procedure for a related problem. Fig. 8

shows a simplified example of the steps of a double

move.

Only moves preserving the feasibility of the

solution are allowed. That implies that the posi-tions of predecessors and successors severely limit

the set of periods which an operation can be

moved to.

When defining the search strategy we take into

account two characteristics of the solution. First,

it is usually much easier to move the operations

of a job to the right than to the left, especially if

they do not have successors. Second, the jobs

whose due dates are considered in the primary

objective function are precisely those without

successors.

The search goes iteratively through two

phases:

• Phase I: Moving the jobs without successors,

adjusting their due dates

Order the jobs by non-increasing due dates.For each job Ji, if fi < di, try to move it to the

right.

� First, we try to make fi ¼ di.� If that is not possible, we try to put fi in the

interval ðei; diÞ, as near as possible to di.� If that is not possible, we try to put fi in the

interval ðdi; liÞ, as near as possible to di.� If that is not possible, we try to put fi as near

as possible to ei.If fi > di, we try to move it to the left as much

as possible.

This process is repeated while the number of

moves is different from zero.

When a job is selected for moving, we consider

its operations or blocks one at a time, starting from

the end. For each operation we study all its possiblestarting times, as we did in Step 1 of Section 3.1. If

a new position is found, we make the move and go

to the previous operation of the job. If the opera-

tion cannot be moved, we still try to move its pre-

R. Alvarez-Valdes et al. / European Journal of Operational Research 165 (2005) 525–534 533

vious operation, in order to obtain a process of thejob which is as compact as possible.

• Phase II: Moving the jobs with successors to min-

imize the work in progress

For each job Ji, whose any successors have beenalready considered,

� If all its successors finish by their due

dates, move the job as much as possible to

the right.� If any successor finishes after its due

date, move the job as much as possible to the

left, hopefully leaving room for its succes-

sor to also be moved to the left, nearer to

its due date.

If Phase II produces some moves, we go back to

Phase I and the whole process is repeated again.

Note that most of the moves produce animprovement of the objective function but, when a

job is moved to the left, its finishing time may go

from ðdi; liÞ to ðei; diÞ, temporarily worsening its

cost. A third objective being considered is that of

using, whenever possible, the machine with highest

priority for processing an operation. This objective

is taken into account every time a new period t isconsidered as the starting time of an operation byconsidering the machines to process it in the pri-

ority order given by the user.

4. Implementation

The algorithms described above have been

coded in C++. The scheduling system is integratedinto the information system of the factory. When it

is called from the production planning system, it

reads the relevant information from the ORACLE

database and the solution obtained is written again

in the database, then becoming available to other

systems.

The company is testing the system exhaustively

in many different situations. One of the objectivesis to assess the quality of the solutions and the

speed of the algorithms. The tests run so far show

that the scheduling system is able to provide tight

due dates for incoming customer orders in a few

seconds and can perform a complete mid-term

plan, involving several hundred jobs, in a few

minutes. Other important objectives are the sys-

tem’s robustness and its flexibility to adapt toother situations of interest, such as the possibility

of subcontracting some operations or fixing some

parts of the solution and rescheduling the

remaining jobs. The results of these tests are

proving to be quite satisfactory and we foresee

that the system will be fully implemented in the

next months.

Acknowledgements

This work has been partially supported by the

Spanish Ministry of Science and Technology,

DPI2002-02553 and the Valencian Science and

Technology Agency, GRUPOS03/174.

References

[1] E.J. Anderson, J.C. Nyirenda, Two new rules to minimize

tardiness in a job shop, International Journal of Produc-

tion Research 28 (12) (1990) 2277–2292.

[2] K.R. Baker, J.W.M. Bertrand, A dynamic priority rule for

scheduling against due dates, Journal of Operations

Management 3 (1) (1982) 37–42.

[3] P. Brandimarte, Routing and scheduling in a flexible job

shop by tabu search, Annals of Operations Research 41

(1993) 157–183.

[4] S. Dauzere-Peres, J. Paulli, An integrated approach for

modeling and solving the general multiprocessor job-shop

scheduling problem using tabu search, Annals of Opera-

tions Research 70 (1997) 281–306.

[5] E.L. Demeulemeester, W.S. Herroelen, Project Scheduling.

A Research Handbook, Kluwer Academic Publishers,

Boston, 2002.

[6] J. Grabowski, J. Pempera, Sequencing of jobs in some

production system, European Journal of Operational

Research 125 (2000) 535–550.

[7] N.J. Hall, C. Sriskandarajah, A survey on machine

scheduling problems with blocking and no-wait in process,

Operations Research 44 (3) (1996) 510–525.

[8] O. Holthaus, C. Rajendran, Efficient dispatching rules for

scheduling in a job shop, International Journal of Produc-

tion Economics 48 (1997) 87–105.

[9] J. Hurink, B. Jurisch, M. Thole, Tabu search for the job-

shop scheduling problem with multi-purpose machines,

OR Spektrum 15 (1994) 205–215.

[10] P. Ivens, M. Lambrecht, Extending the shifting bottleneck

procedure to real-life applications, European Journal of

Operational Research 90 (1996) 252–268.

[11] A. Mascis, D. Pacciarelli, Job-shop scheduling with

blocking and no-wait constraints, European Journal of

Operational Research 143 (2002) 498–517.

534 R. Alvarez-Valdes et al. / European Journal of Operational Research 165 (2005) 525–534

[12] W.H.M. Raaymakers, J.A. Hoogeveen, Scheduling multi-

purpose batch process industries with no-wait restrictions

by simulated annealing, European Journal of Operational

Research 126 (2000) 131–151.

[13] T.S. Raghu, C. Rajendran, An efficient dynamic dispatch-

ing rule for scheduling in a job shop, International Journal

of Production Economics 32 (1993) 301–313.

[14] C. Rajendran, O. Holthaus, A comparative study of

dispatching rules in dynamic flowshops and jobshops,

European Journal of Operational Research 116 (1999)

156–170.

[15] P. Richard, C. Proust, Maximizing benefits in short-term

planning in bottle-glass industry, International Journal of

Production Economics 64 (2000) 11–19.

[16] R.S. Russell, E.M. Dar-el, B.W. Taylor, A comparative

analysis of the COVERT job sequencing rule using various

shop performance measures, International Journal of

Production Research 25 (1987) 1523–1540.

[17] C. Schuster, J.M. Framinan, Approximative procedures

for no-wait job shop scheduling, Operations Research

Letters 31 (2003) 308–318.

[18] L. Tang, J. Liu, A. Rong, Z. Yang, A mathematical

programming model for scheduling steelmaking-continu-

ous casting production, European Journal of Operational

Research 120 (2000) 423–435.

[19] V. T’kindt, J.-C. Billaut, C. Proust, Solving a bicriteria

scheduling problem on related parallel machines occurring

in the glass bottle industry, European Journal of Opera-

tional Research 135 (2001) 42–49.

[20] A.P.J. Vepsalainen, T.E. Morton, Priority rules for job

shops with weighted tardiness cost, Management Science

33 (8) (1987) 1035–1047.