You are on page 1of 12

J Intell Manuf (2008) 19:421432

DOI 10.1007/s10845-008-0093-5

Fuzzy-based methodology for multi-objective scheduling


in a robot-centered flexible manufacturing cell
Indira Molina Restrepo S. Balakrishnan

Received: 30 January 2008 / Accepted: 1 February 2008 / Published online: 28 February 2008
Springer Science+Business Media, LLC 2008

Abstract A fuzzy logic based methodology for generating


the sequence of part movements in a multi-product batch processing through a computerized machine cell is presented in
this paper. A number of production objectives are taken into
account. Two fuzzy based strategies: fuzzy-job and fuzzymachine are proposed and their performance is compared
to two well known dispatching rules such as SPT (Shortest Processing Time) and WEED (Weighted Earliest Due
Date). The sequencing algorithm was implemented on a standard personnel computer and the scheduler was interfaced to
a robot controller for implementing loading and unloading
strategy within the cell. The proposed fuzzy-based methodologies especially fuzzy-job shows a superior performance
compared to the traditional dispatching rules considered.
Keywords Fuzzy logic Multi-objective scheduling
Flexible manufacturing cell

Introduction
Flexible Manufacturing Cell (FMC) is a group of automated
machines serviced by a central material-handling device such
as robots or automated guided vehicles. The flexibility to
process a wide variety of parts gives rise to numerous ways
of routing a group of parts within the cell. One of the most
important problem encountered in the FMC scheduling deals
with the assignment of given resources to different processes.
The best schedule must satisfy the production objectives
considered. The production objectives taken into account
in this study are: maximize throughput; minimize penalty
I. M. Restrepo S. Balakrishnan (B)
Department of Mechanical and Manufacturing Engineering,
University of Manitoba, Winnipeg, MB, Canada R3T 2N2
e-mail: balakri@cc.umanitoba.ca

for tardy jobs; maximize machine utilization; and minimize


robot travel time. The processing environment considered is
a multistage-job shop problem wherein each job has its own
processing requirement and sequences. The scheduling problem considered is an open, deterministic, and static case. The
scheduling criteria include both cost and performance related measures. The key objective of this work is to develop
an efficient computer based scheduling technique to generate
the sequence of parts, and control the movement of the robot
within a manufacturing cell in order to fulfill the chosen production objectives. Although standard industrial robots are
computerized, they do not possess the intelligence to dynamically alter preprogrammed motions. Hence an external personal computer (PC) is employed to provide that additional
control capability.
In the present scenario, each batch consists of multiple
orders. Thus, each batch involves multiple products, each
with different specifications. The machining times vary from
part to part. Certain parts may need to be processed on multiple machines, and a certain sequence of operations may
be important. In a sequential process, the parts are routed
through the cell to visit machines in a pre-specified order.
Customer requirements refer to due dates and penalties,
whereas production costs refer to robot and machine idle
costs. On the other hand, a non-sequential processing will
allow the flexibility to route the parts bypassing the sequencing requirement. Penalty values are assigned to each part type
and are depended on the characteristics of the customer and
terms of contracts. Robots and machines are an expensive
investment and hence it is necessary to use them effectively.
It is important to balance the idle times of the robot versus
that of the machines. Machine idle cost requires a production
study, and these values have to be set by the user. In our setting, all data is randomly assigned in order to mimic a wide
variety of manufacturing situations.

123

422

It is assumed that there is only one operation at a time


on a machine. Processing times are part specific and are not
machine dependent. Parts are delivered to the machines when
needed, and hence no buffers are present in each machine.
The task of the robot is to pick up parts from an input buffer,
move them through the cell, and drop them off at an output buffer. The travel time of the robot between machines is
known and remains fixed. However it should be noted that the
total travel time taken by the robot to move a part through its
production cycle will be a function of the sequence generated
by the scheduling algorithm. The multi-objective nature of
the problem under consideration presents many challenges.
Many approaches can be followed. For this project, a new
fuzzy-based approach with a limited number of heuristic
rules is considered. It was found to be easy to model and
the computational times were found to be very minimal, an
aspect that is very critical for real-time implementations.
Review of literature
Extensive research has been done on aspects related to scheduling of flexible manufacturing systems. Due to the complexity and nature of scheduling, several approaches have
been considered, ranging from traditional solutions involving complex mathematical analysis to the recent approach,
namely reasoning algorithms. In addition, a number of different dispatching rules have also been proposed. An efficient
use of robotic cells will no doubt increase the production
rates. Modeling issues related to loading of multiple machines
with a dual-gripper robot has been proposed (Sethi et al.
2004). Analysis for finding optimal moves of material handling systems in a production cell for the manufacture of
machine castings for truck differential assemblies has been
researched (Brauner and Finke 2001). The findings from this
study are applicable to sequential flow of products through
manufacturing cell and cannot be applied to products with
varying sequences and process times. They also consider only
a single objective. It has been shown that time based rules
such as SPT are good to reduce flow time and machine idle
time (Chen and Lin 1999). However, jobs with long processing times tend to be tardy. Dispatching rules based on
tardiness, the bottleneck dynamics, resource pricing and the
effects of inserted idleness have been proposed (Kutanoglu
and Sabuncuoglu 1999). They concluded that different pricing schemes should be used in different environments. A
coordination rule that looks ahead about machine idle time,
and mechanisms for tracking the demand, and selection of
jobs has been proposed (Holthaus and Ziegler 1997). The
simulation studies demonstrated the effectiveness of the rule
in improving flow-time and duedate based objectives compared to scheduling rules without any coordination.
A concurrent solution for loading and scheduling in a
flexible manufacturing environment has been found to be

123

J Intell Manuf (2008) 19:421432

quite effective (Moreno and Ding 1993). A branch and bound


