Ams
Ams
using 0.8
J.E. Rooda and J. Vervoort
August 2005
Technische Universiteit Eindhoven, Department of Mechanical Engineering
Systems Engineering Group, P.O. Box 513, 5600 MB Eindhoven, The Netherlands
http://se.wtb.tue.nl/
{j.e.rooda, j.vervoort}@tue.nl
ii
Contents
Acknowledgements vii
1 Introduction 1
1.1 Manufacturing Systems (MSs) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Analysis of Manufacturing Systems (AMS) . . . . . . . . . . . . . . . . . . . 3
2 Analytical models of deterministic manufacturing systems 7
2.1 Manufacturing system principles . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Analysis of deterministic manufacturing systems . . . . . . . . . . . . . . . . 13
2.3 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4 Additional exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3 Analytical models of stochastic manufacturing systems 29
3.1 Classication of manufacturing queueing models . . . . . . . . . . . . . . . . 29
3.2 Queueing relations for single-machine workstation . . . . . . . . . . . . . . . . 30
3.3 Queueing relations for a owline . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.4 Identical parallel machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.5 Batch machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.6 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.7 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4 Single workstation 45
4.1 Single machine model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2 Single machine with varying process time . . . . . . . . . . . . . . . . . . . . 47
4.3 Single machine with buer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.4 Displaying simulated behaviour . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.5 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
iii
iv Contents
5 Measuring performance 59
5.1 Mean throughput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.2 Mean owtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.3 Mean utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.4 Mean wip-level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.5 Variance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.6 Measuring other quantities . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.7 Simulation vs Approximation (1): single machine workstation . . . . . . . . . 67
5.8 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.9 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6 Machines in series 71
6.1 Deterministic owline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.2 Unbalanced owline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.3 Machines in series without buers . . . . . . . . . . . . . . . . . . . . . . . . 75
6.4 Simulation vs Approximation (2): owline . . . . . . . . . . . . . . . . . . . . 76
6.5 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6.6 Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
7 Machines in parallel 87
7.1 Deterministic machines in parallel . . . . . . . . . . . . . . . . . . . . . . . . 87
7.2 Analytical vs Simulation (3): Parallel machines . . . . . . . . . . . . . . . . . 89
7.3 Alternative model for parallel machines . . . . . . . . . . . . . . . . . . . . . 90
7.4 Parallel machines for dierent lot types . . . . . . . . . . . . . . . . . . . . . 91
7.5 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
8 Other congurations 97
8.1 Bypassing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
8.2 Backtracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
8.3 Assembly line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
8.4 Jobshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
8.5 Using bundles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
8.6 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Contents v
9 Push, pull, and push/pull 113
9.1 Push versus pull . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
9.2 Central authorization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
9.3 Distributed authorization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
9.4 Flowline with Kanban control . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
9.5 Flowline with Conwip control . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
9.6 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
9.7 Epilogue: Push or pull? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
10 Extending machine models 137
10.1 Representing process time by a distribution . . . . . . . . . . . . . . . . . . . 137
10.2 Machine failure and repair . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
11 Case: (Part of ) a waferfab 155
11.1 The manufacturing of Integrated Circuits (ICs) . . . . . . . . . . . . . . . . . 156
11.2 Wafer processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
11.3 The oxide furnace and lithographic equipment . . . . . . . . . . . . . . . . . . 158
11.4 Analytical approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
11.5 Simulation-based analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Bibliography 165
vi Contents
Acknowledgements
This book is the result of years of research within the Systems Engineering Group of the
Department of Mechanical Engineering of the Eindhoven University of Technology. Credits
for the design of the language go to all members of the -club. In particular, we would like
to mention the following contributions. J.M. van de Mortel-Fronczak stood at the base of
the language [vdMFR95]. N.W.A. Arends was the rst to describe the formalism [Are96].
W. Alberts and G.A. Naumoski wrote the rst compiler (0.3) [AN98]. A.T. Hofkamp wrote
the real-time compiling system [Hof01] and the latest compiler (0.8). V. Bos and J.J.T.
Kleijn helped in providing a formal framework for [BK00]. D.A. van Beek gave suggestions
for improving the language. Finally, close cooperation of the Systems Engineering Group
with the Parallel Programming Group (formerly lead by M. Rem) and the Formal Methods
Group (lead by J.C. Baeten) has improved the quality of the language.
In addition, we would like to thank all (former) students and (former) members of the
Systems Engineering Group that have performed several projects involving the modelling
and analysis of manufacturing systems using in research and engineering environments.
Regarding this book, we thank L.F.P. Etman for his contribution to Chapter 3 and for
preparing a number of exercises. We thank A.A.J. Lefeber for providing the L
A
T
E
X-style le
for pretty-printing of the -specications. We thank E.J.J. van Campen for providing us
with photographs of the Crolles2 waferfab.
Finally, we thank all -club members for their suggestions and comments on this book.
vii
viii Acknowledgements
Chapter 1
Introduction
The title of this book is analysis of manufacturing systems. In this chapter we mark out
the main focus of the book.
1.1 Manufacturing Systems (MSs)
Manufacturing stems from the Latin words manus (hand) and factus (make). Nowadays,
by manufacturing we mean the process of converting raw material into a physical product
(we do not consider services to be manufacturable). A system is a collection of elements
forming a unied whole. Thus, a manufacturing system refers to any collection of elements
that converts raw material into a product. We can identify manufacturing systems at four
dierent levels.
At factory level the manufacturing system is the factory (also referred to as plant,
fabricator, or shortly fab). The elements of the system are areas and (groups of)
machines.
At area level the manufacturing system is an area of the factory with several machines
or groups of machines (cells). The elements of the system are individual machines.
At cell level the manufacturing system is a group of machines, that are typically
scheduled as one entity.
At machine level, the manufacturing system is the individual machine (also referred
to as equipment or tools). The elements of the system are machine components.
These levels constitute a hierarchical breakdown of the factory, see Figure 1.1.
In this book we will focus on manufacturing systems at area and cell level. Though, many
parts of this book are also applicable to analysis of entire factories or individual machines.
For instance, the analysis of the output (for instance the number of products processed per
hour) of a factory shows many similarities to analyzing the output of an area, or the output
of machine. Scheduling tasks at machine level is in many ways analogous to scheduling
orders at factory level or scheduling jobs at area level.
1
2 Chapter 1. Introduction
4
3
2
1
factory
area
manufacturing
cell
machine
Level
Figure 1.1: Manufacturing systems regarded at dierent levels
The types of manufacturing systems that can be analyzed using the approach described in
this book are as diverse as there are products. Some examples are:
a wafer fab (factory level), the lithography area (area level), a waferstepper (machine),
see Figures 1.2 and 1.3,
a CD-R fab (factory level), the CD-R mastering area (area level), a CD-R printing
machine(machine level), see Figure 1.4,
an automotive assembly factory (factory level), the bodywork assembly line (area
level), the welding robots (cell level), a single welding robot (machine level), see Fig-
ure 1.5.
Figure 1.2: Lithographic area of the Crolles2 waferfab in Grenoble, France
Figure 1.3: Waferinspection machine and waferstepper in the lithographic area of the
Crolles2 waferfab
1.2. Analysis of Manufacturing Systems (AMS) 3
Figure 1.4: CD optical mastering area, CD printing machine, CD packaging machine (source:
http://www.sonopress.de)
Figure 1.5: Automotive assembly line (source: http://www.mazda.com)
In this book we consider dierent types of manufacturing systems. Depending on the specic
industry we are in, we see for example shoes, a pod of wafers, or a printed-circuit board
moving through the factory. Throughout this book we use the term lot to refer to the
common transfer unit in the manufacturing system. If a machine processes multiple lots at
the same time, we say the machine processes batches. A batch is a set of lots.
1.2 Analysis of Manufacturing Systems (AMS)
Some typical design questions when designing or optimizing a manufacturing system are:
What machines do I choose? Do I choose a cheap machine that breaks down often, or
a more expensive machine, that breaks down less often?
How many machines do I use? Do I choose a single high-capacity machine, do I choose
multiple low-capacity machines in parallel, or a combination?
What conguration of workstations do I choose? Do I choose a owline, a jobshop, or
something in between?
Do I want buers and if so of what size?
What control strategy do I use for my plant? Do I release new orders at a xed rate
and if so at what rate? Do I release orders according to a precalculated schedule or
do I release orders based on the plant status?
4 Chapter 1. Introduction
This book does not go into much detail on the best answers, but presents a way to model and
analyze a manufacturing system to help you answer these questions yourself. We analyze
manufacturing systems with one objective: to evaluate and compare alternative manufac-
turing system designs and decide on the best alternative.
Question is: on what criteria do we evaluate and compare manufacturing systems? Many
dierent performance criteria exist. Some commonly used performance indicators are:
throughput : the number of lots per time-unit that leave the manufacturing system,
owtime : the time it takes a lot to travel through the system,
coecient of variation on the owtime (c
1
1
= 0 (2.3)
Herein
1
and
1
represent the mean arrival rate and throughput in steady state. For the
workstations in Figure 2.3(b) and (c), mass conservation in steady state yields:
1
1,1
1,2
= 0
2,1
+
2,2
2
= 0 (2.4)
We denote the total throughput of workstation 1 as
1
=
1,1
+
1,2
. Moreover, we have
considered workstations here, but we can just as well consider factories or areas.
Example 2.4 Manufacturing areas
Figure 2.4 shows a factory consisting of 6 areas and the raw processing time of every area.
Area 1 receives 3 lots/hour. After being processed in Area 1, 40% of all lots are processed
in Area 2 and 3, and 60% of all lots are processed in Area 4 and 5. Finally all lots are
processed in Area 6. Consider the factory in steady state and calculate the throughput of
Area 2 and 4 and the utilisation for all 6 areas.
The throughput rates for Areas 2 and 4 follow directly from the given probability data:
2
= 0.4
1
= 0.4 3 = 1.2 lots/hour
4
= 0.6
1
= 0.6 3 = 1.8 lots/hour
Area 1 processes 3 lots/hour. Processing 3 lots per hour in Area 1 takes 3 0.2 = 0.6 hours.
Every hour, the area is occupied for 0.6 hours, hence utilisation u
1
= 0.6.
Area 2 processes 1.2 lots/hour. Processing 1.2 lots in Area 2 takes 1.2 0.6 = 0.72 hours,
2.1. Manufacturing system principles 11
[hrs]
1
l
1
= 3 lots/hour d
6
0.4
0.6
1
2
3
4
5
6
0.2
0.6
0.4
0.3
0.4
0.3
Area t
0
2
4
3
5
6
Figure 2.4: Material ow in six manufacturing areas
hence utilisation u
2
= 0.72.
In a similar way, we calculate the utilisation for the remaining areas. u
3
= 0.48, u
4
= 0.54,
u
5
= 0.72, and u
6
= 0.9. As all utilisations are smaller than 1, lots do not pile up in this
system.
Example 2.5 Rework
Consider the manufacturing system in Figure 2.5(a). The manufacturing system consists of
two innite buers (B
1
and B
2
) and two machines (M
1
and M
2
). 50% of the lots processed
by machine 1 need to be reprocessed by machine 1. 25% of the lots processed by machine
2, have to be reprocessed by machine 1 and 2 again. Lots arrive at machine 1 with a xed
arrival rate of 3 lots/hour. Calculate (a) the number of lots that machine 1 processes per
hour and (b) the number of lots that leave the system via machine 2. Assume that the
system is in steady state.
B
1
M
1
50%
B
2
M
2
50%
25%
75%
3 lots/hr B
1
M
1
B
2
M
2
= 3 lots/hr
d
M
1
B
2
d
M
2
B
1
d
M
2
E
d
B
1
d
B
2
d
M
1
B
1
(a) (b)
l
B
1
Figure 2.5: Manufacturing line with rework
The total throughput of machine 1 splits into two ows. We introduce throughput
M1B1
and
M1B2
, denoting the number of lots/hour that are sent from machine M
1
back to the
rst buer B
1
and from machine M
1
forward to the second buer B
2
respectively. We
introduce additional throughput rates, see Figure 2.5(b). Throughput
M2E
denotes the
number of lots per hour that exit the system after being processed by machine M
2
. From
mass conservation and the probability data, we obtain the following equations:
B
1
B1
+
M1B1
+
M2B1
B1
= 0 (1)
M
1
M1B2
=
M1B1
= 0.5
B1
(2)
B
2
B2
=
M1B2
(3)
M
2
M2E
= 0.75
B2
(4a)
M2B1
= 0.25
B2
(4b)
Filling in (2), (3), and (4) in (1) leads to:
B1
+ 0.5
B1
+ 0.25
B2
B1
= 0
B1
+ 0.5
B1
+ 0.25
M1B2
B1
= 0
12 Chapter 2. Analytical models of deterministic manufacturing systems
B1
+ 0.5
B1
+ 0.125
B1
B1
= 0
B1
=
8
3
B1
= 8 lots/hour
Thus 8 lots/hour enter machine M
1
. In steady state, M
1
processes 8 lots/hour. Of these 8
lots/hour, 4 lots/hour proceed to buer B
2
and 4 lots/hour are lead back to buer B
1
.
The number of nished lots that leave the system after being processed on machine M
2
is:
M2E
= 0.75
B2
= 0.75
M1B2
=
3
8
B1
= 3 lots/hour
The throughput of this line is 3 lots/hour. Note that the number of lots entering the line is
equal to the number of lots leaving the line. Due to rework, machine M
1
has to process 8
lots/hour.
Second principle: Littles law
The second principle for manufacturing systems is Littles law. Littles law states that the
mean wip-level (number of lots in a manufacturing system) w is equal to the product of the
mean throughput and the mean owtime [Lit61], provided the system is in steady state.
w = (2.5)
This can be intuitively interpreted by looking at Figure 2.6, which treats a manufacturing
system as a pipeline where lots pass through. The total amount of uid in the pipeline in
[m
3
] is equal to the owrate in [m
3
/s] multiplied by the time it takes an imaginary uid
element to ow through the pipe in [s].
j
d w
Figure 2.6: Manufacturing system as pipeline
Analogously, the mean number of lots in a manufacturing system (wip-level w in [lots]) is
equal to the mean number of lots leaving the system per unit of time (throughput in
[lots/timeunit]) multiplied by the mean time a lot remains in the system (owtime in
[timeunits]). Littles law only applies in steady state.
Example 2.6 Automotive factory
We study the automotive factory in Figure 2.7. By simple measurements we determine that
2.2. Analysis of deterministic manufacturing systems 13
200 cars/day
25 days
Figure 2.7: Automotive factory
200 cars per day leave the factory. On average a car (or its parts) stay for 25 days in the
factory. Calculate the mean number of cars in the factory in steady state.
By Littles law we estimate that the factory contains w = = 200 25 = 5000 cars (or
parts for 5000 cars).
Example 2.7 Areas
A factory has four areas. 50% of the lots are processed in Area 1, 2, and 3. The remaining
50% is processed in Area 1 and 4. Through the year, we count the number of (semi-nished)
lots in each area. The mean number of lots in each area are shown in Figure 2.8. Moreover,
new lots arrive at Area 1 with a an arrival rate = 10 lots/hour. Calculate the mean
owtime per area.
1 2 3
4
10 lots/hour
5 lots/hour
5 lots/hour
Area w
1
2
3
4
100
120
100
240
Figure 2.8: Factory with four areas
With Littles law we calculate the mean owtime per area.
1
= w
1
/
1
= 100/10 = 10 hours
2
= w
2
/
2
= 120/5 = 24 hours
3
= w
3
/
3
= 100/5 = 20 hours
4
= w
4
/
4
= 240/5 = 48 hours
B1M1
=
M1
=
1
0.95
Each machine M
2
has to process 0.5 lots/hour. The utilisation for machines M
1
and M
2
is:
u
M1
= 1/0.95 1.8 = 1.89
u
M2
= 0.5 4 = 2
The two machines M
2
together form the bottleneck. The maximum throughput is attained,
if both machines M
2
are fully utilized. This is the case for = 0.5 lots/hour. This
manufacturing line has a maximum throughput
max
= 0.5 lots/hour.
If we plot the throughput and the utilisation u of a deterministic manufacturing system
against the arrival rate , we obtain diagrams very similar to the ones shown in Figure 2.11.
l [lots/hour]
d [lots/hour]
d
max
l [lots/hour]
u [-]
1
u
b
[-]
u
nb
[-]
l
max
l
max
Figure 2.11: Throughput and utilisation u against release rate
If release rate is lower than maximum throughput
max
, the throughput is equal to the
release rate (the system is in steady state). If the release rate is increased beyond
max
(=
max
), the throughput remains equal to
max
. The utilisation of the bottleneck u
b
in-
creases linearly with the release rate up to a maximum of 1. The utilisation of a non-
bottleneck station (u
nb
) also increases linearly with the release rate, but never reaches 1.
16 Chapter 2. Analytical models of deterministic manufacturing systems
Calculating owtime
Let us consider the manufacturing line in Figure 2.12. We have a two workstation
2
line.
Machine M
1
has a raw process time of 2 hours, machine M
2
has a raw process time of 3
hours.
d l
t
0
= 2 hours t
0
= 3 hours
B
1
M
1
B
2
M
2
Figure 2.12: Manufacturing line
We assume that the processing times of the machines are deterministic, that the buers
have innite capacity, and that the system is in steady state. The line in Figure 2.12 has a
maximum throughput of 1/3 lots/hour (machine M
2
is the bottleneck).
The basic approach for determining the owtime of a lot is virtually following a lot from the
moment it enters the system until it leaves the system again. In Figure 2.13 we display the
state of the system and the lots in it at dierent time instants. In this way we can follow
dierent lots as they travel through the line. We release lots at the maximum rate of 1/3
lots/hour.
t [hrs]
0
1
2
3
4
t
0
= 2 hrs t
0
= 3 hrs
6 j = 5 hrs
9 j = 5 hrs
0
0
0
0
0
0
1
1
1
2
3
1
2
lot number
Figure 2.13: State of the manufacturing line at dierent time instants
From Figure 2.13 we determine the owtime at 5 hours. Another way to follow lots as they
travel trough the line, is with a lot-time-diagram. Herein, we plot the state of individual lots
against time. Figure 2.14(a) and (b) show the lot-time-diagram for the line with a release
rate of 1/3 and 1/2 lots/hour respectively.
For a release rate of 1/3 lots/hour we determine from Figure 2.14(a) that the owtime is 5
hours. For a release rate of 1/2 lots/hour we see in Figure 2.14(b) that the owtime keeps
increasing. For any release rate under the maximum throughput the owtime is 5 hours,
for any release rate above the maximum throughput the owtime grows to innity.
2
The term workstation is used here to denote a combination of a buer and a machine or a buer and a
number of identical machines in parallel.
2.2. Analysis of deterministic manufacturing systems 17
t [ hrs]
lot
1 2
1 2
1 2
1 2
0
1
2
3
2 4 6 8 10 12 j [hrs]
1
5
5
5
5
lot
1 2
1 2
1 2
1 2
0
1
2
3
2 4 6 8 10 12 j [hrs]
1
5
6
7
8
q
q
q
q
(a)
(b)
l = 1/3 lots/hour
l = 1/2 lots/hour
14
j
2
j
3
lot is
processed on M
1
processed on M
2
waiting in queue
1
2
q
Figure 2.14: Lot-time-diagram for release rate of (a) 1/3 lots/hour and (b) 1/2 lots/hour
We can use the lot-time-diagram also to determine the mean wip-level. In Figure 2.15 we
derive the wip-level over time from the lot-time-diagram. For instance, for a release rate of
1/3 lots/hour, at t = 7 there are two lots in the system (lot 1 and 2).
t [ hrs]
lot
1 2
1 2
1 2
1 2
0
1
2
3
2 4 6 8 10 12
1
w
[lots]
0
1
2
t [ hrs]
2 4 6 8 10 12
t [ hrs]
lot
1 2
1 2
1 2
1 2
0
1
2
3
2 4 6 8 10 12
1
w
[lots]
0
1
2
t [ hrs]
2 4 6 8 10 12
q
q
q
q
3
(a) (b)
l = 1/3 lots/hour l = 1/2 lots/hour
w(t=7)
w(t=7)
Figure 2.15: Lot-time-diagram and w-t-diagram for release rate of (a) 1/3 lots/hour and (b)
1/2 lots/hour
For a release rate of 1/3 lots/hour, the behaviour becomes periodic for t > 3 hours with
a period of 3 hours, see Figure 2.15(a). We regard this periodic behaviour as steady state
behaviour
3
. The mean wip-level is w =
1
3
1 +
2
3
2 =
5
3
lots. (Try! Is this result in
correspondence with Littles law?) For Figure 2.15(b) the wip-level keeps increasing. For a
release rate higher than the maximum throughput, the mean wip-level grows to innity.
3
We speak of steady state when the mean number of lots in the system is constant. If the number of
lots in the system evolves periodically, the momentous number of lots in the system changes, but the mean
number of lots in the system is constant.
18 Chapter 2. Analytical models of deterministic manufacturing systems
We now extend the second workstation with a second machine M
2
, see Figure 2.16. Work-
station 2 is no longer the bottleneck: workstation 1 is now the bottleneck. The line has a
maximum throughput of 1/2 lots/hour.
d l
t
0
= 2 hours
t
0
= 3 hours
B
1
M
1
B
2
M
2
M
2
Figure 2.16: Manufacturing line with two parallel machines M
2
To determine the owtime of lots, we again draw lot-time-diagrams. Figures 2.17(a) and
(b) show the lot-time-diagram for a release rate of 1/3 and 1/2 lots/hour respectively.
t [ hrs]
lot
1 2,1
1 2,2
1 2,1
1 2,2
0
1
2
3
2 4 6 8 10 12 j [hrs]
1
5
5
5
5
lot
1 2,1
1 2,2
1 2,1
1
0
1
2
3
2 4 6 8 10 12 j [hrs]
1
5
5
5
5
(a)
(b)
l = 1/3 lots/hour
l = 1/2 lots/hour
2,2
2,2 5
14
lot is
processed on M
21
processed on M
22
processed on M
1
2,1
2,2
1
Figure 2.17: Lot-time-diagram for release rate of (a) 1/3 lots/hour and (b) 1/2 lots/hour
We see that for both release rates the owtime is 5 hours. Doubling the capacity at work-
station 2 increases the maximum throughput but does not inuence the owtime!
We can also use the lot-time-diagrams to determine the utilisation of the individual ma-
chines. From the lot-time-diagram we derive the state (idle or not idle) of the individual
machines, see Figure 2.18.
t [ hrs]
lot
0
1
2
3
2 4 6 8 10 12
1
t [ hrs]
2 4 6 8 10 12
t [ hrs]
lot
0
1
2
3
2 4 6 8 10 12
t [ hrs]
2 4 6 8 10 12
(a) (b)
l = 1/3 lots/hour l = 1/2 lots/hour
1 2,1
1 2,2
1 2,1
1 2,2
1 2,1
1 2,2
1 2,1
1
1
2,2
2,1
M
1
M
21
M
22
M
1
M
21
M
22
1.0
0.75
0.75
u [-]
0.67
0.50
0.50
u [-]
Figure 2.18: Lot-time-diagram and u-t-diagram for release rate of (a) 1/3 lots/hour and (b)
1/2 lots/hour
2.2. Analysis of deterministic manufacturing systems 19
(Try! From Figure 2.17 derive a wip-time-diagram and determine the mean wip-level for
both release rates. Verify the results by using Littles law.)
Example 2.9 Flowtime of a manufacturing line
Consider the manufacturing line in Figure 2.19. The manufacturing line consists of three
workstations with 1, 4, and 2 machines respectively. The machines have raw process times
of 0.15, 0.8 and 0.35 hours respectively.
t
0
= 0.8 hours
t
0
= 0.15 hours
t
0
= 0.35 hours
workstation 1 workstation 2 workstation 3
Figure 2.19: Three workstation owline
(i) Calculate the maximum throughput. (ii) Draw a lot-time-diagram and determine the
owtime at =
max
. (iii) From the lot-time-diagram derive a wip-time-diagram and
determine the mean wip-level in steady state. Verify that the results are in correspondence
with Littles law.
(i) We calculate the utilisation for each machine in terms of release rate . At release rate
lots/hour, machine 1 is processing 0.15 hours every hour, u
1
= 0.15. Each machine in
workstation 2 has to process
1
4
lots/hour, thus each machine is processing for
1
4
0.8 = 0.2
hours every hour, u
2
= 0.2. Similarly, u
3
=
1
2
0.35 = 0.175. Workstation 2 is the
bottleneck. The maximum throughput is attained when u
2
= 1. For u
2
= 0.2 = 1, we get
max
=
max
= 1/0.2 = 5 lots/hour.
(ii) Figure 2.20(a) shows the lot-time-diagram.
t [ hrs]
lot
1 2,1 0
1
2
3
0.4 0.8 1.2 1.6 2.0
w
[lots]
0
t [ hrs]
4
3,1
1 2,2 3,2
1 2,3 3,1
1 2,4 3,2
1 2,1 3,1
l = 5 lots/hour
0.4 0.8 1.2 1.6 2.0
1
2
3
4
5
6
7
j [hrs]
1.3
1.3
1.3
1.3
lot is processed on
workstation 1
first machine of workstation 2
second machine of workstation 3
1
2,1
3,2 1.3
(a)
(b)
Figure 2.20: Lot-time-diagram and w-t-diagram for release rate of 5 lots/hour
From the lot-time-diagram we determine = 0.15 + 0.8 + 0.35 = 1.3 hours.
(iii) Figure 2.20(b) shows the wip-time-diagram derived from the lot-time diagram. From
the wip-time-diagram we see that the wip changes periodically for t > 1.2 hours. For t > 1.2
20 Chapter 2. Analytical models of deterministic manufacturing systems
hours, the system is in steady state. The mean wip level in steady state is w =
1
2
6+
1
2
7 = 6.5
lots. Using Littles law we calculate the mean wip-level at w = = 5 1.3 = 6.5 lots.
The results correspond.
For simple deterministic manufacturing lines, like the ones in Figure 2.12, Figure 2.16, and
Example 2.9 the owtime is simply determined. For release rates under the maximum
throughput the owtime is equal to the sum of the process times the lot encounters, and
for release rates higher than the maximum throughput, the owtime grows to innity, see
Figure 2.21.
j [hours]
j
l [lots/hour] l
max
Figure 2.21: Flowtime against release rate
In these simple cases, following lots, or constructing a lot-time-diagram is not necessary to
determine the owtime. However, for manufacturing systems with a little more complexity,
a lot-time-diagram may be a very useful approach to determine the owtime. In the sequel,
we regard two more complex examples in which we determine the owtime of a lot by
constructing a lot-time-diagram.
Example 2.10 Flowtime for a batch machine
Consider the batch machine in Figure 2.22 which processes batches with a xed batchsize
of k = 6 lots. Lots arrive with an arrival rate of lots/hour. Processing a batch takes 3
hours. (i) Determine maximum throughput
max
of the batch machine. (ii) Determine the
(mean) owtime of a lot for two release rates under
max
. Is the owtime independent of
the release rate? (iii) Find an expression for the mean owtime of a lot for a deterministic
batch machine with xed batch size k, batch processing time t
batch
and release rate .
batch
machine
l lots/hour
k = 6 t
batch
= 3 hrs
Figure 2.22: Batch machine
(i) The batch machine has to process a batch every
6
rst
=
wait for batch
+t
batch
=
k 1
+t
batch
last
= t
batch
As long as <
max
, mean owtime is:
=
(k 1)/ +t
batch
+t
batch
2
=
k 1
2
+t
batch
(2.6)
For release rates >
max
, the mean owtime grows to innity.
22 Chapter 2. Analytical models of deterministic manufacturing systems
Example 2.11 Machine with alternating process times
Consider a two-workstation owline. Each workstation consists of a single machine and
an innite buer. Machine 1 has a constant process time of 3.0 hours. Machine 2 has
an alternating process time of 1.0 and 5.0 hours, that is, the process time follows the
deterministic sequence 1.0, 5.0, 1.0, 5.0, 1.0, ....
d l
t
0
= 3.0 hours t
0
= 1.0 or 5.0 hours
B
1
M
1
B
2
M
2
Figure 2.24: Two-workstation owline with alternating process times for second machine
(i) What is the maximum throughput of this line? (ii) Determine the (mean) owtime of a
lot. (iii) Construct a wip-time-diagram and determine the mean wip-level in steady state.
Verify your result with Littles law.
(i) If lots are released at a rate lots/hour, machine 1 and 2 have to process 2 lots per
2
hours. Processing two lots requires 2 3.0 = 6.0 hours on machine 1, and 1.0 + 5.0 = 6.0
hours on machine 2. The utilisation for both machines is u
1
= u
2
=
6.0
2/
= 3. Both
machines are bottlenecks. The maximum throughput is
max
=
max
= 1/3 lots/hour.
(ii) We construct a lot-time-diagram for a release rate of 1/3 lots/hour, see Figure 2.25(a).
lot
1 2 0
1
2
3
2 4 6 8 10 12 j [hrs]
4
8
6
8
l = 1/3 lots/hour
6
14
lot is
processed on M
1
processed on M
2
waiting in queue
1
2
q
1 2
1 2
1
1
2
2
q
q
16
4
1
w
[lots]
0
1
2
t [ hrs]
2 4 6 8 10 12
(a)
(b)
t [ hrs]
14
period
Figure 2.25: Lot-time-diagram and wip-time-diagram for = 1/3 lots/hour
From the lot-time-diagram we determine the mean owtime at (8+6)/2 = 7 hours. Note
that we determine the mean owtime only after the system has reached steady state, that
is, behaves periodically. Note that the owtime again depends on the release rate.
(iii) Figure 2.25(b) shows the wip-time-diagram. For t > 6 hours the wip-level evolves
periodically with a period of 6 hours. The mean wip level is w =
2
6
3 +
4
6
2 =
14
6
=
7
3
lots.
With Littles law: w = =
1
3
7 =
7
3
lots.
Please note, that determining the owtime in the way we discussed here only works for
deterministic systems!
For deterministic system systems the process times (or other properties) need not be con-
stant, as long as the changes are deterministic! Recall that the second machine in Exam-
ple 2.11 did not have a constant process times, but the changes were predetermined and
2.3. Exercises 23
therefore the process time was deterministic. If the process time was stochastic, for example
the process time is either 1.0 or 5.0, both with 50% probability, we can only construct a lot-
time-diagram that represents one of the many possible outcomes. For example it could hap-
pen that the process time of machine 2 follows the sequence {1.0,1.0,5.0,5.0,5.0,1.0,1.0,5.0}.
For this sequence the owtime is signicantly higher. (Try! Determine the owtime for
this sequence.) But in case of stochastic process times, any other sequence is possible. We
can no longer use the approach presented in this section. The same holds for stochastic
arrival times, stochastic chance on rework, stochastic break-down, or any other source of
stochasticity.
In Chapter 3 we consider mathematical models to calculate the owtime for stochastic
process and inter-arrival times.
Keyword overview
Modelling manufacturing systems Analyzing manufacturing systems
mass conservation
utilisation u, bottleneck,
maximum throughput
Littles law
throughput and owtime calculation
for deterministic manufacturing systems
2.3 Exercises
1. Consider the manufacturing system with rework and bypassing in Figure 2.26. The
manufacturing system consists of three buers and four machines.
B
1
t
0
[hrs]
l
machine
M
1
M
2
M
3
M
4
2.0
6.0
1.8
1.6
0.9
0.1
0.2
0.8
d
M
1
B
2
M
2
M
3
M
4
B
3
Figure 2.26: Manufacturing system with rework and bypassing
Lots are released at a rate of lots/hour. The numbers near the arrows indicate the
fraction of the lots that follow that route. For instance, of the lots leaving buer B
1
90% goes to machine M
1
and 10% goes to buer B
3
. The process time of each machine
is listed in the table in Figure 2.26.
(a) Express the throughput of machine M
1
, M
3
, and M
4
in terms of .
(b) Express the throughput of machine M
2
in terms of .
(c) Express the utilisation of each machine in terms of .
(d) What machine is the bottleneck? Determine the maximum throughput of this
system.
24 Chapter 2. Analytical models of deterministic manufacturing systems
2. Consider a three-workstation owline. The workstations each have an innite buer
and contain 1, 3, and 2 machines respectively. The process time of the machines in
workstation 1,2 and 3 is 0.9, 3.0, and 1.9 hours respectively.
(a) Calculate the maximum throughput of the line.
(b) Use a lot-time-diagram to determine the owtime of a lot for release rates under
the maximum throughput.
(c) Determine the mean wip-level in the line for the maximum throughput.
3. We have a three-workstation owline. Each workstation consists of an innite buer
and a number of machines. The number of machines has still to be determined. The
machines in workstation 1,2, and 3 have a process time of 0.10, 0.15, and 0.06 hours
respectively. We want to establish a throughput of 60 lots/hour.
(a) Determine the owtime of a lot for release rates under the maximum throughput.
(b) Determine the number of machines in workstation 1,2, and 3 required to attain
the desired throughput of 60 lots/hour.
(c) Which workstation (what workstations) is (are) the bottleneck?
4. Consider a two-workstation owline with two machines. The two machines have a
process time of 2.0 and 3.0 hours respectively. The machines may be placed in any
order. The two alternatives are shown in Figure 2.27.
t
0
= 2.0 hr t
0
= 3.0 hr
l d
t
0
= 3.0 hr t
0
= 2.0 hr
l d
(a)
(b)
B
1
M
1
B
2
M
2
B
1
M
1
B
2
M
2
Figure 2.27: Two owline congurations
(a) What is
max
for the line in Figure 2.27(a)?
(b) What happens when we set >
max
?
(c) What is
max
for the line in Figure 2.27(b)?
(d) What happens when we now set >
max
?
5. Consider the re-entrant owline in Figure 2.28. Lots are released in the line by gen-
erator G at a rate of lots/hour. Each lot passes through the owline twice and has
the same xed route, namely M
1
, M
2
, M
1
, M
2
. If a newly released lot and a re-entrant
lot arrive at a machine at the same time, the re-entrant lot is processed rst.
t
0
= 2.0 hr t
0
= 2.0 hr
l
G E B
1
M
1
B
2
M
2
Figure 2.28: Re-entrant owline
2.3. Exercises 25
(a) Express the utilisation of machine 1 in terms of release rate and determine the
maximum throughput.
(b) Construct a lot-time-diagram for =
1
5
lots/hour and determine the (mean)
owtime of a lot.
(c) From the lot-time-diagram, derive a wip-time-diagram, and determine the mean
wip-level in steady state.
(d) Verify your result using Littles law.
6. We have a two workstation owline. Workstation 1 consists of an innite buer and a
single-lot
4
machine. Workstation 2 consists of an innite buer and a batch machine.
The single-lot machine has a process time of 2.0 hours. The batch machine processes
in xed batches of 5 lots. The process time of a batch is 8.0 hours.
l
t
0
= 2.0 hrs
t
batch
= 8.0 hrs
k = 5 lots
Figure 2.29: Single-lot and batch machine in series
(a) Express the utilisation of the single-lot machine and the batch machine in terms
of release rate and determine the maximum throughput.
(b) Construct a lot-time-diagram for =
1
2
lots/hour. Determine the (mean) ow-
time of a lot.
(c) Calculate the mean owtime of a lot without using the lot-time-diagram. You
can use the equation found in Example 2.10(iii).
(d) Determine the mean wip-level.
(e) Can we decrease the mean wip-level by increasing the release rate?
We replace the batch machine by a cheaper one. This machine processes batches of
size 4. Processing a batch takes 10 hours.
l
t
0
= 2.0 hrs
t
batch
= 10.0 hrs
k = 4 lots
Figure 2.30: Single-lot and batch machine in series (2)
(f) Determine the maximum throughput of the line and determine the utilisation of
the single-lot machine when the line attains the maximum throughput.
(g) Construct a lot-time-diagram for this line, for the maximum release rate. Deter-
mine the (mean) owtime of a lot.
(h) Calculate the mean owtime of a lot without using the lot-time-diagram. You
can use the equation found in Example 2.10(iii).
4
A single-lot machine processes one lot at a time.
26 Chapter 2. Analytical models of deterministic manufacturing systems
7. We have a two-workstation owline. Each workstation consists of an innite buer
and a single machine. The owline is used to process two types of products: type A
and type B. Table 2.1 shows the process time on each machine per type.
machine 1 machine 2
type A 3.0 2.5
type B 2.0 2.5
Table 2.1: Processing times of dierent product types in [hours]
New products are released in the owline with a rate of prods/hour. The product
types are released in a xed sequence: {A,A,B,B,B,A,A,B,B,B,A,A,B,B,B,...}.
(a) Express the utilisation of machine 1 and 2 in terms of release rate . Determine
the maximum throughput of this line.
(b) What is the maximum throughput specied per product type, that is, how many
products of each type are processed per hour on average?
(c) Construct a lot-time-diagram for a release rate of = 0.4 prods/hour.
(d) Determine the mean owtime per product in steady state.
(e) Calculate the average wip level in steady state.
(f) Calculate the average wip level in steady state, specied per product type.
2.4 Additional exercises
8. The manufacturing system in Figure 2.31 consists of 6 workstations. 20% of the lots
processed by workstation W
4
need rework. The lot is rst stripped in workstation W
5
and then reprocessed by workstation W
2
and W
3
.
W
1
0.8
W
2 W
3
W
4
W
5
W
6
0.2
d
l
Figure 2.31: Manufacturing line
The numbers at the arrows indicate the fraction of the lots that follow that route.
(a) Calculate the total throughput of workstation 2,3, and 5 in terms of release rate
.
(b) Calculate the throughput
W4W5
and
W4W6
for workstation 4.
(c) Verify that conservation of mass holds for system W
2
W
3
W
4
W
5
.
2.4. Additional exercises 27
9. Figure 2.32 shows a owline with bypassing loops going from workstation 1 to work-
station 2, 3, and 4. The numbers at the arrows indicate the fraction of the lots that
follow that route.
W
1
W
2
W
3
W
4
l d
0.1
0.1
0.1
0.7
Figure 2.32: Manufacturing line with bypassing
(a) Use mass conservation to determine the throughput of workstations 1,2,3, and 4.
(b) Verify that conservation of mass holds for system W
1
W
2
W
3
W
4
.
10. Figure 2.33 shows a owline of workstations with rework loops. 20% of the lots pro-
cessed by workstation 2 need rework on workstation 1 and 2. 20% of the processed by
workstation 3 need rework on workstation 2 and 3. Finally, 30% of the lots processed
by workstation 4 need rework on 3 and 4.
W
1
W
2
W
3
W
4
l d
0.8 0.7 0.8
0.2 0.3 0.2
Figure 2.33: Manufacturing line with rework
(a) Intuitively, what workstation will have to process the most lots?
(b) Write down the mass conservation equations for workstation 1 through 4.
Mass conservation on system W
1
W
2
W
3
W
4
yields that = . For the total throughput
of workstation 4 we have
W4
= +
W4W3
.
(c) Calculate
W4
in terms of .
(d) Calculate the throughput of each workstation in terms of .
(e) Assuming that the raw process time t
0
for each workstation is 1.0 hours, what
workstation is the bottleneck? (Does this correspond to your initial guess in a)?)
(f) What is the maximum throughput of this line?
11. Figure 2.34 shows a so-called job shop. In a job shop lots can each have very dierent
routings. The from-to-matrix is used to indicate the fraction of the lots that go from
a specic workstation to another workstation. For example, 10% of lots that nish
processing on workstation 1 go to workstation 2, 80% goes to workstation 3, and 10%
goes to workstation 4. All lots enter the job shop via workstation 1 and leave the job
shop via workstation 4.
28 Chapter 2. Analytical models of deterministic manufacturing systems
W
1
W
2
W
3
W
4
in
out
l
d
to
f
r
o
m
1 2 3 4 out
in
1
2
3
4
1.0
0.5
0.1 0.8 0.1
0.1
0.7
0.7 0.2
0.1
0.0 0.2
0.2
0.3
Figure 2.34: (a)Job shop, (b) From-to-matrix
(a) Intuitively, what workstation processes the most lots in this job shop?
(b) Write down the mass conservation equations for each workstation.
(c) Show that we can write these equations as the following matrix equation.
_
_
1 0.2 0.1 0
0.1 1 0.2 0.2
0.8 0.7 1 0.3
0.1 0.1 0.7 1
_
_
_
W1
W2
W3
W4
_
_
=
_
0
0
0
_
_
(d) Solve the matrix equation (for example using Matlab).
(e) How can you easily verify that the throughput
W4
is indeed 2? Do the results
correspond to your intuition built in part a)?
(f) The process time t
0
for workstation 1,2,3, and 4 is 1.0, 1.3, 0.7, and 0.8 hours
respectively. Which workstation is the bottleneck?
Chapter 3
Analytical models of stochastic
manufacturing systems
In the previous chapter we presented analytical approaches to determine the (maximum)
throughput, the owtime and the wip-level for deterministic manufacturing systems, that is,
systems with deterministic process times, deterministic arrival rate, deterministic routings,
and no other sources of stochasticity. At the end of the previous chapter, we argued that
these analytical approaches are no longer useful when stochasticity is involved. In this
chapter we present an analytical approach to analyze manufacturing systems, that feature
stochastic process times, stochastic inter-arrival times, or other stochastic phenomena. Not
being a book about queueing theory or stochastic process theory we do not go into details
and derivations. Instead we refer to other books for derivations. We restrict ourselves to the
basic queueing relations for a single workstation (Section 3.2), for a owline (Section 3.3)
and some extensions on these queueing relations for batching (Section 3.5).
3.1 Classication of manufacturing queueing models
The basic manufacturing queueing model is shown in Figure 3.1.
l = 1/t
a
d = 1/t
d
m = 1/t
0
N
machines buffer
.
.
.
Figure 3.1: Basic queueing model
The basic model is a workstation that consists of a buer and a number of identical parallel
machines. The workstation is characterized by the following quantities.
29
30 Chapter 3. Analytical models of stochastic manufacturing systems
Inter-arrival time t
a
(with arrival rate = 1/t
a
) denotes the time between two sub-
sequent lots entering the system. It is characterized by a distribution, with mean t
a
and coecient of variation
1
c
a
.
Process time t
0
(with service rate = 1/t
0
) is the time it takes the machine to
process a lot. Stochastic process time is characterized by a distribution with mean t
0
and coecient of variation c
0
.
Buer size N (or maximum queue length) is the maximum number of lots that can
be stored in the buer.
The number m of parallel identical machines in the workstation.
Inter-departure time t
d
(with throughput = 1/t
d
) denotes the time between two
subsequent lots leaving the system.
Kendall [Ken53] introduced a shorthand notation for the characteristics of a workstation
of the form A/B/m/N. Herein A and B represent the distribution of the inter-arrival
time and the distribution of the process time respectively. We distinguish three classes of
distributions: an M denotes an exponential (or Markovian, or memoryless) distribution,
a D denotes a deterministic distribution, and a G denotes any (or a general) distribution.
The m in the Kendall notation refers to the number of parallel machines in the workstation
and the N denotes the maximum number of lots in the buer.
For example, an M/M/1/ workstation is a workstation with an innite buer where lots
arrive with exponentially distributed inter-arrival times and one machine that has exponen-
tial processing times. In case of innite buers, the symbol is often omitted from the
Kendall notation. So, a G/D/1 workstation is single-machine workstation with an innite
buer, the machine has a deterministic process time and the inter-arrival time of the lots
can be any distribution.
3.2 Queueing relations for single-machine workstation
Consider a workstation that consists of innite buer B
M t
a
, c
a
2
Figure 3.2: Single machine workstation
precondition implies that the mean inter-departure time t
d
is equal to the mean inter-
arrival time t
a
. The approximation of Kingman [Kin61, Tij94] states that the mean waiting
time
B
in buer B can be approximated by:
B
=
c
2
a
+c
2
0
2
u
1 u
t
0
(3.1)
Every t
a
hours, the machine has to process a lot, which takes t
0
hours, thus the utilisation
u = t
0
/t
a
.
The Kingman relation in Equation 3.1 is composed of three factors: a variability factor
(c
2
a
+c
2
0
)/2, a utilisation factor u/(1 u) and a term with the process time t
0
.
The variability term indicates that if both inter-arrival and process times are deter-
ministic (constant), the waiting time in the buer is 0. The higher the variability in
the inter-arrival time or in the process time, the longer the mean waiting time in the
buer becomes.
The utilisation factor shows that the average waiting time of a lot in the buer in-
creases in a non-linear fashion for increasing utilisation. As an extremum the system
becomes unstable if u = 1. Utilisations of 80% and higher give rise to long waiting
times in systems with variability.
The nal factor is the mean process time. The mean waiting time is proportional with
the mean process time.
Equation 3.1 is exact for an M/G/1 system (as already shown by Pollaczek-Khinchine [Pol30,
Khi32]), that is, a single machine workstation with exponentially distributed inter-arrival
times and any distribution for the process time. For other single machine workstations it is
an approximation. As an example, let us consider an M/M/1 system.
Example 3.1 M/M/1 system
An M/M/1 system consists of an innite buer and a single machine. The inter-arrival
times and process times are distributed according to an exponential distribution. For an
exponential distribution, the mean is equal to the standard deviation. The mean inter-
arrival time t
a
is 4.0 hours, the mean process time t
0
is 3.0 hours. Determine the mean
owtime per lot.
For an exponential distribution holds: c = / = 1, so c
2
a
= 1 and c
2
0
= 1. Applying
Equation 3.1 yields:
B
=
c
2
a
+c
2
0
2
u
1 u
t
0
=
1 + 1
2
u
1 u
t
0
=
u
1 u
t
0
32 Chapter 3. Analytical models of stochastic manufacturing systems
The total owtime becomes:
=
B
+t
0
= (
u
1 u
+ 1) t
0
=
t
0
1 u
=
3
0.25
= 12 hours
As the M/M/1 system is an element of the class of M/G/1 systems, the calculation of the
owtime is exact.
An interesting parameter is the owtime factor /t
0
, which relates the total owtime to the
raw process time (minimal owtime). For Example 3.1 the owtime factor is 4, indicating
that on average 75% of the owtime is due to waiting in the buer.
Example 3.2 Flowtime for a workstation with high and low process times
Consider a single machine workstation with an innite buer and a machine. The machine
has a process time of either 1.0 or 5.0. The inter-arrival times are distributed according
to an exponential distribution, with mean inter-arrival time t
a
= 4.0 hours. Determine the
mean owtime and the mean number of lots waiting in the buer.
Since, the inter-arrival times are distributed according to an exponential distribution, c
2
a
= 1.
Next, we calculate the standard deviation s
0
on the process time.
s
2
0
=
1
n
n
i=1
(x
i
x)
2
=
(1.0 3.0)
2
+ (5.0 3.0)
2
2
= 4.0
The squared coecient of variation becomes:
c
2
0
=
s
2
0
t
2
0
=
4.0
3.0
2
=
4
9
Applying Equation 3.1 yields:
B
= (
c
2
a
+c
2
0
2
u
1 u
) t
0
= (
1 + 4/9
2
0.75
1 0.75
) 3.0 = 6.5 hours
Using Littles law, we determine the mean number of lots in the buer:
w
B
=
B
= 6.5 1/4 = 1.63 lots
This manufacturing system is an M/G/1 system, so the calculated owtime (and thus wip-
level) are exact.
Figure 3.3 shows the mean total owtime for an M/G/1 system determined analytically
as a function of the utilisation u, with c
a
= 1, t
0
= 3.0 hours, and c
0
= {0, 1, 3}.
No machine can ever be utilized for the full hundred percent, since almost all manufacturing
systems contain some sort of variability, which causes the owtime (and thus wip-level) to
go to innity for u = 1. In industry this simple observation is often overlooked. But also for
utilizations smaller than one, we can clearly see that owtime increases strongly at higher
utilisation levels. The higher the machine is utilized the larger the average waiting time of
lots in the queue is, which results in larger owtimes. Especially in make-to-order industries
one strives for short owtimes to keep customers happy.
The only way one can improve the trade-o between utilization and owtime is to decrease
variability. Figure 3.3 shows that for a low variability level the waiting time stays relatively
3.3. Queueing relations for a owline 33
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
10
20
30
40
50
60
70
80
90
100
u [-]
M
e
a
n
f
l
o
w
t
i
m
e
[
h
o
u
r
s
]
C
0
= 3.0
C
0
= 0.0
C
a
= 1.0
C
0
= 1.0
Figure 3.3: Mean owtime for a M/G/1 system for dierent values of c
0
small even for high utilization levels. The nonlinear increase of waiting time occurs for
very high utilizations. On the other hand, high variability levels cause the waiting time to
strongly increase for low utilization levels.
In Chapter 5 we investigate the validity of this analytical relations by simulation.
3.3 Queueing relations for a owline
In practice, we often encounter chains of buers and machines. As an example, consider a
three workstation owline, see Figure 3.4.
c
d,1
= c
a,2
c
d,0
= c
a,1
M
0
t
0,0
, c
0,0
t
0,1
, c
0,1
t
d,0
= t
a,1
M
1
M
2
t
0,2
, c
0,2
t
d,1
= t
a,2
B
B
B
c
a,0
t
a,0
c
d,2
t
d,2
Figure 3.4: Three workstation owline
We calculate the mean owtime for workstation 0 by using Equation 3.1. To calculate
the mean owtime for workstation 1, we need the inter-arrival time distribution for work-
station 1. The inter-arrival times of workstation 1 are equal to the inter-departure times
of workstation 0 (mean t
d,0
, coecient of variation c
d,0
). For a stable system, we have
t
a,0
= t
d,0
= t
a,1
= t
d,1
= t
a,2
= t
d,2
(conservation of mass). But how do we determine c
d,1
?
We can approximate the coecient of variation c
d
by Kuehns linking equation [Kue79]:
c
2
d
= (1 u
2
) c
2
a
+u
2
c
2
0
(3.2)
Equation 3.2 indicates that for low utilisations (u 0) the squared coecient of variation
on the inter-departure times c
2
d
resembles the squared coecient of variation on the inter-
34 Chapter 3. Analytical models of stochastic manufacturing systems
arrival times c
2
a
(c
2
d
c
2
a
). For low utilisations, lots seldomly have to wait in the buer before
being processed. The variability on the departure is inherited from the arrival pattern. For
high utilisations (u 1), c
2
d
resembles the squared coecient of variation on the process
times c
2
0
(c
2
d
c
2
0
). For high utilisations, lots usually have to wait in the buer before they
are processed. The variability of the arrival is levelled out by the large queue in the buer.
The variability on the departure is dictated by the process time variability.
Example 3.3 Three workstations in line
Consider the three workstation owline from Figure 3.4. For the inter-arrival time at work-
station 0 we have t
a,0
= 4.0 hours and c
2
a,0
= 1. The three workstations are identical with
respect to the process times: t
0,i
= 3.0 hours and c
2
0,i
= 0.5 hours for i = 0, 1, 2. Determine
the mean total owtime per lot.
Since t
a
> t
0,i
for i = 0, 1, 2, we have a stable system and t
a,i
= t
d,i
= 4.0 hours for
i = 0, 1, 2. Subsequently, the utilisation for each workstation is u
i
= 3.0/4.0 = 0.75 for
i = 0, 1, 2.
We calculate the mean owtime for workstation 0, using Equation 3.1.
0
=
B
+t
0,0
=
c
2
a,0
+c
2
0,0
2
u
1 u
t
0,0
+t
0,0
=
1 + 0.5
2
0.75
1 0.75
3.0+3.0 = 9.75 hours
Next, we determine the coecient of variation on the inter-arrival time c
a,1
for workstation
W
1
using Equation 3.2.
c
2
a,1
= c
2
d,0
= (1 u
2
) c
2
a,0
+u
2
c
2
0,0
= (1 0.75
2
) 1 + 0.75
2
0.5 = 0.719
We calculate the mean owtime for workstation 1.
1
=
0.719 + 0.5
2
0.75
1 0.75
3.0 + 3.0 = 8.49 hours
In a similar way, we determine that c
2
a,2
= 0.596 and
2
= 7.93 hours. We then calculate
the mean total owtime.
tot
=
0
+
1
+
2
= 26.2 hours
Note that the minimal owtime without variability (c
2
a,0
= c
2
0,i
= 0) equals 9.0 hours.
We investigate the validity of Kuehns linking equation in Chapter 6.
3.4. Identical parallel machines 35
3.4 Identical parallel machines
The relations from the previous sections allow us to determine the owtime for a single-
machine workstation and a owline of a single-machine workstations. In this section we wish
to determine the owtime and the coecient of variation on the inter-departure time for a
workstation with identical parallel machines. Figure 3.5 shows a workstation that consists
of an innite buer and m parallel identical machines.
1
.
.
.
t
0
, c
0
2
t
d
, c
d
2
m
t
a
, c
a
2
B
t
0
, c
0
2
Figure 3.5: Workstation with m identical parallel machines
In this workstation, all lots wait in a single queue for the next available machine. For a work-
station with m identical parallel machines, the waiting time in the buer is approximated
by the following equation [HS01].
B
=
c
2
a
+c
2
0
2
u
2(m+1)1
m(1 u)
t
0
(3.3)
A reasonable approximation for the coecient of variation on the inter-departure times is
the following linking equation [HS01].
c
2
d
= 1 + (1 u
2
)(c
2
a
1) +
u
2
m
(c
2
0
1) (3.4)
Both equations are approximations, which are fairly accurate for high degrees of utilisation
and less accurate for lower degrees of utilisation. Note that for m = 1 Equations 3.3 and
3.4 reduce to Equations 3.1 and 3.2. Be careful to calculate the utilisation in accordance
with the number of machines!
Example 3.4 Parallel machines
Consider the owline in Figure 3.6.
1
t
0
= 3.0 hr
t
d
, c
d
2
2,1
2,2
2,3
2,4
3,1
3,2
t
a
, c
a
2
c
0
= 0.5 hr
t
0
= 14.0 hr
c
0
= 1.0 hr
t
0
= 6.0 hr
c
0
= 0.8 hr
B
1
=
c
2
a,1
+c
2
0,1
2
u
1
1 u
1
t
0,1
+t
0,1
=
1 + 0.5
2
2
0.75
1 0.75
3.0 + 3.0 = 8.625 hours
To calculate the owtime for workstation 2, we need the coecient of departure for work-
station 1, using Equation 3.2.
c
2
d,1
= c
2
a,2
= (1 u
2
1
) c
2
a,1
+u
2
1
c
2
0,1
= (1 0.75
2
) 1 + 0.75
2
0.5
2
= 0.578
We calculate the mean owtime for workstation 2. Workstation 2 contains 4 parallel ma-
chines.
2
=
c
2
a,2
+c
2
0,2
2
u
2(m2+1)1
2
m
2
(1 u
2
)
t
0,2
+t
0,2
=
0.578 + 1.0
2
0.875
101
4 (1 0.875)
14.0 + 14.0 = 30.55 hours
We calculate the coecient of variation on the inter-departure times.
c
2
d,2
= c
2
a,3
= 1 + (1 u
2
2
) (c
2
a,2
1) +
u
2
2
m
2
(c
2
0,2
1)
= 1 + (1 0.875
2
) (0.578 1) + 0 = 0.901
In a similar way, we determine that
3
= 12.09 hours and c
2
d,3
= 0.8136. The mean total
owtime is
tot
=
1
+
2
+
3
= 51.27 hours
Note that the minimal owtime without variability (c
2
a
= c
2
0,i
= 0) equals 24.0 hours.
3.5. Batch machines 37
3.5 Batch machines
In this chapter we have regarded single-lot machines only. In the previous chapter we
discussed batch machines with deterministic process and inter-arrival times. In this section
we take a look at batch machines with stochastic process and inter-arrival times.
Consider a batch machine that processes lots in batches. The batches have a xed size
k. The machine starts processing the batch only after the batch is complete. The batch
machine is depicted in Figure 3.7.
batchsize k
t
0,b
c
0,b
c
a,l
t
a,l
2
2
t
d,b
c
d,b
2
Figure 3.7: Machine processes batches of xed batch size k
Lots arrive with a mean inter-arrival time t
a,l
and squared coecient of variation c
2
a,l
. Pro-
cessing a batch takes on average t
0,b
, with a squared coecient of variation c
2
0,b
. Question
now is: what is the mean owtime?
We take a closer look at the lots in the buer. We, imaginarily, divide the buer into two
parts. In the rst part of the buer, lots wait until they have formed a complete batch. In
the second part the batches of lots wait for the machine to become idle. The mean owtime
for the batch machine is the sum of the wait-to-batch-time
Bk
, the queueing time of the
batches
Bq
, and the processing time.
batchsize k
c
a,l
t
a,l
2
t
0,b
c
0,b
t
d,b
c
d,b
2
t
a,b
, c
a,b
j
Bq j
Bk
2
2
Figure 3.8: Lots rst form a batch and then wait to be processed
The wait-to-batch-time
Bk
is not equal for all lots in a batch. The rst lot in the batch
has to wait for (k 1) lots to arrive, while the last lot in the batch does not have to wait
at all before the batch is complete. The mean wait-to-batch-time is:
Bk
=
Bk
(rst) +
Bk
(last)
2
=
(k 1) t
a,l
+ 0
2
=
(k 1)
2
t
a,l
Note that this result is identical to the result obtained in Example 2.10. After the batch is
complete, it is possible that the machine is not idle and the batch has to wait. In fact, we
can regard the batch machine and the queue of batches in the same way as a basic single-lot
workstation. From Section 3.2 we know that the waiting time in the queue is:
Bq
=
c
2
a,b
+c
2
0,b
2
u
1 u
t
0,b
38 Chapter 3. Analytical models of stochastic manufacturing systems
Herein c
a,b
is the coecient of variation on the inter-arrival time of batch! However, we
only know the variation on the inter-arrival time of a lot. Question is: how do we derive c
a,b
from c
a,l
? From basic statistics we know that for k independent stochastics the variance of
the sum of these stochastics is equal to the sum of the variances, see for example [MR02].
Var(X
1
+X
2
+. . . +X
k
) = Var(X
1
) + Var(X
2
) +. . . + Var(X
k
)
The inter-arrival time of a batch is the sum of the inter-arrival times of k lots.
t
a,b
= t
a,1
+t
a,1
+. . . +t
a,k
If the inter-arrival times for the lots are independent samples of the same distribution we
get for the variance:
Var(t
a,b
) = Var(t
a,l
+t
a,2
+. . . +t
a,k
)
= Var(t
a,1
) + Var(t
a,2
) +. . . + Var(t
a,k
)
= Var(t
a,l
) + Var(t
a,l
) +. . . + Var(t
a,l
)
= k Var(t
a,l
)
For the squared coecient of variation we get:
c
2
a,b
=
2
a,b
t
2
a,b
=
k
2
a,l
(k t
a,l
)
2
=
1
k
2
a,l
t
2
a,l
=
c
2
a,l
k
We can now calculate the queueing time of a batch in the buer. Remember that the
utilisation of a batch machine can be determined as follows. Each t
a,b
= k t
a,l
the batch
machine processes a batch, which takes t
0,b
. Hence, utilisation is u = t
0,b
/(k t
a,l
).
Example 3.5 Single-lot and batch machine in series
We have a owline of a single-lot machine and a batch machine. Lots arrive at the single lot
machine with a mean inter-arrival time of 4.0 hours and a squared coecient of variation c
2
a
of 1. Processing a lot on the single-lot machine takes on average 3.0 hours, with c
2
0
= 0.5.
The batch machine processes lots in xed batches of 3 lots. Processing a batch takes 8.0
hours on average with a squared coecient of variation c
2
0,b
= 0.1, see Figure 3.9. Calculate
the mean owtime of a lot.
batchsize k
t
a,l
= 4.0 hr
c
a,l
= 1.0
2
t
0
= 3.0 hr
c
0
= 0.5
t
0,b
= 8.0 hr
c
0,b
= 0.1
2 2
Figure 3.9: Single-lot machine and batch machine in series
First we calculate the utilisation for the single-lot machine and the batch machine. These
are u
M
= 3/4 and u
batch
= 8/(3 4) = 2/3. Since both utilisations are under 1 we have a
stable system and we can calculate a mean owtime. For the queueing time for the single-lot
machine we have:
B1
=
c
2
a
+c
2
0
2
u
1 u
t
0
=
1 + 0.5
2
0.75
1 0.75
3 = 6.75 hours
3.6. Discussion 39
Next we determine the coecient of variation of the lots leaving the single-lot machine and
entering the batch machine.
c
2
d
= u
2
c
2
0
+ (1 u
2
)c
2
a
= 0.75
2
0.5 + (1 0.75
2
) 1 = 0.7188
We now calculate the wait-to-batch-time and the queueing time of batches in front of the
batch machine.
Bk
=
k 1
2
t
a,l
=
3 1
2
4.0 = 4.0 hours
For the queueing time we need to calculate the coecient of variation on the inter-arrival
time of a batch.
c
2
a,b
=
c
2
a,l
k
=
0.7188
3
= 0.2396
Bq
=
c
2
a,b
+c
2
0,b
2
u
1 u
t
0,b
=
0.2396 + 0.1
2
2/3
1/3
t
0,b
= 2.717 hours
The total mean owtime of a lot in the line is
tot
=
B1
+t
0
+
Bk
+
Bq
+t
0,b
= 6.75 + 3 + 4 + 2.717 + 8 = 24.5 hours
The lots leaving a batch machine, leave the machine in batches. With Equation 3.2 we can
approximate the coecient of variation on the inter-departure time. The inter-departure
time of batches that is! If we were to have a single-lot machine behind the batch machine of
Example 3.5, we can use the coecient of variation on the inter-departure times of batches to
determine the coecient of variation on the inter-departure times of lots leaving the batch
machine. But keep in mind that these inter-departure times are no longer independent.
If we use Equation 3.1 for the single-lot machine behind the batch machine we can only
approximate the queueing time!
3.6 Discussion
In this chapter we have presented analytical approaches to determine the owtime for a
owline of workstations with stochastic inter-arrival times and stochastic processing times.
We have even discussed ways to calculate the owtime for batch machines. In some cases,
the presented queueing relations allow an exact calculation of the owtime. In many cases,
the queuing relations allow for a reasonable approximation of the owtime.
However, in practice, many manufacturing systems exist that still can not be analyzed using
the queueing relations in this chapter. To illustrate this, consider the following examples:
The queueing relations are applicable to simple owlines of workstations. They can
not be used for owlines that feature rework or bypassing.
40 Chapter 3. Analytical models of stochastic manufacturing systems
The queueing relations assume innite buers that dispatch lots in a FIFO (First-
In-First-Out) manner. They can not be used for manufacturing systems that have
dispatching policies or that have nite buer sizes.
The queueing relations assume machines that process one lot (or batch) type at a time,
where the process time for all lots (batches) is according to the same distribution. They
can not be used for machines that process dierent lots in a dierent manner or that
require set-up time.
We have presented some simple extensions that allow us to calculate the owtime for
batch machines with xed batch sizes. The relations presented there are unapplicable
if we use a batch forming strategy that allows only a maximum wait-in-batch-time or
variable batch size.
In short, there are a large number of examples, encountered in practice, that can not be
analyzed with the relations from this chapter. Using probability theory and advanced
queueing theory, it is possible to derive relations for these specic cases. However, this
requires signicant mathematical knowledge and eort and even then we have only an
approximation. Moreover, if the systems become larger, the mathematical relations quickly
become large and complex. The analytical approaches from previous and this chapter are
very valuable in giving us a rst impression of the systems performance. It provides us
with a sense of the systems bottle-necks, the role of variability sources, and the order of
magnitude of the owtime, throughput, and wip-level.
However, for realistically sized problems, with realistic properties such as dispatching rules,
nite buers, and batching strategies, accurately determining the systems performance is
best done with simulation. In the remainder of this book we present an approach to analyze
dierent kinds of manufacturing systems using the discrete-event simulation language . We
start with simple systems and extend the models step by step. At the end of this book, we
can virtually analyze any manufacturing system using . At some points in the subsequent
chapters, we discuss the practical useability of the relations presented in this chapter, by
comparing simulation results with analytical results.
Keyword overview
Modelling manufacturing systems Analysis of manufacturing systems
Kendalls notation
owtime approximation for a G/G/1 workstation
Pollaczek-Khinchines approximation
squared standard deviation
squared coecient of variation
Kuehns linking equation
owtime approximation for a G/G/m workstation
owtime approximation for batch machines
3.7. Exercises 41
3.7 Exercises
1. We have a manufacturing line with three workstations, see Figure 3.10. From mea-
surements done, we have the following data available for each workstation:
Workstation 1 consists of an innite buer and 5 identical machines with t
0
=
15.0 min/lot and c
2
0
= 1.0.
Workstation 2 consists of an innite buer and 12 identical machines with t
0
=
30.0 min/lot and c
2
0
= 1.0.
Workstation 3 consists of an innite buer and one machine with t
0
= 3.0 min/lot
and c
2
0
= 1.0.
t
0
= 15.0 min
t
d,
c
d
2
c
0
2
= 1.0
B
c
0
2
= 1.0
t
0
= 30.0 min
c
0
2
= 1.0
t
0
= 3.0 min
t
a
= 4.0 min
m = 5 m = 12 m = 1
Figure 3.10: Manufacturing line with multiple-machine workstations
We assume that lots arrive at workstation 1 with an inter-arrival time that is dis-
tributed according to an exponential distribution with mean 4.0 minutes.
(a) Calculate the utilisation for workstation 1,2, and 3.
(b) Calculate the mean waiting time in the buer for workstation 1.
(c) Calculate the mean inter-arrival time t
a,2
and squared coecient of variation c
2
a,2
for lots arriving at workstation 2.
(d) Calculate the mean waiting time in the buer for workstation 2.
(e) Calculate the mean waiting time in the buer for workstation 3.
(f) Calculate the mean number of products in buer 1,2, and 3.
(g) Explain the low wip-level in buer 2.
(h) Calculate the mean owtime of a lot for the entire manufacturing line.
(i) What is the mean number of products in the line (the wip-level)?
2. Consider a manufacturing line consisting of three workstations. Each workstation
consists of an innite buer and a single machine. In addition we have the following
data:
Lots arrive according to a distribution with mean t
a
and squared coecient of
variation c
2
a
= 2.0.
42 Chapter 3. Analytical models of stochastic manufacturing systems
Workstations 1,2, and 3 have a mean process time of t
0,1
= 1.0 hr, t
0,2
= 4.0 hr,
and t
0,3
= 1.0 hr respectively and a squared coecient of variation c
2
0,1
= 4.0,
c
2
0,2
= 1.0, and c
2
0,3
= 1.0.
Figure 3.11 shows a graphical representation of the system.
W
1
c
a
2
= 2.0
c
0
2
t
0
1.0 4.0 1.0
4.0 1.0 1.0
[hr]
[-]
W
2
W
3
Figure 3.11: Three-workstation manufacturing line
(a) Calculate the maximum throughput
max
.
(b) What is the mean owtime of a product if we require a throughput =
max
?
We wish to obtain a throughput = 0.9
max
.
(c) Calculate the utilisation of machine 1,2, and 3.
(d) Calculate the mean owtime of the line.
(e) Calculate the mean number of products in buer 1,2, and 3.
(f) If you were to improve the owtime and/or throughput of this system, with which
machine would you start?
The management decides to invest in workstation 2. We have two alternatives. In
alternative one we invest in speed. We speed up the machine in workstation 2 so that
t
0,2
= 1.0 hr, however this induces an increase in variability: the squared coecient of
variation c
2
0,2
becomes 4.0. In alternative two we simply add 3 similar machines to the
line: workstation 2 consists of 4 identical machines with t
0,2
= 4.0 hr and c
2
0,2
= 1.0.
Both alternatives are graphically represented in Figure 3.12.
Alternative 2
W
1
c
0
2
t
0
1.0 1.0 1.0
4.0 4.0 1.0
[hr]
[-]
W
2
W
3
m 1 1 1
W
1
c
0
2
t
0
1.0 4.0 1.0
4.0 1.0 1.0
[hr]
[-]
W
2
W
3
m 1 4 1 [-]
Alternative 1
[-]
Figure 3.12: Two alternatives
(g) What is the maximum throughput for both alternatives?
(h) Calculate the mean owtime for alternative 1 for = 0.9
max
.
(i) Calculate the mean owtime for alternative 2 for = 0.9
max
.
(j) Calculate the wip-level for both alternatives.
(k) Which alternative do you prefer?
(l) At rst sight, the alternatives yield only a small decrease (or even an increase)
in owtime, despite the investments done. Are these investments futile?
3.7. Exercises 43
3. We have a batch machine that processes batches of xed size k. Lots arrive with mean
inter-arrival time t
a,l
= 4.0 hours and squared coecient of variation c
2
a,l
= 1.0. The
process time for a batch is proportional with the batch size: t
0,b
= k t
0
, the squared
coecient of variation is inversely proportional with the batch size: c
2
0,b
= c
2
0
/k. For
this machine we have t
0
= 3.0 hours and c
2
0
= 0.50.
batchsize k
t
0,b
= kt
0
c
0,b
= c
0
/k
2 2
t
a,l
= 4.0 hr
c
a,l
= 1.0
2
Figure 3.13: Batch machine process batches of xed size k
(a) Express the mean total owtime for this batch machine in batch size k.
(b) For what value of k is the owtime minimal? (Do not forget to assure a stable
system.)
4. We have three identical batch machines in parallel. The batch machines have a single
buer in which batches are formed. The machines process batches of a xed size k = 4
lots. Lots arrive at the buer with t
a,l
= 0.50 hours and c
2
a,l
= 1.0. The batch process
time is characterized by t
0,b
= 5.0 hours and c
2
0,b
= 0.5.
k = 4
t
0,b
= 5.0 hr
c
0,b
= 0.50
2
t
a,l
= 0.50 hr
c
a,l
= 1.0
2
Figure 3.14: Three batch machines in parallel
(a) Calculate the utilisation of the batch machines.
(b) Calculate the wait-to-batch-time in the buer.
(c) Calculate the queueing time for a batch in the buer.
(d) Calculate the mean total owtime.
44 Chapter 3. Analytical models of stochastic manufacturing systems
Chapter 4
Single workstation
In this chapter we take the rst step into simulation-based analysis of a manufacturing
system. By means of a single workstation, we present the rst simple -specication of
a manufacturing system, and discuss the most elementary components of a manufacturing
system.
-prerequisites
The models in this chapter use a number of -elements. Below is an overview of the -
elements used in this chapter. The reader is assumed to be familiar with these elements. If
you are not yet familiar with these elements, you can familiarize yourself by studying the
indicated sections of the tutorial Learning [VR02].
-elements used rst used in described in Learning
-basics Section 4.1 Chapters 2-5
communicating sequential processes Section 4.1 Section 6.1
simulating time Section 4.1 Chapter 7
stochastic distributions Section 4.2 Chapter 8
lists Section 4.3 Sections 10.110.3
4.1 Single machine model
We consider a single machine. This machine processes lots. To analyze the behaviour of
this machine, we dene three processes, together forming cluster GME, see Figure 4.1.
G M E
a b
Figure 4.1: Cluster GME
45
46 Chapter 4. Single workstation
Generator process G sends unnished lots to machine M. Machine M processes these
lots and sends nished lots to exit process E. We interpret these three processes as a
representation of an entire factory, where process G represents the part of the factory before
machine M and process E represents the part of the factory after machine M. In the sequel,
we frequently encounter the concept of introducing a generator process and an exit process.
For this rst analysis we assume that generator G generates a lot every 4.0 hours. For
machine M this implies an inter-arrival time (time between two lot arrivals) t
a
of 4.0 hours.
Moreover, we assume that processing a lot on machine M takes also 3.0 hours, i.e. the
process time t
0
equals 3.0 hours. Exit process E is always able to receive lots. We specify
the processes G, M, E, and cluster GME as follows.
type lot = nat
proc G(a : !lot) =
|[ x : lot
| x := 0
; [ truea!x; 4.0; x := x + 1]
]|
(-4.1a)
proc M(a : ?lot, b : !lot) =
|[ x : lot
| [ truea?x; 3.0; b!x]
]|
(-4.1b)
proc E(a : ?lot) =
|[ x : lot
| [ truea?x; !, \tE\treceived lot\t, x, \n]
]|
(-4.1c)
clus GME() =
|[ a, b : lot
| G(a) || M(a, b) || E(b)
]|
(-4.1d)
Every lot is represented by a natural number, namely its id number. Generator G sends a
lot (a!x) every 4.0 time units (1.0 time unit 1.0 hour). Every lot has a unique id number.
The rst lot has id number 0. After machine M has received a lot (a?x), the lot is processed
for 3.0 hours, and then sent to exit E (b!x). Exit E can permanently receive lots. After
each lot, exit E writes the current time () and the lot id number (x) to the screen.
In the cluster specication we connect generator G to machine M and machine M to exit E.
Recall that an experiment environment is to be dened in order to simulate the model.
Compiling and simulating this model (ams31.chi) yields the following output.
[user@host chi]./ams31 -e 30
3 E received lot 0
7 E received lot 1
11 E received lot 2
15 E received lot 3
19 E received lot 4
4.2. Single machine with varying process time 47
23 E received lot 5
27 E received lot 6
[user@host chi]_
The simulation option -e 30 species that the simulation is terminated at = 30.0. We can
terminate simulation by hand, by pressing Ctrl+c. We can write the simulation output to
le instead of screen by typing ams31 >ams31.out. In this case, all ASCII output normally
written to screen is now written to le ams31.out.
From the simulation output we tell that exit E receives nished lot 0 at = 3.0. Subse-
quently, lot 1,2,3,... are received at equidistant intervals of 4.0 time units (here: hours).
This corresponds to the expected simulation outcome. The expected behaviour is as follows.
At = 0.0, generator G sends the rst lot 0 to machine M. At = 3.0, machine M has
nished the lot and sends it to exit E. So, lot 0 arrives at = 3.0 at exit E. As soon as
M has sent the processed lot to E, it can receive a new lot from G. Only, at = 4.0 G is
ready to send the next lot (lot 1) to M.
Below, we describe the behaviour of cluster GME over time by an execution scenario.
G(a) M(a, b) E(b)
0.0 a!x (x = 0) a?x (x := 0)
0.0 4.0 3.0
3.0 b!x (x = 0) b?x (x := 0)
3.0 !,..
4.0 x := x + 1
4.0 a!x (x = 1) a?x (x := 1)
4.0 4.0 3.0
7.0 b!x (x = 1) b?x (x := 1)
7.0 !,..
8.0 x := x + 1
8.0 a!x (x = 2) a?x (x := 2)
...
Table 4.1: Execution scenario for GME
In the execution scenario of Table 4.1 we see the statements that each of the parallel processes
executes at dierent time instants. At = 0.0, G sends the value of x over channel a to
M. After this synchronous communication, the variable x in process M has been assigned
the value 0. Note that at = 4.0 several statements are performed. Here, we see that
communication, output, and assignment statements are timeless. Time proceeds only when
a time delay (delta statement) is encountered.
4.2 Single machine with varying process time
In practice, processing times are seldom deterministic. In most cases, we have variability
on the process time, i.e. the process time is distributed according to some distribution. For
this example we assume that the processing time is either 1.0 or 5.0 hours. Both possibilities
48 Chapter 4. Single workstation
have 50% chance. The specication of machine M becomes:
proc M(a : ?lot, b : !lot) =
|[ d : bool, x : lot, p : bool
| d := bernouilli(0.5)
; [ true
a?x; p := d
; [ p 1.0
[] p5.0
]
; b!x
]
]|
(-4.2)
On average it still takes machine M (1.0 + 5.0)/2 = 3.0 hours to process a lot. Simulation
of cluster GME with this new machine M, yields the following results:
[user@host chi]./ams31 -e 30
5 E received lot 0
6 E received lot 1
10 E received lot 2
18 E received lot 3
23 E received lot 4
28 E received lot 5
[user@host chi]_
Though, on average process M still processes one lot every 3.0 hours, and generator G tries
to generate a lot every 4.0 hours, on average process E receives a lot only every 4.5 hours
instead of one lot every 4.0 hours as for the former example. We determine the average of
one lot per 4.5 hour, by running the simulation for a longer time interval, for example for
10000 hours and divide the total simulated time by the total number of products.
Closer investigation of the behaviour of generator G and machine M is required to explain
this drop in performance. Hereto, we use the execution scenario in Table 4.2 that belongs
to the simulation results shown.
Read the following explanation, while studying the execution scenario. At = 0.0 ma-
chine M receives lot 0 from generator G. In this simulation, the rst sample from bernouilli
distribution d yields false, resulting in a process time of 5.0 hours. At = 4.0 generator G
is willing to send lot 1, but machine M is still processing lot 0. At = 5.0 machine M
nishes lot 0 and sends it to exit E. Exit E receives the rst lot at = 5.0. Immediately,
machine M receives lot 1 from G. The next sample yields true, resulting in a process time
of 1.0 hour. At = 6.0 M sends lot 1 to exit E. E receives the second lot at = 6.0.
Machine M is willing to receive the next lot, however, generator G provides the next lot at
= 5.0 + 4.0 = 9.0. Only at = 9.0, machine M can start processing on lot 2. That lot is
nished at = 10.0.
In the rst situation, where generator G cannot send the next lot, we speak of blocking, i.e.
machine M blocks the manufacturing system. In the second situation, where machine M
has to wait for generator G to send the next lot, we speak of starving, i.e. machine M is
starving.
4.3. Single machine with buer 49
G(a) M(a, b) E(b)
0.0 a!x (x = 0) a?x (x := 0)
0.0 4.0 5.0
4.0 x := x + 1
5.0 b!x (x = 0) b?x (x := 0)
5.0 !,..
5.0 a!x (x = 1) a?x (x := 1)
5.0 4.0 1.0
6.0 b!x (x = 1) b?x (x := 1)
6.0 !,..
9.0 x := x + 1
9.0 a!x (x = 2) a?x (x := 2)
9.0 4.0 1.0
10.0 b!x (x = 2) b?x (x := 2)
10.0 !,..
10.0 x := x + 1
...
Table 4.2: Execution scenario 2 for GME
The eect of variability on the process time is that the average output is lower than the
average maximum output of 0.25 lots per hour. The eects of variability are even worse,
if we apply a same bernouilli distribution with 1.0 and 5.0 hours on the inter-arrival times
(Try!). Moreover, note that individual simulations do not yield identical results!
To cope with variability on process times as well as with variability on inter-arrival times
we use buers.
4.3 Single machine with buer
We continue to investigate the cluster of the previous section, where machine M has process
times of either 1.0 or 5.0 hours. We saw that the average output in case of stochastic process
times was less than in case of deterministic process times, whilst the average process time
for both cases was identical. We identied the cause: blocking and starving. To reduce the
eect of blocking and starving we introduce a buer with innite capacity before machine M.
We obtain cluster GBME, see Figure 4.2.
G B M
a b
E
c
Figure 4.2: Cluster GBME
The specication of generator G, machine M, and exit E remains unchanged and is found in
Specications (-4.1a), (-4.2), and (-4.1c) respectively. We now present the specication
50 Chapter 4. Single workstation
of buer B.
proc B(a : ?lot, b : !lot) =
|[ xs : lot
, x : lot
| xs := [ ]
; [ true ; a?x xs := xs ++[x]
[] len(xs) > 0; b! hd(xs)xs := tl(xs)
]
]|
(-4.3)
Buer B is always able to receive lots via port a. If a lot is received, it is added at the end
of list xs. As long as there are lots in the buer (len(xs) > 0), buer B is willing to send
the rst lot of the list (b!hd(xs)). After sending the lot, the buer removes the rst lot from
the list (xs :=tl(xs)).
The cluster specication becomes:
clus GBME() =
|[ a, b, c : lot
| G(a) || B(a, b) || M(b, c) || E(c)
]|
(-4.4)
Compilation and simulation yields the following output.
[user@host chi]./ams34 -e 30
1 E received lot 0
9 E received lot 1
10 E received lot 2
17 E received lot 3
22 E received lot 4
27 E received lot 5
32 E received lot 6
[user@host chi]_
After running the simulation for a longer time interval, we determine that on average exit E
now receives a lot every 4.0 hours. The buer has eliminated the eect of blocking and
starving on the long term average output. We investigate the behaviour of cluster GBME
by means of the execution scenario in Tables 4.3 and 4.4 that belongs to the simulation
results shown.
4.3. Single machine with buer 51
G(a) B(a, b) M(b, c) E(c)
0.0 a!x (x = 0) a?x
0.0 4.0 xs := xs ++[x] (xs := [0])
0.0 b! hd(xs) b?x (x := 0)
0.0 xs := tl(xs) (xs := []) p 1.0
1.0 c!x c?x (x := 0)
1.0 !, ...
4.0 x := x + 1
4.0 a!x (x = 1) a?x
4.0 4.0 xs := xs ++[x] (xs := [1])
4.0 b! hd(xs) b?x (x := 1)
4.0 xs := tl(xs) (xs := []) p 5.0
8.0 x := x + 1
8.0 a!x (x = 2) a?x
8.0 4.0 xs := xs ++[x] (xs := [2])
9.0 c!x c?x (x := 1)
9.0 !, ...
9.0 b! hd(xs) b?x (x := 2)
9.0 xs := tl(xs) (xs := []) p 1.0
10.0 c!x c?x (x := 2)
10.0 !, ...
...
Table 4.3: Execution scenario for GBME
G(a) B(a, b) M(b, c) E(c)
...
12.0 x := x + 1
12.0 a!x (x = 3) a?x
12.0 4.0 xs := xs ++[x] (xs := [3])
12.0 b! hd(xs) b?x (x := 3)
12.0 xs := tl(xs) (xs := []) p 5.0
...
16.0 x := x + 1
16.0 a!x (x = 4) a?x
16.0 4.0 xs := xs ++[x] (xs := [4])
17.0 c!x c?x (x := 3)
17.0 !, ...
17.0 b! hd(xs) b?x (x := 4)
17.0 xs := tl(xs) (xs := []) p 5.0
20.0 a!x (x = 5) a?x
20.0 4.0 xs := xs ++[x] (xs := [5])
...
Table 4.4: Execution scenario for GBME (continued)
Read the following explanation, while studying the execution scenario. At = 0.0 genera-
tor G sends a lot to the buer. Machine M is available, and at the same time instant this
lot is sent from the buer to the machine. Sampling from distribution d yields p = true;
processing the rst lot takes 1.0 hour. At = 1.0, the exit receives the rst nished lot.
52 Chapter 4. Single workstation
At = 1.0, buer B is empty: machine M has to wait, until the buer receives a lot.
Machine M is starving. At = 4.0 the buer receives lot 1. The buer immediately sends
this lot to machine M. Processing this lot takes 5 hours. At = 8.0 generator G wants
to sent lot 2. Though machine M is still in process, the buer allows the lot to be sent.
Buer B prevents the generator from being blocked by machine M. After machine M
nished processing lot 1, at = 9.0, it can immediately continue with lot 2 from the buer.
Here, buer B is always able to receive new lots. It has an innite number of buer places.
We speak of an innite buer. In practice, buers have a limited number of buer places.
A nite buer with N buer places is specied as follows:
proc B(a : ?lot, b : !lot, N : nat) =
|[ xs : lot
, x : lot
| xs := [ ]
; [ len(xs) < N; a?x xs := xs ++[x]
[] len(xs) > 0 ; b! hd(xs)xs := tl(xs)
]
]|
(-4.5)
As long as there are less than N lots in the buer (len(xs) < N), the buer is able to receive
new lots via port a.
4.4 Displaying simulated behaviour
There are multiple ways to display simulation results. Apart from textual output, we
presented an execution scenario. The execution scenario provides a complete and accurate
way to describe the behaviour of the simulation model. However, for quick insight on the
behaviour of the simulation model, we prefer to visualize the simulated behaviour. Here we
present two approaches to graphically display the simulation behaviour: the lot-time and
the resource-time diagram. In a lot-time-diagram, which we encountered in Chapter 2, we
plot the state of individual lots against time. In a resource-time-diagram we plot the state
of the individual resources against time.
Figure 4.3 shows a lot-time-diagram distilled from the execution scenario in Tables 4.3
and 4.4.
14 lot
M 0
1
2
3
2 4 8 6
B
10
lot is
processed on M
waiting in buffer
M
M
M
B
12 18
M
B M
B
16 20
0
1
2
3
4
5
time [hours]
Figure 4.3: Lot-time-diagram of the simulation in Section 4.3
In a resource-time diagram we record per resource what job or lot is processed. These
diagrams are often referred to as Gantt charts [Gan19]. Figure 4.4 shows a resource-time-
diagram corresponding to the execution scenario in Tables 4.3 and 4.4.
4.4. Displaying simulated behaviour 53
14 resource 2 4 8 6 10
resource is
processing lot i
0
i
12 18 16 20
M
time [hours]
1 2 3 4
Figure 4.4: Resource-time-diagram of the simulation in Section 4.3
Besides the lot-time-diagram in which we follow lots and the resource-time-diagramin which
we follow resources, we can plot any quantity or state against time. In Figure 4.5 the number
of lots in the buer and the state of the machine (idle or busy) are plotted against time.
16 2 4
t [hours]
state machine M
busy (1)
idle (0)
t [hours]
# [lots]
6 8 10 12 14 18
s
number of lots in B
16 2 4 6 8 10 12 14 18
Figure 4.5: (a) State of machine M (idle or busy), (b) Number of lots in buer B
All these visualizations provide easy insight on the simulated behaviour. They are valu-
able in verifying your model, that is, checking whether your simulation model behaves as
intended. For deterministic systems we used a lot-time-diagram to determine the mean
ow-time and wip-time-diagram to determine the mean wip-level, see Section 2.2. For a
simulated stochastic system, such a diagram visualizes only (a short period of) one of the
many possible simulation outcomes. Where it does provide insight on the behaviour of the
simulated manufacturing system, it is of little use in determining the mean owtime, wip-
level or any quantity. In the next chapter, we discuss how to determine the most important
performance indices for manufacturing systems.
54 Chapter 4. Single workstation
Keyword overview
Modelling manufacturing systems Analysing manufacturing systems
generator starving and blocking
exit process time variability
machine with deterministic process time
machine with stochastic process time
nite buer
innite buer
execution scenario
4.5 Exercises
1. Machine N processes at two dierent speeds. In fty percent of the cases the process
time is 0.3 hour, and the other fty percent the process time is 0.1 hour. We have the
following -specication:
from random import *
type lot = nat
proc G(a: !lot) =
|[ n: lot
| n:= 0
; *[ true -> a!n; n:= n + 1 ]
]|
proc N(a: ?lot, b: !lot) =
|[ u: -> nat, x: lot, k: nat
| u:= uniform(0,2)
; *[ true
-> a?x
; k:= ...
; [ ...
| ...
]
; b!x
]
]|
proc E(a: ?lot) =
|[ x: lot, i: nat
| i:= 0
; *[ true
-> a?x; i:= i + 1
; !"Received\t", i, "\tlots\n"
]
]|
4.5. Exercises 55
clus S() =
|[ a,b: -lot
| ...
]|
xper= |[ S() ]|
(a) Make a graphical representation of this system.
(b) Predict the mean number of lots that leave the system per hour.
(c) Finish the specication and simulate the model.
(d) Determine the mean number of lots that leave the system per hour by simulation.
(e) Compare the outcome determined by simulation with your predicted outcome.
2. Here is a specication of cluster S that consists of generator G, 4-place buer B, and
exit process E. The generator ten times generates a lot every 10 seconds, and the exit
process removes lots from the buer each 5 seconds. If a lot is added or removed, the
new buer contents are printed.
type lot = nat
proc G(a : !lot) =
|[ n : lot
| n := 0
; [ n < 10a!n; 10; n := n + 1]
]|
(-4.6a)
proc B(a : ?lot, b : !lot, N : nat) =
|[ xs : lot
, x : lot
| xs := []
; [ len(xs) < N; a?x xs := xs ++[x]; !xs, \n
[] len(xs) > 0 ; b! hd(xs)xs := tl(xs); !xs, \n
]
]|
(-4.6b)
proc E(a : ?lot) =
|[ x : lot
| [ truea!x; 5]
]|
(-4.6c)
clus S(N : nat) =
|[ a, b : lot
| G(a) || B(a, b, N) || E(b)
]|
(-4.6d)
xper = |[ S(4)]|
(a) Compile the specication, simulate and explain the results. (Do not forget to
add the line from std import * in the beginning of your specication.)
(b) What happens if the buer size is set to two instead of four?
56 Chapter 4. Single workstation
(c) Change the specication such that the generator needs 5 seconds to generate a
lot, and the exit needs 10 seconds to consume a lot. Study again a 4-place and
a 2-place buer.
3. Consider a workstation consisting of innite buer B and machine M. The machine
can process three types of products. The product type is denoted by a natural (0,1,2).
The processing time depends on the product type. The processing time is 1.0, 3.0,
and 6.0 minutes for product type 0,1, and 2 respectively, see Figure 4.6.
finished
products
buffer B
machine M
1.0 min. process time: 3.0 6.0
Figure 4.6: Work station processes three product types
The type of the products arriving at B is uniformly distributed. Products arrive at
buer B with a constant inter-arrival time of 4 minutes. Finished products immedi-
ately can leave the workstation.
(a) Complete the specication below that represents the workstation and its envi-
ronment.
type lot = nat
proc G(a : !lot) =
|[ d : nat
| d := uniform(. . .)
; [ truea!d; . . . ]
]|
(-4.7a)
proc M(a : ?lot, b : !lot) =
|[ x : lot
| . . .
]|
(-4.7b)
proc B(a : ?lot, b : !lot) =
|[ . . .
]|
(-4.7c)
proc E(a : ?lot) =
|[ x : lot
| [ truea?x]
]|
(-4.7d)
clus GBME() =
|[ a, b, c : lot
| G(a) || B(a, b) || M(b, c) || E(c)
]|
(-4.7e)
4.5. Exercises 57
(b) Adapt the specication of exit E, so that it prints the number of lots that have
been processed by the manufacturing system to the screen. How many products
are produced by the system per hour?
(c) Determine the number of products that are produced per hour, specied per
product type.
(d) We wish to change the rst-in-rst-out behaviour of the buer. Each product
type has a dierent priority. Priority increases with the product type number,
i.e. product type 2 has the highest and product type 0 has the lowest priority.
So products of type 2 are processed rst, then products of type 1 and then
products of type 0. Adapt the specication and determine by simulation how
many products are processed per hour, specied per product type. (Hint: use (a
tuple of) three lists in buer B or use list sorting.)
58 Chapter 4. Single workstation
Chapter 5
Measuring performance
In the examples of the previous chapter we have investigated the behaviour of a simple man-
ufacturing line. Amongst others, we determined the number of lots that the manufacturing
line processes per hour. In Chapter 2 we presented a number of quantities that character-
ize the performance of a manufacturing system. In this chapter, we present an approach
to determine the four most frequently used performance indicators by simulation. These
performance indicators are: throughput , owtime , utilisation u, and work-in-process or
wip-level w.
Typically, the throughput, utilisation, and wip-level change over time. The owtime varies
per lot. Let us reconsider the simulation from Section 4.3. From Figure 4.3 we determine
that the owtime for lot 0,1,2, and 3 is 1.0, 5.0, 2.0, and 5.0 hours respectively. We see that
wip-level w is 1 at for instance = 1.0 and 0 at = 3. For 0.0 20.0 the throughput is
4/20 = 0.2 lots/hour. From Figure 4.4 we determine that the utilisation for 0.0 20.0
is 15/20 = 0.8.
In general, we are not interested in the momentous value of performance indicators, but
in the mean throughput , mean owtime , mean utilisation u and mean wip-level w.
Herein, throughput, utilisation, and wip-level are averaged over time, and owtime is av-
eraged over the lots! In the sequel, we present an approach to calculate the mean values
of the throughput, owtime, utilisation and wip-level. We propose a way to adapt your
-specication to determine these performance indicators during simulation and apply it on
the manufacturing system from Section 4.3.
59
60 Chapter 5. Measuring performance
-prerequisites
The specications in this chapter use a number of -elements. Below is an overview of
the -elements that have not been used in previous chapters. The reader is assumed to
be familiar with these elements. If you are not yet familiar with these elements, you can
familiarize yourself by studying the indicated sections of the tutorial Learning [VR02].
-elements used rst used in described in Learning
record tuple Section 5.2 Sections 11.1
functions Section 5.3 Section 9.1
multiple assignment Section 5.3 Sections 11.211.3
5.1 Mean throughput
The mean throughput at time instant is calculated by dividing the number of lots n
that have exited the system up to time instant by the current time . In formula:
=
n
(5.1)
To determine the mean throughput by simulation, we adapt the specication of exit E.
proc E(a : ?lot) =
|[ i, x : lot
| i := 0
; [ true
a?x; i := i + 1
; !, \tE\tmean throughput =\t, i/, \n
]
]|
(-5.1)
We use i to count the number of lots that has left the system. The mean throughput is
calculated by dividing the number of lots i by the current (simulation) time . Note that
in the previous specications, a lot is represented by an increasing id number, starting with
0. So, in this case, we could also calculate the mean throughput by (x + 1)/.
Simulation of cluster GBME from Section 4.3 with this adapted exit E yields:
[user@host chi]./ams35
5 E mean throughput = 0.2
10 E mean throughput = 0.2
11 E mean throughput = 0.272727
17 E mean throughput = 0.235294
...
85 E mean throughput = 0.258824
93 E mean throughput = 0.247312
94 E mean throughput = 0.255319
...
9985 E mean throughput = 0.249975
5.2. Mean owtime 61
9990 E mean throughput = 0.24995
9995 E mean throughput = 0.249925
10000 E mean throughput = 0.2499
After simulating for a large time interval the mean throughput converges to 0.25 lots/hour
(1 time unit in this specication is equivalent to 1 hour). This throughput corresponds to
the results we found at the end of Section 4.3, where exit E received one lot every 4.0 hours.
5.2 Mean owtime
To calculate the mean owtime per lot, we record the time at which a lot enters the system.
Hereto, we represent a lot by a record tuple of type natreal, where the rst element denotes
the id number and the second element the time at which the lot entered the system. The
type declaration and generator G become:
type lot = nat real
proc G(a : !lot) =
|[ i : nat
| i := 0
; [ truea!i, ; 4.0; i := i + 1]
]|
(-5.2a)
When exit E receives a lot it calculates owtime of that lot by x.1. One way of
calculating mean owtime of n lots is adding up the owtime of all individual lots and
dividing it by the number of lots.
n
=
1
n
n
i=1
i
(5.2)
Herein
n
is the mean owtime of n lots and
i
the owtime of the i-th lot. We prefer to
use the following iterative (and numerically more accurate) approach to calculate the mean
owtime:
i
=
_
_
_
0 for i = 0
i 1
i
i1
+
i
i
for i = 1, 2, 3, . . .
(5.3)
Herein
i
is the mean owtime of i lots. In exit E we implement this iterative calculation
as follows:
proc E(a : ?lot) =
|[ i : nat, : real, x : lot
| i := 0; := 0.0
; [ true
a?x
; i := i + 1; := (i 1)/i + ( x.1)/i
; !, \tE\tmean owtime =\t, , \n
]
]|
(-5.2b)
62 Chapter 5. Measuring performance
Note that in this -specication
i
is represented by . Moreover, is initialized for i = 0
to 0.0. Simulation yields:
[user@host chi]./ams36
1 E mean flowtime = 1
9 E mean flowtime = 3
14 E mean flowtime = 4
15 E mean flowtime = 3.75
21 E mean flowtime = 4
26 E mean flowtime = 4.33333
...
89 E mean flowtime = 2.54545
90 E mean flowtime = 2.52174
97 E mean flowtime = 2.625
98 E mean flowtime = 2.6
...
49989 E mean flowtime = 4.15468
49990 E mean flowtime = 4.1545
49997 E mean flowtime = 4.15457
49998 E mean flowtime = 4.1544
After simulating for a sucient long time interval the mean owtime converges to 4.15
hours. On average, processing a lot takes 3.0 hours, thus on average a lot waits for 1.15
hour in the buer.
5.3 Mean utilisation
The mean utilisation of a machine is dened as the fraction of time that a machine is busy.
In Figure 5.1 the state s (idle or busy) of machine M is plotted against time.
t [hours]
s
busy (1)
idle (0)
t
i
t
i-1
t
i+1
t
i+2
t
i+3
t
i+4
Figure 5.1: State (idle or busy) of machine M
From this data we can calculate mean utilisation u
n
after n events as follows:
u
n
=
1
t
n
n
i=1
(t
i
t
i1
) s
i1
(5.4)
Herein u
n
is the mean utilisation after the n-th event, t
i
is the time instant of the i-th event
and s
i
is the state after the i-th event. s
i
= 0 if the machine is idle after the i-th event, and
5.3. Mean utilisation 63
s
i
= 1 if the machine is busy after the i-th event. We prefer the following iterative (and
numerically accurate) way of calculating the mean utilisation:
u
i
=
_
_
_
0 for i = 0
t
i1
t
i
u
i1
+
t
i
t
i1
t
i
s
i1
for i = 1, 2, 3, . . .
(5.5)
Herein, u
i
is the mean utilisation after i events. We have to recalculate mean utilisation
u
i
after each event that changes the state s
i
. To this end, we adapt the specication of
machine M as follows:
proc M(a : ?lot, b : !lot) =
|[ d : bool, t
i1
, u : real, x : lot, p : bool
| d := bernouilli(0.5)
; t
i1
:= 0.0; u := 0.0
; [ true
a?x; p := d
; t
i1
, u := tAver(t
i1
, , u, 0)
; !, \tM\tmean utilisation =\t, u, \n
; [ p 1.0
[] p5.0
]
; b!x
; t
i1
, u := tAver(t
i1
, , u, 1)
; !, \tM\tmean utilisation =\t, u, \n
]
]|
(-5.3a)
Variable u represents mean utilisation u
i
. Every time the machine receives or sends a lot,
state s
i
changes and mean utilisation u
i
has to be updated. The time instant t
i
of that
update is the current simulation time . The time instant of the previous update is t
i1
.
Recalculation of mean utilisation u and updating the time instant t
i1
of the most recent
update is performed by function tAver.
func tAver (t
i1
, t
i
, u
i1
: real, s
i1
: nat) real real =
|[ [ t
i
= 0 t
i
, u
i1
[] t
i
> 0 t
i
, t
i1
/t
i
u
i1
+ (t
i
t
i1
)/t
i
s
i1
]
]|
(-5.3b)
As long as the time instant of the update is zero, the new average and last time instant
remain unchanged. Otherwise, the new average is calculated conform Equation 5.5. If
machine M receives a lot, the machine goes from idle to busy; the previous state s
i1
= 0.
After the machine has sent the lot, the machine state switches from busy to idle; the previous
state s
i1
= 1.
Compiling and simulating yields:
[user@host chi]./ams37
5 M mean utilisation = 1
6 M mean utilisation = 1
64 Chapter 5. Measuring performance
13 M mean utilisation = 0.846154
14 M mean utilisation = 0.857143
...
85 M mean utilisation = 0.588235
89 M mean utilisation = 0.573034
93 M mean utilisation = 0.55914
...
49993 M mean utilisation = 0.753746
49994 M mean utilisation = 0.75375
49997 M mean utilisation = 0.753725
Running the simulation for a sucient long time interval causes the mean utilisation to
converge to 0.75. This corresponds to the expected behaviour. The manufacturing system
receives a lot every 4.0 hours. On average it takes the machine 3.0 hours to process a lot.
Thus, on average the machine is busy for 75% of the time.
5.4 Mean wip-level
Figure 5.2 shows how the wip-level of the manufacturing line can change over time.
t [hours]
w [lots]
t
i
t
i-1
t
i+1
Figure 5.2: Work-in-process level over time
The time averaged wip-level w
n
after n events is given by:
w
n
=
1
t
n
n
i=1
(t
i
t
i1
) w
i1
(5.6)
Herein, w
n
is the mean wip-level after n events, t
i
the time instant of the i-th event, and
w
i
the wip-level after the i-th event. Iteratively:
w
i
=
_
_
_
0 for i = 0
t
i1
t
i
w
i1
+
t
i
t
i1
t
i
w
i1
for i = 1, 2, 3, ...
(5.7)
Here, w
i
is the mean wip-level after the i-th event. We have to recalculate mean wip-level
w
i
after every event that aects the current wip-level w
i
. To determine the wip-level during
simulation we need to adapt both generator G and exit E. We choose to let exit E calculate
the wip-level. E is aware of lots leaving the manufacturing system, however E is unaware
5.4. Mean wip-level 65
of lots entering the manufacturing system. Therefore, we let generator G send a signal to
E to notify E a lot has entered the system. We introduce channel z from G to E. The
graphical representation of cluster GBME is shown in Figure 5.3.
G B M
a b
E
c
z
Figure 5.3: Cluster GBME with wip-update channel
The specication of generator G and exit E become:
proc G(a : !lot, z : !void) =
|[ i : nat
| i := 0
; [ truea!i, ; z!; 4.0; i := i + 1]
]|
(-5.4a)
proc E(a : ?lot, z : ?void) =
|[ x : lot, w : nat, t
i1
, w : real
| w := 0; t
i1
:= 0.0; w := 0.0
; [ true; a?xt
i1
, w := tAver(t
i1
, , w, w)
; !, \tE\tmean wip =\t, w, \n
; w := w 1
[] true; z? t
i1
, w := tAver(t
i1
, , w, w)
; !, \tE\tmean wip =\t, w, \n
; w := w + 1
]
]|
(-5.4b)
Every time a lot enters the system, generator G sends a signal via port z to exit E. In
exit E, variable w represents current wip-level w
i
, and w represents mean wip-level w
i
.
Exit E is always able to receive lots via port a and signals from G via port z. After
either communication, mean wip-level w is recalculated and current wip-level w is updated.
Note that the recalculation of mean wip-level w occurs before updating current wip-level
w. (Try!: Look at Figure 5.2 and Equation 5.7 and argue why this is true.) For this
recalculation we use the same function tAver as we did for calculating the mean utilisation,
see Specication (-5.3b).
Simulation yields:
[user@host chi]./ams37
0 E mean wip = 0
4 E mean wip = 1
10 E mean wip = 1.3
11 E mean wip = 1.27273
...
94 E mean wip = 1.08511
66 Chapter 5. Measuring performance
96 E mean wip = 1.0625
100 E mean wip = 1.06
...
49996 E mean wip = 1.04572
49999 E mean wip = 1.04578
50000 E mean wip = 1.04578
After running the simulation for a sucient long time we see that the mean wip-level
converges to 1.05.
From mean throughput determined in Section 5.1 and mean owtime determined in
Section 5.2, we can calculate mean wip w by applying Littles law: w = = 0.254.15 =
1.04 lots. This corresponds to mean wip-level w determined by simulation.
5.5 Variance
Apart from the mean of a quantity we are sometimes interested in its variance (squared
standard deviation) or coecient of variation (which we can determine from the variance
and the mean). For instance, the variance on the owtime allows us to predict delivery
reliability.
We iteratively determine the squared standard deviation with the following relation [Lef03]:
_
_
s
2
i
=
i 2
i 1
s
2
i1
+
(x
i
x
i1
)
2
i
for i > 1
s
2
i
= 0 for i = 0, 1
(5.8)
Herein s
2
i
is the estimated variance of i drawings x
i
, and x
i1
is the estimated mean value of
(i 1) drawings x
i
. The squared coecient of variation c
2
i
is obtained by dividing squared
standard deviation s
2
i
by squared mean x
2
i
.
In exit process E below, we use this iterative formula to determine the variance on the
owtime.
proc E(a : ?lot) =
|[ x : lot, i : nat, , , s
2
: real
| i := 0; := 0.0
; [ true
a?x; i := i + 1; := x.1
; [ i > 1s
2
:= (i 2)/(i 1) s
2
+ ( )
2
/i
[] i 1s
2
:= 0.0
]
; := (i 1)/i +/i
]
]|
(-5.5)
Note that we rst recalculate the squared standard deviation, before we recalculate the
mean! From Equation 5.8, we see that in the calculation of s
2
i
for i lots, we use the mean
x
i1
of (i 1) lots.
5.6. Measuring other quantities 67
5.6 Measuring other quantities
It is possible to measure other quantities than the ones discussed in this chapter, such as
the mean number of lots in a buer, the mean number of operations on a lot, the mean
inter-arrival time at a specic machine. Hereto, you can use an approach analogous to the
ones discussed. With respect to determining the mean of a quantity, carefully consider the
following:
Is the quantity to be averaged over time (for example in case of the mean number of
lots in a buer) or over the lots (for example in case of the mean number of operations
per lot)?
If the quantity is to be averaged over time, use an approach analogous to the one
discussed for the mean utilisation or mean wip-level.
If the quantity is to be averaged over the lots, use an approach analogous to the
one discussed for the mean owtime.
Recalculate the mean for every event that aects the momentous value of the quantity.
This recalculation should be performed just before updating the momentous value of
that quantity.
5.7 Simulation vs Approximation (1): single machine
workstation
In this section we compare analytical results with simulation results. In Chapter 3 we
presented the Pollaczek-Khintchine approximation for the waiting time in a buer. We
argued that it was exact for a M/G/1 queueing system. In this section, we consider two
manufacturing systems to investigate this.
Example 5.1 D/G/1 system
First, we investigate the manufacturing system of Section 4.3, consisting of a single work-
station with an innite buer and a machine with a process times of 1.0 or 5.0 hours, both
with 50% probability. The inter-arrival time is xed, at 4.0 hours. We are thus dealing with
a D/G/1 system.
In Section 5.2 we determined that the owtime for this system was 4.15 hours. Now let
us see what the analytical approach from Chapter 3 yields. We calculate the coecient of
variation on the process times.
s
2
0
=
1
n
n
i=1
(x
i
x)
2
=
(1.0 3.0)
2
+ (5.0 3.0)
2
2
= 4.0
c
2
0
=
s
2
0
t
2
0
=
4.0
3.0
2
=
4
9
The inter-arrival times are xed and thus the coecient of variation on the inter-arrival
times is 0. The mean utilisation is 0.75. We calculate the owtime:
= (
c
2
a
+c
2
0
2
u
1 u
) t
0
+t
0
= (
0 + 4/9
2
0.75
1 0.75
) 3.0 + 3.0 = 5.0 hours
68 Chapter 5. Measuring performance
This analytically determined owtime deviates by about 20% from the simulation results.
For this D/G/1 system, the Pollaczek-Khintchine formula is nothing more than an approx-
imation!
Example 5.2 M/G/1 system
Once more we look at the workstation from Section 4.3, but we let the inter-arrival times be
distributed exponentially with mean 4.0 hours. The process times remain 1.0 or 5.0 hours,
both with 50% chance. We now have an M/G/1 system and the Pollaczek-Khintchine
approximation should be exact.
In Example 3.2 we calculated the owtime for this workstation:
= (
c
2
a
+c
2
0
2
u
1 u
) t
0
+t
0
= (
1 + 4/9
2
0.75
1 0.75
) 3.0 + 3.0 = 9.5 hours
Now let us see what simulation yields. We use the model from Sections 4.2 and 4.3.
We adapt generator G so that it releases lots with exponentially distributed inter-arrival
times.
proc G(a : !lot) =
|[ i : nat, d : real
| i := 0; d := exponential(4.0)
| [ truea!i, ; d]
]|
(-5.6)
We use the exit process E from Section 5.2 to determine the mean owtime. Simulation
yields:
[user@host chi]./ams37
41109.3 E mean flowtime = 9.08576
280679 E mean flowtime = 9.32406
441615 E mean flowtime = 9.29845
521513 E mean flowtime = 9.37252
...
8.03191e+06 E mean flowtime = 9.48781
8.07225e+06 E mean flowtime = 9.489
8.1125e+06 E mean flowtime = 9.489
We see that after simulating for a sucient long time, after over 2 million lots
1
, the mean
owtime starts to converge to 9.5 hours. For this M/G/1 system the Pollaczek-Khintchine
approximation is exact!
5.8 Discussion
In the sequel, we frequently mention the performance indicators throughput , owtime ,
utilisation u and wip-level w. Unless explicitly stated otherwise, we are always referring
to the mean throughput, mean owtime, mean utilisation and mean wip-level. For ease of
1
(Try!: How can you estimate the number of lots from the simulation output shown above?)
5.9. Exercises 69
reading, we omit the bar above the performance indicator symbols. We use
i
to refer to
the owtime of the i-th lot, and we use to refer to the mean owtime. Similarly, we use
w
i
or w(t) to refer to the wip-level at a certain point in time, and we use w to refer to the
mean wip-level.
Keyword overview
Modelling manufacturing systems Analyzing manufacturing systems
by simulation, determining
mean owtime ,
mean throughput ,
mean work-in-process w,
mean utilisation u, and
variance
approximation vs simulation
5.9 Exercises
1. By hand, prove that Equation 5.3 is equal to Equation 5.2 for i = 1, 2, 3, 4.
2. For a workstation system in a factory, lot movement is recorded in a logle. The
workstation consists of a buer and a machine. In Figure 5.4 a part of the logle is
shown.
The data contains a time stamp (time instant in hours), a lot id, and a description
of the event that occurs. From this data estimate the mean throughput, the mean
owtime, the mean wip-level, and the mean utilisation.
3. Verify the results found for the M/G/1 system in Section 5.7 by simulation.
4. By simulation determine the mean throughput, mean owtime, mean utilisation and
mean wip-level of the manufacturing system from Exercise 4.1.
5. Reconsider the workstation from Exercise 4.3 consisting of innite buer B and ma-
chine M. The machine can process three types of products. The product type is
denoted by a natural (0,1,2). The processing time depends on the product type. The
processing time is 1.0, 3.0, and 6.0 minutes for product type 0,1, and 2 respectively,
see Figure 5.5.
You can use the specication from Exercise 4.3(a).
(a) Adapt the specication of exit E and determine the mean throughput of the
workstation.
(b) Adapt the specication of exit E and determine the mean owtime per product.
(c) Adapt the specication of exit E and determine the mean owtime per product,
specied per product type.
(d) Adapt the specication of buer B and determine the mean number of products
in the buer.
70 Chapter 5. Measuring performance
875 LOT0174 ENTERED SYSTEM 901.62 LOT0179 ENTERED MACHINE
875 LOT0174 ENTERED BUFFER 905 LOT0180 ENTERED SYSTEM
876.049 LOT0173 LEAVES MACHINE 905 LOT0180 ENTERED BUFFER
876.049 LOT0173 LEAVES SYSTEM 906.938 LOT0179 LEAVES MACHINE
876.049 LOT0174 LEAVES BUFFER 906.938 LOT0179 LEAVES SYSTEM
876.049 LOT0174 ENTERED MACHINE 906.938 LOT0180 LEAVES BUFFER
880 LOT0175 ENTERED SYSTEM 906.938 LOT0180 ENTERED MACHINE
880 LOT0175 ENTERED BUFFER 910 LOT0181 ENTERED SYSTEM
881.396 LOT0174 LEAVES MACHINE 910 LOT0181 ENTERED BUFFER
881.396 LOT0174 LEAVES SYSTEM 911.051 LOT0180 LEAVES MACHINE
881.396 LOT0175 LEAVES BUFFER 911.051 LOT0180 LEAVES SYSTEM
881.396 LOT0175 ENTERED MACHINE 911.051 LOT0181 LEAVES BUFFER
885 LOT0176 ENTERED SYSTEM 911.051 LOT0181 ENTERED MACHINE
885 LOT0176 ENTERED BUFFER 915 LOT0182 ENTERED SYSTEM
887.024 LOT0175 LEAVES MACHINE 915 LOT0182 ENTERED BUFFER
887.024 LOT0175 LEAVES SYSTEM 915.345 LOT0181 LEAVES MACHINE
887.024 LOT0176 LEAVES BUFFER 915.345 LOT0181 LEAVES SYSTEM
887.024 LOT0176 ENTERED MACHINE 915.345 LOT0182 LEAVES BUFFER
890 LOT0177 ENTERED SYSTEM 915.345 LOT0182 ENTERED MACHINE
890 LOT0177 ENTERED BUFFER 919.669 LOT0182 LEAVES MACHINE
892.638 LOT0176 LEAVES MACHINE 919.669 LOT0182 LEAVES SYSTEM
892.638 LOT0176 LEAVES SYSTEM 920 LOT0183 ENTERED SYSTEM
892.638 LOT0177 LEAVES BUFFER 920 LOT0183 ENTERED BUFFER
892.638 LOT0177 ENTERED MACHINE 920 LOT0183 LEAVES BUFFER
895 LOT0178 ENTERED SYSTEM 920 LOT0183 ENTERED MACHINE
895 LOT0178 ENTERED BUFFER 924.686 LOT0183 LEAVES MACHINE
897.496 LOT0177 LEAVES MACHINE 924.686 LOT0183 LEAVES SYSTEM
897.496 LOT0177 LEAVES SYSTEM 925 LOT0184 ENTERED SYSTEM
897.496 LOT0178 LEAVES BUFFER 925 LOT0184 ENTERED BUFFER
897.496 LOT0178 ENTERED MACHINE 925 LOT0184 LEAVES BUFFER
900 LOT0179 ENTERED SYSTEM 925 LOT0184 ENTERED MACHINE
900 LOT0179 ENTERED BUFFER 930 LOT0185 ENTERED SYSTEM
901.62 LOT0178 LEAVES MACHINE 930 LOT0185 ENTERED BUFFER
901.62 LOT0178 LEAVES SYSTEM 930.777 LOT0184 LEAVES MACHINE
901.62 LOT0179 LEAVES BUFFER 930.777 LOT0184 LEAVES SYSTEM
Figure 5.4: Logdata for single machine workstation
finished
products
buffer B
machine M
1.0 min. process time: 3.0 6.0
Figure 5.5: Work station process three product types
6. We reconsider the workstation of the previous exercise. The previous exercise showed
that the mean number of products in the innite buer B is 0.59. We replace the
innite buer by a buer with nite capacity N = 1.
(a) Adapt the specication of the previous exercise and determine the mean through-
put for this system.
(b) How can the throughput be less than 1/4.0 = 0.25 products/minute, whilst the
generator is set to generate a lot every 4.0 minutes?
(c) Increase buer capacity N to 2 products. Again, determine the mean throughput.
Chapter 6
Machines in series
Chapter 4 discusses a single machine with a buer. In this chapter we take a look at
manufacturing lines containing multiple machines in series.
-prerequisites
The specications in this chapter use a number of -elements. Below is an overview of
the -elements that have not been used in previous chapters. The reader is assumed to
be familiar with these elements. If you are not yet familiar with these elements, you can
familiarize yourself by studying the indicated sections of the tutorial Learning [VR02].
-elements used rst used in described in Learning
multiple process instantiations Section 6.1 Section 6.2
parametric processes Section 6.2 Section 6.3
a cluster of clusters Section 6.1 Section 6.4
6.1 Deterministic owline
The rst owline we consider consists of three workstations. Each workstation consists of
an innite buer and one machine, see Figure 6.1 and 6.2.
G E
a d
W
0
b c
W
1
W
2
Figure 6.1: Three workstation owline
At rst, we choose deterministic inter-arrival and processing times. We take inter-arrival
time t
a
= 4.0 hours. All machines have the same process time t
0
= 3.0 hours.
For this simple deterministic system we are not conned to simulation. The analytical
approaches from Chapter 2 are perfectly suitable to analyze this owline. Figure 6.3 shows
a lot-time and resource-time diagram for a release rate of = 1/t
a
= 0.25 lots/hour.
71
72 Chapter 6. Machines in series
B M
b a c
Figure 6.2: Workstation
lot
M1 0
1
2
3
2 4 8 6 10
M1
12
0
1
2
3
time [hours]
resource 2 4 8 6 10
resource is
processing lot i
0
i
12
M1
time [hours]
M2 M3
M2 M3
M1 M2
lot is
processed on M1
waiting in buffer
M1
B
M2
M3
0
0
1
1
1
2
2
Figure 6.3: Analytically constructed (a) lot-time diagram and (b) resource-time diagram
We see that the mean owtime is 9.0 hours, the mean throughput is 0.25 lots/hour and
the mean utilisation is 0.75. In general, for m deterministic identical workstations in series,
consisting each of an innite buer and a single machine, we can deduce:
_
_
= u = t
0
=
m
i=1
t
0,i
= mt
0
if
max
=
max
u = 1 if >
max
(6.1)
Or similarly:
_
_
=
1
t
a
u =
t
0
t
a
=
m
i=1
t
0,i
if t
a
t
0
=
1
t
0
u = 1 if t
a
< t
0
(6.2)
Now let us reproduce these results by simulation. We specify generator G, machine M,
innite buer B, and exit E as follows.
type lot = nat
proc G(a : !lot) =
|[ x : lot
| x := 0
; [ truea!x; 4.0; x := x + 1]
]|
(-6.1a)
6.1. Deterministic owline 73
proc B(a : ?lot, b : !lot) =
|[ xs : lot
, x : lot
| xs := [ ]
; [ true ; a?x xs := xs ++[x]
[] len(xs) > 0; b! hd(xs)xs := tl(xs)
]
]|
(-6.1b)
proc M(a : ?lot, b : !lot) =
|[ x : lot
| [ truea?x; 3.0; b!x]
]|
(-6.1c)
proc E(a : ?lot) =
|[ x : lot
| [ truea?x; !, \tE\treceived lot\t, x, \n]
]|
(-6.1d)
We specify cluster W and cluster GWWWE as follows.
clus W(a : ?lot, c : !lot) =
|[ b : lot
| B(a, b) || M(b, c)
]|
(-6.1e)
clus GWWWE() =
|[ a, b, c, d : lot
| G(a) || W(a, b) || W(b, c) || W(c, d) || E(d)
]|
(-6.1f)
Simulation yields the following output:
[user@host chi]./ams31 -e 30
9 E Received lot 0
13 E Received lot 1
17 E Received lot 2
21 E Received lot 3
25 E Received lot 4
29 E Received lot 5
[user@host chi]_
By simulation, we establish that the mean throughput equals 0.25 lots/hour, the mean
owtime equals 9 hours, and the mean utilisation u is 0.75. This corresponds to the
analytical results.
Figure 6.4 shows how the wip-level changes over time. After 8 hours, the wip-level shows
a repetitive pattern. The rst 8 hours show a start-up eect, since the line started empty.
From Figure 6.4 we determine that, after the start-up behaviour ends, mean wip-level
w =
1
4
3 +
3
4
2 = 2.25 lots. This satises Littles law: w = = 0.25 9 = 2.25.
By simulation we investigate how mean owtime , and mean wip-level w respond to dif-
ferent inter-arrival times. The results are shown in Table 6.1.
74 Chapter 6. Machines in series
t [hours]
w [lots]
16 2 4 6 8 10 12 14 18
1
3
Figure 6.4: Work-in-process level over time
t
a
[hrs] u [] [lots/hour] [hour] w [lots]
12.0 0.25 1/12 = 0.08 9 0.75
9.0 0.33 1/9 = 0.11 9 1.0
6.0 0.5 1/6 = 0.17 9 1.5
5.0 0.6 1/5 = 0.2 9 1.8
4.0 0.75 1/4 = 0.25 9 2.25
3.5 0.86 1/3.5 = 0.29 9 2.57
3.0 1.0 1/3 = 0.33 9 3.0
2.0 1.0 1/3 = 0.33
Table 6.1: u, , , and w for t
0
= 3.0 hours and dierent t
a
, determined by simulation
Note that all results are in accordance with Littles Law (Try!). For t
a
3.0 hours, the
utilisation equals t
0
/t
a
and the throughput equals 1/t
a
. For t
a
< 3.0 hours, the line capacity
is insucient to process all lots: the utilisation equals 1 and the throughput equals 1/t
0
. The
number of lots in the system and thus the mean owtime go to innity. This corresponds
to the analytical results.
6.2 Unbalanced owline
We now explore how the behaviour of the three workstation manufacturing line from Sec-
tion 6.1 is aected if not all machines have the same (but all still deterministic) process
time. As an experiment, we increase the process time for the second machine from 3.0 hour
to 3.5 hour.
With Chapter 2 we easily deduce that the owtime is 9.5 hours for release rates under
the maximum release rate. The maximum release rate is 1/3.5 lots/hour, or similarly, the
minimum inter-arrival time is 3.5 hours. For inter-arrival times less than 3.5 hours, the
owtime grows to innity.
We now use simulation to reproduce these results. To simulate this unbalanced line, we
specify machine M by the following parametric process.
proc M(a : ?lot, b : !lot, t
0
: real) =
|[ x : lot
| [ truea?x; t
0
; b!x]
]|
(-6.2a)
6.3. Machines in series without buers 75
Cluster W and cluster GWWWE become:
clus W(a : ?lot, c : !lot, t
0
: real) =
|[ b : lot
| B(a, b) || M(b, c, t
0
)
]|
(-6.2b)
clus GWWWE() =
|[ a, b, c, d : lot
| G(a) || W(a, b, 3.0) || W(b, c, 3.5) || W(c, d, 3.0) || E(d)
]|
(-6.2c)
Simulation shows that for inter-arrival times greater than 3.5, the owtime is indeed 9.5
hours.
6.3 Machines in series without buers
In Sections 4.2 and 4.3 we discussed the inuence of buers in a workstation for a machine
with varying process times. In this section we explore the inuence of buers in a owline.
We start with the owline from Section 6.1 and replace the three deterministic machines,
by three machines that each have a process time that is either 1.0 or 5.0 hours. We keep the
inter-arrival time xed at 4.0 hours. We remove the innite buers. We specify machine M
as follows.
proc M(a : ?lot, b : !lot, t
0
, s
0
: real) =
|[ d : nat, p : bool, x : lot
| d := bernouilli(0.5)
; [ true
a?x; p := d
; [ pt
0
s
0
[] pt
0
+s
0
]
; b!x
]
]|
(-6.3a)
Here t
0
is the mean process time on the machine and s
0
is the standard deviation on the
process time. Applying statistics to determine the standard deviation of this distribution,
shows that s
0
is indeed the standard deviation. (Try!)
Cluster GMMME becomes:
clus GMMME() =
|[ a, b, c, d : lot
| G(a) || M(a, b, 3.0, 2.0) || M(b, c, 3.0, 2.0) || M(c, d, 3.0, 2.0) || E(d)
]|
(-6.3b)
Simulation shows that the mean throughput is no longer 0.25 lots/hour, but drops down to
0.21 lots/hour. The mean owtime is no longer 9.0 hours, but increases to 10.96 hour. Just
as for the single machine, see Section 4.2, the three machine owline suers from starving
and blocking. Figure 6.5 shows a resource-time-diagram for a single simulation.
76 Chapter 6. Machines in series
20 18 16 resource 2 4 8 6 10
resource is
processing lot i
0
i
12
M1
time [hours]
M2
M3
0
0
1
1
2
G
1
blocked
2
2
3
3
3
starving
blocked
14 22
Figure 6.5: Resource-time-diagram for machines in series without buers
At = 0.0, lot 0 is released in the system. It is processed by machine 1, 2, and 3 in 1.0
hour. Lot 1 is released at = 4.0. It is processed on machine 1 for 5.0 hours. At = 8.0 the
generator tries to release the next lot, but it is blocked. Lot 2 is released at = 9.0. Lot 2
takes 1.0 hour processing on machine 1, but when it is nished machine 2 is still processing
lot 1. Machine 1 is blocked. And even though, at = 13.0, machine 1 is not processing a
lot, it is still blocked and can not start processing the next lot. In the mean time, machine
3 has not processed any lot from = 3.0 till = 14.0: machine 3 is starving.
Introducing nite buers between the machines reduces the eect of starving and blocking.
For innite buers the mean throughput is 0.25 lots/hour and the mean owtime is 14.3
lots/hour. In the exercises, the reader is invited to investigate how the mean throughput
and mean owtime depend on the buer size.
6.4 Simulation vs Approximation (2): owline
Example 6.1 Validity of Kuehns linking equation
To closer investigate the validity of Kuehns linking equation, we consider a single worksta-
tion, consisting of an innite buer and one machine. The process time of the machine is
distributed according to a gamma distribution with t
0
= 3.0 and c
2
0
= 0.5. We consider two
dierent inter-arrival time distributions. First, we let the inter-arrival time be distributed
according to an exponential distribution (an M/G/1 system) with t
a
= {4.0, 6.0, 12.0} and
c
2
a
= 1. Then, we let the inter-arrival time be distributed according to a gamma distribution
(a G/G/1 system) with t
a
= {4.0, 6.0, 12.0} and c
2
a
= 2.0.
We let exit E determine the mean inter-arrival time at the exit (thus the mean inter-
departure time for the machine) and the squared standard deviation. In Section 5.5 we
presented an approach to iteratively determine the variance.
proc E(a : ?lot) =
|[ t
a,i
, t
p
, t
a
, s
2
a
: real, i : nat, x : lot
| t
p
:= ; i := 0; t
a
:= 0.0
; [ true
a?x; i := i + 1; t
a,i
:= t
p
; t
p
:=
; [ i > 1s
2
a
:= (i 2)/(i 1) s
2
a
+ (t
a,i
t
a
)
2
/i
[] i 1s
2
a
:= 0.0
]
; t
a
:= (i 1)/i t
a
+t
a,i
/i
]
]|
(-6.4)
6.4. Simulation vs Approximation (2): owline 77
Every time a lot arrives at the exit process, the inter-arrival time t
a,i
is determined, by
subtracting the time instant t
p
that the previous lot arrived at the exit from the current
time. Subsequently, squared standard deviation s
2
a
on the inter-arrival time and mean inter-
arrival time t
a
are calculated. The squared standard deviation can only be calculated for
i > 1 and is calculated before calculating the mean, see Equation 5.8.
In Table 6.2 the analytically determined c
2
d
is compared with the c
2
d
determined by simula-
tion.
exponentially distr. inter-arrival time gamma distr. inter-arrival time
t
a
c
2
d
(analytical) c
2
d
(simulation) c
2
d
(analytical) c
2
d
(simulation)
4.0 0.719 0.719 1.156 1.050
6.0 0.875 0.875 1.625 1.497
12.0 0.968 0.968 1.906 1.828
Table 6.2: Comparing c
2
d
from analytical results with simulation results
We see that Kuehns linking equation is accurate for the M/G/1 system and less accurate
for the G/G/1 system.
Example 6.2 Flowline from Example 3.3 revisited
In Chapter 3 we discussed how to analytically determine the owtime for a owline, using
Pollaczek-Khintchines queueing relation and Kuehns linking equation. In Example 3.3 we
calculated the mean owtime for a three-workstation owline, with exponentially distributed
inter-arrival times with mean t
a
= 4.0 hours and a process time distribution with t
0
= 3.0
hours and c
2
0
= 0.5. The mean owtime was calculated at 26.2 hours. Let us try and
reproduce these results by simulation.
Lots arrive at the owline with an inter-arrival time that is exponentially distributed, with
mean inter-arrival time t
a
. A lot is represented by an identication number and a time
stamp.
type lot = nat real
proc G(a : !lot, t
a
: real) =
|[ d : real, i : nat
| d := exponential(t
a
); i := 0
; [ truea!i, ; d; i := i + 1]
]|
(-6.5a)
We specify the machines with mean process time t
0
and a squared coecient of variation
c
2
0
. We choose the gamma distribution to represent the process times
1
. In the Reference
Manual [HR02] we nd that the gamma distribution (a, b) has parameters a and b, with
mean = ab and variance
2
= ab
2
. If we have mean process time t
0
and squared coecient
of variation c
2
0
we obtain the following parameters (Try!):
(a, b) with a =
1
c
2
0
and b = c
2
0
t
0
1
This is an arbitrary choice. Chapter 10 goes into more detail on choosing an appropriate distribution
for process times.
78 Chapter 6. Machines in series
We specify machine M as follows:
proc M(a : ?lot, b : !lot, t
0
, c
2
0
: real) =
|[ p, q : real, d : real, x : lot
| p := 1/c
2
0
; q := c
2
0
t
0
; d := (p, q)
; [ truea?x; d; b!x]
]|
(-6.5b)
We let the buer process record the mean owtime in the previous workstation and the
coecient of variation on the inter-arrival time of lots arriving in that buer. In Sec-
tion 5.5 we presented an iterative way to determine the variance. We specify buer B as
follows.
proc B(a : ?lot, b : !lot) =
|[ , t
a,i
, t
p
, t
a
, s
2
a
: real, i : nat, xs : lot
, x : lot
| := 0; t
p
:= ; i := 0
; xs := [ ]
; [ true; a?x
i := i + 1; t
a,i
:= t
p
; t
p
:=
; [ i > 1s
2
a
:= (i 2)/(i 1) s
2
a
+ (t
a,i
t
a
)
2
/i
[] i 1s
2
a
:= 0.0
]
; t
a
:= (i 1)/i t
a
+t
a,i
/i
; := (i 1)/i + ( x.1)/i
; xs := xs ++[x.0, ]
[] len(xs) > 0; b! hd(xs)xs := tl(xs)
]
]|
(-6.5c)
Every time a lot arrives at the buer, the variance on the inter-arrival time and the mean
inter-arrival time are recalculated. Subsequently, the mean owtime for the previous
workstation is determined. The owtime of the lot in the previous workstation is equal
to the current time minus the time instant of entering the previous buer (x.1). After these
calculations, the time stamp of the lot (x.1) is updated to the current time, so that the next
buer can determine the owtime of its preceding workstation.
To determine the mean owtime in the last workstation, we use the following exit pro-
cess.
proc E(a : ?lot) =
|[ : real, x : lot, i : nat
| := 0.0; i := 0
; [ truea?x; i := i + 1; := (i 1)/i + ( x.1)/i]
]|
(-6.5d)
Finally we have the following clusters:
clus W(a : ?lot, c : !lot) =
|[ b : lot
| B(a, b) || M(b, c, 3.0, 0.5)
]|
(-6.5e)
6.4. Simulation vs Approximation (2): owline 79
clus GWWWE() =
|[ a, b, c, d : lot
| G(a) || W(a, b) || W(b, c) || W(c, d) || E(d)
]|
(-6.5f)
After adding output statements to the buer and the exit specication, and running the
simulation for a sucient long time, we obtain the following simulation output:
[user@host chi]./ams42
39771.8 B0 phi 0 ca2 1.10149
39787.6 B1 phi 9.24992 ca2 0.74992
39792.3 B2 phi 8.87956 ca2 0.68941
39829 E phi 8.25412
...
8.45643e+07 B0 phi 0 ca2 1.00149
8.45644e+07 B1 phi 9.74992 ca2 0.71992
8.45644e+07 B2 phi 8.37956 ca2 0.65941
8.45644e+07 E phi 8.05412
...
[user@host chi]_
Modelling and simulation of Example 3.3 yields a mean total owtime = 26.2 hours. At
rst sight, the results seem to exactly correspond with the analytical results, but let us
closer compare the analytical and simulation results. Table 6.3 shows the owtime and
the coecient of variation on the inter-arrival time c
a
for each workstation, determined
analytically and by simulation.
Analytical approximation Simulation
W
0
0
= 9.75 hrs c
2
a,0
= 1
0
= 9.75 hrs c
2
a,0
= 1.00
W
1
1
= 8.49 hrs c
2
a,1
= 0.719
1
= 8.38 hrs c
2
a,1
= 0.719
W
2
2
= 7.92 hrs c
2
a,2
= 0.596
2
= 8.05 hrs c
2
a,2
= 0.659
total = 26.2 hrs = 26.2 hrs
Table 6.3: Analytical approximation results versus simulation results
In Table 6.3, we see that for workstation W
0
the analytical approximation of the mean
owtime is equal to the mean ow time obtained by simulation. This is correct, since we
are dealing with an M/G/1 system. Moreover, we see that the analytical approximation
of c
2
d,0
= c
2
a,1
is also equal to the simulation results. We saw in the previous example
that the for an M/G/1 system, the linking equation is fairly accurate, however, it is only
exact for an M/M/1 system
2
. The subsequent analytical approximations deviate from the
simulation results. For workstation W
1
and subsequent workstations the inter-arrival times
are no longer exponentially distributed. As a consequence, the analytical approximations
no longer yield the exact owtime and the coecient of variation on the inter-arrival times
deviates stronger. In this particular case, the deviations cancel each other out, and the total
owtime determined analytically corresponds (up to three signicant numbers) to the one
determined by simulation. In general, this is not the case!
2
For an M/M/1 system the linking equation always yields the trivial result that c
2
a
= c
2
d
= 1.
80 Chapter 6. Machines in series
Keyword overview
Modelling manufacturing systems Analysis of manufacturing systems
owline starving and blocking
parametric machine model throughput and owtime for a owline
gamma-distributed process time inuence of buers on throughput and
owtime
analytical vs simulation (2)
6.5 Exercises
1. Consider a owline with three workstations. Each workstation consists of a nite
buer with N places and a machine with mean process time t
0
= 3 hours and standard
deviation
0
= 2 hours on the process time. Lots arrive at the system with an inter-
arrival time of t
a
= 4 hours. We measure the mean throughput and the mean
owtime .
G M
a d
B M
b
B
c
M
f
B
e
E
g
t
0
, c
0
t
0
, c
0
t
0
, c
0
N N N t
a
Figure 6.6: Three workstation owline
Are the following statements true or false? (Try to determine your answer by reason.
If desired, use simulation to verify your answer.)
(a) If buer capacity N increases, the inuence of blocking and starving decreases.
(b) If buer capacity N increases, mean throughput increases.
(c) If buer capacity N is zero, mean owtime = 9 hours.
(d) If buer capacity N goes to innity, mean throughput goes to 0.25 lots/hour.
(e) If buer capacity N goes to innity, the throughput and owtime are equal to
the throughput and owtime in case of deterministic process times of 3.0 hours.
2. Reconsider the owline from Exercise 1. Are the following statements true or false?
(Try to determine your answer by reason. If desired, use simulation to verify your
answer.)
(a) For N = , increasing
0
has no eect on mean throughput .
(b) For N = 0, increasing
0
has no inuence on mean throughput .
(c) For N = , increasing
0
has no eect on mean owtime .
(d) For N = 0, increasing
0
has no inuence on mean owtime .
3. Reconsider the owline from Exercise 1. We now also measure the mean wip-level w.
Are the following statements true or false? (Try to determine your answer by reason.
If desired, use simulation to verify your answer.)
6.5. Exercises 81
(a) If N = , the minimum owtime that occurs for a single lot is 9 hours.
(b) If N = 0, the maximum owtime that occurs for a single lot is 9 hours.
(c) If
0
= 0, mean owtime = 9 for any buer capacity N.
(d) For t
a
> t
0
and N = , mean owtime and mean wip-level w go to innity.
(e) For t
0
> t
a
and N = 0, mean wip-level w = 3.
(f) For t
a
> t
0
and N = , mean throughput = 1/t
a
.
4. We have a manufacturing system that consists of two machines M. Both machines are
identical except for the process times: the rst one has a mean process time of 0.2
hour with a variation of plus or minus 0.1 hour, whereas the second one has a mean
process time of 0.4 hour with a variation of plus or minus 0.2 hour. The manufacturing
system is modelled by the following specication:
from std import *
from random import *
type lot = nat
proc G(a: !lot) =
|[ n: lot
| n := 0
; *[ true -> a!n; n:= n + 1]
]|
proc M(a: ?lot, b: !lot, m, s: real) =
|[ d: -> nat, pt: real^2, x: lot
| d:= uniform(0,2); pt:= <| m-s, m+s |>
; *[ true
-> a?x
; delta pt.(sample d)
; b!x
]
]|
proc E(a: ?lot) =
|[ x: lot, i: nat
| i:= 0
; *[ true -> a?x; i:= i + 1; !"Mean output: ", i/time, "\n" ]
]|
clus S() =
|[ a,b,c: -lot
| G(a) || M(a,b,0.2,0.1) || M(b,c,0.4,0.2) || E(c)
]|
xper = |[ S() ]|
Notice that machine M is specied as a process with parameters m and s, denoting
the mean and standard deviation on the process times. In this way the mean process
times and standard variations can easily be changed.
82 Chapter 6. Machines in series
(a) Draw a graphical representation of the model and simulate the specication.
(b) Determine the mean number of lots processed per hour and explain the results.
(c) Insert a nite buer with N places between both machines M. Determine the out-
put in [lots/hour] for dierent buer sizes (0,1,2,...). Plot the output in [lots/hour]
against the buer size N. Explain the results.
(d) What buer size would you advice in this case?
5. Figure 6.7 shows a part of a printed circuit board (PCB) assembly line. This part
contains two component placement robots (CPRs) that place electrical components
on printed circuit boards (PCBs). A PCB is positioned under the placement robot
with a conveyor belt.
Printed Circuit
Board (PCB)
Component
Placement
Robot (CPR)
components
to be placed
conveyor belt
system
Figure 6.7: PCB assembly line
Placing one component on a PCB takes 0.8 to 1.1 seconds. The placement time
is uniformly distributed. The number of components that have to be placed by a
robot varies from 10 to 14 components (in : uniform(10,15)) for each robot and
is also uniformly distributed. We neglect the conveyor transport time. In the rst
conguration there are no buer places before and after the placement robots, see
Figure 6.7. We use a -specication to analyze the performance of the PCB-assembly
line. A part of the specication is shown below.
type pcb = nat real
proc G(a : !pcb) =
|[ i : lot
| i := 0
; [ truea!i, ; . . . ; i := i + 1]
]|
(-6.6a)
proc CPR(a : ?pcb, b : !pcb) =
|[ pt : . . . , nc : . . . , x : pcb, i, n : nat
| pt := uniform(0.8, 1.1); nc := uniform(10, 15)
; [ true
a?x
; n := . . . ; i := 0; [ . . . . . . ; . . . ]
; b!x
]
]|
(-6.6b)
6.6. Case 83
proc E(a : ? . . .) =
|[ x : pcb
| [ truea?x; !, \tE\treceived PCB\t, x, \n]
]|
(-6.6c)
clus PcbAssembly() =
|[ a, b, c : . . .
| G(a) || CPR(a, b) || CPR(b, c) || E(c)
]|
(-6.6d)
(a) What is the time unit of this specication?
(b) Estimate the mean process time per PCB by hand.
(c) We assume that a new PCB arrives at the PCB assembly line every 15 seconds.
Finish the specication of the PCB assembly line. Determine the mean through-
put in PCBs/seconds and the mean owtime in seconds.
(d) Investigate whether increasing the arrival rate results in a higher throughput.
What maximum throughput can be attained? Is the mean owtime aected by
increasing the arrival rate?
6. As an alternative for the PCB assembly line of Exercise 5 we have a conguration that
has a buer place for one PCB between the placement robots, see Figure 6.8.
Printed Circuit
Board (PCB)
buffer place
Component
Placement
Robot (CPR)
components
to be placed
Figure 6.8: PCB assembly line with buers
(a) By simulation, determine the mean throughput and mean owtime for the PCB
assembly line if the arrival rate is 4 PCBs/minute.
(b) What is the maximum attainable throughput if the arrival rate can be freely
chosen? In case of maximum throughput, what is the mean owtime?
6.6 Case
There is something completely wrong, the plant manager pointed out, You said you would
buy three machines of equal capacity! But the line seems to be completely unbalanced.
But I did buy three machines of equal capacity, the design engineer replied, I really did.
Why then is the buer in front of the rst machine generally almost three times as full as
84 Chapter 6. Machines in series
the buer of the third machine?, the manager continued. Well, sir, to be honest, I dont
know. The lots arrive in the rst buer at a constant rate of 4 lots/hour. The capacity of
each of the machines is much larger: 5 lots/hour. So that seems okay to me. Okay? , a
utilization of 80% you call that okay? Those machines are expensive, I want the full 100%.
Why dont you increase the release rate to 5 lots/hour? Well, Im not sure whether that
is a good thing to do. I feel there is some trade-o between throughput and owtime, and
currently the owtime is already near your maximum allowed owtime of 3 hour. What
trade-o? I want a maximum throughput with a minimum owtime. And if all lots are
waiting in the buer of the rst machine, I do understand that that does no good for the
owtime. I demand an explanation. Sir, I really dont understand it, but Ill try to nd
out why the buers are not equally lled and whether or not a trade-o between throughput
and owtime exists. I hope we can further increase the release rate without surpassing the
owtime of 3 hour. Report me at the end of this week. I hope you understand we cannot
aord additional machines. The design engineer left the oce of the manager and walked
to the production line. I really do not understand, he thought, such a simple production
line. A line with just three machines and a buer in front of each machine. The vendor of
the machines guaranteed that each of the three machines has a mean eective process time
of 0.2 hour per lot. Wait, he also shortly mentioned something about variation coecients.
Ah, yes, I remember. He told me that the rst machine has a coecient of variation of about
1.5, and the second and third machine a variation coecient of 0.5. But what dierence
does that make? The rst machine is simply much less reliable due to its sensible and
highly complex production process. On average the available capacity is still equal for all
machines. So why bother and spend money to reduce the variability? And it is not for
nothing I have put buers in front of the machines.
1. We would like to make a -model of the three machine production line to evaluate the
hypothesis of the design engineer that a trade-o is present between throughput and
owtime. Part of the specication of the production line is given below:
from std import * from random import *
type lot = nat#real
proc G(a: !lot, m: real) = |[ i: nat
| i:= 1
; *[ delta m; a!<i,time>; i:= i + 1 ]
]|
proc B(a: ?lot, b: !lot) = |[ ...
| ...
]|
proc M(a: ?lot, b: !lot, m,s: real) = |[ ...
| ...
]|
proc E(a: ?lot) = |[ ...
| ...
]|
6.6. Case 85
clus S() = |[ a,b,c,d,e,f,g: -lot
| G(a,0.25) || B(a,b) || M(b,c,0.2,0.3)
|| B(c,d) || M(d,e,0.2,0.1)
|| B(e,f) || M(f,g,0.2,0.1) || E(g)
]|
xper = |[ S() ]|
(a) Make a graphical representation of the model.
(b) Complete the specication of processes B and M. Note that we deal with an
innite buer. Use a gamma-distribution for the process time of machine M,
with m the mean and s the standard deviation.
(c) Complete the specication of process E such that the mean throughput is com-
puted, as well as the mean owtime from generator to exit.
(d) Run the program and compute the throughput and owtime. Try to obtain about
two signicant digits. Run the program for several other release levels as well,
and investigate whether there is a trade-o between throughput and owtime.
For which release level (throughput) is the maximum allowed owtime reached?
2. To evaluate the observation of the plant manager with respect to the buer contents,
we must slightly extend our -model. Besides the owtime from start to exit, we must
compute the average waiting times in the buers as well. The buer with the longest
waiting time has the largest number of the lots in its queue (note that we can compare
the waiting times of the buers since the throughput of the machines are identical,
see Littles Law).
To compute the mean waiting times, the buers record the lot arrival time and com-
pute the waiting time in the buer when the lot leaves the buer.
(a) Change the specication of buer B such that, when a lot has been received, it
records the time of arrival of that lot, and when a lot is sent, it computes the
waiting time of that lot and the mean waiting time.
(b) Run the program for the original release rate of 4 lots/hour. Let it run some
time until the large uctuations have died out.
(c) What do your observe with respect to the mean waiting times in the three buers?
Do you agree with the observation of the plant manager?
(d) Change the coecient of variation of the rst machine into 0.5, and instead
replace the coecient of variation of the third machine by a value of 1.5. Rerun
the program. What happens to the overall owtime and the waiting times in the
buers?
(e) How is the average number of lots waiting in the queue of a machine aected?
3. The simulation model is a powerful tool to analyze the three machine production line.
However, for this simple production line, we can also use analytical approximations to
estimate mean throughput and owtime. These relations enable to better understand
the actual physical behavior.
Consider again the three machine production line where the rst machine has a process
time coecient of variation of 1.5, and the other two machines a coecient of 0.5.
86 Chapter 6. Machines in series
(a) What is the utilization of each of the machines, given the constant arrival rate
of 4 lots/hour?
(b) Estimate the average waiting time of lots in the buer of the rst machine, and
compute the corresponding WIP-level (i.e. average number of lots waiting in the
queue of the rst machine).
(c) Estimate the departure coecient of variation of the rst machine.
(d) Compute the mean waiting times and WIP-levels for the second and third ma-
chine as well.
(e) Compare the estimated waiting times with the waiting times obtained via simu-
lation. Is the approximation reasonable?
(f) Can you explain why the lots are not equally distributed over the three buers?
What will happen when the process time coecient of variation of 1.5 applies for
the third machine instead of the rst machine?
Chapter 7
Machines in parallel
In the previous chapter we considered modelling machines in series. In this chapter we
model machines in parallel.
-prerequisites
The specications in this chapter use a number of -elements. Below is an overview of
the -elements that have not been used in previous chapters. The reader is assumed to
be familiar with these elements. If you are not yet familiar with these elements, you can
familiarize yourself by studying the indicated sections of the tutorial Learning [VR02].
-elements used rst used in described in Learning
sorting lists Section 7.3 Section 10.5
array tuples Section 7.4 Chapter 12
7.1 Deterministic machines in parallel
Consider three identical machines in parallel with a single (innite) buer, see Figure 7.1.
Each machine has a deterministic process time of 9.0 hours. The generator releases a new
lot in the line every 4.0 hours.
B
a
M
M
M
c
b
d
E
e
f
g
G
Figure 7.1: Three parallel machines
87
88 Chapter 7. Machines in parallel
With the analytical techniques from Chapter 2 we expect a mean throughput of = 1/4
lot/hour, an utilisation of 0.75, and a mean owtime = 9.0 hours. We wish to verify our
expectations by simulation.
The specications of generator G and machine M are more or less identical to the ones
presented in Chapter 4.
type lot = nat real
proc G(a : !lot) =
|[ i : nat
| i := 0
; [ truea!i, ; 4.0; i := i + 1]
]|
(-7.1a)
proc M(a : ?lot, b : !lot) =
|[ x : lot
| [ truea?x; 9.0; b!x]
]|
(-7.1b)
Buer B receives lots from the generator and can send lots to one of the three parallel
machines. We specify buer B as follows.
proc B(a : ?lot, b, c, d : !lot) =
|[ xs : lot
, x : lot
| xs := [ ]
; [ true ; a?x xs := xs ++[x]
[] len(xs) > 0; b! hd(xs)xs := tl(xs)
[] len(xs) > 0; c! hd(xs)xs := tl(xs)
[] len(xs) > 0; d! hd(xs)xs := tl(xs)
]
]|
(-7.1c)
As long as the buer contains lots, the buer tries to send a lot to one of the machines over
channel b, c, or d. The buer sends the lot to the machine that can receive the lot rst. If
more than one machine can receive the lot at the same time, the buer chooses a machine
to send the lot to in a non-deterministic fashion. For more on non-determinism in selection
and selective waiting, one is referred to Learning [VR02], Chapters 5 and 7.
Exit E can always receive lots from the machines.
proc E(a, b, c : ?lot) =
|[ x : lot
| [ true; a?x!, received lot ,x, from machine 0\n
[] true; b?x!, received lot ,x, from machine 1\n
[] true; c?x!, received lot ,x, from machine 2\n
]
]|
(-7.1d)
Finally, we have cluster Parallel.
clus Parallel() =
|[ a, b, c, d, e, f, g : lot
| G(a) || B(a, b, c, d) || M(b, e) || M(c, f) || M(d, g) || E(e, f, g)
]|
(-7.1e)
7.2. Analytical vs Simulation (3): Parallel machines 89
Simulation yields:
9 received lot < 0 0 > from machine 0
13 received lot < 1 4 > from machine 1
17 received lot < 2 8 > from machine 2
21 received lot < 3 12 > from machine 0
25 received lot < 4 16 > from machine 1
29 received lot < 5 20 > from machine 2
33 received lot < 6 24 > from machine 0
37 received lot < 7 28 > from machine 1
41 received lot < 8 32 > from machine 2
45 received lot < 9 36 > from machine 0
We extend exit E to measure the mean throughput, mean owtime, and mean wip level. In
correspondence with our expectations, we establish that = 0.25 lots/hour, = 9.0 hours,
and w = 2.25 lots.
A owline with a single machine with a mean process time of 3.0 hours has the same capacity
of 1/3 lots/hour. In case of deterministic arrival time and process time, the owtime for the
single-machine line is 3.0 hours. However, in case of high variability on the arrival time and
process times, the parallel-machine line yields a lower variability on the owtime and even
may yield a lower owtime than the single machine owline with the same capacity due to
shorter waiting times. We investigated this in Chapter 3 Exercise 2.
7.2 Analytical vs Simulation (3): Parallel machines
In Chapter 3 we presented analytical approximations for the owtime in a workstation
consisting of multiple identical machines in parallel. In this section we wish to compare
this analytical approximation with simulation results. As a test case we consider a single
workstation with three identical parallel machines. Lots arrive with a gamma-distributed
inter-arrival times with mean t
a
and coecient of variation c
a
. The process times of each
machine are distributed according to a gamma distribution with mean t
0
and coecient
of variation c
0
. We set c
2
a
= 1.0, t
0
= 9.0, and c
2
0
= 0.25. We let t
a
vary within the
set {3.5, 4.0, 5.0, 6.0, 9.0, 12.0}. In Table 7.1 we compare the mean owtime determined by
simulation with the mean owtime determined analytically.
c
2
a
= 1.0, c
2
0
= 2.0
t
a
u (analytical) (simulation)
3.5 0.86 18.90 18.93
4.0 0.75 13.43 13.37
5.0 0.60 10.84 10.75
6.0 0.50 10.06 9.94
9.0 0.33 9.38 9.28
12.0 0.25 9.20 9.12
Table 7.1: Comparing from analytical results with simulation results
90 Chapter 7. Machines in parallel
We see that, for this test case, the approximation from Chapter 3 is a fair approximation for
the owtime; all deviations are 1% in order of magnitude. For higher degrees of variability,
for example c
2
a
= c
2
0
= 2.0, the approximation is less accurate.
7.3 Alternative model for parallel machines
If we have many parallel machines, we require a large number of parallel processes M.
Moreover, the specication of buer B, exit E, and cluster Parallel become extensive. One
way of dealing with this large specications is using bundles. Bundles are discussed in
Section 8.5. Another way to deal with this, is to model the parallel machines by a single
process. A graphical representation of this model is shown in Figure 7.2.
G B
a b
M3 E
c
Figure 7.2: Three parallel machines modelled by a single process M3
We specify the three parallel machines by the multiple-machine process M3.
proc M3(a : ?lot, b : !lot) =
|[ xs : (lot real)
, x : lot
| xs := [ ]
; [ len(xs) < 3; a?x xs := xs ++[x, + 3.0]
[] len(xs) > 0; hd(xs).1 b! hd(xs).0; xs := tl(xs)
]
]|
(-7.2a)
The list xs stores the lots that are being processed together with the time at which each lot
is ready processing. As long as there are less than 3 lots being processed (len(xs) < 3), M3
can receive lots via port a. After receiving a lot, the lot is added to the list of lots together
with the time at which the lot is ready ( +3.0). Additionally, M3 waits for the rst lot in
xs to nish. When the rst lot nishes (hd(xs).1 = 0) the lot is sent via port b and is
removed from the lots in process list xs. We sometimes refer to this model as a conveyor
model; we treat the parallel machines as a conveyor. Lots are placed at the beginning of
the conveyor and stay on the conveyor for the duration of the process time. The number of
machines corresponds to the number of lots that t on the conveyor.
Using this multiple-machine process M3, cluster specication Parallel becomes:
clus Parallel() =
|[ a, b, c : lot
| G(a) || B(a, b) || M3(b, c) || E(c)
]|
(-7.2b)
In general, processing times are not deterministic. We can describe m identical parallel
machines that have exponentially distributed process times with mean t by the following
7.4. Parallel machines for dierent lot types 91
specication:
proc Mm(a : ?lot, b : !lot, t : real, m : nat) =
|[ d : real, xs : (lot real)
, x : lot
| d := exponential(t); xs := [ ]
; [ len(xs) < m; a?x xs := insert(xs, x, +d, inc)
[] len(xs) > 0 ; hd(xs).1 b! hd(xs).0; xs := tl(xs)
]
]|
(-7.3)
After receiving a lot, the lot is added to list xs of lots-in-process together with the time the
lot is ready processing. Since the processing time is a stochastic, we can not simply add
the lot at the end of the list (a lot that is received later, can be ready earlier). Instead, the
lot is inserted in the list, in such a way that the list remains sorted in an increasing order.
Hereto, we use the standard function insert with the predicate function inc. The predicate
function inc is specied as follows:
func inc (x, y : lot real) bool = |[ x.1 < y.1]| (-7.4)
More on sorting lists and inserting elements in lists according to a predicate function can
be found in Learning [VR02] Chapter 10.
7.4 Parallel machines for dierent lot types
Again, consider three machines in parallel with separate buers. The generator now releases
lots of three dierent types in the line. Lot type 0 can be processed on machine M
0
, lot
type 1 can be processed on machine M
1
, and lot type 2 can be processed on machine M
2
.
Lot type 0,1,2 are released in a ratio of 4:3:3, with a release rate of 1 lot every 4.0 hours.
Each machine takes 9.0 hours processing. Each buer stores one lot type only. We wish to
determine the mean throughput and owtime per lot type and the utilisation per machine.
Figure 7.3 shows a graphical representation of the owline.
G
B
B
B
a
1
a
0
a
2
b
0
b
1
b
2
M
0
M
1
M
2
E
c
0
c
2
c
1
Figure 7.3: Three parallel machines processing dierent lot types
The type lot is now of type nat nat real denoting the identication number, the lot type
{0,1,2}, and the time of release. We specify generator G as follows.
type lot = nat nat real
92 Chapter 7. Machines in parallel
proc G(a
0
, a
1
, a
2
: !lot) =
|[ i, j : nat, d : nat, ja : nat
10
| i := 0; d := uniform(0, 10); ja := |0, 0, 0, 0, 1, 1, 1, 2, 2, 2|
; [ true
j := ja.(d)
; [ j = 0a
0
!i, j,
[] j = 1a
1
!i, j,
[] j = 2a
2
!i, j,
]
; i := i + 1; 4.0
]
]|
(-7.5a)
Every 4.0 time units, generator G generates a lot. Array tuple ja and uniform distribution d
are used to represent the creation of dierent lot types. In this way, lot types 0,1, and 2 are
generated in the ratio of 4:3:3. Lot type i is sent over channel a
i
. Buers B
i
are standard
innite buers. A specication can be found in Chapter 4.
The specication of machines M
i
and exit E are identical to the ones presented in Section 7.1.
We specify cluster Multtype as follows.
clus Multtype() =
|[ a
0
, a
1
, a
2
, b
0
, b
1
, b
2
, c
0
, c
1
, c
2
: lot
| G(a
0
, a
1
, a
2
)
|| B(a
0
, b
0
) || M(b
0
, c
0
)
|| B(a
1
, b
1
) || M(b
1
, c
1
)
|| B(a
2
, b
2
) || M(b
2
, c
2
)
|| E(c
0
, c
1
, c
2
)
]|
(-7.5b)
By simulation we determine the mean throughput per lot type and the mean owtime per
lot type. The results are shown in Table 7.2.
lot type w
0 0.1 31.1 3.11
1 0.075 14.3 1.08
2 0.075 14.3 1.08
all 0.25 21.02 5.25
Table 7.2: Performance for three-type owline
Note that, though we still have deterministic process times, the mean owtime of a lot is no
longer 9.0 hours. This is because the lot type is stochastic. Chances are 9/100 + 9/100 +
16/100 = 0.34 that two lots of the same type are generated consecutive. Generating two lots
of the same type in a row, causes an increase in owtime for that lot. The mean utilisation
for machine M
0
, M
1
, and M
2
is 0.9, 0.68, and 0.68.
Alternative model
In the specication of the multi-type owline we used separate buers for each lot type. A
dierent modelling approach is to use a single buer process that stores the lot types in
separate lists. The graphical representation of the model is depicted in Figure 7.4.
7.4. Parallel machines for dierent lot types 93
M
0
M
1
M
2
B3
a b
1
b
0
b
2
E
c
0
c
1
c
2
G
Figure 7.4: Three parallel machines processing dierent lot types, alternative model
The specication of generator G becomes.
proc G(a : !lot) =
|[ i : nat, d : nat
; js : nat
10
| i := 0; d := uniform(0, 10); js := |0, 0, 0, 0, 1, 1, 1, 2, 2, 2|
; [ truea!i, js.(d), ; i := i + 1; 4.0]
]|
(-7.6a)
We specify multi-type buer B3 as follows.
proc B3(a : ?lot, b
0
, b
1
, b
2
: !lot) =
|[ xs : (lot
)
3
, x : lot
| xs := |[ ], [ ], [ ]|
; [ true ; a?x xs.(x.1) := xs.(x.1) ++[x]
[] len(xs.0) > 0; b
0
! hd(xs.0)xs.0 := tl(xs.0)
[] len(xs.1) > 0; b
1
! hd(xs.1)xs.1 := tl(xs.1)
[] len(xs.2) > 0; b
2
! hd(xs.2)xs.2 := tl(xs.2)
]
]|
(-7.6b)
Buer B uses array tuple xs of lists. Each list in the array tuple stores a dierent lot
type. The buer can always receive a lot over channel a. The lot is added to the list of the
corresponding type. If there are lots of lot type 0 (len(xs.0) > 0), buer B tries to send the
rst element of the list over channel b
0
to machine M
0
. If multiple lot types are available,
B sends a lot to the machine that can receive a lot rst. If multiple lot types are available,
and multiple machines are willing to receive a lot at the same time, buer B chooses in a
non-deterministic fashion.
The specications of machine M and exit E are identical to the ones presented earlier. The
cluster specication becomes:
clus Multtype() =
|[ a, b
0
, b
1
, b
2
, c
0
, c
1
, c
2
: lot
| G(a) || B(a, b
0
, b
1
, b
2
)
|| M(b
0
, c
0
) || M(b
1
, c
1
) || M(b
2
, c
2
)
|| E(c
0
, c
1
, c
2
)
]|
(-7.6c)
By simulation we obtain the same results as for Specication 7.5.
94 Chapter 7. Machines in parallel
Keyword overview
Modelling manufacturing systems Analysis of manufacturing systems
identical parallel machines analytical vs simulation (3)
conveyor model for parallel machines
parallel machines for dierent lot types
7.5 Exercises
1. Reconsider the owline from Chapter 3 Exercise 1. Determine the mean owtime for
this owline by simulation. Compare simulation results with the analytical results.
2. Consider a multi-product owline with three workstations. Each workstation has
three machines that can perform dierent operations. Figure 7.5 shows a graphical
representation of the multi-product owline.
B
M
0
M
1
M
2
B
b
1
b
0
b
2
c
0
c
1
c
2
a
G B
M
3
M
4
M
5
d
1
d
0
d
2
e
0
e
1
e
2
M
6
M
7
M
8
f
1
f
0
f
2
g
0
g
1
g
2
E
Figure 7.5: Multi-product owline
The owline is used to process six dierent lot types. Each lot type requires processing
on dierent machines. However, each lot type only requires processing on one machine
per workstation. Table 7.3 shows the required process steps per lot type. Moreover,
the table shows what percentage of the lots is of that specic type.
lot type percentage of assortment routing
0 10% M
0
, M
3
, M
6
1 10% M
0
, M
3
, M
7
2 20% M
0
, M
4
, M
6
3 20% M
0
, M
4
, M
7
4 20% M
1
, M
5
, M
8
5 20% M
2
, M
5
, M
8
Table 7.3: Product assortment and required processes
We release new lots at a rate of 1.0 lot/hour.
(a) By hand, estimate the mean number of lots that arrive at each machine per hour.
(b) By hand, determine the required process time per machine, to attain a mean
utilisation of 0.9.
(c) By hand, determine the minimal owtime per lot type.
7.5. Exercises 95
(d) Build a model of the multi-product owline. Lots are of type nat nat real,
representing the identication number, the lot type, and the time of release in the
line. Assume that the machines have a xed process time. You can use fragments
of the specications discussed in Section 7.4.
(e) By simulation, determine the mean owtime per lot type. Compare these ow-
times with the minimal owtime per lot type. Explain the increase in owtime,
while all machines have deterministic process times.
96 Chapter 7. Machines in parallel
Chapter 8
Other congurations
In the previous chapter we considered the elementary congurations of buers and machines:
machines in series and machines in parallel. In practice, many other congurations of buers
and machines exist, see for example [RT98, CAJ01, HS01]. Figure 8.1 shows a number of
possible congurations of machines. Table 8.1 provides a description for each conguration.
B M B M
B
M
M
M
M
M
M
B
B
B
B
B M B M
B
B
B
AP B
B M B M
(a)
(b)
(c)
(d)
(e)
(f)
W W
W W
W
W
W W W
(g)
Figure 8.1: Dierent networks of machines
Depending on the desired properties of the production process (e.g. production volume,
exibility in production volume, exibility in product type) a dierent conguration is
desired. In theory, an unlimited number of possible congurations exist. In the previous
chapters we discussed congurations (a), (d), and (e). In the sequel, we discuss the remaining
97
98 Chapter 8. Other congurations
Conguration Description
(a) Flowline Machines and buers are placed in series.
(b) Flowline with bypassing Some lots skip an operation. One may think of
an automotive assembly line, where some autos
skip the installation of an airbag.
(c) Flowline with backtracking (Some) lots revisit a previous operation. One
may think of lots that need rework, of lots that
repeatingly require an operation (e.g. painting
multiple layers with intermediate drying), or of
a re-entrant owline for the production of ICs.
(d) Parallel machines From a single buer lots can be processed on
each of the parallel machines. Parallel machines
increase the capacity.
(e) Converging owlines Parallel owlines converge into a single buer.
(f) Single machine, multiple buers Machine processes lots from multiple buers.
One may also think of an assembly process,
where the machine assembles a number of parts.
(g) Jobshop We have several workstations, consisting of one
or more machines and buers. Each lot can have
a dierent routing.
Table 8.1: Dierent congurations of machines and buers
four congurations. We present a way to specify these congurations and perform a basic
analysis. Here, we are not interested in conducting a thorough comparison study. Instead,
we provide a number of model components together with an approach to analyze dierent
congurations. For more on dierent congurations and lay-outs, we refer to [CAJ01].
8.1 Bypassing
Consider a owline consisting of three machines and three innite buers. The owline
processes two lot types. The generator releases a new lot every 4.0 hours. The chance that
the new lot is of type 0 is 50%. Lots of type 0 require processing on all three machines
subsequently, lots of type 1 only require processing on machine M
0
and M
2
. Processing a
lot takes 3.0 hours on machine M
0
and M
2
and 6.0 hours on M
1
. The minimal owtime for
lots of type 0 is 12.0 hours, for lots of type 1 it is 6.0 hours. Thus, on average the minimal
owtime is 9.0 hours. We wish to determine the mean owtime by simulation. Figure 8.2
shows a graphical representation of the model.
a b c d f g h
M
0
M
1
M
2
B
0
B
S
B
M
e
E G
Figure 8.2: Three-workstation owline with bypassing
8.1. Bypassing 99
A lot is of type nat nat real, denoting the identication number, the lot type {0,1}, and
the time of release. We specify generator G as follows.
type lot = nat nat real
proc G(a : !lot) =
|[ i : nat, d : nat
| i := 0; d := uniform(0, 2)
; [ truea!i, d, ; i := i + 1; 4.0]
]|
(-8.1a)
Buer B
0
in front of machine M
0
is a standard buer, in which the lots are all stored in a
single list in order of arrival. Buer B
S
in front of machine M
1
is a splitting buer. Buer
B
S
receives lots and sends lots of type 0 via port b to machine M
1
and lots of type 1 via port
c to the buer in front of machine M
2
: lots of type 1 bypass machine M
1
and are directly
sent to buer B
M
. We can specify buer B
S
in dierent ways. Here, we choose to store all
lots in a single list.
proc B
S
(a : ?lot, b, c : !lot) =
|[ xs : lot
, x : lot
| xs := [ ]
; [ true ; a?x xs := xs ++[x]
[] checktype(xs, 0); b! hd(xs)xs := tl(xs)
[] checktype(xs, 1); c! hd(xs)xs := tl(xs)
]
]|
(-8.1b)
func checktype (xs : lot
, n : nat) bool =
|[ [ len(xs) = 0 false
[] len(xs) > 0 hd(xs).1 = n
]
]|
(-8.1c)
Buer B
S
is always willing to receive lots. The function checktype(xs, 0) checks whether
the rst lot in list xs is of type 0. If the rst lot in xs is of type 0, the function call
checktype(xs, 0) returns true. If the rst element in list xs is of type 0, B
S
tries to send
the head of the list via port b. If the rst element in list xs is of type 1, B
S
tries to send
the head of the list via port c. Note that we use the function checktype(xs, 0) as guard in
the selective waiting in B
S
instead of the guard len(xs) > 0 hd(xs).1 = 0. In this way, we
avoid taking the head of an empty list
1
, when len(xs) = 0.
Buer B
M
is a merging buer and has two inputs. An input for lots that have been processed
on machine M
1
and an input for lots that bypass machine M
1
. We specify buer B
M
as
1
In the implementation of 0.8, we can use the guard len(xs) > 0hd(xs).1 = 0, because the operator
is a conditional and. This means that for a boolean guard bg
1
bg
2
the second boolean expression is only
evaluated if the rst boolean expression evaluates true.
100 Chapter 8. Other congurations
follows:
proc B
M
(a, b : ?lot, c : !lot) =
|[ xs : lot
, x : lot
| xs := [ ]
; [ true ; a?x xs := xs ++[x]
[] true ; b?x xs := xs ++[x]
[] len(xs) > 0; c! hd(xs)xs := tl(xs)
]
]|
(-8.1d)
Buer B
M
is always willing to receive lots via port a or b, and sends the lots via port c.
We specify machine M with a parametric process time.
proc M(a : ?lot, b : !lot, t : real) =
|[ x : lot
| [ truea?x; t; b!x]
]|
(-8.1e)
Finally, we specify cluster Bypass.
clus Bypass() =
|[ a, b, c, d, e, f, g, h : lot
| G(a) || B(a, b) || M(b, c, 3.0) || B
s
(c, d, e)
|| M(d, f, 6.0) || B
m
(e, f, g) || M(g, h, 3.0) || E(h)
]|
(-8.1f)
After adding output statements to E, simulation yields.
10 E received lot < 1 1 4 >
13 E received lot < 0 0 0 >
20 E received lot < 2 0 8 >
26 E received lot < 3 0 12 >
32 E received lot < 4 0 16 >
35 E received lot < 6 1 24 >
38 E received lot < 5 0 20 >
We see that lot 1 has passed lot 0. Lot 1 is of type 1 and does not require processing at
machine M
1
. The owtime of lot 1 is therefore 6.0 hours. The owtime of lot 0 is 13.0 hours,
of which 1.0 hour is due to waiting induced by lot 1. We establish a mean throughput of
0.25 lots/hour. The mean owtime equals 12.5 hours. Part of this owtime is caused by
the fact that buer B
S
only regards the rst lot in the buer. Suppose buer B
S
contains
three lots. The rst lot is of type 0, the second and third lot are of type 1. If machine M
1
is busy, all lots in the buer have to wait, even when machine M
2
is idle. To let buer B
s
forward lots of type 1, regardless the type of the rst lot in line, we use a separate list for
8.2. Backtracking 101
each lot type.
proc B
S
(a : ?lot, b, c : !lot) =
|[ xs : (lot
)
2
, x : lot
| xs := |[ ], [ ]|
; [ true ; a?x xs.(x.1) := xs.(x.1) ++[x]
[] len(xs.0) > 0; b! hd(xs.0)xs.0 := tl(xs.0)
[] len(xs.1) > 0; c! hd(xs.1)xs.1 := tl(xs.1)
]
]|
(-8.2)
Simulation now yields a mean owtime of 11.6 hours. However, in this way the mean
owtime of lots of type 0 increases.
8.2 Backtracking
As an example of a owline with backtracking, we consider a three-workstation owline with
possible rework on the middle machine. Machine M
1
performs an operation, which has 90%
chance of being successful. In buer B
T
behind machine M
1
lots are tested. Lots that
require rework are sent back to the buer in front of machine M
1
. The generator releases
new lots in the line at a rate of 0.25 lot/hour. On every machine, processing a lot takes
3.0 hours. We wish to determine the mean utilisation of the middle machine by simulation.
Figure 8.3 shows a graphical representation of the owline.
a b c d f g h
M
0
M
1
M
2
B
0
B
M
B
T
e
G E
Figure 8.3: Three-workstation owline with rework
Lots are of type nat real, representing the identication number and the time of re-
lease. Machine M
1
sends a tuple of a lot and a bool, in which the bool represents the
result of the operation on machine M
1
. The last element is true, if the operation on ma-
chine M
1
was successful, otherwise it is false. We specify generator G and machine M
1
as
follows.
type lot = nat real
proc G(a : !lot) =
|[ i : nat
| i := 0
; [ truea!i, ; i := i + 1; 4.0]
]|
(-8.3a)
proc M
1
(a : ?lot, b : !lot bool) =
|[ x : lot, d : bool
| d := bernouilli(0.9)
; [ truea?x; 3.0; b!x, d]
]|
(-8.3b)
102 Chapter 8. Other congurations
Testing buer B
T
tests the lots that have been processed on machine M
1
. If the result is
satisfactory, the lot is added to the list of waiting lots for machine M
2
, otherwise it is sent
back to merging buer B
M
. We specify buer B
T
as follows.
proc B
T
(a : ?lot bool, b, c : !lot) =
|[ xs, ys : lot
, x : lot, q : bool
| xs, ys := [ ], [ ]
; [ true ; a?x, q [ qxs := xs ++[x] [] qys := ys ++[x]]
[] len(xs) > 0; b! hd(xs)xs := tl(xs)
[] len(ys) > 0; c! hd(ys)ys := tl(ys)
]
]|
(-8.3c)
We use Specication (-8.1d) to represent the merging buer. We specify cluster Rework
as follows.
clus Rework() =
|[ a, b, c, d, e, g, h : lot, f : lot bool
| G(a) || B(a, b) || M(b, c) || B
M
(c, e, d)
|| M(d, f) || B
T
(f, g, e) || M(g, h) || E(h)
]|
(-8.3d)
By simulation, we determine a mean throughput of 0.25 lots/hour and a mean utilisation of
0.833 for machine M
1
. By hand, we can verify this result. Machine M
0
sends 0.25 lots/hour
to machine M
1
. Of these 0.25 lots/hour 10% need rework. Of this 10%, 10% needs rework
again, and so on. In total, 0.25 +0.1 0.25 +0.01 0.25+... = 1.111 0.25 = 0.2778 lots/hour
arrive at the buer for machine M
1
. This leads to a mean utilisation of 0.2778/0.3333 =
0.833.
We can also deduce this using mass conservation from Chapter 2. Mass conservation on
workstation B
M
M
1
yields:
M0
+ 0.1
M1
=
M1
With
M0
= we get:
= 0.9
M1
M1
= /0.9
The utilisation of machine M
1
then is:
u
M1
=
M1
t
0,M1
= /0.9 t
0,M1
= 0.25/0.9 3.0 = 0.833
8.3 Assembly line
Consider an assembly process AP that assembles three dierent parts p
0
, p
1
, and p
2
. Each
part is stored in a separate buer. We use separate generator processes to represent the
arrival pattern of the parts (from other areas of the factory). We assume that parts arrive
with a xed inter-arrival time of 4.0 hours. The assembly process takes one part from each
buer. After the process has all the required parts, the assembly is started. The assembly
takes 3.0 hours. We wish to investigate the performance by simulation. Figure 8.4 shows a
graphical representation of the assembly line.
8.3. Assembly line 103
G
0
G
1
G
2
B
B
B
a
1
a
0
a
2
b
0
b
1
b
2
E
c
AP
Figure 8.4: Line for assembling three parts
We specify process G as follows.
type prt = nat real
, asy = prt
3
proc G(a : !prt) =
|[ i : nat
| i := 0
; [ truea!i, ; i := i + 1; 4.0]
]|
(-8.4a)
Buers B are standard buers storing parts. We specify assembly process AP as fol-
lows.
proc AP(a
0
, a
1
, a
2
: ?prt, b : !asy) =
|[ p
0
, p
1
, p
2
: prt, rcv : bool
3
| [ true
rcv := |false, false, false|
; [ rcv.0; a
0
?p
0
rcv.0 := true
[] rcv.1; a
1
?p
1
rcv.1 := true
[] rcv.2; a
2
?p
2
rcv.2 := true
]
; 3.0
; b!|p
0
, p
1
, p
2
|
]
]|
(-8.4b)
Process AP uses variable rcv to monitor what parts have been received. If part p
i
is not
yet received (rcv.i = false), it tries to take a part from the buer over channel a
i
. After all
parts have been received, the parts are assembled. The assembly is sent over channel b. We
specify cluster Assembly as follows.
clus Assembly() =
|[ a
0
, a
1
, a
2
, b
0
, b
1
, b
2
: prt, c : asy
| G(a
0
) || G(a
1
) || G(a
2
)
|| B(a
0
, b
0
) || B(a
1
, b
1
) || B(a
2
, b
2
)
|| M(b
0
, b
1
, b
2
, c)
|| E(c)
]|
(-8.4c)
104 Chapter 8. Other congurations
After changing exit E to log the assemblies that leave the system, simulation yields:
3 received assembly <| < 0 0 > < 0 0 > < 0 0 > |>
7 received assembly <| < 1 4 > < 1 4 > < 1 4 > |>
11 received assembly <| < 2 8 > < 2 8 > < 2 8 > |>
15 received assembly <| < 3 12 > < 3 12 > < 3 12 > |>
19 received assembly <| < 4 16 > < 4 16 > < 4 16 > |>
23 received assembly <| < 5 20 > < 5 20 > < 5 20 > |>
27 received assembly <| < 6 24 > < 6 24 > < 6 24 > |>
31 received assembly <| < 7 28 > < 7 28 > < 7 28 > |>
The i-th element of the assembly represents part p
i
. We attain a mean throughput of 0.25
assembly/hour. On average, a part is for 3.0 hours in the assembly line. Note that, because
of the deterministic arrival times of the parts, the assembly process receives all parts at the
same time.
We change the arrival times of the parts to become stochastic. We let the lots arrive ac-
cording to a negative exponential distribution with a mean of 4.0 hours. A single simulation
yields:
3 received assembly <| < 0 0 > < 0 0 > < 0 0 > |>
6 received assembly <| < 1 1.78935 > < 1 2.12337 > < 1 0.919814 > |>
9.3672 received assembly <| < 2 2.84998 > < 2 4.62751 > < 2 6.3672 > |>
22.2245 received assembly <| < 3 3.54575 > < 3 19.2245 > < 3 10.9058 > |>
25.2245 received assembly <| < 4 5.14347 > < 4 19.2386 > < 4 20.3083 > |>
29.4133 received assembly <| < 5 5.1921 > < 5 19.501 > < 5 26.4133 > |>
34.1696 received assembly <| < 6 8.51579 > < 6 23.7321 > < 6 31.1696 > |>
We can see that at = 22.2245 for assembly number 3 part p
1
(that arrives at = 19.2245)
causes a substantial delay for the assembly process. By simulation, we establish that the
mean throughput is still 0.25 assembly/hour. However, the mean time a part is in the
system increases signicantly. (Try! Can you tell from the simulation output whether the
assembly time is still deterministic?)
8.4 Jobshop
The last conguration we discuss, is the jobshop. In a jobshop, we have multiple work-
stations. Each lot can have a dierent routing. In principle, a lot could go from every
workstation to any other workstation. As an example, we consider a four workstation job-
shop. Each job requires 6 operations. The routing varies per job. The rst operation is
always performed on workstation 0, the last operation is always performed on workstation
3. The remaining four operations are evenly distributed over all workstations, for instance,
the chance that the second operation is to be performed on workstation 1 is 25%, just as
the chance that it is to be performed on any other workstation.
8.4. Jobshop 105
W
0
W
2
W
3
W
1
G E
W
0
W
1
W
3
W
2
T G E
(a) (b)
Figure 8.5: 4-workstation jobshop
Each workstation is connected to every other workstation. Generator G is connected to
workstation 0 and workstation 3 is connected to exit E, see Figure 8.5(a). Each workstation
consists of an innite buer and a machine with parametric process time t.
We let the generator release new jobs at a rate of 0.25 lots/hour. We wish to determine
process time t for each workstation, so that the utilisation is 0.80 for each workstation.
It is possible to make a -model of the jobshop in the way depicted in Figure 8.5(a).
However, this model requires a large number of channels and a rather extensive cluster
specication. Therefore, we propose an alternative model. In this model, we introduce
a central process that connects all workstations. We call this process the transportation
process. The graphical representation of this model is shown in Figure 8.5(b).
A job is of type nat nat
real
proc G(a : !job) =
|[ i : nat, d : ( nat)
4
, js : nat
, x : job
| xs := [ ]
; [ true ; a?x xs := xs ++[x]
[] len(xs) > 0; b! hd(xs)xs := tl(xs)
]
]|
(-8.5c)
proc M(a : ?job, b : !job, t : real) =
|[ x : job
| [ truea?x; t; x.1 := tl(x.1); b!x]
]|
(-8.5d)
clus W(a : ?job, c : !job, t : real) =
|[ b : job
| B(a, b) || M(b, c, t)
]|
(-8.5e)
Exit E is always able to receive nished jobs (not shown here). Finally we specify cluster
8.5. Using bundles 107
Jobshop.
clus Jobshop(t
0
, t
1
, t
2
, t
3
: real) =
|[ a
g
, a
0
, a
1
, a
2
, a
3
, b
0
, b
1
, b
2
, b
3
, b
e
: job
| G(a
g
) || T(a
g
, a
0
, a
1
, a
2
, a
3
, b
0
, b
1
, b
2
, b
3
, b
e
) || E(b
e
)
|| W(b
0
, a
0
, t
0
) || W(b
1
, a
1
, t
1
) || W(b
2
, a
2
, t
2
) || W(b
3
, a
3
, t
3
)
]|
(-8.5f)
We add output statements to the generator, the machines, and the exit. If we let an
operation on each workstation take 3.0 hours, simulation of a single job yields:
0 G releases job < 0 [ 0 2 1 0 0 3 ] 0 >
3 M0 processes job < 0 [ 0 2 1 0 0 3 ] 0 >
6 M2 processes job < 0 [ 2 1 0 0 3 ] 0 >
9 M1 processes job < 0 [ 1 0 0 3 ] 0 >
12 M0 processes job < 0 [ 0 0 3 ] 0 >
15 M0 processes job < 0 [ 0 3 ] 0 >
18 M3 processes job < 0 [ 3 ] 0 >
18 E received job < 0 [ ] 0 >
Now, we wish to obtain an utilisation of 0.80 for each machine. First, we make an analytical
estimation. On average, workstation W
0
receives 1 + 4 P(W
0
) = 1 + 4 0.25 = 2 lots per
job, that is 0.5 lots/hour. W
3
also receives 0.5 lots/hour. Workstations W
1
and W
2
receive
4 0.25 = 1 lot per job, that is 0.25 lots/hour. In order to obtain an utilisation of 0.80, we
estimate that we require a process time of 1.6 hour on machines M
0
and M
3
and a process
time of 3.2 hours on machines M
1
and M
2
.
Simulating the jobshop with these process times yields a throughput of 0.25 lots/hour, a
mean owtime of 26.6 hours and an utilisation of 0.80 on each machine. Note that the mean
owtime is signicantly higher than the mean process time per job (t
0
+t
3
+4
t0+t1+t2+t3
4
=
1.6+1.6+42.4 = 12.8 hours). Though the process times are deterministic, the stochastically
generated jobs cause waiting times in the buers!
8.5 Using bundles
In this and the previous chapter, we have presented model components for several congura-
tions. Some specications can be shortened signicantly by using bundles. Bundles contain
multiple channels. As an example, we reconsider the alternative model specication from
Section 7.4. We start with buer B3. Instead of 3 separate channels b
0
, b
1
, and b
2
, we
specify a bundle b of 3 channels.
proc B3(a : ?lot, b : (!lot)
3
) =
|[ xs : (lot
)
3
, x : lot
| xs := |[ ], [ ], [ ]|
; [ true ; a?x xs.(x.1) := xs.(x.1) ++[x]
[] j : nat 0..3 : len(xs.j) > 0; b.j! hd(xs.j)xs.j := tl(xs.j)
]
]|
(-8.6a)
108 Chapter 8. Other congurations
This specication has the exact same functionality as Specication 7.6b. We address a
channel within a bundle by indexing. This index may be a variable. Here, we iterate over
j, for 0 j < 3. For each j, for which len(xs.j) > 0, process B3 tries to send the head of
xs.j via port b.j. We can shorten exit E by using bundles.
proc E(a : (?lot)
3
) =
|[ x : lot
| [ j : nat 0..3 : true; a.j?x!, received lot ,x, from M,j, \n]
]|
(-8.6b)
We iterate over j, where j runs from 0 to 3 (that is {0,1,2}). For every value of j, E is
always (boolean guard is true, regardless the value of j) willing to receive lots via port a.j.
In other words, exit E can always receive via ports a.0 through a.2.
The cluster specication becomes:
clus Multtype() =
|[ a : lot, b, c : (lot)
3
| G(a) || B(a, b)
|| j : nat 0..3 : M(b.j, c.j)
|| E(c)
]|
(-8.6c)
The cluster has two bundles, each containing three channels over which we send lots.
We use variable j to initiate multiple processes M. This specication is a brief notation
of:
clus Multtype() =
|[ a : lot, b, c : (lot)
3
| G(a) || B(a, b)
|| M(b.0, c.0)
|| M(b.1, c.1)
|| M(b.2, c.2)
|| E(c)
]|
(-8.7)
The specication of the jobshop can also be signicantly reduced. As an indication, study the
specication of transportation process T and cluster Jobshop from Section 8.4.
proc T(a
g
, a : (?job)
4
, b : (!job)
4
, b
e
: !job) =
|[ x : job
; [ true
[ true ; a
g
?x skip
[] j : nat 0..4 : true; a.j?xskip
]
; [ len(x.1) = 0b
e
!x
[] len(x.1) > 0b. hd(x.1)!x
]
]
]|
(-8.8a)
8.6. Exercises 109
clus Jobshop(t : real
4
) =
|[ a
g
, b
e
: job, a, b : (job)
4
| G(a
g
) || T(a
g
, a, b, b
e
) || E(b
e
)
|| j : nat 0..4 : W(b.j, a.j, t.j)
]|
(-8.8b)
In cluster specication Jobshop, we have an array t of type real
4
that contains the process
times at workstation 0,1,2, and 3.
Keyword overview
Modelling manufacturing systems Analysis of manufacturing systems
owline with backtracking (rework)
owline with bypassing
assembly line
jobshop
bundles
8.6 Exercises
1. Consider an assembly process that assembles four dierent parts. Each part has a
dierent inter-arrival time. We assume that we are dealing with xed inter-arrival
times. Table 8.2 shows the number of parts required per assembly and the inter-
arrival time of that part.
Each part is stored in a separate buer. After the assembly processes has collected
all required parts, the assembly commences. Assembling the parts takes 0.8 hours.
The assembly is sent to exit E. Figure 8.6 shows a graphical representation of the
assembly line.
G
0
G
1
G
2
B
B
B
a
1
a
0
a
2
b
0
b
1
b
2
E
c
AP
G
3
B
a
3
b
3
Figure 8.6: Assembly line
part # in assembly mean inter-
arrival time [hour]
0 1 1.0
1 2 0.5
2 4 0.25
3 5 0.2
Table 8.2: Parts needed in assembly
We represent an assembly by an array of four lists. The i-th list in the assembly stores
the parts of type i. We have the following fragments of specication.
from std import *
from random import *
type prt = nat#real
110 Chapter 8. Other congurations
, asy = (prt*)^4
proc G(a: !prt, ta: real) =
|[ i: nat
| i:= 0
; *[ true -> a!<i,time>; delta ta; i:= i + 1 ]
]|
func tAver(ti_1,ti,mb: real, b: nat) -> real#real =
|[ [ ti = ti_1 -> ret <ti,mb>
| ti > ti_1 -> ret <ti,mb*ti_1/ti + b*(ti-ti_1)/ti>
]
]|
proc B(a: ?prt, b: !prt, n: nat) =
|[ xs: prt*, x: prt, ti_1,mb: real, i: nat
| xs:= []; ti_1:= time; mb:= 0.0; i:= 0
; *[ true ; a?x -> <ti_1,mb>:= tAver(ti_1,time,mb,len(xs))
; xs:= xs ++ [x]
| len(xs)>0; b!hd(xs) -> <ti_1,mb>:= tAver(ti_1,time,mb,len(xs))
; xs:= tl(xs); i:= i + 1
; [ i mod 10000 = 0 -> !time,"\tB",n,"\t mb = ",mb,"\n"
| i mod 10000 > 0 -> skip
]
]
]|
proc AP(a0,a1,a2,a3: ?prt, b: !asy, t0: real) =
|[ rqr: nat^4, pts: (prt*)^4, p: prt
| rqr:= <| 1,2,4,5 |>
; *[ true
-> pts:= <| [], [], [], [] |>
; *[ len(pts.0) < ... ; ... -> pts.0:= ...
| ...
| ...
| ...
]
; delta t0
; b!pts
]
]|
proc E(a: ?asy) =
|[ x: asy
| *[ true -> a?x ]
]|
clus Assembly() =
|[ a0,a1,a2,a3,b0,b1,b2,b3: -prt, c: -asy
| G(a0,1.0) || ... || ... || ...
|| B(a0,b0,0) || B(a1,b1,1) || B(a2,b2,2) || B(a3,b3,3)
|| AP(...)
|| E(c)
]|
xper = |[ Assembly() ]|
(a) By hand, estimate the utilisation of the assembly process.
(b) Explain, whether the arrival rate of the parts is balanced, that is, does the
assembly process need to wait for the same specic part over and over again?
(c) Finish the fragments of specication into a complete model.
8.6. Exercises 111
(d) By simulation, determine the average buer level in each part buer.
(e) Figure 8.7 shows part of the buer levels over time.
B
3
B
2
B
1
B
0
t 1.0 0 2.0 3.0
Figure 8.7: Number of parts in buer over time
Finish the diagrams for each part buer. Verify the simulation results.
(f) Change the arrival rate of the parts to become stochastic. Even after simulating
for a substantial long time, we see that one or more buer levels keep increasing.
Can you explain this?
2. We have a manufacturing line that processes two lot types. The manufacturing line
consists of 3 workstations. The rst workstation has three identical machines M
0
.
The second and third workstation each have one machine. Each workstation has an
innite buer. Lots of type 0 require processing on all three workstation. Lots of type
1 require processing on M
0
and M
2
only. Processing a lot on machine M
0
, M
1
, and M
2
takes 9.0, 5.0, and 3.0 hours respectively. Figure 8.8 shows a graphical representation
of this manufacturing line.
a d f g h
M
1
M
2
B
1
B
2
e
E G
M
0
M
0
M
0
B
0
b
1
b
0
b
2
c
0
c
1
c
2
Figure 8.8: Manufacturing line
Lots are of type nat nat real, representing the identication number, the lot type,
and the time of release in the line.
(a) By hand, estimate the utilisation for each machine if we release lots in the line
at a rate of 0.25 lots/hour.
(b) Build a model of this manufacturing line. Use fragments of the specications
discussed in Sections 8.1, 8.2, and 7.1.
(c) By simulation, determine the mean throughput and owtime of this line for a
release rate of 0.25 lots/hour.
112 Chapter 8. Other congurations
(d) By hand, calculate the mean wip level of this line.
(e) By simulation, determine the mean utilisation of each machine. Compare your
results with your estimations from part 2a.
3. In re-entrant owlines, a lot runs through the owline multiple times. In this way,
we can perform a sequence of process steps more than once on a single lot. This is
often encountered in the semi-conductor industry, where wafers are processed in layers.
Here, we study the behaviour of a simple re-entrant owline. The owline has two
machines and three buers. The last buer checks whether the lot needs to re-enter
the owline or whether it is nished. Figure 8.9 shows a graphical representation of
the re-entrant owline.
a d f g
M
1
B
1
B
2
E G M
0
B
0
b c
e
Figure 8.9: Re-entrant owline
Processing takes 0.2 hours on each machine. There are three lot types. The lot types
need 1,2, and 3 loops through the owline respectively. The generator releases lots at
a xed arrival rate. On average, each lot type is generated in the same quantity.
(a) By hand, estimate the release rate for which the utilisation of both machines is
0.8.
(b) Let lots be of type natrealnat, where the elements represent the identication
number, the time of release, and the remaining number of loops through the line.
Make a model of this manufacturing line. Below, the specication of buer B
2
is shown.
proc B
2
(a : ?lot, b, c : !lot) =
|[ xs, ys : lot
, x : lot
| xs := [ ]; ys := [ ]
; [ true ; a?x x.2 := x.2 1
; [ x.2 > 0xs := xs ++[x]
[] x.2 = 0ys := ys ++[x]
]
[] len(xs) > 0; b! hd(xs)xs := tl(xs)
[] len(ys) > 0; c! hd(ys)ys := tl(ys)
]
]|
(-8.9)
(c) By simulation, determine the mean utilisation per machine for dierent release
rates. For which release rate is the utilisation 0.8? Does this correspond to your
estimation?
4. What is the dierence in meaning of: a :?lot
2
and a : (?lot)
2
?
Chapter 9
Push, pull, and push/pull
In Chapters 3 and 6 we discussed the performance of a three-workstation owline. Without
explicitly mentioning it, we applied push control in these chapters. Generator G pushes a
lot in the line according to a pre-specied arrival pattern and machines start producing as
long as there are lots available in the buer. In this chapter, we see that other ways exist of
controlling the release of new lots in the line and controlling the instant at which a machine
starts processing.
9.1 Push versus pull
In principle, we distinguish two basic control strategies: push and pull. In literature several
denitions of push and pull exist. Here, we characterize both control strategies as follows.
In a push-controlled owline:
lots are released in the line according to a pre-specied schedule and
machines start producing as soon as the buer in front of it contains lots.
In a pull-controlled owline:
lots are released in the line, after an authorization from a downstream process and
machines start producing after they receive an authorization signal from a downstream
process.
Informally, we can state the following. In a push-controlled owline, new lots are pushed
into the line and lots are pushed onto the machine. In a pull-controlled owline, new lots
are pulled into the line and lots are pulled onto the machine.
An example of a pure push system is the owline of Section 6.1. Here the generator releases
new lots in the line with a xed inter-arrival time t
a
and machines start producing as soon
as the buer in front of it contains lots.
113
114 Chapter 9. Push, pull, and push/pull
An example of a pure pull system is graphically represented in Figure 9.1. This owline
has three workstations and central authorization process A. Exit E posts a request at the
authorization process. Subsequently, the authorization process authorizes generator G to
release a new lot in the line and authorizes each machine to process a lot.
G E
a g
A
B M
b c
B M
d e
B M
f
Figure 9.1: Pull-controlled owline with central authorization process
Note that we explicitly distinguish between the manner in which new lots are released in
the line and the manner in which we let machines start processing. This aids in coming
to an unambiguous description of push and pull. In practice, we encounter many hybrid
push/pull systems, [RT98, Sur98, CAJ01]. An example of a hybrid push/pull system is
a conwip-controlled line. In a conwip-controlled line, the generator releases a new lot in
the line if a nished lot has left the line. In this way the wip in the line is kept at a
constant level. New lots are released in a pull-manner, however machines start processing
in a push-manner. Thus, we call conwip a push/pull hybrid control strategy.
In the sequel of this chapter, we discuss a number of alternative control strategies for
the push-controlled three-workstation owline presented Section 6.3. The emphasis is on
illustrating how we can specify and analyze these systems using . The goal is not to
compare the performance for the dierent control strategies.
9.2 Central authorization
Reconsider the three-workstation owline of Section 6.3. Each workstation consists of an
innite buer and a machine that has a process time of either 1.0 or 5.0 hours. Instead
of releasing lots with xed inter-arrival time in the line, we introduce an authorization
process that authorizes the release of new lots in the line. Moreover, the machines in the
workstations start processing a lot after they received an authorization signal from this same
authorization process. Figure 9.2 shows a graphical representation of this system.
The dotted lines indicate channels of type void, over which the authorization signals are
sent. The solid lines indicate channels of type lot. We represent lots by a record tuple of
its identication number and the time of release in the line.
type lot = nat real
In this line the initiative is not with the generator, but with the exit process that requests
products. Exit E rst sends a request over channel r to authorization process A and then
tries to receive a product from the last machine. Here, we let exit E request a lot 4.0 hours
9.2. Central authorization 115
G E
a d
W
0
b c
W
1
W
2
A
r
a
2
a
1
a
0
a
r
Figure 9.2: Flowline with central authorization
after the last nished lot has been received.
proc E(a : ?lot, r : !void) =
|[ x : lot
| [ truer!; a?x; !, \tE\treceived lot\t,x,\n; 4.0]
]|
(-9.1a)
Generator G releases a lot after it receives an authorization signal over channel a
r
.
proc G(a : !lot, a
r
: ?void) =
|[ i : nat
| i := 0
; [ truea
r
?; a!i, ; i := i + 1]
]|
(-9.1b)
Buer B is an ordinary buer, see for instance Specication (-6.1b). Machine M waits for
an authorization signal a
i
from A, then pulls a lot from its buer, starts processing the lot
and sends the nished lot to the subsequent buer. Note how we use an array tuple and a
uniform distribution to represent the processing time.
proc M(a : ?lot, b : !lot, a
i
: ?void, t
0
, s
0
: real) =
|[ pt : real
2
, d : nat, x : lot
| pt := |t
0
s
0
, t
0
+s
0
|; d := uniform(0, 2)
; [ truea
i
?; a?x; pt.(d); b!x]
]|
(-9.1c)
We specify cluster W representing a workstation.
clus W(a : ?lot, c : !lot, a
i
: ?void) =
|[ b : lot
| B(a, b) || M(b, c, a
i
, 3.0, 2.0)
]|
(-9.1d)
We have authorization process A. After A receives a request, it authorizes generator G to
release a new lot in the line and machines M
0
, M
1
, and M
2
to start processing a lot (in this
order!).
proc A(r : ?void, a
r
, a
0
, a
1
, a
2
: !void) =
|[ [ truer?; a
r
!; a
0
!; a
1
!; a
2
!]]|
(-9.1e)
116 Chapter 9. Push, pull, and push/pull
Finally, we dene cluster PullCentral.
clus PullCentral() =
|[ a, b, c, d : lot, r, a
r
, a
0
, a
1
, a
2
: void
| A(r, a
r
, a
0
, a
1
, a
2
)
|| G(a, a
r
) || W(a, b, a
0
) || W(b, c, a
1
) || W(c, d, a
2
) || E(d, r)
]|
(-9.1f)
Simulation yields:
11 E received lot < 0 0 >
22 E received lot < 1 15 >
29 E received lot < 2 26 >
40 E received lot < 3 33 >
51 E received lot < 4 44 >
66 E received lot < 5 55 >
81 E received lot < 6 70 >
96 E received lot < 7 85 >
111 E received lot < 8 100 >
126 E received lot < 9 115 >
From additional print statements (not shown here) we deduce the following behaviour. At
= 0.0 the rst request is placed. The generator is authorized to release a lot 0, 0 in the
line. Moreover, all machines are authorized to process a lot. Processing takes 11.0 hours in
total (once 1.0 and twice 5.0) and at = 11.0 the rst nished lot leaves the line. Four hours
later, at = 15.0, a second request is placed and generator G releases lot 1, 15. Total
processing time for this lot is 7.0 hours. At = 22.0 the lot leaves the line. By simulation
we establish that this line has a maximum wip-level of 1. On average, the response time for
a request is 9.0 hours. While the maximum demand is one lot per 4.0 hours, we attain a
mean throughput of 1/13.
We can lower the response time, by initially lling the buers. To that end we add an
initializing sequence to authorization process A.
proc A(r : ?void, a
r
, a
0
, a
1
, a
2
: !void) =
|[ a
r
!; a
r
!; a
r
!; a
0
!; a
0
!; a
1
!
; [ truer?; a
r
!; a
0
!; a
1
!; a
2
!]
]|
(-9.2)
The initializing sequence in this process provides each buer with one lot. First three lots
are released in the system. Machine M
0
is authorized to process two lots, machine M
1
is au-
thorized to process one lot. We let exit E demand the rst lot after 10.0 hours.
proc E(a : ?lot, r : !void) =
|[ x : lot
| 10.0
; [ truer!; a?x; !, \tE\treceived lot\t,x,\n; 4.0]
]|
(-9.3)
9.2. Central authorization 117
Simulation yields:
11 received lot < 0 0 >
20 received lot < 1 0 >
25 received lot < 2 0 >
34 received lot < 3 10 >
43 received lot < 4 15 >
48 received lot < 5 24 >
53 received lot < 6 29 >
58 received lot < 7 38 >
63 received lot < 8 47 >
72 received lot < 9 52 >
Figure 9.3 shows a number of snapshots of the owline at several time-instants. Lots are
represented by numbered boxes. The last column shows the communication of authorizer
A.
end of initialisation
0
A B
0
M
0
1 2
0 1 2
0 1 2
0 1 2
1 2
a
r
!; a
r
! a
r
!;
a
0
!
a
0
!
a
1
!
r?; 3
0 1 2
0
E
1 2 3 0
1 2 3
1 2 3
1
a
r
!; a
0
!;a
1
!; a
2
!
4 r?;a
r
!; a
0
!;a
1
!; a
2
!
2 4 3
1 2 4 3
B
1
M
1
B
2
M
2
t
0.0
0.0
1.0
1.0
10.0
6.0
11.0
15.0
15.0
16.0
20.0
Figure 9.3: Snapshots of the owline
At = 0.0 three lots are released and enter buer B
0
. Then, machine M
0
is authorized to
process a lot (a
0
!). At = 1.0 machine M
0
nishes a lot and sends it to buer B
1
. After
sending the lot, machine M
0
receives the second authorization signal and starts processing
a second lot. Then, machine M
1
is authorized to start processing (buer B
1
is emptied).
This completes the initialisation sequence of authorizer A and it can now receive requests
from exit E. At = 6.0 the machines have nished processing lots for initiliasation of the
buer levels to 1.
At = 10.0, exit E requests a lot. Authorizer A receives a request. A new lot (lot 3) is
118 Chapter 9. Push, pull, and push/pull
released in the line. Machine M
0
, M
1
, and M
2
are authorized to process a lot. All three
machines start processing a lot at = 10.0. At = 11.0 machine M
2
nishes a lot and sends
it to exit E. Four hours later, at = 15.0 machines M
1
and M
2
nish their lot (processing
time of 5.0 hours). Also at = 15.0 a new request is posted. A new lot (lot 4) is released
and the machines all start processing a lot on = 15.0. Machine M
1
nishes at = 16.0.
Machine M
2
nishes only at = 20.0. At = 24.0 the next lot is requested.
For this system with buers that are initialized, the mean response time is reduced to 3.0
hours. The mean throughput is 1/7 lot/hour. The wip-level (after initialisation) is always
between 3 and 4 lots. (Try!: Why is this true?)
9.3 Distributed authorization
In the control strategy from Section 9.2, the central authorization process authorizes the
generator and machines in a xed order. If authorizer A wants to send an authorization
signal to machine M
0
, but machine M
0
is still processing, the authorizer is blocked, while it is
possible that machine M
1
is ready to start processing. One way to cope with this problem
is to use a seperate authorizer for each machine and the generator. Figure 9.4 shows a
graphical representation of the three-workstation owline with distributed authorization.
G E
a g
B M
0
b c
B
d e
B
f
r
A
r
A
0
M
1
M
2
A
1
A
2
aa
2
a
2
a
1
a
0
a
r
aa
1
aa
0
Figure 9.4: Flowline with distributed authorization
After authorizer A
2
receives a request from exit E, it rst forwards the request to autho-
rizer A
1
and then authorizes machine M
2
. Authorizer A
1
forwards the request to autho-
rizer A
0
and authorizes machine M
1
. Authorizer A
0
forwards the request to authorizer A
r
and authorizes machine M
0
. Authorizer A
r
authorizes generator G to release a new lot.
The specication of authorizer A
i
is as follows.
proc A
i
(a : ?void, aa, b : !void, n : nat) =
|[ [ n > 0b!; n := n 1]
; [ truea?; aa!; b!]
]|
(-9.4a)
Herein b is the authorization signal to the machine (or generator) and aa is the authorization
forwarding signal. Parameter n is used to initially ll up the buers in the owline. Autho-
rizer A
r
is identical to A
i
, but does not need to forward an authorization.
proc A
r
(a : ?void, b :!void, n : nat) =
|[ [ n > 0b!; n := n 1]
; [ truea?; b!]
]|
(-9.4b)
9.3. Distributed authorization 119
Similarly as for the central authorizer of the previous section, we acquire an initial buer
level of 1 lot in each buer if we let A
r
, A
0
, A
1
and A
2
send 3,2,1, and 0 initial authorization
signals respectively.
We use the specication of exit E and cluster W of the previous section. The specication
of cluster PullDist becomes:
clus PullDist() =
|[ a, b, c, d : lot, r, a
r
, a
0
, a
1
, a
2
, aa
0
, aa
1
, aa
2
: void
| A
r
(aa
0
, a
r
, 3) || A
i
(aa
1
, aa
0
, a
0
, 2) || A
i
(aa
2
, aa
1
, a
1
, 1) || A
i
(r, aa
2
, a
0
, 0)
|| G(a, a
r
) || W(a, b, a
0
) || W(b, c, a
1
) || W(c, d, a
2
) || E(d, r)
]|
(-9.4c)
By simulation we establish that this system attains a throughput of 1/7 lots/hour and a
mean response time of 3.0 hours. As can be expected, the performance is similar to that of
the owline with central authorization.
Distributed authorization with buered authorization
Until now, exit E demands the next lot 4.0 hours after it has received a lot, see Specication
(-9.3). We now wish to let exit E order a lot every 4.0 hours, independent of the delivery
time. To this end, we change the specication to become:
proc E(a : ?lot, r : !void) =
|[ x : lot, n : nat, t
n
: real
| n := 0; 10.0; t
n
:= + 4.0
; [ true ; t
n
m := m + 1; t
n
:= t
n
+ 4.0
[] m > 0; r! n := n + 1; m := m1; !, \tE\trequests a lot\n
[] n > 0 ; a?x n := n 1; !, \tE\treceived lot\t,x,\n
]
]|
(-9.5a)
Variable t
n
represents the time of the next order. Every 4.0 hours, the number of orders to
be placed m is increased by 1. As long as there are still orders to be placed (m > 0) exit E
tries to send a request to authorizer A
2
(r!). After an order is placed, the number of lots to
be received n is increased by 1. As long as there are lots to be received (n > 0), exit E is
able to receive lots.
Next, we let the authorizers buer authorization signals. Authorizer A
i
and A
r
become:
proc A
i
(a : ?void, aa, b : !void, n : nat) =
|[ m : nat
| m := 0
; [ true ; a? n := n + 1; m := m+ 1
[] m > 0; aa!m := m1
[] n > 0 ; b! n := n 1
]
]|
(-9.5b)
120 Chapter 9. Push, pull, and push/pull
proc A
r
(a : ?void, b : !void, n : nat) =
|[ [ true ; a?n := n + 1
[] n > 0; b! n := n 1
]
]|
(-9.5c)
The authorizer is always able to receive new authorization signals over channel a. The
variable n represents the number of authorization signals that the authorizer has to send
to the machine or generator. We can initially set n to a value greater than zero, to ll the
buers. As long as there are authorization signals to be sent to the machine or generator
(n > 0), the authorizer tries to send this authorization signal over channel b. In authorizer A
i
we use the variable m to represent the number of authorization signals to be forwarded.
As long as there are signals to be forwarded (m > 0), authorizer A
i
tries to forward an
authorization signal over channel aa.
Simulation yields:
14 E requests lot
15 E receives lot < 0 0 >
18 E requests lot
19 E receives lot < 1 0 >
22 E requests lot
26 E requests lot
27 E receives lot < 2 0 >
28 E receives lot < 3 14 >
30 E requests lot
34 E requests lot
36 E receives lot < 4 18 >
37 E receives lot < 5 22 >
We see that exit E requests a lot every 4.0 hours starting at = 14.0. The rst two lots
are delivered 1.0 hour after the request. The request at = 22.0 is not answered within 4.0
hours, but exit E orders the next lot anyway at = 26.0. At = 27.0 and = 28.0 the
two lots are received. For this system we establish a mean response time of 3.0 hours and
a mean throughput of 1/4 lots/hour.
9.3. Distributed authorization 121
If we increase the demand, the number of lots in the owline increases. As indication, we
simulate the owline for 100,000 lots and determine mean wip-level. Table 9.1 shows mean
wip-level w for several demand rates D. Recall, that all buers are initially lled with a
single lot.
D [lots/hour] w [lots]
1/8 3.62
1/4 4.79
1/3.5 7.40
1/3.2 15.50
1/3.1 29.30
1/3.05 60.86
Table 9.1: Mean wip-level for dierent demand rates
We see that for a demand close to the maximum capacity (1/3 lots/hour) the wip-level in
the line can increase signicantly. Just as for a push-controlled line. There are two ways
to limit the wip-level. One approach is to replace the innite buers with nite buers.
Another approach is to keep the innite buers, but to limit the number of authorization
signals that is buered in the authorizers!
As an indication, we perform a number of experiments on the owline with distributed
authorization. First, we allow unlimited buering of authorization signals in the authorizers
(buer size A
max
= ) and we have buers with each a maximum capacity B
max
. A
specication of a nite buer can be found in Section 4.3. As an alternative, we have
innite buers (B
max
= ) and the authorizers can buer demand up to a maximum of
A
max
. The specication of the authorizers becomes:
proc A
i
(a : ?void, aa, b : !void, n, A
max
: nat) =
|[ [ n < A
max
; a? n := n + 1; m := m + 1
[] m > 0 ; aa!m := m1
[] n > 0 ; b! n := n 1
]
]|
(-9.6)
proc A
r
(a : ?void, b : !void, n, A
max
: nat) =
|[ [ n < A
max
; a?n := n + 1
[] n > 0 ; b! n := n 1
]
]|
(-9.7)
Note that in authorizer A
i
variable m represents the number of signals that need to be
forwarded to the next authorizer and variable n represents the number of signals that need
to be sent to machine M
i
.
122 Chapter 9. Push, pull, and push/pull
Table 9.2 shows the performance of the owline with distributed authorization for a single
simulation of 100000 lots. We set the demand rate to 1/3.05 = 0.328 lots/hour.
A
max
B
max
w
max
w
[orders] [lots] [lots] [lots/hour] [hours] [lots]
3 12 0.292 30.3 8.85
2 9 0.281 24.2 6.82
1 6 0.262 18.0 4.72
4 8 0.291 27.0 7.86
3 7 0.283 24.1 6.83
2 6 0.273 21.2 5.78
Table 9.2: Performance of owline with nite buering of lots or demand
Note that the maximum wip-level in case of nite lot buers equals 3(B
max
+ 1). Each
buer can hold B
max
lots and each machine can hold 1 lot.
In case of innite buers and nite authorization buering, the maximum wip level is a little
harder to deduce. The buers are initially lled with 1 lot. We let authorizers buer up to
3 signals. The maximum wip-level occurs in the hypotethical case where exit E demands an
innite amount of lots. After 3 requests, authorizer A
2
is full. The requests are forwarded,
and all authorizers have 3 authorization signals to send. Authorizer A
r
can immediately
send the three authorization signals, buer B
0
now contains 4 lots. The wip-level is 6 lots.
Authorizers A
2
, A
1
, and A
0
can send 1 authorization signal. Buer B
0
contains 3 lots,
buers B
1
and B
2
are empty and all machines contain a lot. Authorizer A
2
can again
receive a request and forward it. All machines are busy, but the generator can immediately
release a lot in the line. The wip-level is now 7 lots. The next lot can only be released, after
authorizer A
2
can receive the next request, thus when machine M
2
nishes processing. At
that point in time a lot also leaves the system. Hence, the maximum wip-level is 7. If we
let authorizers buer up to 4 signals, the maximum wip-level is 8.
We see that for this high demand rate, the owline can not satisfy demand. For nite buers
B
i
, the number of authorization signals to be sent (variable n in authorizers A
i
and A
r
)
grows to innity. For innite buers B
i
, but nite buering in the authorizers, the number
of orders to be placed (variable m in exit E) grows to innity.
9.4 Flowline with Kanban control
A famous production control concept is Kanban. Kanban was rst developed at Toyoto
Motors by Tai-ichi Ohno [Shi81]. Kanban is the Japanese word for display or instruction
card. Kanban is an example of a pure-pull control concept. More on the concept of kanban
can be found in [Suz87]. There exist many dierent kanban variants. Some examples are
the single card system, the dual card system, the two-bin inventory system, kanban racks,
and signal kanbans. More on these specic kanban variants can be found in [RT98, Sur98,
CAJ01]. Here, we are not interested in comparing these kanban variants, but in how we
specicy and analyze a typical kanban-controlled owline. Here, we consider the single card
system.
9.4. Flowline with Kanban control 123
To illustrate how this single card system works, consider a two-workstation owline that
paints trophys. Figure 9.5 shows a number of snapshots of the owline at dierent time
instants.
r r r 0
0 0
generator exit
1 1 1
machine 0 machine 1
r r 0
0 0 1 1 1 r
r r
0 0 1 1 1
r
0
r r
0 0 1 1 1
r
0
r r
0 0 1 1
1 r
0
r r
0
0
1 1
r
0
1
(a)
(b)
(c)
(d)
(e)
(f)
card buffer
lot buffer
Figure 9.5: Snapshots of kanban-controlled owline
A generator supplies unpainted trophys. Two machines paint the thropy. The rst ma-
chine paints the base in ivory grey, the second machine paints the cup in gold. The exit
demands painted trophys. Between the generator and machine 0, between both machines,
and between the exit and machine 1 there is a lot buer and a card buer. A machine starts
processing a lot when there are authorization cards and lots in the buer for that machine.
A new lot is released in the line if both release authorization cards and raw materials are
available.
A raw trophy is released into the line when there is an authorization card and an unpainted
trophy available (a). The release authorization card r is attached to the trophy. Machine 0
can start processing if it can take an authorization card 0 from the card buer and there is a
lot in the lot buer. When machine 0 starts processing, the r-card is immediately returned
to its card buer (b). After machine 0 nishes processing, the trophy, with card 0 attached
to it, is added to the buer in front of machine 1 (c). There are no authorization cards
for machine 1 available. Only, after a painted trophy leaves the system (after a customer
demands) an authorization card 1 becomes available (d). Machine 1 takes the 1-card from
the buer, takes a lot from the buer, and sends the 0-card back to its card buer (e).
Machine 1 can now start processing (f).
124 Chapter 9. Push, pull, and push/pull
Note that the number of authorization cards limit the number of products per workstation.
The number of r-cards limit the number of lots in the buer after the generator. The number
of 0-cards limit the number of lots that are in machine 0 and the buer after machine 0.
Similarly, the number of 1-cards limit the number of lots in machine 1 and the buer after
machine 1. In the example of Figure 9.5 the number of lots is restrained to 3 per workstation.
Note, that in fact the kanban cards are nothing more than a physical form of authorization
signals, similar to the ones in Sections 9.2 and 9.3. The limited number of cards limit the
number of authorization signals that can be buered.
Now, we wish to analyze the behaviour of a three-workstation owline with single-card
kanban-control. Figure 9.6 shows a graphical representation of the -model. Note that
above each buer B that stores lots, there is card buer CB that stores cards.
G
CB
M
B
a b
a
r
b
r
CB
M
B
c d
a
0
b
0
CB
M
B
e f
a
1
b
1
CB
E
B
g h
a
2
b
2
Figure 9.6: Three work-station owline with kanban control
We represent a lot by a record tuple of its identication number and the time of entering
the line. We represent a card by its identication number.
type lot = nat real
, card = nat
We specify the generator G as follows:
proc G(a : !lot card, b : ?card) =
|[ i : nat, p : card
| i := 0
; [ trueb?p; a!i, , p; i := i + 1]
]|
(-9.8a)
Generator process G tries to receive an authorization card p via channel c. When G receives
a card, it releases a lot, with the card attached to it, in the line.
Machine M is specied as follows:
proc M(a : ?lot card, b : !lot card, c : ?card, d : !card, t
0
, s
0
: real) =
|[ pt : real
2
, u : nat, p, q : card, x : lot
| pt := |t
0
s
0
, t
0
+s
0
|; u := uniform(0, 2)
; [ truec?q; a?x, p; d!p; pt.(u); b!x, q]
]|
(-9.8b)
After receiving an authorization card q over channel c, machine M is willing to receive a
lot with card from the buer. After receiving the lot with card, the card p of the previous
process is returned to the card buer over channel d. Then the lot is processed and the lot
together with authorization card q is sent to the next process. Note that here we do nothing
9.4. Flowline with Kanban control 125
with the card identication number, that is we could have used channels of type void as
well.
Buer process B stores lots with cards attached to them, card buer CB stores cards. Both
are standard buers:
proc B(a : ?lot card, b : !lot card) =
|[ xs : (lot card)
, x : lot card
| xs := [ ]
; [ true ; a?x xs := xs ++[x]
[] len(xs) > 0; b! hd(xs)xs := tl(xs)
]
]|
(-9.8c)
proc CB(a : ?card, b : !card) =
|[ xs : card
, x : card
| xs := [0, 1, 2]
; [ true ; a?x xs := xs ++[x]
[] len(xs) > 0; b! hd(xs)xs := tl(xs)
]
]|
(-9.8d)
Note that we initialize card buer CB with 3 cards. We specify exit E as follows:
proc E(a : ?lot card, b : !card) =
|[ x : lot, m : nat, t
n
: real, p : card
| m := 0; 10.0; t
n
:= + 4.0
; [ true ; t
n
m := m + 1; t
n
:= t
n
+ 4.0
[] m > 0; a?x, p m := m1; b!p
]
]|
(-9.8e)
Exit E demands lots at a rate of 1 lot per 4.0 hours, starting from = 10.0. Each 4.0 hours,
the number of demanded lots m is increased by 1. As long as there are lots demanded
(m > 0), exit E tries to receive a lot (with attached card) over channel a. Immediately
afterwards the card p is sent back to the card buer.
Cluster Kanban is specied as follows:
clus Kanban() =
|[ a, b, c, d, e, f, g, h : lot card, a
r
, b
r
, a
0
, b
0
, a
1
, b
1
, a
2
, b
2
: card
| G(a, a
r
) || B(a, b) || B(c, d) || B(e, f) || B(g, h)
|| M(b, c, a
0
, b
r
) || M(d, e, a
1
, b
0
) || M(f, g, a
2
, b
1
) || E(h, b
2
)
|| CB(b
r
, a
r
) || CB(b
0
, a
0
) || CB(b
1
, a
1
) || CB(b
2
, a
2
)
]|
(-9.8f)
By simulation we determine the performance of the kanban-controlled owline for dierent
initial number of authorization cards in the card buers. Table 9.3 shows the results for a
demand rate of 1/4 = 0.25 lot/hour and 1/10 = 0.1 lot/hour.
126 Chapter 9. Push, pull, and push/pull
demand #kanbans w
max
w
[lots/hour] [cards] [lots] [lots/hour] [hours] [lots]
0.25 1 4 0.23 15.7 3.55
2 8 0.25 27.1 6.78
3 12 0.25 43.8 10.94
4 16 0.25 59.8 14.96
0.1 1 4 0.10 40.0 4.00
2 8 0.10 80.0 8.00
3 12 0.10 119.9 11.99
4 16 0.10 159.9 15.99
Table 9.3: Performance of owline with kanban control
The maximum wip-level is equal to the sum of all kanban cards in the owline. In this
case, four times the number of kanbans per workstation. The owline can satisfy a demand
rate 0.25 lots/hour if each workstation has at least 2 kanban cards. A demand rate of 0.10
lots/hour can always be satised. For a demand rate of 0.10 lots/hour, the mean wip-level
practically equals the maximum wip-level! (Why is this true?
1
)
9.5 Flowline with Conwip control
Conwip is an acronym for constant wip-level. In a conwip-controlled system the exit process
authorizes the generator to release a new lot in the line as long as the wip in the line is
under the pre-specied level. Conwip is a hybrid push/pull control concept. New lots are
released in a pull manner, machines start processing in a push manner.
We reconsider the three-workstation owline of Section 6.1 to investigate the behaviour of
the conwip control. Each workstation consists of an innite buer and a machine with a
xed process time of 3.0 hours.
We introduce channel z, via which the exit process can authorize the generator to release
new lots in the line, see Figure 9.7.
G E
a d
W
0
b c
W
1
W
2
z
Figure 9.7: Three-workstation owline with conwip control
The specication of workstation W
i
with buer B, and machine M can be found in Sec-
tion 6.1. The generator G releases new lots in the line as long as the current wip-level w is
1
Consider 4 kanbans at each workstation. At some point in time all buers contain 4 lots (wip-level =
16). When a lot leaves the system, machine 2 immediately starts processing, followed directly by machine
1 and 0. Subsequently, the generator can release a lot, still at the same time (transferring kanbans takes no
time here), thus the wip-level remains 16.
9.5. Flowline with Conwip control 127
under the specied level wip.
proc G(a : !lot, z : ?void, wip : nat) =
|[ w, i : nat
| w := 0; i := 0
; [ w < wip; a!i, w := w + 1
; !, \tG\treleases lot\t, i, , \n; i := i + 1
[] true ; z? w := w 1
]
]|
(-9.9a)
Communication channel z is of type void, since no actual data needs to be sent. Exit process
E is specied as follows:
proc E(a : ?lot, z : !void) =
|[ x : lot
| [ truea?x; z!; !, \tE\treceived lot\t, x, \n]
]|
(-9.9b)
We specify cluster Conwip with parameter wip as follows.
clus Conwip(wip : nat) =
|[ a, b, c, d : lot, z : void
| G(a, z, wip) || W(a, b) || W(b, c) || W(c, d) || E(d, z)
]|
(-9.9c)
Running a simulation for a constant wip-level of wip = 2 lots, yields the following output:
[user@host chi]./ams51 -e 30
0 G releases lot < 0 0 >
0 G releases lot < 1 0 >
9 E receives lot < 0 0 >
9 G releases lot < 2 9 >
12 E receives lot < 1 0 >
12 G releases lot < 3 12 >
18 E receives lot < 2 9 >
18 G releases lot < 4 18 >
21 E receives lot < 3 12 >
21 G releases lot < 5 21 >
27 E receives lot < 4 18 >
27 G releases lot < 6 27 >
30 E receives lot < 5 21 >
[user@host chi]_
At = 0.0 generator G releases two lots. If the specied wip-level of 2 has been reached,
no more lots are released in the line. At = 9.0 the rst lot (lot 0, 0) leaves the line.
The generator immediately releases the next lot (lot 2, 9) in the line. Figure 9.8 shows
snapshots of the line at dierent time instants.
We determine that for wip w = 2 lots, mean owtime is 9.0 hours, mean throughput
= 2/9 lots/hour, and mean utilisation u = 2/3. For a specied wip-level of 3 lots, the
128 Chapter 9. Push, pull, and push/pull
finished
product
2
..
9
0
..
0
id number
time of line entry
time of line departure
2
..
9
2
..
9
t = 9
t = 9
t = 10
t = 12
t = 14
t = 17
t = 9
t = 18
B2 M2 B1 M1 B0 M0
0
9
0
1
..
0
1
..
0
1
..
0
2
..
9
1
..
0
2
..
9
1
12
0
3
..
12
3
..
12
2
..
9
3
..
12
3
..
12
2
18
9
4
..
18
Figure 9.8: Snapshots of conwip-controlled owline for wip = 2
owtime is still 9.0 hours, but the throughput and utilisation become 3/9 lots/hour and 1
respectively. For a wip-level of 4 lots, Figure 9.9 shows a number of snapshots. Each lot has
to wait in buer B
0
before it starts being processed. The mean owtime increases to 12.0
hours, the throughput is still 3/9 lots/hour. (Try! Verify for w = 2, 3, 4 that these results
satisfy Littles law.)
In Figure 9.10 the throughput and owtime are plotted against the specied wip-level. We
see that there is an optimal wip-level w
_
=
w
min
=
min
if w w
=
max
=
w
max
if w w
(9.1)
This conwip-controlled owline with deterministic process times, yields a maximum through-
put of 1/3 lots/hour with a owtime of 9.0 hours. Recall, that this same performance was
obtained for the pushline with a release rate of 3 lots per hour (or t
a
= 1/3 hour). In the
next section we investigate how a conwip-controlled owline behaves if there is variability.
9.5. Flowline with Conwip control 129
finished
product
0
..
0
3
..
0
t = 9
t = 9
t = 10
t = 12
t = 14
t = 17
t = 9
t = 18
B2 M2 B1 M1 B0 M0
0
9
0
1
..
0
1
12
0
2
15
0
1
..
0
2
..
0
3
..
0
1
..
0
2
..
0
3
..
0
4
..
9
1
..
0
2
..
0
3
..
0
2
..
0
4
..
9
3
..
0
2
..
0
4
..
9
5
..
12
3
..
0
4
..
9
2
..
0
3
..
0
4
..
0
5
..
12
5
..
12
6
..
15
id number
time of line entry
3
18
0
4
..
9
5
..
12
7
..
18
6
..
15
Figure 9.9: Snapshots of conwip-controlled owline for wip = 4
j [hours]
w [lots]
12
18
6
d [lots/hour]
2 4 6 8 10 12
3/9
1/9
2/9
24
30
w*
Figure 9.10: (w), (w) for three-workstation owline
130 Chapter 9. Push, pull, and push/pull
Conwip on a owline with varying process times
We reconsider the three-workstation owline from Section 6.3. Recall that in this owline,
each workstation consists of an innite buer and a machine with a varying process time,
of either t
0
s
0
or t
0
+ s
0
. For all experiments we take mean process time t
0
= 3.0 hours.
For this rst experiment we take standard deviation s
0
= 2.0 hours. A specication of
machine M can be found in Section 6.3. We take wip = 6. By simulation we determine that
mean throughput = 0.284 lots/hour and mean owtime = 21.1 hours. To acquire the
same throughput for the push-controlled line of Section 6.3, we release new lots in the line
with a xed inter-arrival time of t
a
= 3.52 hour. By simulation mean owtime is = 21.2
hours. The mean wip-level is 6.07 lots. Figure 9.11(a) shows how the wip-level in the
push-controlled line varies over time and Figure 9.11(b) shows how the wip-level for the
conwip-controlled line is constant at w = 6 lots.
w [lots]
t [hours]
4
10000
8
12
16
6000
w [lots]
t [hours]
4
10000
8
12
16
6000
(a) (b)
Figure 9.11: Wip-level over time for (a) push-controlled and (b) conwip-controlled line
By simulation we determine the mean throughput and owtime at dierent wip-levels for the
conwip-controlled owline. Table 9.4 shows the results. Figure 9.12 shows the throughput
and owtime for the conwip line with variability (marked with circles) and the conwip-line
with xed process times (dotted line). Again we see the corrupting inuence of variability
on the throughput and owtime. Here, the conwip line with variability has an asymptote
that runs parallel to the asymptote for the conwip line with deterministic process times.
For this specic owline, push control with xed inter-arrival time and conwip control yield
approximately the same owtime. This is not the case for any owline! Figure 9.13 shows
the owtime distribution for the push-controlled and conwip-controlled owline.
Note that the conwip-controlled owline has only a limited number of owtimes because
the wip-level is constant and the process times in this specic example is either 1.0 or 5.0.
The theoretical minimum owtime is 8 hours (process time + waiting time = 3 1 + 5 1),
the theoretical maximum 40 hours (process time + waiting time = 3 5 + 5 5). More
importantly, we see that the variability on the owtime for the conwip-controlled line is
signicantly lower. A lower variability is advantageous with respect to the predictability
and serviceability (the degree up to which we can satisfy customer demand in time). A
lower variability is advantageous also with respect to the mean waiting times at the end of
the line if this line would be the rst part of larger manufacturing line.
9.5. Flowline with Conwip control 131
w
[lots] [lots/hour] [hour]
1 0.111 9.00
2 0.185 10.8
3 0.233 12.9
4 0.258 15.5
5 0.274 18.3
6 0.285 21.1
10 0.304 32.9
Table 9.4: (w), (w) for three-
workstation owline with t
0
=
3.0 and s
0
= 2.0 hours
j [hours]
w [lots]
12
18
6
d [lots/hour]
2 4 6 8 10 12
3/9
1/9
2/9
24
30
w*
Figure 9.12: (w), (w) for three-workstation owline
j
i
[hours]
10 20 30 40 50 60
j
i
[hours]
10 20 30 40 50 60
j
s
j
= 21.5 hr
= 7.34 hr
j
s
j
= 21.1 hr
= 4.90 hr
Figure 9.13: Flowtime distribution for (a) push-controlled and (b) conwip-controlled line
Besides conwip, other hybrid push/pull control concepts exist. An example, developed by
Rajan Suri, is POLCA (Paired-Cell Overlapping Loops of Cards with Authorization). More
on POLCA can be found in [Sur98].
Keyword overview
Modelling manufacturing systems Analysis of manufacturing systems
owline with central authorization push, pull, and hybrid push/pull
owline with distributed authorization limiting the allowed wip-level
buering demand deducing maximum wip-level
owline with kanban control throughput and owtime against wip
owline with conwip control in a conwip line (characteristic curves)
inuence of conwip on owtime variability
132 Chapter 9. Push, pull, and push/pull
9.6 Exercises
1. Consider a three-workstation owline. Each workstation consists of an innite buer
and a machine with a deterministic process time of 2.0 hours.
(a) We apply push control to the owline. Without simulation, determine mean-
owtime and mean wip-level w for a xed release rate of 0.1,0.2,0.3,0.4, and
0.5 lots/hour.
(b) We now apply conwip control to the owline. Without simulation, determine
mean throughput and mean owtime for a constant wip-level of 1,2,3,4,5,6,
and 10.
(c) Draw the -w-diagram and the -w-diagram for both the push-controlled and
the conwip-controlled owline for w = {0, 1, 2, .., 10}.
(d) Determine the critical wip-level w
.
(e) Compare the performance of the push-controlled and conwip-controlled owline.
2. Consider a three workstation owline. Each workstation consists of an innite buer
and a machine that has a process time of either 0.0 or 4.0 hours. (Half of the products
does not require processing on a workstation.) Exit E is always willing to receive
nished lots.
Two alternative control concepts are proposed. In the rst alternative we apply push
control on the rst part of the owline and conwip control on the second part. In
the second alternative vice versa. Both alternatives are graphically represented in
Figure 9.14.
G E
a d
W
0
b c
W
1
W
2
z
G E
a d
W
0
b c
W
1
W
2
z
alternative I
alternative II
Figure 9.14: Two control alternatives for a owline
We have the following process and cluster specications.
type lot = nat#real
proc G(a: !lot, ta: real) =
|[ i: nat
| i:= 0
; *[ true -> a!<i,time>; delta ta ]
]|
proc G(a: !lot, z: ?void, wip: nat) =
|[ i: nat, w: nat
| i:= 0; w:= 0
; *[ w < wip; a!<i,time> -> w:= w + 1; i:= i + 1
9.6. Exercises 133
| w > 0 ; z? -> w:= w - 1
]
]|
proc B(a: ?lot, b: !lot) =
|[ xs: lot*, x: lot
| xs:= []
; *[ true ; a?x -> xs:= xs ++ [x]
| len(xs)>0; b!hd(xs) -> xs:= tl(xs)
]
]|
proc B1(a: ?lot, b: !lot, z: ?void, wip: nat) =
|[ xs: lot*, w: nat, x: lot
| xs:= []; w:= 0
; *[ w < wip ; a?x -> xs:= xs ++ [x]; w:= w + 1
| w > 0 ; z? -> ...
| len(xs)>0; b!hd(xs) -> xs:= tl(xs)
]
]|
proc M(a: ?lot, b: !lot,t0,s0: real) =
|[ d:-> nat, x: lot, pt: real^2
| d:= uniform(0,2); pt:= <| t0-s0, t0+s0 |>
; *[ true -> a?x; delta pt.(sample d); b!x ]
]|
proc M1(a: ?lot, b: !lot, z: !void, t0,s0: real) =
|[ d:-> nat, x: lot, pt: real^2
| d:= uniform(0,2); pt:= <| t0-s0, t0+s0 |>
; *[ true -> a?x; delta pt.(sample d); b!x; z! ]
]|
proc E(a: ?lot, z: !void, rl: nat) =
|[ x: lot, i: nat, mtp,mct: real
| i:= 0; mtp:= 0.0; mct:= 0.0
; *[ i < rl
-> a?x; i:= i + 1; z!
; mtp:= i/time
; mct:= (i-1)/i*mct + (time-x.1)/i
]
; !time,"\t",mtp,"\t",mct,"\n"
; terminate
]|
proc E(a: ?lot, rl: nat) =
|[ x: lot, i: nat, mtp,mct: real
| i:= 0; mtp:= 0.0; mct:= 0.0
; *[ i < rl
-> a?x; i:= i + 1
; mtp:= i/time
; mct:= (i-1)/i*mct + (time-x.1)/i
]
; !time,"\t",mtp,"\t",mct,"\n"
; terminate
]|
clus W(a: ?lot, c: !lot) =
|[ b: -lot
| B(a,b) || M(b,c,2.0,2.0)
]|
134 Chapter 9. Push, pull, and push/pull
clus W1(a: ?lot, c: !lot, z: ?void, wip: nat) =
|[ b: -lot
| B1(a,b,z,wip) || M(b,c,2.0,2.0)
]|
clus W1(a: ?lot, c: !lot, z: !void) =
|[ b: -lot
| B(a,b) || M2(b,c,z,2.0,2.0)
]|
clus PushConwip(ta: real, wip,rl: nat) =
|[ a,b,c,d: -lot, z: -void
| ...
]|
clus ConwipPush(wip,rl: nat) =
|[ a,b,c,d: -lot, z: -void
| ...
]|
xper(ta: real, wip,rl: nat) =
|[ PushConwip(ta,wip,rl) ]|
xper(wip,rl: nat) =
|[ ConwipPush(wip,rl) ]|
(a) Without simulation, determine the maximum mean throughput of this owline.
(b) Use fragments of the given specications to build a -model of alternative I.
Where necessary, complete the specication.
(c) Table 9.5(a) shows a simulation plan to investigate the performancem of both
alternatives. By simulation, determine mean throughput and mean owtime
for dierent settings for inter-relaease time t
a
and conwip-level w
2,3
in the
second part of the line. Take runlength rl = 100, 000 lots. Fill in the results in
Table 9.5(a) for alternative I.
(d) Using Littles law, calculate the mean wip-level for the whole line. Explain why
the second part of the owline does not reach the conwip-level of 3 for t
a
> 3.0
hours.
(e) Use fragments of the given specication to build a -model of alternative II.
Where necessary, complete the specication.
(f) By simulation, determine mean throughput and mean owtime for dierent
settings of the conwip-level w
1,2
in the rst part of the line. Take runlength
rl = 100, 000 lots. Fill in the results in Table 9.5(b) for alternative II.
(g) Using Littles law, calculate the mean wip-level for the whole line. Is the conwip-
level in the rst part of the line reached for all release rates? Estimate the mean
number of lots in the second part of the owline.
(h) Compare the performance for both alternatives. Which alternative do you prefer?
Why?
3. We consider a three-workstation owline. Each workstation consists of an innite
buer and a machine with varying process times of 1.0 or 5.0 hours. We introduce
conwip loops over each workstation. Figure 9.15 shows a graphical representation of
the owline with conwip loops. Exit E is always willing to receive lots.
9.6. Exercises 135
I: push-conwip
t
a
w
2,3
w
tot
2.0 3
2.5 3
3.0 3
3.5 3
4.0 3
5.0 3
3.0 4
3.0 5
3.0 6
II: conwip-push
w
1,2
w
tot
1
2
3
4
5
6
Table 9.5: Simulation plan and results for (a) push-conwip line and (b) conwip-push line
z
0
G E
a g
B M
0
b c
B
d e
B
f
M
1
M
2
z
1
z
2
Figure 9.15: Flowline with conwip loops over each workstation
(a) Make a -specication of the owline with conwip loops. To this end, you can
use fragments of the specications used in Exercise 9.2.
(b) By simulation, determine mean throughput and mean for a conwip-level of
1,2,3, and 4 lots per workstation. Calculate the maximum wip-level that can be
attained. From the simulation results, calculate the actual wip-level by hand.
(c) Are lots released in push or a pull manner? Do machines start processing a lot
in a push or a pull manner?
(d) Is the maximum wip-level attained? Explain why.
4. We consider a three-workstation owline. Each workstation consists of an nite buer
and a machine with varying process times of either 1.0 or 5.0 hours. We apply push
control and use nite buers to limit the maximum wip-level. We wish to compare the
performance for this push-controlled line with nite buers with the kanban-controlled
line of Section 9.4.
(a) Make a -specication of the owline with nite buers. You can you use part
of specications presented in Chapter 6.
(b) Without simulation, calculate the maximum wip-level of this line for a buer size
of 0,1,2,3, and 4. Assume that all buers in the line are identical.
(c) By simulation, determine the mean throughput and mean owtime for a buer
size of 0,1,2,3, and 4. Assume that all buers in the line are identical.
(d) Is the maximum wip-level attained? Explain why.
(e) Are lots released in a push or pull manner? Do machines start processing in a
push or pull manner?
(f) Compare the performance for this owline with the one from Exercise 9.3.
136 Chapter 9. Push, pull, and push/pull
9.7 Epilogue: Push or pull?
Upon comparing the results from Exercise 9.3 and Exercise 9.4, one may be left confused.
Is a push-controlled line with nite buers the same as a pull-controlled line? To cope with
this possible confusion, read the following.
Some kanban variants encountered in practice are based on nite buers. For example,
yellow squares on the factory oor or kanban racks, see Figure 9.16. Question: are we
dealing with a push-controlled system with nite buers or with a pull-controlled system?
(a) (b)
Figure 9.16: Two kanban variants using nite buers, (a) Yellow squares, (b) Kanban racks
Answer: the system can be interpreted as both! If we treat the generator as if it continuously
tries to release a new lot, but it is blocked by the full buer, this is a push-like perception.
However, if let the generator interpret an empty buer place as an authorization signal to
release a new lot, this is a pull-like perception. The resulting behaviour in both cases is
similar!
Chapter 10
Extending machine models
In the previous chapters we have encountered several models of machines. On some occa-
sions, we assumed xed (constant) process times. On others, we treated process times as
being stochastic. We then proposed a distribution to describe the process time. In this
chapter we address in more detail how to accurately model machines. We will discuss the
following aspects:
using a distribution to represent process time,
modelling the failure and repair of machines, and
using eective process time to represent all sources of variability.
10.1 Representing process time by a distribution
In this section we present a brief stepwise approach to represent process times by distribu-
tions. This approach can also, at least to a large extent, be applied to describe the arrival
pattern of raw materials or demand pattern of nished goods. One of the main tasks is
to nd and properly t a distribution to the measured process time data. There is a large
quantity of literature available on tting a distribution to a set of data. We present the main
techniques involved in tting distributions, without addressing the statistical background
in detail. More on the statistical background can be found in [LK00, MR02]. We discuss
using distributions to represent process times in six steps.
1. Collect data.
2. Determine whether the observations are independent and identically distributed.
3. Plot a histogram and calculate basic statistical quantities.
4. Choose candidate distributions.
5. Determine the distribution parameters by tting the chosen distribution to the sample
data and determine how well the tted distribution ts the data.
137
138 Chapter 10. Extending machine models
6. Implementing the distribution in your -model.
Many packages support statistical analysis of data, amongst others Matlab [Mat03], SAS
[SAS03], SPSS [SPS03], and Statgraphics [Man03]. In this chapter, we use Statgraphics.
Statgraphics is more accessible than the more extensive packages SAS and SPSS, while
having about the same functionality with respect to tting distributions.
Step 1: Collecting data
The rst step is collecting process time data. In modern high-tech fabs, times at which a
machine starts and nishes processing is often recorded in log les. In many fabs we still
need to collect data manually, by means of clocking. There is much that can go wrong in
collecting data. One may think of censored data (the operator reports only fast (or only
slow) jobs or one may think of observations that are not independent (see next step). More
on incorrect data can be found in [BFS87].
Another delicate issue regards the number of observations that is needed to reasonably t a
distribution. No hard guidelines for determining this number are available. In general, more
observations allow more accurate tting of the distribution and more profound judgements
regarding the validity of the tted distribution.
Throughout this section we consider the sample data in Table 10.1 adopted from [Lee99].
105.84 28.92 98.64 55.56 128.04 45.60
67.80 105.12 48.48 51.84 173.40 51.96
54.12 68.64 93.12 68.88 84.12 68.64
41.52 127.92 42.12 17.88 33.00
Table 10.1: Measured process times in seconds
Step 2: Checking data independency
If we wish to t a distribution to process time data, the individual observations need to
be independent and identically distributed (idd), that is, the observations are independent
samples of a single distribution. Situations in which the idd assumption is not valid include:
A new operator has been hired and the process time strongly depends on the operator
experience, that is the process time is subject to a steep learning curve. Process time
measurements are negatively correlated.
The machine processes in shifts, and the machine has to warm up in the beginning of
each shift. Process time measurements in the beginning of each shift are negatively
correlated.
We measure the owtime of lots at a single workstation. If a lot has a large ow-
time, the next lot is likely to have a large owtime too. The owtimes are positively
correlated.
10.1. Representing process time by a distribution 139
Many processes are non-stationary, that is, distributions change over time. For assessing
time-dependency we can plot the observations against time or against sequence number.
When we observe a pattern, we can use simple regression to analyze the degree of time-
dependency. Figure 10.1 shows the time-series plot of the data from Table 10.1. The data
shows no clear pattern.
0 4 8 12 16 20 24
0
30
60
90
120
150
180
p
r
o
c
e
s
s
t
i
m
e
[
s
]
observation number
Figure 10.1: Time-series plot
From Figure 10.1, we assume that the observations are time-independent.
We present two graphical approaches to assess (auto)correlation
1
between subsequent obser-
vations. The rst one is making a scatter diagram for observations X
1
, X
2
, ..., X
n
in which
we plot the pairs (X
i
, X
i+1
). If the observations are independent, the points are scattered
randomly. The nature of the random scattering depends on the underlying distribution.
If correlation exists, the points lie on a line, in case of positive correlation on an inclining
line and in case of negative correlation on a declining line. The second graphical approach
is the correlation plot. The correlation plot is a graph of the estimated autocorrelations
j
for j = 1, 2, ..., l. The estimated autocorrelation
j
is an estimation of the true correla-
tion
j
between two observations that are j observations apart in time. If the observations
X
1
, X
2
, ...X
n
are independent, correlations
j
are zero. When the estimations
j
deviate
signicantly from zero, this is strong evidence that the observations are not independent.
For calculating the autocorrelation
j
we refer to [MR02]. Here, we used Statgraphics to
draw a scatter diagram and calculate the autocorrelation, see Figure 10.2.
Figure 10.2(a) shows the scatter diagram and Figure 10.2(b) shows the correlation plot for
the observations from Table 10.1. Figure 10.2(b) shows the estimated autocorrelation for
dierent lags ({0,1,2,...,7}). Also shown are 95.0% probability limits around 0.0. If the
probability limits at a particular lag do not contain the estimated coecient, there is a
statistically signicant correlation at that lag at the 95.0% condence level. In this case,
there is no evidence that autocorrelation exists.
Apart from these graphical methods, several statistical tests exist. For these, one is re-
ferred to [LK00, MR02]. Judging from the diagrams in Figure 10.2, we assume that the
observations are independent and identically distributed.
1
Statistically, we prefer speaking of autocorrelation, since the observations stem from the same source
distribution.
140 Chapter 10. Extending machine models
Estimated Autocorrelations for process time
1 2 4 6 7
lag j
-1
-0.6
-0.2
0.2
0.6
1
r
j
0 30 60 90 120 150 180
0
30
60
90
120
150
180
X
i
X
i +1
3 5
Figure 10.2: (a) Scatter diagram, (b) Estimated autocorrelation
Step 3: Basic statistical analysis
The next step is to perform a basic statistical analysis. We start by plotting a histogram
of the data. Hereto, we divide the range of data into a number of intervals, and count the
number of observations within each interval. The number of intervals can strongly inuence
the appearance of the histogram. A rule of thumb is to take a number of intervals equal
to the square root of the number of observations. Figure 10.3 shows the histogram for the
data of Table 10.1, drawn by Statgraphics.
0 40 80
process time
0
2
4
6
8
f
r
e
q
u
e
n
c
y
[s]
[
#
]
120 160
Figure 10.3: Histogram of process time measurements
Please note that in histograms, the upper limit of each interval is excluded from that interval.
In this case, the second interval includes observations in the range 20 t < 40.
10.1. Representing process time by a distribution 141
Next, we calculate some basic statistic quantities, like the range R, mean x, standard
deviation s, and standardized skewness
2
. They are calculated as follows:
R = max(x) min(x) x =
1
n
n
i=1
x
i
s
2
=
1
n 1
n
i=1
(x
i
x)
2
=
1
(n 1)s
3
n
i=1
(x
i
x)
3
The mean x and standard deviation s are commonly used statistics. Skewness is an
indication for the distribution symmetry. A skewness close to 0 indicates a symmetrical
distribution. Positive values of skewness indicate that the upper tail of the curve is longer
than the lower tail; negative values indicate a longer lower tail. Standardized skewness
values outside the range of 2 to +2 indicate signicant deviation from normality.
For the data of Table 10.1 we determine the following:
R = 155.52, x = 72.22, s = 37.5, = 1.97
Thus, we are dealing with a distribution that has a mean of 72.22 seconds, a standard
deviation of 37.5 seconds, and a small positive skewness, indicating a small deviation from
symmetry, with the upper tail being a little longer.
Step 4: Selecting candidate distributions
Many dierent types of theoretical distributions exist. Here, we discuss the distributions
listed in Table 10.2. These distributions are some of the most often encountered distributions
in modelling manufacturing systems.
discrete distributions continuous distributions
uniform uniform
bernouilli triangular
normal
exponential/gamma
lognormal
Table 10.2: Commonly used distributions
In the sequel, we present the typical shape and the parameters of each distribution, along
with its range of common application. This overview is based on [LK00]. Additionally,
we discuss how the distribution can be used in . Next to its name and parameters,
we indicate the type of parameters and the type of the distribution samples. For example
bernouilli(p: real) -> bool indicates that the bernouilli distribution has one parameter
of type real and that samples from the distribution are of type bool.
Other distributions include the binomial, the Erlang, the Weibull, the beta, the Pearson,
the Johnson, and the log-logistic distribution. More on these distributions can be found in
2
In literature, more than one formula is encountered to calculate skewness. Statgraphics calculates the
so-called standardized skewness, which is calculated as presented here.
142 Chapter 10. Extending machine models
Bernouilli
x
P( x )
false true
bernouilli(p: real ) -> bool
p
1- p
application
description
parameters
mean
variance
p
p (1- p )
Random occurrence with two possible outcomes.
Example: machine with high or low process times.
Discrete distribution that has two possible
outcomes: false or true.
p (real) : chance on sampling true
PSfrag replacements
:
discrete uniform
x
P( x )
uniform(a,b: nat) -> nat
b- a+ 1
application
description
parameters
mean
variance
(a+ b)/2
((b-a+ 1)
2
-1)/12
a + 1 a a+ 2a+ 3b
1
uniform(a,b: int) -> int
Random occurrence with several possible outcomes,
each of which is equally likely. Used as a first
model, when little detail is known.
Discrete distribution with equal chance of sampling
each natural (or integer) value in the range [ a,b).
NB! upper bound is not included in the range.
a:(nat/int): lower bound
b: (nat/int): upper bound
PSfrag replacements
:
continuous uniform
x
f ( x )
uniform( a,b: real) -> real
b - a
application
description
parameters
mean
variance
(a + b )/2
(b -a )
2
/12
a b
1
Used for a first model of a randomly distributed
quantity. Used when little more is known about the
distribution.
Distributions with equal chance of sampling each
value in the range [ a ,b ). NB! upper bound is not
included in the range.
a : (real): lower bound
b : (real): upper bound
PSfrag replacements
:
[LK00]. Next to using these theoretical distributions we can also use empirical or trace-
driven models. A trace-driven model simply reproduces the collected data (in the same
order). In case of an empirical model, we generate random values from the collected data.
We can draw randomly from the set of data or we can use some sort of interpolation. More
on empirical distributions can be found in [Ban98].
Instead of tting the data to all possible distributions, we rst select possible candidate
distributions that reasonably t the collected data. Often, we can rule out distributions
based on prior knowledge. For example, normal distributions are unlikely to be a good
10.1. Representing process time by a distribution 143
triangular
x
f( x )
triangle( a,b,c: real) -> real
b- a
application
description
parameters
mean
variance
(a+ b+ c)/3
(a
2
+ b
2
+ c
2
-ab-ac-bc) /18
b a c
2
Used as a rough model in the adbsence of detailed
data.
Distribution with a specified minimum ( a),
maximum ( c) and mode ( b).
a,b, c(real, a<b<c): minimum, mode and maximum
PSfrag replacements
:
normal
x
normal(a ,b: real) -> real
Used to model errors of various types (e.g. product
deviations) and for quantities that are a sum of a
large number of other stochastic quentities. Less
suited for process times.
Bell shaped distribution , with mean a and variance b .
a ,b (real): mean, variance
application
description
parameters
mean
variance
a
b
a
b
f ( x )
PSfrag replacements
:
gamma/exponential
x
gamma(a,b: real) -> real
Used to model a time to complete some task, e.g.
process time, machine repair time, customer
service time.
Distribution with two possible shapes. If shape
parameter a is smaller than 1, the distribution is
decreasing for all x . If shape parameter ais larger
than 1, the distribution has a mode larger than 0. For
a = 1, the gamma distribution becomes an
exponential distribution.
a ,b (real, a >0, b >0): shape and scale parameter
application
description
parameters
mean
variance
ab
ab
2
a = 1
a = 3
a = 6
f ( x )
PSfrag replacements
:
candidate for process times, since a sample from a normal distribution can be negative.
Next, we compare the histogram from step 3 to the typical shapes of the distribution and
select possible candidates. Finally, we use Statgraphics (or another statistical program)
to draw probability plots. In a probability plot we use specic probability paper for each
distribution. We order the observations in increasing order. We then plot the ordered list of
observations against there cumulative frequency. Figure 10.4 shows the probability plot for
the data from Table 10.1 for a uniform, normal, exponential, and lognormal distribution.
Note that the x- and y-axis can be dierent for each distribution type. If the plotted points
144 Chapter 10. Extending machine models
lognormal
x
lognormal(a,b: real) -> real
Used to model a time to complete some task, e.g.
process time, machine repair time, customer service
time.
Takes on shapes similar to gamma( p,q ), withp>1. It
can have large peaks close tox=0. Moreover, its
mean (and mode) can be at any distant from 0.
a,b(real, b>0): shape and scale parameter
application
description
parameters
mean
variance
e
a+b /2
e
2a+b
(e
b
-1)
f( x )
PSfrag replacements
:
Uniform Probability Plot
process time [s]
c
u
m
.
f
r
e
q
u
e
n
c
y
[
%
]
0 30 60 90 120 150 180
0
20
40
60
80
100
Normal Probability Plot
0 30 60 90 120 150 180
0.1
1
5
20
50
80
95
99
99.9
c
u
m
.
f
r
e
q
u
e
n
c
y
[
%
]
Lognormal Probability Plot
10 100 1000
0.1
1
5
20
50
80
95
99
99.9
process time [s]
c
u
m
.
f
r
e
q
u
e
n
c
y
[
%
]
Exponential Probability Plot
0 100 200 300 400
0.1
50
70
80
90
95
99
99.5
99.9
c
u
m
.
f
r
e
q
u
e
n
c
y
[
%
]
(a)
(b) (d)
(c)
Figure 10.4: Probability plot for (a) uniform, (b) normal, (c) exponential, and (d) lognormal
distribution
fall approximately along a straight line, the corresponding distribution adequately describes
the data. In this example, we see that the exponential and lognormal distribution are good
candidates.
Step 5: Estimation of parameters
The next step is to estimate the parameters of the hypothesized distribution. Most statistical
packages have built-in functionality to estimate these parameters. For more statistical
background on how these parameters are estimated, we refer to [LK00].
We use Statgraphics to estimate the parameters for an exponential, a lognormal, and a
gamma distribution. The tted distributions are displayed in Figure 10.5, along with a
histogram of the original observations.
10.1. Representing process time by a distribution 145
f
r
e
q
u
e
n
c
y
0 40 80 120 160 200
0
2
4
6
8
0 40 80 120 160 200
0
2
4
6
8
Lognormal
m = 73.16 s
s = 41.97 s
Gamma
a = 4.025
b = 0.056
process time [s]
f
r
e
q
u
e
n
c
y
0 40 80 120 160 200
0
2
4
6
8
f
r
e
q
u
e
n
c
y
Exponential
m = 72.22 s
c
2
= 0.74
Pc = 0.86
c
2
= 14.27
Pc = 0.006
c
2
= 2.304
Pc = 0.512
process time [s] process time [s]
Figure 10.5: Fitted distributions
To assess the goodness-of-t, two basic approaches exist. In the rst approach we compare
the frequency plot of the tted distribution with the frequency plot from the observations.
This can be done graphically by plotting the frequency plot of the tted distribution together
with the histogram of the original observations, as has been done in Figure 10.5.
Quantitatively comparing the histogram with the tted distribution can be done using a
2
-test [Pea00]. In this test we divide the range of the tted distribution into k adjacent
intervals. Then, we determine the expected frequency E
j
of samples in the j-th interval if
we were sampling from the tted distribution. The -square test compares this expected
frequency E
j
with the actually measured frequency O
j
. The test statistic is given by:
2
=
k
j=1
(O
j
E
j
)
2
E
j
(10.1)
For small values of
2
, the tted distribution adequately represents the data. Statgraphics
calculates the P-value associated with the calculated value of
2
, indicating the chance that
the set of observations are a set of samples from the hypothesized distribution. If P is small
enough, we reject the hypothesis that the observations are from the tted distributions with
(1 P) condence. Generally, if P is greater than 0.10, there is insucient evidence for
rejecting the hypothesized distribution. In Figure 10.5, the values of
2
and the associated
P-value are calculated for each distribution. Based on the
2
-test, we reject the exponential
distribution with 99.4% condence. We do not reject the gamma and lognormal distribution.
The
2
values indicate that the lognormal distribution is a better t.
Please note, that the
2
-test results are strongly inuenced by how we choose the intervals.
Dierent intervals can yield totally dierent results. [LK00] advises intervals that each
146 Chapter 10. Extending machine models
include at least 5 observations.
The second approach to assess goodness-of-t is comparing the cumulative probability of the
tted distribution with the cumulative frequency of the original observations. This can be
done graphically or by using a test statistic. Figure 10.6 shows the cumulative probability
for the tted distributions, along with the cumulative frequency of the observations.
D
max
= 0.12
P
KS
0.10
0 30 60 90 120 150 180
0
0.2
0.4
0.6
0.8
1
c
u
m
u
l
a
t
i
v
e
p
r
o
b
a
b
i
l
i
t
y
Exponential
process time [s]
0 30 60 90 120 150 180
0
0.2
0.4
0.6
0.8
1
c
u
m
u
l
a
t
i
v
e
p
r
o
b
a
b
i
l
i
t
y
process time [s]
Lognormal
D
0 30 60 90 120 150 180
0
0.2
0.4
0.6
0.8
1
process time [s]
c
u
m
u
l
a
t
i
v
e
p
r
o
b
a
b
i
l
i
t
y
D
max
= 0.09
P
KS
0.10
Gamma
D
max
= 0.30
P
KS
0.01
Figure 10.6: Cumulative probability plot with cumulative frequency of observations
A commonly used test is the Kolmogorov-Smirnov test [Kol33, Smi33]. This test calculates
the maximum vertical distance D
max
of the observations to the cumulative frequency dia-
gram, as indicated for the exponential distribution in Figure 10.6. Using Statgraphics we
have determined the maximum vertical distance D
max
for each distribution. The maximum
distance that is allowed, depends on the number of observations and the specic distribu-
tion type. Statgraphics calculates a P
KS
-value that indicates the condence with which
the tted distribution is adequate. If P
KS
is suciently small, we reject the hypothesized
distribution with (1 P
KS
) condence. Generally, if P
KS
is greater than 0.10, there is
insucient evidence for rejecting the hypothesized distribution. The values for D
max
and
P
KS
are displayed in Figure 10.6. Based on the Kolmogorov-Smirnov test, we reject the
exponential distribution with at least 99% condence. We can not reject the lognormal and
gamma distribution. As for the
2
-test, we again see that the lognormal distribution is the
best t.
For the Kolmogorov-Smirnov test we do not need to dene intervals and we can use the test
for any sample size n. However, unlike the
2
-test, which can be used for testing against
both continuous and discrete distributions, the Kolmogorov-Smirnov test is only appropriate
for testing data against a continuous distribution.
Other goodness-of-t tests exist, such as the Anderson-Darling, Kuiper, and Watson test.
More details on goodness-of-t tests can be found in [Ste74].
10.2. Machine failure and repair 147
Step 6: Implementation
The nal step is to implement the tted distribution to represent the process time in the -
specication. In many cases, the parameters calculated by statistical packages correspond
to the parameters with which the distribution is instantiated in . In some cases, the
calculated parameters have to be converted. In case of the lognormal distribution tted
to the data of Table 10.1, Statgraphics calculates mean = 73.16 and standard deviation
= 41.97, see Figure 10.5. However, in we require the shape and scale parameters a en
b, see the distribution overview from Step 4. Below, we present the conversion from and
to shape and scale parameters a and b for a gamma and a lognormal distribution.
gamma(a,b) a =
2
2
b =
2
lognormal(a,b) a = ln(
2
_
2
+
2
) b =
ln(
2
+
2
2
)
(10.2)
For the tted lognormal distribution, the resulting machine model is shown below.
proc M(a : ?lot, b : !lot) =
|[ t
0
, s
0
, a, b : real, d : real, x : lot
| t
0
:= 73.16
; s
0
:= 41.97
; a := ln(t
2
0
/ sqrt(s
2
0
+t
2
0
)); b := sqrt(ln((s
2
0
+t
2
0
)/s
2
0
))
; d := lognormal(a, b)
; [ truea?x; d; b!x]
]|
(-10.1)
10.2 Machine failure and repair
In the previous section, we discussed ways to use a distribution to represent the process
time of a lot. In practice, machines may break down and require repair, causing a lot to
longer occupy the machine. In this section we discuss ways to model machine failure and
repair. We distinguish two types of failure [Ger94]:
Operation Independent Failure (OIF) and
Operation Dependent Failure (ODF).
In case of OIF, the machine breaks down after being up for a certain amount of time,
independent of the amount of time that the machine has been processing lots. By the
amount of time a machine is up, we mean the time that a machine is turned on and has
not broken down. When a machine is up and not processing, the machine is blocked (the
subsequent buer is full), the machine is starving (the preceding buer is empty), or the
machine is idle due to for example the control strategy. In case of ODF, the machine breaks
down after processing for a certain amount of time, or after processing a certain number of
lots. In Figure 10.7, the dierent types of failure are schematically depicted.
148 Chapter 10. Extending machine models
0 2 4 5 6 7 8
2 3 4 5 6
1 3
0 2 1
t
fp
N
f
6
t
fp
2 3 4 5 6 0 2 1 5
t
fu
t
fu
t
fu
OIF
ODF
1 2 0 5 3 4 10 15 20 25 30 t
N
f
lot number
Figure 10.7: Operation Independent Failure (OIF) and Operation Dependent Failure (ODF)
In the upper case, the machine breaks down after being up for a xed amount of time t
fu
(OIF). In the middle case, the machine breaks down after processing for a xed amount of
time t
fp
(ODF). In the bottom case, the machine breaks down after processing N
f
= 4 lots
(ODF).
Adopted from [Lew95], we dene the following quantities for characterizing failure and repair
behaviour:
Actual time between failure (ATBF): the time between two subsequent failures, de-
noted by t
fa
.
Processing time between failure (PTBF): the amount of processing time between two
subsequent failures, denoted by t
fp
.
Up time between failure (UTBF): the amount of up time between two subsequent
failures, denoted by t
fu
.
Cycles between failure (CBF): number of cycles (number of lots) processed between
two subsequent failures, denoted by N
f
.
Time to repair (TTR): amount of time required for repair, denoted by t
r
.
These quantities are schematically depicted in the state diagram of Figure 10.8.
2 3 4 5 6 0 2 1 5 6
t
fa
t
fp
t
fu
N
f
t
r
+ +
1 2 0 5 3 4 10 15 20 25 30
8
2 3 1
lot number
3 3 3
5 8
6 5 2
8 8 11
t
Figure 10.8: Quantities characterizing failure
10.2. Machine failure and repair 149
All quantities can be stochastic. In that case, we have mean process time between failure
t
fp
, mean uptime between failure t
fu
, mean number of cycles between failure N
f
and mean
time to repair t
r
.
In the sequel we present ways to model machine failure. We consider a single workstation,
consisting of a innite buer and a machine. The process time t
0
of the machine is dis-
tributed according to a gamma distribution with mean 3.0 and coecient of variation of
1.0. We consider four cases of dierent failure behaviour.
1. The machine fails after processing a certain number of lots.
2. The machine fails after processing for a certain amount of time. After the machine is
repaired, the machine continues processing where it left o at the moment the machine
broke down.
3. The machine fails after processing for a certain amount of time. After repair, the
machine starts processing the lot from the beginning.
4. The machine fails after being up for a certain amount of time. After the machine is
repaired, the machine continues processing where it left o at the moment the machine
broke down.
In all cases, we let lots arrive at the buer with a xed arrival rate of 0.25 lots/hour. The
exit can always receive lots.
1. Failure after processing a number of lots
On average, the machine fails every 100/3 = 33.3th lot. The number of lots between
two failures is exponentially distributed and is a whole number. The repair time is also
exponentially distributed with an average of 10.0 hours. We use a standard specication of
generator G, buer B, and exit E. The machine is specied as follows.
proc M(a : ?lot, b : !lot) =
|[ dt
0
, dN
f
, dt
r
: real, N
f
: nat, x : lot
| dt
0
:= (1/1.0
2
, 3.0 1.0
2
)
; dN
f
:= negexp(100.0/3.0); dt
r
:= negexp(10.0)
; N
f
:= i2n(round(dN
f
))
; [ N
f
= 0; dt
r
; N
f
:= round(dN
f
)
[] N
f
> 0; a ?x; dt
0
; b!x; N
f
:= N
f
1
]
]|
(-10.2)
The machine specication contains three distributions. Distribution dt
0
represents the pro-
cess time, and distributions dN
f
and dt
r
represent the number of lots between failure and
the repair time respectively. We use variable N
f
to record the number of lots that can be
processed before failure. We draw N
f
from an exponential distribution. Since the exponen-
tial distribution yields real samples, and we want N
f
to be a whole number, we round the
sample from the distribution to its nearest integer
3
If the number of lots before failure N
f
3
Since all samples taken from a exponential distribution are greater than zero, the rounded sample is a
natural. However, the built-in round function yields an integer. We use the built-in i2n function to convert
the integer into a natural.
150 Chapter 10. Extending machine models
is zero, the machine is repaired, which takes dt
r
hours, and a new value for N
f
is drawn.
If the number of lots before failure N
f
is greater than 0, the machine is able to receive a lot,
process it, and send it to the next process. The number of lots before failure is decreased
by 1.
By simulation we establish a mean actual time between failure of 135 hours and a downtime
percentage of 7.4%. Adding the machine failure, causes the mean owtime of a lot to increase
from 6.5 hours to 12.5 hours. This increase is only for a small part ascribed to the repair
time (on average every 33th lot stays for 3.0 + 10.0 = 13.0 hours on the machine). The
largest part of the ow time increase is due to the increase in variability on the occupation
time of a lot on the machine, which increases the average waiting time in the buer.
2. Failure after processing for an amount of time
On average, the machine breaks down after processing for 100.0 hours. On average, repair
takes 10.0 hours. The processing time between failure and the time to repair are both
exponentially distributed. We use standard specications for the generator G, buer B,
and exit E. The machine with failure is specied as follows.
proc M(a : ?lot, b : !lot) =
|[ t
0
, t
fp
: real, dt
0
, dt
fp
, dt
r
: real, x : lot
| dt
0
:= (1/1.0
2
, 3.0 1.0
2
)
; dt
fp
:= negexp(100.0); dt
r
:= negexp(10.0)
; t
fp
:= dt
fp
; [ true
a?x; t
0
:= dt
0
; [ t
0
> 0.0; t
0
t
fp
:= t
fp
t
0
; t
0
:= 0.0
[] t
0
> 0.0; t
fp
t
0
:= t
0
t
fp
; t
r
; t
fp
:= dt
fp
]
; b!x
]
]|
(-10.3)
The distributions dt
0
, dt
fp
, dt
r
represent the process time, the process time between failure,
and the repair time respectively. The machine can only fail while processing. After receiving
a lot, we take a sample from the process time distribution for that lot. The variable t
0
represents the remaining process time for the lot in process. The variable t
fp
represents the
remaining process time till failure. As long as t
0
is greater than 0.0, the machine nishes
processing (t
0
) or fails (t
fp
), depending on what happens rst. If the machine nishes
processing, the remaining processing time till failure is decreased by t
0
and the remaining
process time is nulled. If the machine fails, the remaining process time is decreased by t
fp
,
the machine is repaired, taking dt
r
, and a new sample from distribution dt
fp
is drawn to
determine the next moment of failure. Subsequently, the processing in continued. After the
lot is nished processing (t
0
= 0.0) the lot is send via port b.
By simulation, we determine that the machine is down for 7.5% of the time. The mean
actual time between failure is 132 hours. Note that, though the mean process time between
failure is 100.0 hours and the mean repair time is 10.0 hours, the percentage down is not
10% and the mean actual time between failure is not 110 hours. Note that this caused by
10.2. Machine failure and repair 151
the machines being idle some of the time
4
!
Without machine failure, the mean owtime is 6.5 hours. With machine failure, the mean
owtime is 14.2 hours. Again the increase in variability is the main contributor to the
increase in owtime.
3. Failure after processing for an amount of time, restart processing
We reconsider the machine from the previous example. However, in this case the machine has
to restart processing from the beginning after repair, the specication becomes:
proc M(a : ?lot, b : !lot) =
|[ t
0
, t
fp
: real, dt
0
, dt
fp
, dt
r
: real, x : lot
| dt
0
:= (1/1.0
2
, 3.0 1.0
2
)
; dt
fp
:= negexp(100.0); dt
r
:= negexp(10.0)
; t
fp
:= dt
fp
; [ true
a?x; t
0
:= dt
0
; [ t
0
> 0.0; t
0
t
fp
:= t
fp
t
0
; t
0
:= 0.0
[] t
0
> 0.0; t
fp
t
r
; t
fp
:= dt
fp
]
; b!x
]
]|
(-10.4)
By simulation, we determine a slight increase in downtime: 7.8%, a slight decrease in the
mean actual time between failure: 129 hours and a substantial increase in mean owtime:
20.2 hours. Because, the machine has to restart processing after repair, the percentage
idle time slightly decreases, causing a slight increase in the number of failures per time
unit, that is, a slight increase in percentage downtime and a slight decrease in mean actual
time between failure. This all together causes a small increase in utilization, leading to a
substantial increase in mean owtime.
4. Failure after being up for an amount of time
In this last case, we consider a machine that fails after being up for an amount of time. On
average, the machine fails after being up for 100.0 hours. Repair, on average, takes 10.0
hours. The mean uptime between failure and the repair time are exponentially distributed.
The machine can break down while waiting for a lot, while processing a lot, and while trying
to send the lot to the next process.
4
In case of exponential failure and repair times, we can relatively easy determine the owtime and
percentage downtime by probability calculations. For such calculations, one is referred to [Lew95] or [Ros00]
152 Chapter 10. Extending machine models
A possible specication of machine M is:
proc M(a : ?lot, b : !lot) =
|[
0
,
f
, t
r
: real, dt
0
, dt
fu
, dt
r
: real, x : lot
, idle, finshd : bool
| dt
0
:= (1/1.0
2
, 3.0 1.0
2
)
; dt
fu
:= negexp(100.0); dt
r
:= negexp(10.0)
;
f
:= +dt
fu
; idle := true
; [ true
[ idle; a?x idle := false
[] idle;
f
dt
r
;
f
:= +dt
fu
]
;
0
:= +dt
0
; finshd := false
; [ finshd;
0
finshd := true
[] finshd;
f
t
r
:= dt
r
; t
r
;
fu
:= +dt
fu
;
0
:=
0
+t
r
]
; [ idle; b!x idle := true
[] idle;
f
dt
r
;
f
:= +dt
fu
]
]
]|
(-10.5)
We use the variables
f
and
0
to represent the time instants at which the machine fails
or nishes processing a lot respectively. As long as the machine is idle, the machine is
waiting for a lot via port a. While waiting for a lot, the machine may fail. Upon failure, the
machine is repaired, and time instant
f
of the next failure is determined. After a lot has
been received, time instant
0
is determined at which the machine is nished processing the
lot. As long as the lot is not nished processing (finshd = false), the machine may break
down. Upon failure, the machine is repaired and the time instant at which the lot is nished
is increased by the repair time (
0
:=
0
+t
r
). After the lot is nished, the machine tries to
send the lot to the next process. While trying to send the lot, the machine may again fail.
This specication can be rewritten into the following specication.
proc M(a : ?lot, b : !lot) =
|[
0
,
f
, t
r
: real, dt
0
, dt
fu
, dt
r
: real, x : lot
, idle, finshd : bool
| dt
0
:= (1/1.0
2
, 3.0 1.0
2
)
; dt
fu
:= negexp(100.0); dt
r
:= negexp(10.0)
;
f
:= +dt
fu
; idle := true
; [ idle ; a?x idle := false;
0
:= +dt
0
; finshd := false
[] idle finshd;
0
finshd := true
[] idle finshd; b!x idle := true
[] true ;
f
t
r
:= dt
r
; t
r
;
f
:= +dt
fu
; [ finshd
0
:=
0
+t
r
[] finshdskip]
]
]|
(-10.6)
Specication (-10.6) has the same functionality as Specication (-10.5). Note that upon
failure, we update time instant
0
if the machine is processing a lot (finshed = false).
10.2. Machine failure and repair 153
By simulation we determine that the mean actual time between failure is 110 hours and the
mean percentage down is 9.1%. Thus, on average the machine goes down every 110 hours
for 10 hours. The mean owtime is 15.3 hours.
154 Chapter 10. Extending machine models
Chapter 11
Case: (Part of) a waferfab
In previous chapters we have presented the main building blocks for modelling and analysis
of manufacturing systems. With these building blocks we can practically model any man-
ufacturing system. In this and the subsequent chapter we illustrate the use of by means
of two industrial cases. Both cases involve the manufacturing of chips. Most electronic
devices contain one or more integrated circuits (chips). Figure 11.1(a) shows a PC ROM
chip. Chips are produced on wafers. Figure 11.1(b) shows such a wafer.
Figure 11.1: (a) ROM chip in PC, (b) Multiple chips (dies) on a wafer
The rst case discusses a strongly simplied, but highly illustrative, analysis of a small part
of a wafer fab. The second case discusses a more detailed and extensive model of a larger
part of a wafer fab.
The cases are distilled from actual research conducted by the Systems Engineering group
at Philips and ASML. For reasons of condentiality, numbers are ctitious.
155
156 Chapter 11. Case: (Part of) a waferfab
11.1 The manufacturing of Integrated Circuits (ICs)
Manufacturing a chip is a process involving hundreds of steps and requiring from a few days
to up to three months of processing time to complete. Figure 11.2 shows the main steps in
making chips.
Figure 11.2: Main steps in chip making
Raw silicon is rst extracted from common sand. A series of chemical steps rene it until
the purity level reaches 99.9999999 percent [Int04]. Silicon ingots are then grown from
the puried molten silicon and sliced into round wafers ranging from 150mm to 300mm.
On this wafer we create multiple chips (dies). Each die is made up of many layers, each
of which contains a detailed pattern. The wafer manufacturing process consists of forming
this sequence of layers very precisely. The wafer fabrication is discussed in more detail
in the next section. When all layers of the wafer are ready, the microscopic circuitry of
each microprocessor is tested. Then the wafer is cut with a diamond saw, separating the
dies. Each die is then inserted into a protective package which allows it to connect to other
devices. In the chip industry, the wafer processing is called the front-end and the die
packaging is called the back-end.
11.2 Wafer processing
The wafer processing takes a large number (typically over 400) of various operations. In
this section we give a brief impression of the main steps. For more detailed information we
refer to [Wol90]. Figure 11.3 shows the rst set of operations performed on the wafer.
Figure 11.3: First operations in wafer processing (source: American Naval Acadamy)
11.2. Wafer processing 157
First, a layer of silicon dioxide is grown by exposing it to gas and extreme heat. The wafer is
then coated with a substance called photoresist. Photoresist becomes soluble when exposed
to ultraviolet light. In the photolithography process, ultraviolet light is passed through a
patterned mask, onto the silicon wafer. The mask protects parts of the wafer from the
light. The light turns the exposed areas into a gooey layer of photoresist. Each layer on the
microprocessor uses a mask with a dierent pattern. The gooey photoresist is completely
dissolved by a solvent. This reveals a pattern of photoresist made by the mask on the silicon
dioxide.
Figure 11.4: Second series of operations in wafer processing (source: American Naval
Acadamy)
The revealed silicon dioxide is etched away with chemicals. Subsequently, the remaining
photoresist is removed. Then a new layer of silicon dioxide is grown and a layer of polysilicon
is applied. With another photolithography process a part of the polysilicon is maintained.
In a similar way several layers with specic properties are added to the wafer. Sometimes
parts of the wafer are doped with ions, sometimes parts of the wafer are exposed to specic
gases, or sometimes metals are deposited on (parts) of the water.
Figure 11.5 shows a simplied owchart of the processes in the IC manufacturing process.
single-crystal
growing
wafer slicing
Lithography
Oxidation
Etching
Bonding
Deposition
Doping
Metallization
Packaging Testing
r
e
p
e
a
t
e
d
wafer processing
Figure 11.5: Flowchart of processes in IC manufacturing
The processing of wafers shows a typical re-entrant ow: a single wafer revisits a single
area. Figure 11.6 shows an example wafer fab layout. (The diusion area contains the oxide
furnaces.) Each area has a stocker. Operators take lots that are to be processed from the
stocker and put lots that are ready processing back into the stocker. An AGV system moves
lots from one stocker to another.
158 Chapter 11. Case: (Part of) a waferfab
Diffusio
n
Lithograph
y
Ion
Implant
Metallization Etch Thin Films
Diffusion Lithography
Ion
Implant
Production
Equipment
Inspectio
n
Rewor
k
Inspectio
n
Scra
p
Productio
n Equipme
nt
Inspectio
n
Productio
n Equipme
nt
Inspectio
n
Productio
n Equipme
nt
Inspectio
n
Productio
n Equipme
nt
Inspectio
n
Productio
n Equipme
nt
Production
Equipment
Inspection
Rework
Inspection
Scrap
Productio
n Equipme
nt
Inspection
Productio
n Equipme
nt
Production
Equipment
Inspection
Productio
n Equipme
nt
Inspection
Productio
n Equipme
nt
Inspection
Wafer Starts
Wafer Outs
Wafer Moves
Production
Equipment
Production
Equipment
Production
Equipment
Production
Equipment
Production
Equipment
AGV wafer transportation system
stocker
stocker stocker stocker
stocker stocker
Figure 11.6: Example layout of a waferfab
In this case study, we focus on the oxide furnaces in the diusion area and the lithographic
equipment in the lithography area.
11.3 The oxide furnace and lithographic equipment
Figure 11.7(a) shows the furnace bay of a wafer fab (the Philips SMST facility in B oblingen)
and a single furnace. We see that about 100 wafers are processed simultaneously in the
furnace. Figure 11.7(c) shows the lithography area of a wafer fab (the Crolles 2 facility in
Grenoble).
Figure 11.7: (a) Furnace bay (source: Micron Technologies), (b) Single (horizontal) furnace
(source: Micron Technologies), and (c) Lithographic area (source: Crolles2 waferfab)
Wafers move through the factory in wafer pods. In Figure 11.7(c) a wafer pod is encircled.
From now on, we refer to a wafer pod as a lot, since it is the main transport unit in the
factory. A single lot can contain up to 25 wafers. (The number of wafers can be smaller if a
customer order requires less than 25 wafers.) A lithographic machine processes lot for lot.
The oxide furnace processes multiple lots (typically more than 25 wafers) simultaneously.
11.4. Analytical approach 159
In other words, the lithographic machine is a single-lot machine and the furnace is a batch
machine.
We wish to investigate the following:
What is the eect of dierent batch sizes on the throughput, owtime, and
owtime variability of the lots.
For this case we consider the lithography and furnace area only. Moreover, we assume that
each area contains a single machine. This study does not yield a owtime estimation for
a real wafer fab, but it does provide us with valuable insight on the inuence of the batch
size on the performance of the most critical resource of the wafer fab: the lithography area.
Figure 11.8 shows a schematic representation of the minifab.
t
a
= 3.0 hours
c
a
= 1.0
T
0,F
= 5.5 hours/batch
C
0,F
= 0.25
t
0,L
= 2.7 hours/lot
c
0,L
= 1.0
B
F
F B
L
L
Figure 11.8: Schematic representation of the minifab
We assume an innite buer B
F
for furnace F and an innite buer B
L
for lithographic
machine L. Moreover, we assume the following characteristics (see also Figure 11.8): lots
arrive with a mean inter-arrival time t
a
= 3.0 hours with coecient of variation c
a
= 1.0
hours. The furnace processes batches of xed size with process time T
0,F
= 5.5 hours/batch
and coecient of variation C
0,F
= 0.25 hours. The lithographic machine processes lots and
has process time t
0,L
= 2.7 hours/lot and c
0,F
= 1.0 hours. Note that we use capital letters
for quantities that are related to batches.
In the sequel, we rst investigate the owtime of lots in this minifab analytically, and then
by means of simulation.
11.4 Analytical approach
For analytically determining the owtime of the minifab we consider the queueing system
in Figure 11.9.
batchsize k
t
a
c
a
T
0,F
C
0,F
T
d,F
C
d,F
Furnace Lithography
t
0,L
c
0,L
t
d,L
c
d,L
Figure 11.9: Queueing system representation of the minifab
160 Chapter 11. Case: (Part of) a waferfab
At the furnace, lots arrive with a mean inter-arrival time of t
a
hours. The lots wait to form
a batch of size k and batches queue up before the batch machine. The furnace processes
batches. The mean process time is t
0,F
hours/batch. Batches leave the furnace with mean
inter-departure time t
d,F
hour and arrive at the lithographic machine. Here a queue of
batches arises. The rst batch in line is broken down lot for lot, as the lithographic machine
process one lot at a time. The mean process time is t
0,L
hours/lot. After processing, lots
leave the machine with mean inter-departure time t
d,L
.
Please note that t
a
, t
0,L
, and t
d,L
are related to single lots and that T
0,F
and T
d,F
are related
to batches!
For the owtime calculation of the owtime in the furnace area we use the equations from
Section 3.5. We get:
F
=
k 1
2
t
a
+
c
2
a
/k +C
2
0,F
2
u
F
1 u
F
T
0,F
+T
0,F
with u
F
=
T
0,F
k t
a
(11.1)
Here the rst term represents the wait-to-batch-time, the second term represents the queue-
ing time of a batch, and the third term represents the process time of the batch.
The coecient of variation on the inter-departure time T
d,F
is determined with Kuehns
linking equation.
C
2
d,F
= u
2
F
C
2
0,F
+ (1 u
2
F
) C
2
a
= u
2
F
C
2
0,F
+ (1 u
2
F
) c
2
a
/k (11.2)
Note that this coecient on the inter-departure time relates to batches. Hence, we require
the coecient of variation on the inter-arrival time related to batches (C
2
a
). This coecient
of variation can be determined from the inter-arrival time of lots: C
2
a
= c
2
a
/k, see Section 3.5.
For the litho machine, the owtime also consists of three terms:
L
=
C
2
d,F
+C
2
0,L
2
u
L
1 u
L
T
0,L
+
k 1
2
t
0,L
+t
0,L
(11.3)
=
k C
2
d,F
+c
2
0,L
2
u
L
1 u
L
t
0,L
+
k 1
2
t
0,L
+t
0,L
(11.4)
=
C
2
d,F
+c
2
0,L
/k
2
u
L
1 u
L
k t
0,L
+
k 1
2
t
0,L
+t
0,L
with u
L
=
t
0,L
t
a
(11.5)
The rst term represents the queueing time of the batches. The coecient of variation
on the process time for a single lot c
0,L
can be related to the process time for k lots:
C
2
0,L
= c
2
0,L
/k. Moreover, the mean process time for k lots T
0,L
= k t
0,L
. The second term
represents the breaking down of the batch. When a batch is rst in line, not all its lots are
immediately processed. The rst lot in the batch is processed right away, the litho machine
starts processing the second lot after t
0,L
, the third lot after 2 t
0,L
, and the k-th lot after
(k 1) t
0,L
. The average wait-for-batch-breakdown time is (k 1)/2 t
0,L
. The third, and
last term, is the process time for the lot on the litho machine.
For the given specications (t
a
= 3.0, c
a
= 1.0, T
0,F
= 5.5, C
0,F
= 0.25, t
0,L
= 2.7, and c
0,L
=
1.0) we investigate the inuence of batch size k on owtime and coecient variation on
the inter-departure time C
d,F
for the furnace area. Figure 11.10 shows how the owtime
and the coecient of variation on the inter-departure time vary with k.
11.5. Simulation-based analysis 161
j
[
h
o
u
r
s
]
c
d
,
F
k [lots]
2 3 4 5 6
30
35
40
45
50
2 3 4 5 6
0.3
0.35
0.4
0.45
0.5
0.55
k [lots]
Figure 11.10: (a) Mean owtime and (b) coecient of variation on inter-departure time for
dierent batch sizes
We see that for batch size 1 the owtime grows to innity: the capacity is insucient for
this batch size. Small batches have a longer queueing time. Large batches require a larger
wait-to-batch-time. For the given parameters, we see that the owtime is minimal for 3 lots.
However, we see that the variation on the inter-departure time for k = 3 lots is signicantly
higher, leading to less predictable delivery dates.
11.5 Simulation-based analysis
In the previous section we have applied the analytical approaches from Chapter 3 to inves-
tigate the inuence of the batch size on the owtime. In this section we will reinvestigate
the same minifab, but with simulation.
Figure 11.11 shows a graphical representation of the minifab system.
G B
F
F B
L
L E
a b c d e
Figure 11.11: Graphic representation of cluster Minifab
We dene two types: lots and batches.
type lot = nat # real
, bat = lot*
Lots are represented by an id number and the time at which they are released in the line.
Batches are represented by a list of lots.
Process G generates lots according to the predened arrival pattern. We specify t
a
and c
a
as parameters.
162 Chapter 11. Case: (Part of) a waferfab
proc G(a: !lot, ta,ca: real) =
|[ i: nat, d:-> real
| i:= 0; d:= gamma(1/(ca*ca),ca*ca*ta)
; *[ true -> a!<i,time>; delta sample d; i:= i + 1 ]
]|
Buer B
F
receives lots and sends batches of xed size k.
proc BF(a: ?lot, b: !bat, k: nat) =
|[ xs: lot*, x: lot
| xs:= []
; *[ true ; a?x -> xs:= xs ++ [ x ]
| len(xs) >= k; b!take(xs,k) -> xs:= drop(xs,k)
]
]|
The buer can always receive new lots and puts them in a list. If this list contains at least
one complete batch (len(xs) >= k), the buer tries to send a batch. After sending the
batch, the batch is removed from the list of lots.
Furnace F processes batches. The process time is gamma distributed with mean t
0
and
coecient of variation c
0
.
proc F(a: ?bat, b: !bat, t0,c0: real) =
|[ xs: bat, d:-> real
| d:= gamma(1/(c0*c0),c0*c0*t0)
; *[ true -> a?xs; delta sample d; b!xs ]
]|
Buer B
L
in front of the litho machine, receives batches and sends single lots to the litho
machine.
proc BL(a: ?bat, b: !lot) =
|[ xss: lot*, xs: bat
| xs:= []
; *[ true ; a?xs -> xss:= xss ++ xs
| len(xss)>0; b!hd(xss) -> xss:= tl(xss)
]
]|
Note that adding the batch xs to the total list of lots xss requires no square brackets: both
xs and xss are lists. The litho machine is a regular machine with a gamma distributed
process time.
proc L(a: ?lot, b: !lot, t0,c0: real) =
|[ x: lot, d:-> real
| d:= gamma(1/(c0*c0),c0*c0*t0)
; *[ true -> a?x; delta sample d; b!x ]
]|
11.5. Simulation-based analysis 163
Exit E receives nished lots and calculates the mean throughput and mean owtime. These
measures are printed to screen every 10000-th lot.
proc E(a: ?lot) =
|[ i: nat, mft: real, x: lot
| i:= 0; mft:= 0.0
; *[ true
-> a?x
; i:= i + 1
; mft:= (i-1)/i*mft + (time-x.1)/i
; [ i mod 10000 = 0
-> !time,"\tmtp = ", i/time, "\tmft = ", mft, "\n"
| i mod 10000 > 0
-> skip
]
]
]|
Finally, we dene parametrized cluster Minifab and the parametrized experiment environ-
ment. In this way we can easily adapt parameters of the model.
clus Minifab(ta,ca,T0F,C0F,t0L,c0L: real, k: nat) =
|[ a,d,e: -lot, b,c: -bat
| G(a,ta,ca)
|| BF(a,b,k) || F(b,c,T0F,C0F)
|| BL(c,d) || L(d,e,t0L,c0L)
|| E(e)
]|
xper(ta,ca,T0F,C0F,t0L,c0L: real, k: nat) =
|[ Minifab(ta,ca,T0F,C0F,t0L,c0L,k) ]|
When we wish to simulate the model we get:
[user@serack-40 ams]$ case_minifab
Usage: "case_minifab ta ca T0F C0F t0L c0L k"
[user@serack-40 ams]$
Simulating for the given parameters (see previous section) and k = 3 gives:
[user@serack-40 ams]$ case_minifab 3.0 1.0 5.5 0.25 2.7 1.0 3
30185.8 mtp = 0.331282 mft = 41.8421
60203.9 mtp = 0.332204 mft = 38.2607
90001.4 mtp = 0.333328 mft = 38.5445
...
1.37959e+06 mtp = 0.333433 mft = 38.0518
1.40924e+06 mtp = 0.333514 mft = 38.0234
...
2.10035e+07 mtp = 0.333278 mft = 37.4706
2.10336e+07 mtp = 0.333276 mft = 37.4739
[user@serack-40 ams]$
164 Chapter 11. Case: (Part of) a waferfab
We see that the mean throughput is 0.333 lots/hour, which means we have a stable system,
where all lots entering the system (t
a
= 3.0 hours) leave the system. The mean owtime
converges around 37.1 hours. Simulating for the same settings again, yields a slightly
dierent outcome: 37.5 hours. Figure 11.12 shows how the analytically determined owtime
and coecient of variation on the inter-departure time (line marked with os) along with
the outcome of a number of simulation runs (2 million lots) marked with xs.
2 3 4 5 6
30
35
40
45
50
k
2 3 4 5 6
0.3
0.35
0.4
0.45
0.5
0.55
k
c
d
,
F
j
[
h
o
u
r
s
]
[lots] [lots]
[
h
o
u
r
s
]
Figure 11.12: (a) Mean owtime and (b) coecient of variation on inter-departure time for
dierent batch sizes determined analytically (line marked by os) and by simulation (marked
by xs)
Using Python [Pyt04] we can visualize the simulation output in for example Labview [Nat04,
Ver02]. Figure 11.13 shows a screendump of the visualisation in Labview.
Figure 11.13: Labview visualisation of simulation output
Bibliography
[AN98] W.T.M. Alberts and G. Naumoski. A Discrete-Event Simulator for Systems
Engineering. PhD thesis, Eindhoven University of Technology, Department of
Mechanical Engineering, The Netherlands, 1998.
[AR01] I. Adan and J. Resing. Queueing theory. Lecture notes, Eindhoven University of
Technology, Department of Mathematics and Computing Science, Eindhoven,
The Netherlands, 2001.
[Are96] N.W.A. Arends. A Systems Engineering Specication Formalism. PhD thesis,
Eindhoven University of Technology, Department of Mechanical Engineering,
The Netherlands, 1996.
[Ban98] J. Banks. Handbook of Simulation. John Wiley and Sons, New York, 1998.
[BFS87] P. Bratley, B.L. Fox, and L.E. Schrage. A guide to simulation. Springer-Verlag,
New York, 1987.
[BK00] V. Bos and J.J.T. Kleijn. Formalisation of a production systems modelling
language: the operational semantics of core. Fundamenta Informaticae,
41(4):367392, 2000.
[Bro03] Brooks-PRI Automation. Automod, 2003. http://www.autosim.com.
[Bru97] G. Bruns. Distributed Systems Analysis with CCS. International series in com-
puter science. Prentice Hall, New York, 1997.
[BS93] J.A. Buzacott and J.G. Shantikumar. Stochastic models of manufacturing sys-
tems. Prentice Hall, New York, 1993.
[BW90] J.C.M. Baeten and W.P. Weijland. Process Algebra, volume 18 of Cambridge
Tracts in Theoretical Computer Science. Cambridge University Press, Cam-
bridge, 1990.
[Cac02] Caci Products Company. Simscript, 2002. http://www.caciasl.com.
[CAJ01] R.B. Chase, N.J. Aquilano, and F.R. Jacobs. Production and Operations Man-
agement. Irwin, Chicago, 2001.
[Fle02] Flexsim. Flexsim, 2002. http://www.flexsim.com.
[Fok00] W.J. Fokkink. Introduction to Process Algebra. Springer-Verlag, 2000.
165
166 Bibliography
[Gan19] H.L Gantt. Organizing for work. Industrial Management, 58:89 93, August
1919.
[Ger94] S.B. Gershwin. Manufacturing Systems Engineering. Prentice Hall, Englewood
Clis, 1994.
[GH85] D. Gross and C.M. Harris. Fundementals of queueing theory. John Wiley and
Sons, New York, second edition, 1985.
[Hof01] A.T. Hofkamp. Reactive machine control. A simulation approach using . PhD
thesis, Eindhoven University of Technology, Department of Mechanical Engi-
neering, Eindhoven, The Netherlands, 2001.
[HR02] A.T. Hofkamp and J.E. Rooda. reference manual. Technical report, Eind-
hoven University of Technology, Eindhoven, 2002.
[HS01] W.J. Hopp and M.L. Spearman. Factory Physics. McGraw-Hill, Boston, second
edition, 2001.
[Ima02] Imagine that. Extend, 2002. http://www.imaginethatinc.com.
[Int04] Intel. How chips are made. educational website, 2004.
[Ken53] D.G. Kendall. Stochastic processes occuring in the theory of queues and their
analysis by the method of the imbedded markov chain. Ann. Math. Stat, pages
338354, 1953.
[Khi32] A. Khinchine. Mathematical theory of stationary queues. In Mat. Sbornik,
volume 39, pages 7384, 1932.
[Kin61] J.F.C. Kingman. The single server queue in heavy trac. In Proc. of the
Cambridge Philosophical Society, volume 57, page 902, 1961.
[Kol33] A.N. Kolmogorov. Sulla determinazione empirica di una legge di distribuzione
(in italian). In Giornale dell Istituto Italiano degli Attuari, volume 4, pages
8391, 1933.
[Kue79] P.J. Kuehn. Approximate analysis of general queueing networks by decompo-
sition. IEEE Trans. Comm., 27:113126, 1979.
[Lan02] Lanner Group. WITNESS, 2002. http://www.lannergroup.com.
[Lee99] L. Leemis. Simulation input modelling. In P.A. Farrington, H.B. Nembhand,
D.T. Sturrock, and G.W. Evans, editors, Proceedings of the 1999 Winter Sim-
ulation Conference, pages 1423, 1999.
[Lef03] A.A.J. Lefeber. Iteratieve berekening van en (in dutch). Personal commu-
nication, 2003.
[Lew95] E.E. Lewis. Introduction to reliability engineering. John Wiley and Sons, New
York, second edition, 1995.
[Lit61] J.D.C. Little. A proof of the queueing formula l = w. Operations Research,
9:383387, 1961.
Bibliography 167
[LK00] A.M. Law and W.D. Kelton. Simulation Modeling and Analysis. McGraw-Hill,
2000.
[Man03] Manugistics Inc. Statgraphics, 2003. http://www.statgraphics.com.
[Mat03] Mathworks inc. Matlab release 13, 2003.
[MR02] D.C. Montgomery and G.C. Runger. Applied Statistics and Probability for
Engineers. Wiley, New York, third edition, 2002.
[Nat04] National Instruments. Labview, 2004. http://www.ni.com.
[Pea00] K. Pearson. On a criterion that a given system of deviations from the probable
in the case of a correlated system of variables in such that it can be reasonably
supposed to have arisen in random sampling. In Phil. Mag. (5), volume 50,
pages 157175, 1900.
[Pol30] F. Pollaczek. Uber eine Aufgabe der Wahrscheinlichkeitstheorie. In I-II Math.
Zeitschrift, volume 32, pages 64100, 729750, 1930. (in German).
[Pyt04] Python website, 2004. http://www.python.org/.
[Ros00] S.M. Ross. Introduction to probability models. Academic press, London, 2000.
[RT98] R.S. Russel and B.W. Taylor. Operations management. Prentice Hall, Upper
Saddle River, 1998.
[SAS03] SAS. SAS, 2003. http://www.sas.com.
[Shi81] S. Shingo. Study of Toyota Production System. Japan Management Association,
Tokyo, 1981.
[Smi33] N. Smirnov. Estimate of deviation between empirical distribution functions
in two independent samples. In Bulletin Moscow University, volume 2, pages
316, 1933.
[SPS03] SPSS inc. SPSS, 2003. http://www.spss.com.
[Ste74] M.A. Stephens. Edf statistics for goodness of t and some comparisons. In
Journal American Statistical Association, volume 69, pages 730737, 1974.
[Sur98] R. Suri. Quick Response Manufacturing, a Companywide Approach to Reducing
Lead Times. Productivity Press, Portland, 1998.
[Suz87] K. Suzaki. The new manufacturing challenge. The Free Press, New York, 1987.
[Tij94] H.C. Tijms. Stochastic Models, An algorithmic approach. John Wiley & Sons,
Chichester, 1994.
[vdMFR95] J.M. van de Mortel-Fronczak and J.E. Rooda. Application of concurrent pro-
gramming to specication of industrial systems. In Proceedings of INCOM95,
pages 421426, Beijing, China, October 1995.
[Ver02] J. Vervoort. Visualisation of chi simulation output using labview. Technical
report, Eindhoven University of Technology, Eindhoven, 2002.
168 Bibliography
[VR02] J. Vervoort and J.E. Rooda. Learning . Lecture notes, Eindhoven University
of Technology, Eindhoven, 2002.
[Wol90] S. Wolf. Silicon processing. Lattice press, Sunset Beach, California, 1990.
Selected answers
Section 2.3
1a)
M1
= 0.9,
M3
= 0.9,
M4
=
b)
M2
= 0.225
c) u
1
= 1.8, u
2
= 1.35
u
3
= 1.62, u
4
= 1.6
d)
max
= 0.56 lots/hour
2a)
max
= 1.0 lots/hour
b) = 5.8 hours
c) w = 5.8 lots
3a) = 0.31 hours
b) 6,9, and 4 machines
c) workstation 1 and 2
4a)
max
=
1
3
lots/hour
b) B
2
lls up
c)
max
=
1
3
lots/hour
d) B
1
lls up
5a) u
1
= 4,
max
=
1
4
lots/hour
b) =
28
3
hours
c) w = 28/15 = 1.87 lots
6a) u
SL
= 2, u
B
=
8
5
max
=
1
2
lots/hour
b,c) = 14 hours
d) w = 7 lots
e) No
f)
max
= 0.4 lots/hour, u
SL
= 0.8
g,h) = 15.75 hours
7a) u
1
= 2.4, u
2
= 2.5
b)
max,A
= 0.16 prodA/hr
max,B
= 0.24 prodB/hr
d) = 6 hours
e) w = 2.4 prod
f) w
A
= 0.96 prodA, w
B
= 1.44 prodB
Section 2.4
8a)
W2
= /0.8,
W3
= /0.8
W5
= /4
b)
W4W5
= /4,
W4W6
=
9a)
W1
= ,
W2
= 0.8
W3
= 0.9,
W4
=
10c)
W4
= /0.7 = 1.43
d)
W1
= 1.34,
W2
= 1.70
W3
= 1.79
f)
max
= 0.56 lots/hour
11d)
W1
= 1.46,
W2
= 1.05
W3
= 2.50,
W4
= 2.0
11f) u
W1
= 1.46, u
W2
= 1.37
u
W3
= 1.75, u
W4
= 1.60
Section 3.7
1a) u
1
= u
3
= 0.75, u
2
= 0.625
b)
B1
= 5.91 min
c) c
2
a,2
= 1
d)
B2
= 0.97 min
e)
B3
= 9.0 min
f) w
B1
= 1.48 lots, w
B2
= 0.24 lots
w
B3
= 2.25 lots
h)
tot
= 63.88 min
i) w
tot
= 15.97 lots
2a) u
1
= u
3
= , u
2
= 4
c) u
1
= u
3
= 0.225, u
2
= 0.9
d)
tot
= 63.0 hours
e) w
B1
= 0.20 lots, w
B2
= 12.56 lots
w
B3
= 0.07 lots
g)
max
= 1.0 lots/hour
h)
tot
= 86.47 hours
i)
tot
= 62.63 hours
j) w
I
= 77.82 lots, w
II
= 56.27 lots
3a) (k) = 5k + 4.75
b) k
min
= 1
4a) u = 5/6
169
170 Bibliography
b)
bk
= 0.75 hours
c)
bq
= 2.69 hours
d)
tot
= 8.44 hours
Section 4.5
1b) = 5.0 [lots/hour]
d) = 5.0 [lots/hour]
3b) = 15.0 [lots/hour]
c)
0
=
1
=
2
= 5.0 [lots/hour]
d)
0
=
1
=
2
= 5.0 [lots/hour]
Section 5.9
2 = 0.2 lots/minute
= 6.24 minute
u = 0.988
w = 1.263 lots
4 = 5.0 lots/hour
= 0.2 hour
u = 1.0
w = 1.0 lots
5a) = 0.25 lots/min
b) = 5.69 min
c)
1
= 3.63 min
2
= 5.36 min
3
= 8.35 min
d) n
B
= 0.59 lots
6a) = 0.24 lots/hour
b) = 0.249 lots/hour
Section 6.5
1 T, T, F, T, F
2 T, F, F, F
3 F, F, T, F, F, T
4b) n = 2.353 [lots/hour]
c) n(N=1) = 2.490 [lots/hour]
n(N=2) = 2.499 [lots/hour]
n(N=3) = 2.500 [lots/hour]
5a) seconds
b) t
0
= 11.4 s
Section 7.5
2a,b)
machine t
[lots/hour] [hour]
0 0.6 1.5
1 0.2 4.5
2 0.2 4.5
3 0.2 4.5
4 0.4 2.25
5 0.4 2.25
6 0.3 3.0
7 0.3 3.0
8 0.4 2.25
c)
min,0,1,4,5
= 9.0 hours
min,2,3
= 6.75 hours
Section 8.6
1a) u
AP
= 0.8
d) b
0
= 0.6 lots, b
1
= 0.7 lots
b
2
= 1.05 lots, b
3
= 1.2 lots
2a) u
0
= u
2
= 0.75, u
1
= 0.625
3a) r
a
= 2.0 lots/hour
Section 9.6
1a)
w
0.1 0.6 6
0.2 1.2 6
0.3 1.8 6
0.4 2.4 6
0.5 3.0 6
2a)
max
= 0.5 lots/hour
c,d)
ta w2,3 wtot
2.0 3 0.34
2.5 3 0.34
3.0 3 0.33 26.50 8.83
3.5 3 0.29 9.05 2.59
4.0 3 0.25 7.56 1.89
5.0 3 0.20 7.02 1.40
3.0 4 0.33 12.12 4.04
3.0 5 0.33 11.49 3.83
3.0 6 0.33 11.35 3.78
f)
w1,2 wtot
1 0.25 7.24 1.81
2 0.33 10.39 3.41
3 0.38 13.34 5.19
4 0.40 17.11 6.90
5 0.42 21.00 8.71
6 0.43 25.16 10.77
Bibliography 171
3b)
conwip wmax wtot
1 3 0.22 11.3 2.48
2 6 0.26 18.1 4.71
3 9 0.28 24.2 6.78
4 12 0.29 30.3 8.79
4b,c)
N wmax wtot
0 3 0.23 11.3 2.55
1 6 0.26 18.0 4.72
2 9 0.28 24.2 6.80
3 12 0.29 30.4 8.88
4 15 0.30 36.5 10.92
d) Identical performance