technique to optimize the moves of a robot for loading
parts in a three machine cell has also been developed
(Chen et al. 1997). Their solution became ineffective when
the number of parts exceeded ten. A solution based on colored
Petri Nets to control the alternative machining and sequencing in a FMC has been presented (Yalcin and Boucher 1999).
The study showed that they could be used as an effective
modeling tool.
Techniques based on artificial intelligence have been explored by a number of investigators. A methodology based
on training a back-error propagation network, to solve a jobshop scheduling problem has also been investigated (Jain and
Meeran 1996). However, their methodology is not effective
for large scale problems. Fuzzy set theory has been found
to be useful for modeling and solving scheduling problems
with uncertain data. A multi-objective fuzzy approach that
employed membership functions to find the share of each
objective in arriving at the final decision rules has been found
to be effective (Kazerooni et al. 1997). It was then applied
for selecting machines, after pre-selection of a job using traditional scheduling rules. Their approach combined different
rules for the selection of jobs and machines. A methodology
based on a combination of fuzzy and SPT strategy improved
the net profit and average lead-time in the test cases they
considered.
In a robot centered machine cell, the robot may be programmed to wait in front of a machine and pick up the part as
soon as the machine completes processing a part and move
it to the next processing station. This situation is termed as
no-wait constraint. A two and three machine problem for
processing identical and dissimilar parts have been proposed
and results pertaining to optimal cycle time for this type of
situation have been presented (Agentis 2000) and (Agentis
and Pacciarelli 2000). A neural network based approach for a
single machine job sequencing has been found to be effective
(El-Bouri et al. 2000). A problem is classified first by one type
of neural network into one of a number of categories. Then
another neural network, which is specialized for a particular
category, applies previously learnt relationship to produce a
job sequence that aims to better satisfy the given objective.
Use of genetic algorithms (GA) for tackling scheduling
problems has also received wide attention. An approach to
optimize the operation when products have to meet a due date
constraint has been the focus in one such study (Sannomiya
and Iima 1996). GA has also been used to obtain solutions
for scheduling a FMS with setup time as constraint (Jawahar
et al. 1998). A fuzzy-based methodology to address the
machine loading problem has been developed (Vidyarthi and
Tiwari 2001). Even though the minimization of system unbalance and maximization of throughput were their objective,
they did not take into account the inclusion of due-date related
objectives to reduce costs. The job ordering and sequencing

J Intell Manuf (2008) 19:421432

as well as the operation-machine allocation decisions were


made on the evaluation of membership functions.
From a review of literature, it can be concluded that no
generalization can be made regarding various dispatching
rules. No single rule has shown to be superior in all type
of scenarios. They have not performed uniformly well on
more than one criterion. A common belief is that a combination of simple dispatching rules or a combination of heuristics with simple dispatching rules performs better than single
rules in many cases. When multiple part types with each having its own sequence and processing times is put through
a manufacturing cell, in addition to the traditional process
objectives, the efficient use of material handling system also
becomes critical. Although the travel times of robots between
machines are fixed, the total travel time required to move a
part through the cell will be a function of the sequence generated and cannot be assumed to be the same always.
The work reported in this paper uses fuzzy logic because
of its ability to deal with uncertain data. As will be shown,
it is easy to implement and is an excellent tool for decision
making in multi-objective systems. It needs fewer rules, and
the knowledge is easier to model. It also leads to faster solutions, a key issue for real-time control of FMC.
Methodology
The proposed fuzzy-logic based methodology is an extension
of SPT and WEDD, and has the ability to take into account
factors such as machine and robot idle costs. When a group
of parts are processed on a FMC, the modeling issues when
multiple objectives are considered are extremely complex.
The routing sequence and processing time directly contribute to the idle cost of machines and robot. Different objective
function will give rise to different routing sequence. Fuzzyset approach in combination with a set of heuristic rules was
chosen as the methodology with a hope to reduce the computational burden on the control processors. This issue is
critical for real-time control of robots and machines. The
fuzzy approach employed, considers part and machine characteristics as two separate fuzzy subsets. SPT and WEDD are
well known for their effectiveness in optimizing the throughput and tardiness cost, respectively. However, they are not
effective in dealing with multi-objective problems. Before
describing the fuzzy-based approach, a brief review of the
scheduling algorithms developed and the ones compared with
will be presented next.
Shortest processing time (SPT) and Weighted earliest due
date (WEDD)
Shortest processing time (SPT)jobs are sequenced in
increasing order of their processing time from many combinations of job/machine. As is well known, SPT provides a

423

good performance in throughput criteria. However, jobs with


long processing times and early due dates tend to be tardy.
SPT is defined by:
SPT = Min P T ( j, m),

(1)

where MinP T ( j, m) = minimum processing time of the combinations job/machine.


Weighted earliest due date (WEDD)jobs are sequenced
in increasing order of the ratio of the due date of the job to
the penalty of the job assigned when the job is late. Although
WEDD performs well in terms of due date and penalty, it
does not take into account processing time information, and
thus poor use of resources. WEDD can be expressed as:


DD
,
(2)
WEDD = Min
P
where Min(DD/P) = minimum ratio of the due date (DD) over
the penalty (P) of the jobs.
Fuzzy-logic
The foundation of fuzzy logic is fuzzy theory (Zadeh 1965).
A fuzzy set theory to deal with problems in which the source
of imprecision is the absence of sharply defined criteria was
formulated. A fuzzy set, A, in X is characterized by a membership function A (x)which associates each element in X,
a real number in the interval [0,1]. The value of A (x) at x
represents the grade of membership of x in A. The closer this
value is to unity, the higher is the level of membership of x in
A. On the contrary, in crisp logic the membership values are
either 0 or 1. Fuzzy logic introduces the possibility of intermediate values, and a more precise way of defining grades
of membership of an element in a domain.
Fuzzy set operators can be defined in terms of operations
between membership functions. These operations are important because they can describe interactions between variables. The basic operations in fuzzy logic are intersection,
union and complement (Zadeh 1965) and are defined as follows:
Intersection :

x X : AB (x) = min( A (x), B (x)),


(3)

Union :

x X : AB (x) = max( A (x), B (x)),

(4)

x X : A (x) = 1 A (x).

(5)

Complement :

This is a very simple extension of the classical operations.


Other extensions using simple algebraic transformations have
also been provided (Cox 1998).
The concept of fuzzy decision making (Bellman and Zadeh
1970) can be defined as: a decision process in which the
goals and/or constraints, but not necessarily the system under
control, are fuzzy in nature. They pointed out that fuzzy
goals and constraints can be defined accurately as fuzzy sets.

123

424

A fuzzy decision may be viewed as the intersection of the


given goals and constraints. Based on this work and further
development (Yager 1978), the decision-making technique
developed in the present work will incorporate material presented below.
Objectives (goals and constraints) can be easily represented by fuzzy sets. Assuming we have a set of alternatives
in a decision X = [X 1 , X 2 , . . ., X n ] and a particular objective A, we can associate with each element in X i a number
A (X i ) in the interval [0,1] indicative of how well X i satisfies
objective A. The advantage of fuzzy sets derives from the fact
that very fuzzy objectives as well as very precise objectives
can be represented. In order to extend the above definition to
combine multi-objectives in decision making, let us assume
we would like to select among the set of alternatives X the
one that best satisfies a set of objectives A1 , A2 , . . ., A p . Each
alternative X i , is assigned a number indicative of how well
it satisfies the objectives as a group A (X i ) and, of course,
the X with the highest value is the best. The dilemma would
be on how to combine the contribution of each element to
each objective, in order to get an overall general contribution of each element to all the objectives as a whole. Using
an intersection operation one would be able to combine the
objectives.
The values of the alternatives are obtained by using membership functions. There are different ways of representing
the intersection of objectives. One method (Zadeh 1965)
chooses the minimal value among the objectives. However, if
an alternative does not contribute to an objective at all (i.e.,
A (X i ) = 0), then the result of the intersection would be
zero (0), thus excluding the contribution of the alternative to
the other objectives even if those are close to unity. Similarly,
product and bounded sum methods eliminate the contribution of the objectives if one among them has membership
value of zero (0). On the contrary, mean method produces
an average value of the contributions of the alternative to the
different objectives. Hence, if the alternative does not benefit
an objective at all, the solution does not go to zero (0). Furthermore, in our specific case we are not only interested in
the best alternative, but also in the second or third best one.
For example, in the case of an alternative (part type), which
cannot be chosen as a result of resources not being available
(i.e., machine that needs to process is busy or part being blocked, etc), then second or even third best alternative has to be
looked at. Table 1 presents a batch composed of three different part types: A, B and C; and three objectives represented
by membership functions A ( p), B ( p) and C ( p). In this
table, columns 1 and 2 refer to the part type and the number of parts to be produced respectively. Column 3 refers to
the job number. Columns 4, 5 and 6 represent the processing
times for the respective machines, namely M1, M2 and M3.
Table 1 also shows the numerical results obtained by using
the four methods (Restrepo and Balakrishnan 2001), namely

123

J Intell Manuf (2008) 19:421432

Zadeh, Mean, Product and Bounded Sum. As can be


observed, the mean method is the only one that can assure us
that we would have more than one alternative to choose from.
For example, if part type B cannot be selected for any reason
by using any method but mean, we would not have a second choice. In fact, mean would leave us to choose a second
alternative (part type C) and a third alternative (part type A).
In the present study, the evaluation of the overall contribution of the fuzzy membership function of each part type
determines the sequence of the jobs in a given batch. Two
methods: fuzzy-job and fuzzy-machine are proposed. These
strategies are mainly used to choose the jobs and machines
in the sequence.
Fuzzy-job
Job sequencing is determined by evaluating the overall contribution of the fuzzy membership function of the part type
to the optimal performance of the system. The various membership functions included for fuzzy-job are defined below.
Th ( p): The throughput of part type p is defined by a
membership function that is defined as the ratio of the difference between the maximum total processing time PT of
the part types, and the total processing time of the part type
p to the difference between the maximum and minimum
total processing time of the part types. This membership
evaluates the contribution of the part type to maximize the
throughput of the batch. This can be expressed as:
Th ( p) =

MaxPT PT (p)
, 0 Th ( p) 1,
MaxPT MinPT

(6)

where MaxPT = maximum processing time of part types,


MinPT= minimum processing time of part types, and PT(p)
= total processing time of part type p.
P T ( p) is defined byP T ( p) = N ( p)

M


P T ( p, m),

m=1

(7)
where N(p) = number of jobs for part type p, m = machine
number, m = 1,2,3,,M, M = number of machines, and
PT (p,m) = processing time of part type p on machine m.
P ( p): The membership function for the penalty of part
type p is defined as the ratio of the difference between the
maximum total penalty TP of the part types, and the total
penalty of the part type p to the difference between the
maximum and minimum total penalty of the part types.
This membership evaluates the contribution of the part
type to minimize the total penalty due to late jobs. This
can be expressed as:

J Intell Manuf (2008) 19:421432

425

Table 1 Example of intersection methods


Part type
A
B
C

# Of parts

Jobs #

M1

M2

M3

A (p)

B (p)

C (p)

2
3
1

1,2
3,4,5
6

4
0
0

2
3
5

0
0
1

0
0.50
1

0.40
1
0

0.50
1
0.5

0
0.50
0

0.32
0.83
0.50

0
0.50
0

0
0.50
0

M1, M2, and M3 are machine 1 through 3; ZZadeh; MMean; PProduct; BBounded sum

P ( p) =

MaxTP TP(p)
, 0 P ( p) 1,
MaxTP MinTP

where MaxTP = maximum total penalty of part types,


MinTP = minimum total penalty of part types, and TP(p) =
total penalty of part type p.
TP(p) is defined byTP(p) =

DD(p)
,
P(p)

(9)

where DD(p) = due date of part type p, and P(p) = penalty


of part type p.
IC ( p): The membership function for the machine idle
cost of part type pis defined as the ratio of the difference
between the total machine idle cost of part p, and the minimum total machine idle cost of the parts to the difference
between the maximum and minimum total machine idle
cost of the part types. This membership evaluates the contribution of the part type to minimize the total machine
idle cost when producing the batch. This can be expressed
as:
IC ( p) =

C(p) MinC
, 0 IC ( p) 1,
MaxC MinC

(10)

where MaxC = maximum total machine idle cost of part


types, MinC = minimum total machine idle cost of part
types, and C(p) = total machine idle cost for part type p.
C( p)is defined byC(p) =

M


U I C(m),

T ( p) =

(8)

(11)

m=1

where

1, if machine is needed for processing the

part type p, and


U =
0,
if
machine is not needed for processing

the part type p, and


IC(m) = machine idle cost of machine m.

T ( p): The membership function for the robot travel time


of part type pis defined as:

1,
1/M,

if jobs visits 1 machine, and


if job visits more than 1 machine,

where, M = number of machines part type p has to visit.


This membership evaluates the contribution of the part
type to minimize the total robot travel time when producing the batch.
p
O : The overall membership function of part type p is the
average mean of the individual membership function of
the penalty, throughput, machine idle cost and robot travel
times for part type p. By using the mean method defined
earlier, this can be expressed as:

P ( p) + Th ( p) + IC ( p) + T ( p)
,
4
0 O ( p) 1.

O ( p) =

(12)

Fuzzy-machine
The approach followed is similar to fuzzy-job. However, instead of evaluating the contribution of the part type to meeting
the objectives of the system, the evaluation is given by obtaining a membership function for each combination of part type
and machine. Thus, for fuzzy-job, there would be as many
membership functions as number of part types, while for
fuzzy-machine, there would be as many membership functions as number of part types and machines each part has to
visit. For example, for the batch given in Table 2, the number of membership functions for fuzzy-job would be three:
(0 (A), 0 (B), 0 (C) ), and for fuzzy-machine would be six:
(0 (A,M1), 0 (A,M2), 0 (B,M2) ), (0 (B,M3), 0 (C,M3),
0 (C,M4) ). The variables employed in Table 2 are those used
in Table 1.
Although the robot travel time between machines is fixed
and known, the total robot travel time required to pick up a

Table 2 Batch example for fuzzy-job and fuzzy machine


Part type
A
B
C

# Of parts

Jobs #

M1

M2

M3

M4

2
2
2

1,2
3,4
5,6

4
0
0

2
13
0

0
7
5

0
0
8

123

426

J Intell Manuf (2008) 19:421432

Table 3 Data for batch #1 to batch #3


Part type
Batch #1
A
B
C
Batch #2
A
B
C
Batch #3
A
B
C

# Of parts

Job #

M1

M2

M3

M4

2
2
2

1,2
3,4
5,6

3
2
2
5
5
5

DD(p)

P(p)

PT(p)

TP(p)

C(p)

4
0
0

2
13
0

0
7
5

0
0
8

40
35
55

3
2
4

12
40
26

13.3
17.5
13.75

3
4
5

1,2,3
4,5
6,7

45
0
44

48
43
0

0
0
46

0
42
0

280
220
220

4
2
3

279
170
180

70
110
73.3

3
4
4

1,2,3,4,5
6,7,8,9,10
11,12,13, 14,15

28
0
0

32
25
0

0
30
23

0
0
35

480
460
440

3
2
2

300
275
290

60
230
220

3
4
5

Machine idle cost rate: M1 = 2, M2 = 1, M3 = 3, M4 = 2


DD(p)Due date of part type p
P(p)Penalty of part type p
PT(p)Total processing time of part type p
TP(p)Total penalty of part type p, defined by: DD(p)/P(p)
C(p)Total machine idle cost for part type p

part from the input buffer to the time it is deposited in the


output buffer will depend on the sequence and scheduling
cycle for the part. This is unknown until the best schedule
is arrived at. Hence a membership function is included in
the analysis. Values of penalty time remain constant for each
part type. These values do not vary according to the machine.
Therefore, these membership functions are defined as in
fuzzy-job. The robot travel time between machines is assumed to be the same as in fuzzy-job. Throughput and machine
idle cost memberships are defined somewhat differently as
described below.
Th ( p, m): The membership function for the throughput
of part type pon machinemis defined in the same terms as
in fuzzy. The difference is that the processing time is given
by PT(p,m) instead of PT(p). Th ( p, m) can be defined as:
MaxPT PT (p, m)
,
MaxPT MinPT
0 Th ( p, m) 1,

Th ( p, m) =

(13)

where
MaxPT = maximum processing time of combinations parttype/machine, and MinPT = minimum processing time of
combinations part-type/machine.
IC ( p, m) : The membership function for the machine
idle cost of part type p on machine m is defined as before,
except that instead of the total machine idle cost C of part
p, the membership function is defined in terms of machine
idle cost of part p on machine m. IC ( p, m) can be defined
as:

123

IC(m) MinIC
,
MaxIC MinIC
0 IC ( p, m) 1,

IC ( p, m) =

(14)

where MaxIC = maximum machine idle cost of machines,


and MinIC = minimum machine idle cost of machines.
An illustrative numerical example is provided below for a
sample data (batch #1) shown in Table 3. For fuzzy-job, there
are three membership functions that are evaluated:
o (A), o (B), o (C). The numerical results resulting membership functions are shown in Table 4. As can be noticed,
part type C (machine M3) would be the first in the sequence
followed by part type A (machine M1), and finally part type B
(machine M2). For the fuzzy-machine method, membership
functions are expressed in terms of part type and machine.
For the combination of part type A and machine M1, the
various membership functions are given in Table 5.
The results presented in Table 5 indicate that the sequence
would be Part type C-Machine M3, Part type A-M1, Part type
A-M2, Part type C-M4, Part type B-M3, and Part type B-M2.
Validation of the proposed methodologies
In order to compare the performance of various scheduling options, a set of data that produces a wide variety of

Table 4 Numerical results for fuzzy-job


Part type

P ( p)

Th ( p)

IC ( p)

T ( p)

O ( p)

A
B
C

1
0
0.89

1
0
0.50

0
0.50
1

0.50
0.50
0.50

0.62
0.25
0.72

J Intell Manuf (2008) 19:421432

427

Table 5 Numerical results for fuzzy-machine


Part type/
machine

P ( p, m) Th ( p, m) IC ( p, m) T ( p, m) O ( p, m)

Part A, M1
Part A, M2
Part B, M2
Part B, M3
Part C, M3
Part C, M4

1
1
0
0
0.89
0.89

0.81
1
0
0.54
0.72
0.45

0.50
0
0
1
1
0.50

0.50
0.50
0.50
0.50
0.50
0.50

0.70
0.62
0.12
0.51
0.77
0.58

part processing requirements and due dates were generated.


The effect of due date penalties is reflected by variations in
due date indicated. All the data were randomly generated to
study the effect of variations in processing times, processing requirements and due dates. Comparisons were made in
terms of machine idle cost, tardiness cost, and throughput
resulting from employing different strategies.
The different models presented were implemented on a
personal computer using Borland C++. Calculations were
made to determine the contribution of each part type to the
chosen objectives. Upon initiation of the program, the user
is prompted to enter the customer specified data (1 in Fig. 1)
followed by processing data (2 in Fig. 1). The program then
provides a choice to initiate sequential (3 in Fig. 1) or nonsequential processing (4 in Fig. 1). For both the options one
may choose either prioritizing Loading or Unloading
(5 or 6 in Fig. 1).
If sequential processing is chosen, a part is loaded only if
the first machine in the series of machines that the part needs
to go is free. It is likely that there may be more than one part
as a suitable candidate for loading and the following order of
priority is implemented. First priority goes to the first part in
the order of feasible parts that needs the currently least occupied station (e.g., a station having the fewest waiting parts).
If there are more than one station, then the priority will be
assigned to the station that is most in demand by the parts in
the current batch. Algorithm will search for all the possible
candidate part and generate the sequence as well as setup the
robot programs. For non-sequential processing, the process
of part selection goes through the same order of priorities as
defined for sequential process. However, in this case, a part
is a candidate providing one of its machining requirements
is met. There are two additional criteria in the case of nonsequential processing. The part to be loaded, after having met
all the other requirements, must go through a conflict check.
The conflict check is a subroutine that ensures that, if a part
is loaded into the system, it will not cause a blockage to the
further processing of parts.
The next choice is either to prioritize Loading of
Unloading. For loading priority, the following options in
decreasing order of importance are followed: (i) load a
machine with a part from the input buffer; (ii) shift part from

one station to another; (iii) unload a finished part to the output


buffer; and (iv) move the robot and wait at the next station
needing unloading. The unload priority follows the options
listed next in decreasing order of priority: (i) Unload a part
; (ii) If option is not possible, then consider shifting a part
from one station to the next; (iii) if shifting is not an option,
then it may load a part: and (iii) if none of the above is possible then move the robot to a station that has almost finished
machining and will be waiting to be unloaded.
The last step in the program (7 in Fig. 1) provides the user
with the ability to run the different options of scheduling
algorithms. The various options and the key steps are shown
in figure. When the program is executed, it enters into a loop
and continues until all the parts are processed. Inside each
loop, an internal variable checks for both a loading or unloading priority. This internal variable will lead the sequence of
operations within the loop: loading, shifting, unloading, and
moving and waiting. A look-ahead feature built within the
program, seeks to reduce the throughput time of a batch by
saving extra travel time of the robot. Instead of waiting for the
next part to be finished, the robot keeps track of which parts
are almost done and goes next to the corresponding station,
thus saving movement time. If the user wishes to compare
various options of scheduling and automatically pick the optimal scheduler, then the choice ALL will be selected and the
software will automatically generate the results shown later
in both graphical form as well as text file. The output from
this choice is eventually used for controlling the entire operation of scheduling and controlling robot moves.
The sequence follows the order in which the machines
are numbered. However, it is important to clarify that the
methodology proposed has the capability of processing any
sequence. The sequence followed is only for illustrative purposes. For a sample data (batch #2) presented in Table 3, the
sequence for part type A is M1M2, for part type B, it is
M2M4 and M1M3 for part type C. The part processing
is simulated using a loading priority. Some attributes can be
noticed for this batch. The part type with the longest processing time (part type A) is also the part with the longest due
date, and it has the highest penalty for tardiness. Besides, the
part with the shortest processing time and shortest machining
time (part type Bmachine M2) has the lowest penalty and
the earliest due date. Choosing the right sequence to reach
multiple production goals is challenging in view of the conflicting objectives. It is known that choosing parts with the
shortest processing time usually gives the best throughput.
For this batch, the part with the shortest processing time (part
type B) has the lowest tardiness penalty. However, it may be
beneficial to start the process by choosing the part with the
highest penalty in order to avoid high production costs. The
fuzzy methodologies presented look at these aspects and find
a middle ground so that all the objectives can be fulfilled as
far as possible.

123

428

J Intell Manuf (2008) 19:421432

Fig. 1 Flowchart of the


programmed logic

Input customer specified data: part #, number of parts, sequence in the case of sequential processing,
and due date/penalty data for parts. (1)

Input production data: idle rate of machines, and fixed robot move times within the cell. (2)

Sequential processing (3)

Priority-Loading (5)

Priority-unloading (6)

Non sequential processing (4)

Priority-Loading

Choose one of : (7)


SPT
WEDD
Fuzzy-Machine (FM)
Fuzzy-Job (FJ)
ALL

SPT-Sequence jobs in
increasing order of their
processing times (PT)
among the many
combinations of job(j) and
machine (m). Implement
eqn.(1).

FM-determine job sequencing by


evaluating the overall contribution of the
fuzzy membership function of the part
type to the optimal performance of the
system by using equations 6 through 12

Priority-unloading

WEDD-Sequence jobs in
increasing order of the
ration of the due date of the
job(DD) to the penalty of
the job (P) assigned when
the job is late.
Implement eqn.(2).

FJ-determine job sequencing by


evaluating the overall contribution of the
fuzzy membership function of the part
type to the optimal performance of the
system by using equations 13 and 14 and
12.

Percentage of improvement
of fuzzy over SPT & WEDD

ALL-determine job sequencing for SPT,


WEDD, FM, and FJ individually and
pick the optimal solution and store the
data.
measure of criterion obtained from the strategies
difference of = 100 selected
improvement
measure of criterion obtained from the strategies
to which comparison is made

80%
60%
40%
20%
0%
Machine idle
cost

Tardiness cost

Throughput
time

Criteria
Improvement of fuzzy over SPT

Improvement of fuzzy over WEDD

Fig. 2 Percentage difference of improvement of fuzzy-job and fuzzymachine with respect to SPT and WEDD for batch #2

Results for batch #2 are shown in Fig. 2. This figure shows


the resulting improvement when using fuzzy-job and fuzzymachine over SPT and WEDD. The bar graph compares
the performance of the different strategies. The percentage
difference of improvement is defined as given below. For
this particular case, the strategies selected are fuzzy-job and
fuzzy-machine, and the strategies to which comparison is
made are SPT and WEDD.

123

For this batch, fuzzy-job and fuzzy-machine produce identical performance, and the figure presents the results using
them as base line. In this example, SPT chooses part type B
first. Part type B has the smallest processing time, and the
highest due date over penalty ratio. At the same time, SPT
tends to leave part type A for processing to the end. Part type
A has the highest penalty; therefore, tardiness cost would tend
to be higher (Fig. 2). On the other hand, WEDD chooses part
type A, which has the lowest due date over penalty ratio.
However, that part type has a very long processing time,
which at the end gives rise to a long robot idle time, and
thus a longer throughput time. This produces a very high
tardiness cost. Fuzzy-job and fuzzy-machine perform 71%
better than WEDD in this case. Although, it is expected that
WEDD would tend to give the best results when it comes to
tardiness criterion, it did not turn out to be so since WEDD
does not take into account processing times.

429

12%
10%
8%
6%
4%
2%
0%
Machine idle
cost

Tardiness cost

Throughput
time

Criteria

Fig. 3 Percentage difference of improvement of fuzzy-job and fuzzymachine with respect to WEDD for batch #3

3500
2800
2100
1400
700
0
FUZZY-J FUZZY-M
LOAD

SPT

WEDD

1600
1200
800
400
0
FUZZY-J FUZZY-M
LOAD

UNLOAD

(a) Machine idle cost


Throughput time (s)

Fig. 4 Loading versus


unloading priority for batch #3

Total machine idle cost ($)

The analysis was repeated using data (batch#3) presented


in Table 3. In this case, part type A has the longest due date
and the highest tardiness penalty. Part type B has the smallest processing time, while part type C has values in between,
and the shortest processing time (machine M3). Results for
this batch are shown in Fig. 3. Fuzzy-job and fuzzy-machine
find a middle ground by initially choosing part type C. SPT
chooses part type C as well, since it has the lowest processing time. Results show the same performance for fuzzy-job,
fuzzy-machine and SPT. There is a 10.7% improvement over
WEDD in terms of tardiness cost.
In order to study whether further enhancement can be
obtained by any of the different strategies, further analysis was done using an unloading priority. In some cases,
when using an unloading priority, results tend to be better.
The results cannot be generalized. For illustration purposes,
results for batch #3, using an unloading priority are shown

in Fig. 4. As seen in this figure, unloading priority yields


better results than loading priority. In order to verify whether this is true, three more tests using data shown in Table 6
labeled as batch #4, 5, and 6 were analyzed. Once again,
fuzzy-job and fuzzy-machine are compared against SPT and
WEDD, but taking into account loading and unloading priority. There are eight combinations (methodology-priority) in
total. In addition, when parts have the same processing time,
comparisons are also made to a relevant study (Balakrishnan
et al. 2001). Results are shown in Figs. 57. The tables and
figures indicate the improvement in percentage of the best
performance compared to the worst, and the improvement of
the best methodology compared to SPT.
The results pertaining to data (batch#4 in Table 6) are
shown in Fig. 5. It is clear that fuzzy-job outperforms the
other methodologies. For fuzzy-methodology, there is also
a remarkable similarity between the results of loading and
unloading priority, except in terms of tardiness cost. Although
unloading priority is 1.8% better than loading priority in tardiness cost criterion, the percentage difference is too small
to conclude that the fuzzy-job with unloading priority yields
the best results. In terms of robot idle time, there is not much
difference in performance between the priorities. For this
specific case, comparisons against Hathouts heuristics are
possible since processing times are equal. However, these
comparisons are only possible in terms of throughput since
Hathouts problem does not take into account other criteria.
The throughput time for an identical batch of parts with loading priority produces a 7.5% improvement for fuzzy-job strategy in comparison to Hathouts. No consistent pattern could
be observed in regards to the strategy that performed worst.
To tal tardiness cost ($)

Percentage of improvement
of fuzzy over WEDD

J Intell Manuf (2008) 19:421432

SPT

WEDD

UNLOAD

(b) Tardiness cost

700
650
600
550
500
FUZZY-J FUZZY-M
LOAD

SPT

WEDD

UNLOAD

(c) Throughput time

123

430

J Intell Manuf (2008) 19:421432

Table 6 Data for batch #4 through batch #6

Percentage
improvement in
performance

Batch #4
A
B
C
Batch #5
A
B
C
Batch #6
A
B
C

# Of parts

Job #

M1

M2

M3

M4

DD(p)

P(p)

PT(p)

TP(p)

C(p)

3
2
2

1,2,3
4,5
6,7

15
0
15

18
18
16

0
0
0

0
12
0

120
140
130

4
2
3

99
60
62

30
70
43.3

3
4
4

4
5
3

1,2,3,4
5,6,7,8,9
10,11,12

85
0
0

85
85
0

0
0
85

0
85
0

840
870
760

1
2
3

680
850
255

840
435
253.3

3
4
1

4
5
3

1,2,3,4
5,6,7,8,9
10,11,12

48
0
0

43
41
0

0
0
45

0
49
0

440
470
310

1
2
3

364
450
135

440
235
103.3

3
4
1

Percentage
improvement in
performance

Part type

10%

0%
Machine idle cost

Tardiness cost

FUZZY-J UNLOAD

40%
20%
0%

Machine idle cost

Tardiness cost

FUZZY-J LOAD

SPT

HATHOUT'S

Throughput time

Criteria

Throughput time

Criteria
FUZZY-J LOAD

60%

FUZZY-J UNLOAD

SPT-LOAD

SPT-UNLOAD

Fig. 7 Performance plotsbatch #6

Percentage of
improvement over the
worst performance

Fig. 5 Performance plotsbatch #4

80%
60%
40%
20%
0%
Machine idle cost

Tardiness cost

Throughput time

Criteria
FUZZY-M LOAD

FUZZY-M UNLOAD

SPT

Unloading priority for both methodologies seems to perform


better than loading priority except in tardiness cost criteria.
An important factor to be noticed is that, unloading is better
(>6%) than loading priority in all cases. Nevertheless, when
loading is better in tardiness criteria, the difference is 23%.
Thus, SPT and fuzzy-machine with loading priority have the
best performance.

HATHOUT'S

Fig. 6 Performance plotsbatch#5

Summary of results

In the case of batch #5 given in Table 6, fuzzy-machine has


the best performance as shown in Fig. 6. As in the previous
example, loading and unloading priority give similar results.
Loading performance is better by 35.3% for tardiness cost.
In terms of throughput, unloading and loading have the same
performance; however the robot idle time for the unloading
priority is longer, which means less robot-related production cost. The difference is 0.8%. This difference is minimal;
hence, it can be concluded that fuzzy-machine with loading priority has the best performance. For this specific case,
comparisons against Hathouts heuristics are also possible
since all processing times are equal to 85 seconds. In terms
of throughput, Hathouts heuristics gives identical results to
those obtained using fuzzy-machine.
For the next case, batch#6 given in Table 6, SPT and fuzzymachine have the best performance, as shown in Fig. 7.

123

The results from a total of thirty batches were compiled.


Figs. 810 show the percentage of how many times the methodology-priority combination was the best in the thirty trials.
For compactness, letters represent the combination methodology-priority. For example, FJ means fuzzy-job, FM means
fuzzy-machine, W and S mean WEDD and SPT respectively.
Likewise, L and U represent loading and unloading priority,
respectively.
The first aspect to analyze is the performance of the methodologies with respect to the machine idle cost criterion
(Fig. 8). Fuzzy-job has the best performance. It is best 56.6%
of the time with unloading priority, and 53.3% of the time
with loading priority. SPT and WEDD with loading priority
have the worst performance. Unloading priority seems to
yield somewhat better results than the loading priority.
For the tardiness cost criterion (Fig. 9), fuzzy-job with
unloading priority has the best performance followed by

Percentage of times a
methodology-priority is best

J Intell Manuf (2008) 19:421432

431

60%
50%
40%
30%
20%
10%
0%

FJ-L

FJ-U

FM-L

FM-U

W-L

W-U

S-L

S-U

S-L

S-U

S-L

S-U

Methodology-priority

Percentage of times a
methodology-priority is
best

Fig. 8 Performance for machine idle cost criterion


60%
50%
40%
30%
20%
10%
0%
FJ-L

FJ-U

FM-L

FM-U

W-L

W-U

Methodology-priority

Percentage of times a
methodology-priority is
best

Fig. 9 Performance for tardiness cost criterion


60%
50%
40%
30%
20%
10%
0%
FJ-L

FJ-U

FM-L

FM-U

W-L

W-U

Methodology-priority

Fig. 10 Performance for throughput criterion

fuzzy-job with loading priority. Indeed, it was expected that


unloading priority would perform best in terms of the tardiness criterion since jobs would be unloaded faster, thus
reducing tardiness costs. However, this is not always the case.
For instance, the loading priority performs better for fuzzymachine and SPT. WEDD with the loading priority showing
the worst performance, followed by SPT.
In terms of throughput criterion (Fig. 10), results are very
similar to before, fuzzy-job with unloading priority showing
the best performance. SPT and WEDD with loading priority
have the worst performance. In general, fuzzy-job with the
unloading priority gives the best results; SPT and WEDD
show poor performance. Furthermore, the unloading priority usually performs better than the loading priority, except
for the tardiness cost criterion, where results are difficult to
generalize.
Conclusions and recommendations
The performance of the proposed fuzzy logic based methodologies is very promising. They have shown much better performance than traditional dispatching rules such as SPT and

WEDD in a multi-objective scheduling environment. SPT


and WEDD may still be good when considering single objectives such as maximizing the throughput time or minimizing
the tardiness cost, respectively. This work has shown that
fuzzy methodologies are able to combine several objectives
for effective scheduling of jobs. The results presented also
show that fuzzy-job is more effective than fuzzy-machine.
As indicated before, the difference in performance can be
attributed to the way each strategy analyzes the contribution
of the jobs to reach the objectives. Fuzzy-job considers the
attributes of the job only, while fuzzy-machine evaluates the
contribution of the job-machine combination. The enhancement in performance shown by the fuzzy-job comes from
analyzing each job, keeping in perspective all the machines
and their ability to process a set of jobs that constitutes a
batch. It does not restrict the analysis to just a job-machine
combination. The results also indicate a slight difference in
performance between SPT and WEDD. SPT has a tendency
to perform better in machine idle cost and throughput time
criteria, while WEDD performs better in tardiness cost criterion.
For the tardiness cost criterion, the unloading priority has
proved to be the best priority for fuzzy-job and WEDD,
while the loading priority has been the best choice for fuzzymachine and SPT. In regards to improving the machine idle
cost and throughput time, unloading priority turns out to be
the best priority. The methodologies were successfully implemented in an automated machine cell. The two strategies
performed quite well and the results obtained from simulation (off-line) show only a marginal difference with those
from actual implementation (online). The slight difference
is unavoidable due to the preset control architecture of the
robot and communication aspects.
The capability of the custom designed software used to
evaluate the performance of the two strategies can be effectively used for simulations (off-line) and actual implementations (online). The software has the ability of producing
simulation in text or graphic mode for valuable data collection for further studies. An example is the generation of
different sequences for a wide variety of batches for SPT,
WEDD, fuzzy-job and fuzzy-machine methodologies, or all
of them. When the sequences of all the methodologies are
displayed, comparisons of the performance of the strategies
for each objective can be easily seen.
The methodology developed has been successfully implemented on a robot based FMC in the research laboratory. The
microprocessors of industrial robots are not designed to perform any computations other than what is required for motion
control of robot. Hence an external PC was employed for performing all the computations required for the methodology
developed. The algorithm implemented on a personal computer generates the best strategy and schedule for the selected data set. The robot programs corresponding to loading

123

432

and unloading of machines are then sequenced through a


PC based input/output card which calls the appropriate programs in the correct sequence. The PC based cell controller
performed quite well and clearly demonstrates that it will be
possible to implement the developed algorithm without any
modifications to the cell architecture. The algorithm is extremely fast and has made it possible to implement the new
fuzzy-based methodology for near real-time control of an
FMC. The effectiveness of fuzzy-job in improving throughput in a multi-objective environment could be further enhanced by automatically assigning weights to the objectives. A
study of this nature would provide much better insight on the
impact of membership functions on the quality of solutions.
This is currently investigated as part of an on-going study.
The use of an adaptive algorithm is being explored that determines automatically the weights for various objectives and
their impact on the quality of solution. This assignment could
be complex since there are four membership functions, which
could be, assigned ten weight values ranging from 0 to 1. The
number of possible combinations would be enormous (104 ).
There are two possible ways of assigning and evaluating these
weights. The first one could be by using rules, and would
require substantial user input and further experiments. A second approach, which may be more efficient, is by using techniques such as genetic algorithms or neighborhood search
methods. These approaches may require substantial computation times, and the improvement in performance will have
to be evaluated against the computational time that would be
needed. Studies are also currently underway in developing
a genetic algorithm based approach and the results will be
made available at the conclusion of the study.
Although non-sequential methodology proved to be more
efficient than sequential mode, further research can be done
to enhance the performance of non-sequential mode. In the
present work, no special techniques were utilized to check
the movements of parts in non-sequential method. An objectoriented function that checks for presence of no conflicts in
part allocation was utilized. However, by using intelligent
techniques with look-ahead features, these conflict-checks
can be further enhanced and results for non-sequential mode
may show further improvement.
The proposed methodology can be applied to a wide variety of manufacturing environments. For example, automated
printed circuit board assembly is a clear example of a process
that could benefit from an optimized selection of a combination of sequential and non-sequential processing. A robot
assisted automated cell for manufacture and assembly of
plastic valves with several sub-components is currently being
developed and the industry is keen in applying the proposed
methodology for controlling the robot movements within the
cell. This process can be categorized as sequential processing. This will provide a great opportunity for implementing
the developed control strategy in a real-world application.

123

J Intell Manuf (2008) 19:421432

References
Agentis, A. (2000). Scheduling no-wait robotic cells with two and three
machines. European Journal of Operational Research, 123, 303
314.
Agentis, A., & Pacciarelli, D. (2000). Part sequencing in three machine
no-wait robotic cells. Operations Research Letters, 27, 185192.
Balakrishnan, S., Hathout, L., & Popplewell, N. (2001). Sequential versus Non-sequential loading and influences on Intra-Cell sequences.
In Proceedings of the IASTED International Conference, Robotics
and Applications (pp. 95100). ISBN:0-88986-313-X.
Bellman, R. E., & Zadeh, L. A. (1970). Decision-making in a fuzzy
environment. Management Science, 17, 141164.
Brauner, N., & Finke, G. (2001). Optimal moves of the material handling
system in a robotic cell. International Journal of Flexible Manufacturing Systems, 74, 269277.
Chen, S., & Lin, L. (1999). Reducing total tardiness cost in manufacturing cell scheduling by a multi-factor priority rule. International
Journal of Production Research 37(13), 29392956.
Chen, H., Chu, C., & Proth, J. (1997). Sequencing of parts in robotic
cells. The International Journal of Flexible Manufacturing Systems,
9, 81103.
Cox, E. (1998). The fuzzy systems handbook (2nd ed.). New York: AP
Professional.
El-Bouri, A., Balakrishnan, S., & Popplewell, N. (2000). Sequencing
jobs on a single machine: A neural network approach. European
Journal of Operational Research, 126, 474490.
Holthaus, O., & Ziegler, H. (1997). Improving job shop performance by
coordinating dispatching rules. International Journal of Production
Research 35(2), 539549.
Jain, A. S., & Meeran, S. (1996). Scheduling a job-shop using a
modified back-error propagation neural network. In Proceedings of
the First Turkish Symposium on Intelligent Manufacturing Systems
(pp. 3031, 462474).
Jawahar, N., Aravindam, S. G., Ponnambalam, S. G., & Karthikeyan, A.
A. (1998). Genetic algorithm-based scheduler for setup-constrained
FMC. Computers in Industry, 35, 291310.
Kazerooni, A., Chan, F. T. S., & Abhary, K. (1997). Real-time operation
selection in an FMS using simulationa fuzzy approach. Production
Planning & Control, 8, 771779.
Kutanoglu, E., & Sabuncuoglu, I. (1999). An analysis of heuristics in a
dynamic job shop with weighted tardiness objectives. International
Journal of Production Research, 37(1), 165187.
Moreno, A., & Ding, F. (1993). A constructive algorithm for concurrently selecting and sequencing jobs in an FMS environment. International Journal of Production Research, 31(5), 11571169.
Restrepo, I. M., & Balakrishnan, S. (2001). Fuzzy logic based robot controller for intelligent scheduling. In Proceedings of the 32nd. International Conference on Applied Modeling and Simulation (Vol. 2,
pp. 358363).
Sannomiya, N., & Iima, H. (1996). Application of genetic algorithm to
scheduling problems in manufacturing processes. In Proceedings of
the IEEE Conference on Evolutionary Computation (pp. 523528).
Sethi, S. P., Chandrasekaran, R., Drobouchevitch, I., & Sriskandarajah,
C. (2004). Scheduling multiple parts in a robotic cell served by a
dual-gripper robot. Operations Research, 52, 6582.
Yalcin, A., & Boucher, T. (1999). An architecture for flexible manufacturing cells with alternate machining and alternate sequencing. IEEE
transactions on Robotics and Automation, 15(6), 11261130.
Vidyarthi, N. K., & Tiwari, M. K. (2001). Machine loading problem
of FMS: a fuzzy-based heuristic approach. International Journal of
Production Research, 39(5), 953979.
Yager, R. (1978). Fuzzy decision making including unequal objectives.
Fuzzy Sets and Systems, 1, 8795.
Zadeh, L. A. (1965). Fuzzy sets. Information and Control, 8, 338353.