March, 1985 LIDS-P-1435 Bevans**, and

advertisement
March,
1985
LIDS-P-1435
SIMULATION OF A FLEXIBLE MANUFACTURING SYSTEM
by
Ramakrishna
J.
Patrick
Akella*,
Bevans**, and
Yong Choong*
* Laboratory for Information and Decision Systems
Massachusetts Institute of Technology
77 Massachusetts Avenue
Cambridge, Massachusetts
02139
**
Charles Stark Draper Laboratory Inc.
555, Technology Square
Cambridge, Massachusetts 02139
ABSTRACT
In this report we describe the program organization,
input
data
preparation,
and output data intepretation
for
FMSIM,
a
manufacturing
system
and
scheduling
policy
simulation
tool.
FMSIM
is
a
FORTRAN 77 program package that is organized
on
a
modular
basis,
with separation between scheduling policies
and
the simulation of an automated production system.
This important
feature
enables
schedulers
to
compare
the
performance
of
different policies for the same physical system.
We describe the
detailed
implementation of Kimemia and
Gershwin's
hierarchical
scheduling policy,
as enhanced by Gershwin,
Akella, and Choong.
We
also describe the simulation model and implementation of
the
IBM Miniline at Tucson.
ACKNOWLEDGEMENTS
We
are grateful for research support which had been provided by
the
Manufacturing
Research
Center
of
the
Thomas
J.
Watson
Research
Center
of
the
International
Business
Machines
Corporation
and by the U.S.
Army Human
Engineering
Laboratory
under
Contract
DAAKll-82-K-0018.
We are also grateful for
the
guidance
of Mr.Mike Kutcher and Dr.Chacko Abraham of
IBM.
Ms.
Susan
Moller
and
Mr.
David White of
IBM
provided
important
advice.
We were assisted by M.I.T.
students George Nikolau and
Jean-Jacques Slotine.
Finally,
we are grateful to
Dr. Stanley
Gershwin for providing the motivation and impetus for this work.
2
TABLE OF CONTENTS
PAGE
ABSTRACT
2
ACKNOWLEDGEMENTS
2
TABLE OF CONTENTS
3
1.
INTRODUCTION
4
2.
OVERVIEW OF
5
IBM MINILINE AND SCHEDULING POLICIES
5
6
9
2.1 Flexible Manufacturing Systems
2.2 The Hierarchical Policy
2.3 The Alternate Policies
:3.
4.
PROGRAM ORGANIZATION
11
3.1
3.2
3.3
3.4
11
12
15
24
Objective and Architecture of FMSIM
FMS Simulator
Scheduling Policies
Subroutine Description
SAMPLE PROGRAM EXECUTION : DATA INPUT AND OUTPUT
29
4.1 Input Data
4.2 Output Data
29
34
5 CONCLUSION
38
REFERENCES
39
APPENDIX
I.
DIFFERENCES BETWEEN ALTERNATE
HIERARCHICAL POLICY
APPENDIX
II.
PROGRAM
II.1
II.2
II11.3
APPENDIX
III.1
III.2
III.3
III.4
II1.5
VARIABLES
POLICIES
AND PARAMETERS
Parameter Usage
Variables for the System Simulator
Parameter and Variable for Hierarchical
III.
AND
DATA LISTING
40
41
Scheduler
41
41
45
47
System Simulation Input Data
Scheduler Input Data
System Simulation Performance Output
System Run Time Status Output
Scheduler Output
48
54
58
70
75
LIST OF TABLES
79
LIST OF FIGURES
81
3
1.
INTRODUCTION
This
report describes the program organization,
input data
preparation,
and
output
data interpretation
for
the
program
FMSIM.
FMSIM
is a manufacturing system and
scheduling
policy
simulation
tool.
It
is
designed
on
a
modular
basis
with
separation
between the scheduling policies and the operation
of
an
automated
production
system.
An analyst can
thus
compare
different scheduling policies for the same physical system.
This
is
a
unique
feature,
as
most
previous
production
system
simulations
had the system and policy software intermingled with
one another.
The
scheduling policy of primary interest is the
hierarchical policy described in (Gershwin, Akella and Choong,
1984).
Any
production
system is subject to a number
of
uncertainties
that affect production.
An effective real-time scheduling policy
must
use
feedback based on the machine and
production
status.
The
hierarchical policy described here responds to machine
failures.
It
has
a three-level structure.
Using
the
machine
failure and repair time data, the top level computes off-line the
parameters
required by the middle level.
The middle level computes the production rates of each part,
taking the system capacity
constraints
into account.
The lowest
level
tracks
the
resulting
production
surplus trajectories and loads parts
into
the system at appropriate times.
We
also describe some simple scheduling policies that
be compared with the hierarchical one.
can
We
discuss
the
general
structure
of
the
flexible
manufacturing
system
that is simulated by the program.
In
the
interests of clarity,
the description is based on the model of a
specific system :
the IBM Miniline, being built in stages at the
IBM
General Products Division at Tucson,
Arizona.
This is
an
automated
production
line for inserting
electronic
components
into printed circuit cards.
The
report
is organized as follows : In
Section
2,
we
describe
the
IBM
Miniline
and
present
an
overview
of
the
hierarchical and other policies.
In Section 3,
we describe
the
modular
organization
of
the program,
the
simulation
of
the
Flexible Manufacturing Systems (FMS's), and the implementation of
the
various
scheduling
policies.
A synopsis
of
the
various
subroutines
is
also included in Section 3.
In
Section
4,
we
describe
the preparation of the input data and interpretation of
the output data. We conclude in Section 5.
4
2. OVERVIEW OF FLEXIBLE MANUFACTURING SYSTEMS
AND SCHEDULING POLICIES
In
this
section,
we
first describe
a
general
flexible
manufacturing
system
to
which the
hierarchical
scheduler
is
applicable.
We
describe in more detail a class of models,
an
example of which is the IBM Miniline.
Our purpose in using this
system is to assess the scheduler in a realistic setting. We then
discuss
the
hierarchical
scheduling policy and
the
alternate
policies.
2.1
Flexible
Manufacturing Systems
A
flexible
manufacturing system (FMS)
consists
of
several
machines
and
associated
storage
elements,
connected by
an
automated
materials
handling
system.
It is
controlled
by
a
computer
or
a
network
of
computers.
The
purpose
of
the
flexibility
and
versatility
of the configuration
is
to
meet
production
targets
for a variety of part types in the
face
of
disruptions such as demand variations and machine failures.
In this report,
we present a software package developed for
simulating
the operation of FMS's.
The software
simulates
the
flow
of
material
through
the
system and
the
operational
characteristics
of
the components such as machine
failure
and
repair rates.
Here
we use an IBM automated card assembly line model as
vehicle for presentation.
a
At IBM's General Products Division at
Tucson,
Arizona,
an
automated card assembly line is being built in stages,
through a
series
of "minilines."
The portion of the system of interest to
us is the stage consisting of insertion machines. Printed circuit
cards from a storage area upstream arrive at the loading area
of
the insertion stage.
Each card is placed in a workholder, which
is
introduced into the system.
These workholders move
through
the
system from machine to machine along transportation elements
which are controlled by a hierarchy of computers and microprocessors. At each of these machines electronic components are inserted
into the card.
Each type of card goes to a specific
set
of
machines. The processing time of each card at any machine depends
on
the
number and type of components that are
inserted.
If
a
machine
is
busy or otherwise unavailable,
the workholders
are
stored in a buffer near the machine. Finally
the workholders exit
the
system
and go to the downstream stage,
which
consists
of
testing
and soldering machines.
The changeover time is
small among the family of parts
producible
with a given component loading.
For
demonstration
purposes,
we
use
the Miniline 1300,
whose schematic is shown
in
Figure 1.
This consists
of a DIP (Dual In-line
Package
Inserter),
a
VCD
(Variable Center Distance Inserter)
and
two
SIPs
(Single In-line Package Inserter).
Each of the machines also has
an associated buffer,
which can hold 30 parts.
5
2.2
The Hierarchical Policy
The objective of the hierarchical scheduler
(Gershwin,
Akella and Choong, 1984) is to meet production targets as closely
as possible with minimum Work-In-Process (WIP).
This is to be
achieved in the presence of machine failures.
The policy uses
the important concepts of instantaneous capacity and hedging,
to
be described below.
Capacity Constraints
Denote the operational state of machine i at time t by a
(t).
i
That is,
0O if machine i is down
=
(2.1)
i
If
|1 if
machine i is
a group of identical
up.
machines
are pooled,
a
is
integer
i
valued.
a is
Let u
a vector of individual machine states.
be the instantaneous production rate
of part type j.
J
Let
be the operation time of the part type j at the machine
T
ij
i.
All
operations at machines take a finite amount
of time.
This implies that the rate at which parts are introduced into the
system must be limited.
Otherwise,
parts would be introduced
into the system faster than they can be processed.
These
parts
would then be stored in buffers while waiting for the machine to
be free,
resulting in undesirably large work-in-process.
From
these
considerations,
it
is clear that
the
concept
of
instantaneous production rates (which satisfy the system capacity
constraints) is a crucial one.
It can be shown that instantaneous production rates ensuring
that
internal queues (in buffers) do not accumulate must belong
to the instantaneous capacity constraint set Q ( a) of Figure 2
given by
2 (a
) =
iu
:
\j
rT
1tz
ij
J 1J
u
a
J
, for all i,
i1i 0
u >
(2.2)
j
Equation
(2.2)
highlights the fact that the instantaneous
capacity constraint Q (a) depends on the set of machines that are
operational.
The key element of the hierarchical policy is to
impose the discipline of producing within this constraint at all
times as machine states change.
In other words, the hierarchical
policy keeps
the production rates at or
inside the feasible
production capacity region of Figure 2 at all times.
6
Hedging
At
time t,
the production surplus x
(t)
is the
difference
j
between
the cumulative production W
(t)
and the cumulative demand
j
D (t):
j
x
(t)
=
W
(t) - D
j
j
Keeping
(t)
(2.3)
j
the production surplus x
close to zero
is a way of
j
meeting
production targets and maintaining a low WIP at the same
time.
However,
failures
result
in a shortfall
in
production
capacity.
One
compensates by building up safety stocks
through
overproduction
to
a
pre-determined
extent,
when
possible.
Thus,
is
rather than'maintaining x
reasonable
to
maintain
(t)
near zero at all t,
it near a level
H (a)
>
0.
This
it
is
j
only possible if the demand rate, d(t)
of the machine state a , that is
d(t)
£
Q
( a
is within the capacity set
(t))
(2.4)
For a known demand over the production period, T, the demand rate
d(t)
is
constant
and is given by D(T)/T.
We call
H ( a)
the
j
hedging point.
If
(2.4)
is not satisfied,
decline over time.
Overview of the Hierarchical
some components
of
x(t)
must
Policy
The
scheduler
is divided into three levels,
as
shown
in
Figure 3 . The top level generates the off line decision parameters of the policy, that is, the hedging points H (a) and other
j
quantities,using failure,
repair, and demand data. This top-level
is designed to be called just once,
at the start of a production
run. However, if failure or repair rates change, it can be called
on-line to update the decision parameters.
When
there
is a change in machine
state,
that
is,
when
either a machine fails or is repaired, the middle level is called
to compute the new values of the short term production rates.
It
takes
the
capacity constraints of the system into
account
and
uses
the off-line parameters supplied by the higher
level.
The
resulting
production
surplus trajectory is
also
computed;
no
recomputation is required till the next machine state change.
At
the
lowest
level,
parts are loaded into the system
so
as
to
follow
the buffer state trajectory computed at the middle
level
as faithfully as possible.
Thus,
the lower level computation is
7
simplified to a comparison of two values.
A detailed description of each of the levels follows.
Middle Level
At this level, the current production rate u (t) of each
j
part type is determined for the current machine state
a (t) and
production surplus
x(t).
The objective
is
to compute
the
instantaneous
production
rates such that x approaches and
then
remains equal to H( a) whenever enough capacity is present.
If
too many machines are unavailable for that,
the scheduler choses
from among the available production capacity a set of rates
to
control
the manner in which the production surplus declines and
becomes a backlog.
These desirable characteristics are the result of choosing
the instantaneous production rates as the solution to the following linear programming problem.
Linear Program
minimize c u
+ c u
1 1
subject
+
.....
+ c u
22
to
u
Q2
(
a
)
The
cost
coefficients
of the linear
program,
functions of production surplus x, are given by
c (x ) =A (a) (x
j
j
where A (a)
j
j
-
(2.5)
JJ
which
H (a))
(2.6)
j
and H (a) are determined at the higher level.
j
are
j
A (a )
j
is a positive quantity that reflects the relative value
and
vulnerability of each part type. Consequently, coefficient c (x )
j
j
tends to be negative when type j is behind its hedging point, and
is more negative for more valuable or more vulnerable parts.
Instantaneous
production rates generated according to this
program
automatically
satisfy the
instantaneous
capacity
constraints.
This
linear program is not difficult to solve ontypically
line
since the number of constraints and unknowns is
not large.
The production surplus x(t) is given by (2.3).
approximately
It is
t
x(t)
[u(t) -
d(t)] dt
(2.7)
since the
function of the lower level is to keep
production rate close to the value calculated here.
8
the
actual
As
x(t)
changes,
the coefficients of the
linear program
change.
Kimemia and Gershwin (1983) solved the linear program at
every
time
instant.
Their
implementation led
to
undesirable
"chattering" behavior and unnecessary computation.
Chattering is
the
phenomenon where the mix of production rates keeps
changing
at
every
time constant.
Gershwin,
Akella
and
Choong
(1984)
describe an efficient
method for eliminating much of the computation
and all
of the chattering.
The
system
operates on a random cycle:
when
the
machine
state o is
feasible
(i.e.
when
(2.4)
is
satisfied),
the
production surplus x approaches H( a) and then stays
there.
The
production rate then equals the demand rate, d(t). When a machine
fails
so
that the machine state is not feasible, x moves
away
from
from
H and eventually some or all
components
may
become
negative.
Higher Level
The
purpose of the top level of the algorithm is to provide
and H
parameters to the middle level. From an analysis of
j
j
the random cycles described above, the value of H
can be chosen,
j
based on MTBF, MTTR, the penalties for being ahead or behind, and
the operation times, to keep x
small.
the A
j
The
coefficients A
(a)
can be computed from the
number
of
j
machines
that
type
j parts visit and also
from
its
relative
value.
The more machines each part type visits, the more vulnerable that part type is to failures.
Also, the smaller the mean
time between failures, the more the vulnerability.
Lower Level
The lower level treats the projected trajectory (2.7) as the
value
that the actual production surplus (given by (2.3)) should
be close to.
A part of type j is loaded into the system whenever
the
actual production surplus is less than its projected
value.
When there is a machine state change,
a new projected trajectory
is
calculated by the middle level,
starting at the time of
the
change,
and
the
same loading process continues
with
the
new
trajectory.
2.3
Alternate Policies
Here
we discuss three simpler policies.
All of them
limit
the
number of parts in the system.
The differences lie
in
the
amount
of information they use about system status and how
they
use this information.
The important
and these are:
differences between the hierarchical
policy
(1) These policies are not explicitly based on satisfying the
capacity constraints although they limit the number of parts
in
the system. Consequently, there is congestion in the system.
(2) They require tuning to perform well.
(3) The policies are not hierarchical and do not
seperate the
scheduling problem into a set
of problems with
different
characteristic time scales.
As a consequence, they are difficult
to
analyze and their performance difficult to predict other than
by simulation.
These policies
differ from one another by
system status information they use.
the
amount
of
This policy loads a part whose type is furthest
least ahead of cumulative demand.
behind
or
Policy X
A limit N is set on the total number of parts in the system
in order
to
avoid filling up the buffers
and transportation
system.
Also, buffers
upstream and downstream of the FMS may have
limited capacities,
or the cost
of extra inventory may be
prohibitive.
Thus even if production is ahead of demand, a limit
on excess production is imposed.
Policy Y
This differs from Policy X only in that individual limits N
are set on the number of parts of each type.
Policy Z
This
differs
from policy Y only in that
when a machine
fails,
the limit N of parts going to that machine should be set
to zero.
In other words, the flow rate of the parts going to the
failed machine is set to zero.
The
initial
values of N
and N are obtained from
Little's
j
law (1962),
which asserts that the number of parts in the system
equals
the
product of the flow rate and the average
amount of
time spent by parts of that type in the system.
10
3. PROGRAM ORGANIZATION
In
this
section,
we present the overall structure of
the
program;
we discuss the simulation of an FMS using the IBM Miniline
as
a
model
and
the
implementation
of
the
scheduling
policies. Finally a sypnosis of the subroutines is included.
3.1
Objectives
and Architecture of FMSIM
The objectives of the program are (1) capability to simulate
a
general
class
of FMS's,
(2) ease
of
switching
scheduling
policies
and
(3)
transportability with
respect
to
different
computer environments.
Each
objective
dictates certain
features of the
and is reflected in the
implementation.
3.1.1 Capability to Simulate a general class of FMS's of
Sizes
program,
Various
Ideally, a software package should be able to simulate FMS's
of
arbitrary
configuration.
However,
such an
objective will
require
complex program code and a sacrifice in performance when
simulating a special class of FMS's.
FMSIM
is a compromise between generality of FMS classes and
simplicity
of program code.
It can simulate the class of
FMS's
with
layout similar to that of the IBM Miniline shown in
Figure
1.
The
same philosophy of program development and
architecture
can
be
extended
to
FMS's
of
substantially
different
configuration.
The model of the FMS is coded in the input data, rather than
in
the
program code.
The program has to intepret this data
to
create
the model of the FMS at run time.
In this
manner
FMS's
with
the same configuration but different sizes can be simulated
using the same program. Detail of the implementation is discussed
in Section 3.2.1 : System Representation.
3.1.2
:
Ease of Switching Scheduling Policies
This
requires the scheduler module to be separable from the
rest
of the system.
By using different
scheduler modules,
an
analyst
can thus evaluate the performance of various
scheduling
policies on an FMS.
Program Separation
The scheduling policy determines which part is to be
loaded
next,
while the system simulation determines the movement of the
part
through the system after loading.
Hence,
the program
is
separated into two modules, each with its distinct function.
the
Figure 4 depicts the organisation of the program.
TOPCN1 is
module
for the scheduler and LOGMOV,
the
simulator.
Here
11
TOPCON, THSH and DSPACH are the "plug compatible" modules for the
various scheduling policies;
one has to plug in the
appropriate
modules
for
the
scheduling policy intended.
In
this
manner,
different versions of the program can be compiled separately
for
different
scheduling
policies.
At this time,
there
are
four
different versions;
one for the Hierarchical Scheduler and
three
for the alternate policies X, Y and Z.
Variable Separation
: Modular Approach via Common Blocks
Similarly,
the system simulation routines do not need
all
the variables used by the policy routines,
Only a few variables
part
and the
parts in the system,
the machine state,
such
as
being loaded,
are common to the two routine sets.
Common blocks
of
variables.
A
used
to
separate the different
groups
are
judicious
use
of
INCLUDE
statements
ensures
a
reasonable
separation between the policy and system routines.
3.1.3
: Transportability
The
program needs to be independent on the computer system,
or at least be easily adaptable to different computers and operating
systems.
Hence
the use of special
software
packages
is
avoided.
Synchronous Simulation
: Non-Event-List based
In order to achieve transportability, the simulation of the
operation of the FMS's is synchronous
i.e.
time-driven,
rather
than
event-driven.
This means that most of the subroutines are
the
subroutines
are
executed
every
time-step.
As a result,
Event-driven systems
simple but program execution may be slower.
are
generally
faster but require complex
programs
or
special
packages such as SLAM (Pritsker and Pegden, 1979).
While
the production system simulation is synchronous,
the
scheduler
module
is
activated by events such as
a
change
in
the
machine state or after a user-specified time
interval.
The
operational relationship is depicted in Figure 5.
3.2 FMS Simulator
In
this section,
we discuss the movements of parts through
the
FMS.
The
discussion
here is based on
the
IBM
Miniline.
apply
to
other
same
philosophy
and
mechanics
However,
the
systems.
3.2.1 System Representation
For
simulation
of
the movement of
material
through
the
production
system, we use a data-driven technique in the
sense
that
the
production
system is not coded in
the
program.
The
program creates the model of the system based on the input
data.
The
advantage is that different production systems with
similar
12
layout can be simulated without changing the program code.
In
Figure 1, the triangles represent the machines. The
and the rectangles, the
circles represent the rotary conveyors,
rectilinear conveyors. The ovals represent the buffers. These are
the four basic elements of the production system. Each element is
presented to the program as a three digit identifier, xxx, where
BMACH <
BBUF
<
BTRAN1
BTRAN2<
xxx < (BMACH+MMACH-1) for machines,
xxx s (BBUF+MBUF-1) for buffers,
xxx X (BTRANI+MTRANI-1) for rectilinear conveyor,
xxx s (BTRAN2+MTRAN2--1) for rotary conveyor;
and where
< BBUF,
(BMACH + MMACH)
(BBUF + MBUF)
(BTRANl+BTRAN2)
BTRAN1,
<
A
BTRAN2.
The meanings of the PARAMETERs are:
BMACH
MMACH
BBUF
MBUF
BTRAN1
MTRAN1
BTRAN2
MTRAN2
-
ID number of base
maximum number of
ID number of base
maximum number of
ID number of base
maximum number of
ID number of base
maximum number of
(lowest number) machine,
machines which can be simulated,
(lowest number) buffer,
buffers which can be simulated,
rectilinear conveyor,
rectilinear conveyors,
rotary conveyor,
rotary conveyors.
The maximum size of a production system that can be simulated can
The
be varied by changing the values of the above parameters.
actual limitation is the memory space of the particular computer
system. Guidelines
on setting these parameters are discussed in
Appendix II.1.1 : Meaning of Variables.
Associated with each conveyor is the element type,
refers
to the appropriate subroutine TRn to handle the
of a part through a transportation element of type n.
n. This
movement
These
elements are linked together to form the topology of
the production system.
The linking can be done by specifying the
neighbors of each element;
and for conveyors the orientation has
to be specified as well. The convention is shown in Figure 6.
3.2.2 Production System Dynamics
Here we use the Miniline in Figure 1 as the model for our
discussion. Since every workstation has the same configuration of
and buffers,
the movement of parts in and out of the
conveyors
workstations
follows the same pattern.
Hence
only the movement
of parts
from the input station to the first workstation is
discussed.
13
3.2.2.1
Loading Into System
The movement
of the workholder is monitored by the module
LOGMOV,
outlined in Figure 7.
It calls DSPAC1 to check for
the
part type to be loaded.
The part type desired is indexed by the
variable LOINDX;
LOINDX=O indicates that no part is to be loaded
at
this
time.
If part is to be
loaded,
DSPAC1 performs
the
following:
(1) calls FSTLOD to assign an identification number, PID, to the
part being loaded,
of
according to the sequence
(2) sets
the routing, IROUTE,
machines that part has to visit,
(3) notes the time, and
(4) calls LOAD to load the part into the input station which
is
element 301
3.2.2.2 Transportation System
The transfer of a part across elements is simulated by the
appropriate subroutine TRn.
The details of the TRn
subroutines
can be found in Section 3.4.
In
Figure
1, element 301 is the input station.
The part
moves
to element 603 from element 301 via elements
601-602-302303-603
successively.
At element 603,
TR0O is called to check
whether this part is destined for the associated machine 101.
If
not,
the part moves on to element 606.
If the part is destined
for machine 101, then
element 603 rotates and transfers the part
to element 304.
The part then moves on to element 604.
Element
604 rotates
toward and transfers part to element
605 if
the
latter is empty; otherwise it rotates to buffer 201.
3.2.2.3 Buffer Loading and Unloading Mechanism
LBUF
transfers the
part at element 604 into
the
closest
available space in buffer 201.
For unloading, ULBUF removes the
closest part in the buffer.
3.2.2.4 Machine Characteristics
Loading : Once the part is in element 605, the latter turns
towards machine 101.
It loads the part into the machine if the
machine is operational and not processing a workpiece.
Failure and Repair Characteristics : The machine failure and
repair
processes
are modeled as
geometrically
distributed
processes. The parameters
are
the Mean-Time-Between-Failures
(MTBF) and Mean-Time-To-Repair (MTTR).
Subroutines
BREAK and
REPAIR simulate these processes.
Operation Characteristics : Subroutine PROCES simulates the
machine operation. In this simulation, the actual machine process
is not simulated. However,
each workpiece stays in the machine
14
for
a duration equal to the operation time.
If
there
is
no
machine
failures during its stay,
it leaves the machine at
the
end of this duration.
When the machine fails while processing, the workpiece is not
removed.
The operation resumes after the failed machine has been
repaired.
Unloading : When processing is finished,
element 305 and then to element 606.
the part moves to
3.2.2.5 Unloading From System
The subroutine UNLOAD simulates the unloading of parts
from
the
output station,
element
324.
It
does
the
following
bookeeping:
(1) releases the identification number, PID,
(2) decrements the appropriate parts-in-the-system counter, PINSYS,
(3) increments the appropriate parts-completion counter, PDONE,
(4) tabulates the total time spent in the system.
3.3 Scheduling Policies
In
this
section we
discuss the
implementation
of the
Hierarchical Scheduler and the alternate policies. An overview of
the issues and theory is discussed earlier in Section 2.
3.3.1 Hierarchical Scheduler
The implementation of this scheduler is divided into
three
levels.
The top
level is implementated off-line and is not
an
integral part of FMSIM.
The middle level and the lower level are
implemented on-line and as such are an integral part of FMSIM.
3.3.1.1 Top Level
The discussion here concerns the computation of the parameters A and b. These are the control input data to the program.
The parameters A and b are selected to satisfy
H (a)
j
= -b (a)/A (a)
j
Vj and a
;
(3.1)
j
and
(a )
0 ,
A (a)
> 0.
i
j
is the hedging point for the machine state
H
H( a)
Selection of Hedging Points H
Gershwin,
Akella and Choong,
(1984) describe a heuristic
approach
to compute
the hedging point.
For
the
IBM Minline
example in Figure 1, they select the hedging point according to
15
H
= d
(3.2)
T /2
j
j
r
is
r
the average mean time to repair (MTTR) of all the machines part j
is the demand rate of type j. The rationale is that
visits and d
j
a
(3.2)
represents the average amount of lost production during
machine failure cycle.
when the machine state is feasible for all part types.
The T
is
not
point
the hedging
infeasible machine state,
For
defined. Let m indexes those part types that are still capable of
state.
rates
at this
infeasible
machine
meeting
the
demand
of
are
incapable
those part types that
n
indexes
Similarly,
(1984)
Choong and Gershwin
Akella,
the
demand rates.
meeting
theoritically
the
now
A and b so that
the
parameters
select
the
They
choose
(3.2).
H
is greater than that in
undefined
m
over m is close to the sum of (3.2)
so that the sum of H
amount
m
producthe
The intuition is that ideally
over all part types.
tion of type n would be stepped up once the machine state changes
At
rate.
where type n is capable of meeting the demand
to
one
be
slowed
will have to
the productions of m types
that
time,
down.
Selection of Parameter A
of
It is an indicator
The parameter A is a diagonal matrix.
The
rule
the relative risk and value of each of the part types.
of thumb to select A is
=
A
ij
where 6
E. 6
j
(3.3)
( MTTR /MTBF )
i
i
is a Kronecker variable such that
ij
I1 ,
ij'
B
i
0 ,
if part
type j visits machine i
otherwise.
reflects the relative value of part type j.
The more valuable
J
part type j is,
the larger
B
should be.
The summation reflects
j
the
vulnerability of part type j to machine failures.
The more
the more vulnerable that part is
machines each part type visits,
failures
the smaller the mean time between
Also,
to
failures.
(MTBF) and the larger the mean time to repair (MTTR), the greater
the vulnerability.
equal
value,
and
the case where the part types are of
For
where the machines have the same MTTR and MTBF, the rule of thumb
boils down to
16
A
= number of machines that
type j parts visit.
(3.4)
J
These formulae are highly simplified,
but as Akella, Choong
and
Gershwin (1984) indicated,
they work very well.
They
have
used
a simplified form of (3.3) because the machines there
have
identical MTTRs and MTBFs. Research is in progress at MIT-LIDS to
ascertain
under
what general conditions these formulae
can
be
In the
meantime,
equations
expected
to
provide good results.
(3.2) and (3.3) are to be used as guidelines.
3.3.1.2 Middle Level
During the production run, this level of the hierarchy is the
most
influential
in setting the course of the
production.
The
middle
level
can be thought of as the
run-time
controller
or
scheduler
which
monitors
and
reacts to
any
changes
in
the
system such as the machine states. Based on the current status of
the system and the objective of meeting the demand, it issues the
the
control
command to govern material flow in the system until
next change in the system.
The
theoritical analysis is described fully in
(Gershwin,
Akella
and
Choong
1984;
Section
4.2:
Calculation
of
the
Conditional Future Trajectory). The implementation is carried out
in TOPCON and the associated subroutines ABC, ADDCON, BDNCHK, LP,
LP1,
LPINIT and FSTBDN. A synopsis of the subroutines appears in
Section 3.4.
Implementation
of
a
: TOPCON Module
At
the occurence of any machine state change or at the
user specified interval, TOPCON is invoked.
Linear program (2.5) can be rewritten as
T
minimize c(x) u
subject to
M u = e
u > 0;
end
(3.5)
where
u
has
been
expanded with slack variables
so
that
any
inequality
constraint can be written as equality,
and e is
the
vector of the capacity of the current machine state
a (t).
(Note
that arguments
a
and t are suppressed.)
The constraint matrix M
and Choong 1984).
is denoted as D in
In
terms
of the parameters from the top
coefficients can be written as
c(x)
u
= A x + b.
(Gershwin, Akella
level,
the
cost
(3.6)
The standard solution of (3.5) (Luenberger, 1977) partitions
into
basic (u ) and non-basic (u ) parts,
with
c(x)
and M
B
N
17
linear
partitioned correspondingly.
With this partitioning the
problem can be rewritten as
T
(3.7)
minimize c (x) u
R
N
subject to
u
0
N
where the constraint on u has been suppressed, and where
TV
T
B
T
-1
c (x) = c (x)
- c (x)
M
M
(3.8)
R
N
B
B
N
are
If all the components of c
the
reduced cost.
is
called
R
positive, then there is a solution to
(3.7) : u
0=
. This and
N
the corresponding u form an optimal solution to
(3.5).
B
Since c is a function of x, the basic/non-basic partition of
this
problem depends on x. That is,
the set of components of u
are
(and therefore of c(x) and the set of columns of M) that
treated as bases varies as a function of x.
The
linear
routine ZXOLP in
linear program
until one of the
program (3.5) is solved using the external subthe IMSL Scientific Library. A solution u to the
remains optimal as x varies according to
(2.7)
c (x) becomes zero. As explained
reduced costs,
R
in (Gershwin, Akella and Choong, 1984) this scenario corresponds
to the x-trajectory reaching a boundary or the hedging point
of
the cone-shaped solution region in the x domain.
Some boundaries
are such that when they are reached, the
trajectory continues, after changing direction, into the adjacent
region.
Others,
that we
call
attractive boundaries,
are
different.
The trajectories on both sides of such boundaries
Consequently, the trajectories tend to move
point
toward them.
along the boundaries.
Computation of Boundary Hitting Times : Subroutine FSTBDN
Rewriting (3.8) in terms of the basic/non-basic split of the
parameters A and b, we have
T
c
T
=
T
-
(A
R
N
A
-l
-1
M )
M
B
B
x(t)
-
+ (b
N
N
M
b
B
M )
B
(3.9)
N
where the arguement x has been suppressed.
Suppose
at
time
t ,
the optimal solution is u
0
corresponding
production
and
the
0
surplus is
x .
The
production
rate
0
remains
constant at this value until t=t
where one component of
1
c (x) becomes 0; that is,
R
It ,t ], x is given by
0
the
hits a boundary. In
trajectory
1
x(t) = x
+
-
(u
o
d)
(t -
t )
(3.10)
O
o
Therefore, at the boundary,
= x
x
1
-
- d ) (t
+ (u
o
o
).
t
1
(3.11)
0
In the program,
T
RADIFF denotes
( A
T
- A
N
1
M
B
B
),
N
) and
- t
( t
RTAU denotes
-1
M
o
-1
M
).
N
B B
N
(3.9)
To compute the time to hit the boundary, we evaluate
component by component, with the left-hand-side set to 0 and with
The smallest t as computed is
the substitution of x in (3.11).
RBDIFF denotes
( b
- b
M
1
t . The corresponding component of the reduced cost is 0 at time
1
t .
This component is indexed by the indicator MINTAU.
In (Ger-
1
1984) this component is defined
shwin, Akella and Choong,
and it is the linear function of x:
h(x(t))
as
T
h(x(t))
:
( x(t) -
f
)
x(t
).
(3.12)
1
T
In the program,
by MINTAU.
f
is the variable RADIFF that is being indexed
When
the demand exceeds the current capacity, the hedging
it is possible for all
In this case,
point cannot be attained.
to be negative;
non-basic
components
remaining
RTAU's
of
the
the
this
implies that the x-trajectory is moving away from the hedging point and the trajectory will not encounter any additional
boundaries.
Evaluation of Boundary Type
Let
u" be the solution to the linear program with the updated cost coefficient c(x") where x" is the value of x slightly
across into the adjacent boundary.
An non-attrative boundary is given by the conditon
19
T
f
( u" -
d )
< 0.
and
the
In
this
case,
the production rate is updated with u"
trajectory proceeds into the interior of this adjacent region.
An attrative boundary is given by the condition
T
( u" - d ) > 0.
f
In this case, the constraints of the linear program problem are
augmented by the equality constraint
T
(3.13)
f
( u - d) = 0.
This equality constraint replaces the reduced cost which has
become
zero.
Hence
the
solution u to the now
revised
linear
resultant
x-trajectory
program
problem (3.5) is unique and the
will move along this attrative boundary.
The number of non-basic
components decreases by one with the addition of this constraint.
Conditions for Termination of TOPCON
deleted.
when added to (3.5) are
not
Constraints
(3.13),
With each addition,
the number of non-basic components decreases
by one.
Since this is a finite dimensional problem, this process
must terminate. There are two cases:
the
current
(1)
If
the
demand rate is feasible within
machine capacity, the algorithm terminates when the number of the
added equality constraints is equal to the number of part
types.
At this stage, u=d componentwise and x(t) stays constant at H( ).
(2) If the demand rate exceeds the current machine capacity,
the algorithm terminates when all the remaining reduced costs are
that is all RTAU's of the non-basic
increasing function of x(t);
component
are negative.
At this stage it is no longer
possible
part
type
for
the
x-trajectory to reach any boundary and some
will have to lag behind demand.
The
user does not have to specify the terminating condition
for any machine state. The algorithm will automatically determine
whether
or
not the demand rate is within
the
current
machine
capacity.
The implementation of the algorithm in TOPCON
below. The flow chart is in Figure 8.
is summarized
Algorithm of TOPCON:
(1) Check the current machine status.
(2) Initialisation.
(3) Store the current values of production surplus and production
rate.
(4) Calculate time to reach the next boundary, (THTBDN).
20
(5) If it is not possible to reach the next boundary, that is,
if
the time to reach the next boundary is negative, return;
otherwise, go to step (6).
(6) Evaluate the boundary condition for attractiveness or
nonattractiveness.
(7) If boundary is non-attractive,
compute the production rates
based on the production surplus at a small distance into the
interior of the next region and go to step (3).
If boundary is attractive, add the equality constraint and
then compute the production rate.
(8) Check for hedging point.
If at hedging point go to step (9);
otherwise, go to step (3).
(9) Set
the last production rate equal to demand rate and
the
last production surplus equal to the hedging point.
(10) Return.
In
the
flow chart of Figure 8, capitalized words refer to
The former are preceded by the
subroutines
or variable names.
word CALL.
The conditional checks ( NEWREG
memory allocation,
in
Step 4)
and (THTBDN
TIME LIMIT,
in Step
6) arise
from
programming considerations.
The first conditional check
is
to
take
care
of the situation when the number of regions
the
xtrajectory passes through is greater than the allocated number.
for
reinitialiconditional is an accesory feature
The second
sation
of TOPCON, if
desired.
The TIME LIMIT is set by
the
ICTL(1) parameter of the input data according to the relationship
TIME LIMIT = TNOW + ICTL(l)
(3.14)
3.3.1.3 Lower Level
The lower level is implemented via the DSPACH module.
Its
function is to load parts into the production system such that
A
the actual production surplus x (t), given by (2.3), is close to
P
the projected production surplus x (t), given by (3.10), in the
middle level. Here, the superscript A indicates the actual value
of the variable and the superscript P indicates the projected or
calculated value of the variable.
At
any time period,
DSPACH is invoked to
evaluate which
part, if any, is to be loaded into the system.
The algorithm is
outlined below.
Algorithm for DSPACH:
(1) Omit type j from consideration if W (TNOW)
D (TFIN), that
j
j
is, if the cumulative production W at time TNOW equals the
cumulative demand D
for the entire period, TFIN.
21
21
A
P
(2) Calculate x (TNOW) AND X (TNOW), denoted as EXCESS and RBUFPR
respectively, from the following equations
EXCESS = PDONE + PINSYS RBUFPR = RXBDNP + RATEPR -
RATED*TNOW,
RATED*(TNOW-THTBDN).
A
(3)
Select
the
two part types whose
respective
furthest and second furthest behind their
(4)
Among
the two types in Step 3,
machine is further down the line.
(TNOW)
are
P
respective x (TNOW).
load the part
x
whose
first
An alternate straight-forward approach would have been
to
A
P
load
the
part whose x (TNOW) is furthest behind
its
x (TNOW).
Steps 3 and 4 are adopted here for the reason below.
Along the transportation line of the Miniline,
described in
Section 3.2,
the rotary conveyors of element type 0 in front
of
the workstation take more than one time period to transfer a part
into
or
out of the workstation.
In this
simulation,
13
time
periods are used for this transfer.
While the rotary conveyor is
rotating,
it
is
delaying
parts behind from getting
to
their
downstream machines.
The
purpose
of
the dispatch rule in steps 3 and 4
is
to
alleviate this delay effect,
thus reducing the total time
parts
spent in the system . Here only two parts are selected instead of
all
possible
candidates.
The rationale is to keep the
loading
rate
to be close to the production rate computed in
the middle
level.
By considering all the possible candidates, the resulting
loading
rate might deviate drastically from the computed production
rate.
If there is only one candidate,
then that
part
is
loaded.
3.3.2
Alternate Policies X,Y and Z
These
are discussed in (Akella,
Choong and Gershwin,
Section 5) and are reviewed in Section 2 here.
1984;
3.3.2.1 Policy X
This
policy
loads a part whose type is furthest behind
or
least
ahead of cumulative demand.
That is,
it loads a
type
j
part, where x
is minimal.
j
Some limit has to be set on the total number of parts in the
system
in
order
to
avoid
filling
up
the
buffers
and
transportation system.
Define N
as the threshold or the maximum
i
permissible number of part type j in the system.
An estimate
of
N
is given, by Little's law, as
J
22
N =
d
J
where
w
is
(3.14)
w
J
J
the average
time type j
spent
in
the
system.
The
j
maximum
permissible
total
fined as N and given by
N =
number
of parts
in
the system is
N.
de-
(3.15)
JJ
Moreover,
buffers may have limited capacities
, or the cost
of extra inventory may be high. Thus even if production of type j
a limit
E
on the production surplus of type j
is behind demand,
is
imposed.
The
algorithm of the policy is described below.
The
steps
from
2 onwards correspond to a different
version of DSPACH
from
that
used for the hierarchical
policy.
Policy X:
At
each time step,
(1)
Do not
load any part
type if
(2)
Do not
load type j
(3)
Do not load a type j part if
(4)
Of
the
x (TNOW).
Z
PINSYS
j
J
part
if
x
> N.
> E
(TNOW)
j
.
j
W (TNOW)
> D (TFIN).
j
3.3.2.2
remaining part
types,
j
pick
type j
minimizes
Policy Y
This policy is
similar
to policy X except that
separately,
resulting
of
each
part type is treated
balance of production mix. Thus,
Policy Y:
(1)
that
Do not
At
the threshold
in
better
each time step,
load a
type j
part
if
PINSYS
> N
j
Steps 2
to 4 are as
3.3.2.3
Policy
in
j
Policy X.
Z
Besides
using demand information for individual part
types
as Policy Y does,
Policy Z uses machine failure
information too.
When a machine fails,
the flow rate
of parts
going to it
should
be
set to zero.
This ensures that the WIP does not increase due
to the introduction of parts
which cannot be processed.
23
Policy Z:
(1)
Do not
At each time step,
load a type j part
if PINSYS
> q N
j
where the parameter q
j
i
is given by
J
0,
q
if any machine that type j parts visits has failed
=
j
1 otherwise.
Steps 2 to 4 are as
in Policies
X and Y.
Remarks
The
adjusting
performance
of
these
policies
can be
"tuned"
by
N . Generally N
should be greater than (3.14)
since
j
parts
should
j
be
loaded at a rate greater than
machines are operational.
failures.
This is
d
when
their
a hedge against future machine
As a guideline,
the following system performance results as
the threshold limit N is increased :
1.
The
production
increases up to the saturation
congestion on the transportation system occurs.
2.
3.4
point
where
The WIP increases.
Subroutine Descriptions
The
subroutines
discussion.
They are:
are
grouped
into
three
groups
for
(1) MAIN, the monitoring module,
(2) LOGMOV, the production system simulator and
(3) TOPCNI, the scheduler.
3.4.1 MAIN Module
1.
MAIN
: Initializes
the
system,
checks
for
feasibility,
tabulates the summary data and monitors the system simulation and
scheduling.
2.
DEMAND
:
demand rate.
Computes
the cumulative demand at time TNOW
from
3.
BREAK : Calls the random number generator,
GGBN,
to
check
whether
a
currently
working machine should
fail
during
this
period.
24
4.
INIPSY :
to zero.
5.
INITAL
system .
Sets the
initial number of parts of each part type
: Calls all the subroutines required to initialize the
a) ZEROER : Zeroes all required system variables including those
associated
with machine,
buffer
and
transportation
system
elements.
data
including
b)
READIN
Reads in the manufacturing system
type.
Machine,
and demand rates of each part
operation
times
as
failure
and
such
transportation element data,
buffer
and
Text is also printed out simulare also read in.
repair times,
taneously as it is being read in.
c) RDCNTL : Reads in the parameters of the scheduling policy.
d)
RDCOM : Reads and echo-prints
input data file.
the comments
included in
e) SETUP : Initializes the structure of the production
their
elements
along
the
transportation
aligning
directions and setting all the machines operational.
f)
INCHKR : Checks that
priate range of values.
input data elements are in
the
system by
reference
the
appro-
g) CHECKR : Checks for consistency between input data elements.
h) OPTIME
type.
:
Computes
the total operation times for a given part
6.
FEASIB
Verifies
the average capacity.
the feasibility of
the
demand,
using
respective
all the part types into their
GRPING
: Groups
7.
only).
See
Section
4,
(for
Hierarchical
Scheduler
clusters
Remark: Future Development
GGBN,
to check
8.
REPAIR : Calls the random number generator,
whether a failed machine should be repaired during this period.
: Provides
a summary of the system input data
9.
STATOT
initial state to check initialisation.
and
10.
DYNOUT : Outputs the current state of the dynamic variables
buffers
and
contents
of
state
(UP/DOWN),
such
as
machine
transportation elements, etc.
whether a machine state
change
11.
COMPAR
:
Determines
occurred between the previous instant and the current one.
12.
OLDEST
:
Records
the machine state.
25
has
13.
OUTPUT
:
Prints out the summary of production status.
3.4.2 LOGMOV Module
1.
LOGMOV
system.
:
Simulates part
a)
UNLOAD
Unloads part
statistics counters.
loading and part movement
from output
element.
in
the
Updates
the
b) DECIDE: Decides whether current element is a transportation
element with rotary or rectilinear movement, or a machine.
c) PROCES: (For machine element) Unloads part into output
element,
if
appropriate.
Initiates
BREAK
and
REPAIR,
the
routines for simulating the failure and repair of the machine.
d)
ROTELM:
Calls the appropriate rotating element subroutine
in question.
TRO to TR7 are all such routines.
These determine
whether or not an element contains a part.
Further, they decide
where and when to transfer a part, as also the current and future
orientation of the element.
TRO calls TENDOP,
which determines
the expected time of completion of an operation,
when a part
is
loaded
into a machine.
TRl calls the routines LBUF and
ULBUF,
which
are the buffer loading and unloading subroutines that
are
used.
e)
TRANPS
Calls TR10 to TR13,
rectilinear movement elements.
corresponding
to
different
f)
DSPAC1 :
Calls DSPACH to determine whether and which part
type is to be loaded. Also calls FSTLOD (which calls LOAD) to set
up statistics counters for loading a part into the system.
g) TRn : Handles the transfer of parts across elements. All TRn
subroutines first check whether there is a part on the associated
transportation element.
If not, a return is effected. Similarly,
a
part
will
be transfered only after checking
that
the
next
element is free.
Appropriate error messages are also printed for
some of these, if warranted.
TRO
:
If
a part is to go to the associated
machine,
the
element rotates and transfers part to type 12 element,
and
then
rotates
back
to
reference
orientation.
If the
part
is
not
destined for the associated machine,
the element transfers
part
to
the
succeding
type 2 element.
(Reference
orientation
and
element type number are listed in Figure 6.)
TR1 : Rotates towards and transfers part to type 5 element if
the latter is free. If the type 5 element is occupied, it rotates
towards
and loads the associated buffer with that part.
In both
cases,
it
rotates back to the
reference
orientation.
Prints
error message if both the type 5 rotating element and the corresponding buffer are occupied.
The system is then congested.
26
TR2 : Receives part
part to type 10 element;
rotations.
from type 0 or 11 element and transfers
all movements completed with appropriate
TR3
: Transfers part
to type 4 element.
TR4
: Transfers part
to type 10 element.
TR5 : Rotates towards and transfers part into the associated
machine when the machine is operational and available.
TR6 : Mid-line element.
Rotates towards and transfers part
to type 7 element and then rotates back to reference orientation.
TR7 : Mid-line element.
Rotates towards and receives
part
from type 6 element,
then rotates toward and transfers that part
to
type
10
element,
and
finally rotates
back
to
reference
orintation.
TR10 : Transfers part to type 3,
TRll
: Signals and
TR12
: Transfers part to type
TR13
: Transfers part to
10 or 0 element.
transfers part to type 2 element.
1 element.
type 6 element.
h) MACDEP : (Dummy routine, currently not functional) Determines
the set of parts that cannot be processed when a machine is down.
TIMER
i)
element.
3.4.3
:
Returns the rotating time for
a
rotary
movement
Scheduling Policies
(I1 Hierarchical Scheduler
1.
TOPCN1 : Uses output of COMPAR to determine whether the
top
level and middle level parameters should be recomputed.
If
they
should be,
it calls TOPCON.
Otherwise, it calls THSH, the lower
level
policy.
THSH
provides the interface between
the
system
simulation and the hierarchical policy.
2. TOPCON : It is the middle level of the Hierarchical Scheduler.
It
computes
the projected production rate
and
the
production
surplus. The subroutines required are:
a)
ABC
: Computes the cost coefficient based on the
production surplus and the current machine state.
b) ADDCON : Adds one equality constraint
program constraint set.
27
supplied
equation to the linear
c)
BDNCHK:
attractive.
Checks whether the boundary is attractive or
d)
FSTBDN
Computes the time for
surplus to reach the next boundary.
e)
LPINIT :
Initializes
linear program.
the
projected
non-
production
the machine capacity constraints in
the
f)
LP,
LPI : Each of them invokes ZXOLP to solve
the
linear
program.
LP
solves the linear program starting from phase 2 and
LP1, from phase 1.
3.
THSH :
boundary.
Computes the actual production surplus at the current
4.
DSPACH :
Selects which part type, if any, is to be loaded at
current
time.
The
part
type selected is
indexed
by
LOINDX.
LOINDX-O indicates no part is to be loaded at this time.
t(ll
Alternate Policies
These
subroutines.
X1 Y_
and Z.
differ
from
the
hierarchical
policy
The details are described in Appendix I.
in
some
DSPACH, common to all alternate policies, differs from the
hierarchical DSPACH,
in detail.
The main difference is TOPCON.
The
group thresholds are computed from individual thresholds
by
using TRHOLD,
TRHLD2,
and CRAZY.
THSH computes and writes out
group thresholds.
a) Policy X : TOPCON from file "TPCNRI" is used.
In the input
data,
all part types are assigned a common cluster number,
"1".
A system threshold, equal to the sum of the individual part type
thresholds, results.
This threshold is unaffected by machine
failures.
b) Policy Y:
TOPCON from file "TPCNRI" is used.
Here,
in the
input
data,
each
part
type is assigned
a
different
cluster
number,
so
that
individual
thresholds
result.
These
are
unaffected by machine failure.
c)
Policy Z:
TOPCON from file "TPCNR2" is used.
In the
input
data,
each part type is assigned a different cluster number,
so
that individual thresholds result.
However, these thresholds are
set to zero when machines fail.
28
4.
SAMPLE PROGRAM EXECUTION:
DATA INPUT AND OUTPUT
In this section, we use an example simulation run to clarify
data input procedure and to explain the output data.
We
use the Hierarchical Scheduler for this simulation.
The
production system is the IBM Miniline 1300 in Figure 1. Hence the
following data is for the Hierarchical Scheduler with comments on
changes required for the policy X, Y or Z.
The program is written in Fortran 77 Language executable
on
the IBM 370 VM/CMS operating system at MIT Information Processing
Service (IPS).
Table 1 outlines the commands to set up the input
files and output files for running the program. Table 2 lists the
computational characteristics of the program.
Remark:
Future Development
While developing the software, we anticipate the computatio-nal
problems caused by large dimensionality when the
number
of
part types become large.
Provision is thus provided for grouping
the part types into clusters as one way to reduce the size of the
problem. At this stage of the project, the method and criteria to
group
parts have not been formulated.
However,
the
provisions
incorporated
to cluster part types will not affect the execution
of the program other than downgrading the speed slightly.
4.1 Input Data
There are two input data sets.
Set 1 is for the system model,
while
Set 2 is for the scheduler data.
At the present,
most of
the control data for the alternate scheduling policies X ,
Y and
Z are included in Set 1. They will be in Set 2 in future versions
of the program.
4.1.1
Set 1 : System Simulation Input Data
We
will describe the input data creation,
using the data
in
This file is assigned
to
logical
Appendix
III.1
as the model.
unit 9.
Remark:
Line
"Dummy" stands
for currently unused parameters.
1 : DEBUG PARAMETERS
The
debug parameters are used to turn data- display switches
and off.
on
STATE
TRACE : Set to 1 to print out the dynamic system states.
Disabled with other values.
SUBR
TRACE :
Set to 1 to print out the time the subroutines are
executed. Disabled with other values.
29
Set to 1 to print out the time and type of
IN/OUT TRACE:
part being loaded or unloaded. Disabled with other values.
every
FAIL
TRACE :
Set to 1 to print out the time and ID of a machine
that has failed or been repaired. Disabled with other values.
ROT TIME :
Set at a value greater than or equal to 1, indicating
the
time (in simulator time units) required for a rotating
element to make a 90 degree turn.
THRESHOLD ON PINSYS :
Set at the maximum total number of
parts
permitted in the system.
(For Policy X,
Y or Z only,
this data
will
be in Set 2).
Set at a large integer value if it is to be
disregarded.
Line 2
: TRACE
FUNCTION TIMES
The
times
at which various traces and printouts
tiated and terminated.
are
STATE OR SUBR
TRACE
START
Set at the initial value of the time the
should function from.
TRACE
STOP:
stop at.
traces
traces
should
IN/OUT OR FAIL
TRACE
START
Set at the initial value of the time the
should function from.
traces
TRACE
STOP:
stop at.
Line 3:
Set at the final value of time the
ini-
Set at the final value of time the
traces
should
SPECIAL PARAMETERS
RUN DUR:
RAN
SEED
generator.
Line
4
versions ).
Duration of the simulation
Seed
in seconds.
for the binomial distribution
PART TYPE DESCRIPTION
Groups of 3 lines each.
part type.
random
( Will be in Set
2
in
number
future
Each group corresponds to a given
Line 4a : PART TYPE PARAMETERS
PART
TYPE
:
The
consideration.
identification number of the part
INIT QUANT : Dummy.
30
type
under
CLUSTER TYPE :
The cluster number that the part type belongs to.
Assigned
in
conjunction with the scheduler.
Set equal to
PART
TYPE
for Policies Y and Z.
Set equal to "1" for Policy X. It is
not
functional
in
the
present
version
of
the
Hierarchical
Scheduler; see Remark : Future Development, above.
THRESHOLD : The maximum number of parts of this type permitted in
the system. (For Policy X, Y or Z only). For Policy X, the sum of
these
thresholds
should equal the system thresholds.
Set at
a
large positive integer value if this limit is to be disregarded.
LIMIT ON EXCESS PROD : The maximum amount by which the production
of
a
part type can exceed the quantity
to
be
produced.
(For
Policy X, Y or Z only).
Set at a large positive integer value if
this limit is to be disregarded.
Line 4b
: MACHINE ROUTING SEQUENCE.
The
ID
numbers
entered in sequence.
of the machines the part
Line
4c:
OPERATION
future versions ).
TIMES AT MACHINES.
type
visits
( Will be in Set
are
2
in
Time
for the actual operation and the load/unload
processes
of the part type at each machine (in simulator time units).
Line 5
MACH ID
: MACHINE DESCRIPTION
: Identification number of machine,
(BMACH+MMACH-1).
FAIL RATE
: Mean time (in minutes)
REPAIR RATE
INPUT ELEM
: Mean time
between failures.
(in minutes)
: ID of element that
OUTPUT ELEM : ID of element
start from BMACH to
to repair a failed machine.
feeds parts into the machine.
that
the machine outputs parts onto.
Line 6 : BUFFER DESCRIPTION
BUFFER
ID
FAIL RATE :
at value 0.
: ID
number
of the
(BBUF+MBUF-1)
Mean time
REPAIR RATE : Meantime
Dummy, set at value 0.
buffer,
start
from
(in minutes) between failures.
(in minutes)
to repair a failed
BBUF
Dummy,
to
set
buffer.
STORAGE CAPACITY : Storage capacity of the buffer defined as the
maximum parts that it can hold.
31
TRANS
ELEM :
ID number of the associated transportation element
that loads and unloads the buffer.
Line 7
: TRANSPORTATION SYSTEM DESCRIPTION
There are two groups:
the other for turning elements.
one for non--turning elements and
Group 1 : Non-Turning Element
ID
NUMBER:
ID
number of the non-turning
BTRAN1 to (BTRANI+MTRANI-1).
element,
start
from
PRED NEIGH : ID number of the preceding neighbour.
SUC NEIGH
: ID number of the succeeding neighbour.
FAIL RATE, REPAIR RATE
SMOVE TIME
: Dummy.
MMOVE TIME
: Dummy.
ORIENTATION
Section 3.1.
:
:
Dummy, set at
Reference
orientation
Convention :
+ 1, if North,
- 1, if South,
+ 2, if East,
- 2, if West.
0.
of the element.
Refer
to
ELEM TYPE : Type of transportation element, denoted by a number n
process
which
also refers to the subroutine TRn to be called to
the
element. See description in Section 3.1.
Group 2
: Turning Element
TURN
ID NUMBER :
ID number of the turning element,
start
from
BTRAN2 to (BTRAN2+MTRAN2-1).
st
nd
rd
th
1
, 2
, 3
,
& 4
NEIGH :
The elements that are located to
the
West,
South,
East,
and
North of the
reference
element,
treating its reference orientation as being East.
FAIL RATE, REPAIR RATE
REF ORIENTATION
: Dummy, set at
0.
: Same as that in Group 1,
above.
MACH/-E
TYP
: MACH ID of which it serves as
OUTPUT ELEM /type characterisation.
an INPUT
ELEM
or
Line 8 : MISCELLANEOUS TIME PARAMETERS (SECONDS)
IN-MCH XFER : Dummy;
OUT-MCH XFER
: Dummy;
transfer time to
load part
into machine.
transfer time to output part from machine.
32
BELT STOP
: Dummy.
BELT START: Dummy.
90 DEG ROT : Time to make a 90 degree turn. Dummy.
180 DEG ROT
Line 9
: Time to make a
180 degree turn. Dummy.
: OTHER PARAMETERS
INPUT ELEM : ID number of the input transportation element of the
production system that parts are loaded onto.
OUTPUT ELEM :
ID number of the element
where parts
are unloaded.
Line 10 : DEMAND RATES FOR PART TYPES (parts/sec)
( Will be in Set 2 in future versions ).
Line 11
: END OF
INPUT DATA FOR THE SIMULATOR
The
character "E" in the first column transfers control
execution in the subroutines READIN and RDCNTL.
4.1.2
Set 2
of
: Scheduler Input Data
This file is assigned to logical unit
.1.
It
Scheduler.
the
Hierarchical
set
is
for
This
input
The
level.
provides the decision parameter values to the middle
example is listed in Appendix III.2.
Line
1 : CONTROL PARAMETER
the middle
CNTL
TIME
: This is the time interval after which
level
of the Hierarchical Scheduler is to be reinitialized.
Set
TFIN, if this feature is
at value greater than the run duration,
to be disregarded.
Line 2
: SCHEDULER PARAMETERS
machine
The parameters here are the A's and b's for all the
several
different
states. The machine states are binary coded and
states may have the same values for the parameters A and
machine
b.
A series of machine state codes,
line by line,
is followed
b
corresponding
to this set
parameters
A
and
the
values
of
the
by
of machine states. The end of the machine state code data and the
least
of the corresponding A and b is separated by at
beginning
the character "C" in the
one comment line, that is the line with
first column.
(a) Machine State Code: The decimal value of the binary code with
machine ID BMACH being the Least-Significant-Bit (LSB).
33
(b) Value of Parameter
CLUSTER:
Part type. See above Remark:
Future Development
A :
Diagonal element of the parameter A.
B :
The parameter b. Note it must be negative. See Section
3.2.
See Section 3.2.
Line 3 : END OF DATA
Signifies the end of input data for the scheduler.
4.2 Output Date
There
are three output files :
(1) System Simulation Perforamnce,
(2) System Run Time Status,
(3) Scheduler
Output.
4.2.1 System Simulation Performance
This output file is assigned to logical unit 10.
The sample
output file is listed in Appendix
first
section is the echo of the Set 1 input
data.
output follows after that.
III.3.
The
The
actual
Blocks 1 and 2 : Any errors detected in the input data are indicated.
Block 3 :
is listed.
PART TYPE
The minimum time any part
type can spend in
the system
: Part type
TIME IN SYSTEM : The minimum possible time that a given part type
has
to spend
in the system, considering only
the
operation,
loading and transportation times.
Block 4 : The matrix of operation times, each row corresponding to
the time spent by each part type at a machine. The machine is the
column header.
Block 5
: The feasibility test to check whether the demand
is
feasible in an average sense.
The fraction of time that a machine is available is computed from failure and repair data.
The
34
time
required
on that machine is computed from the
demand
and
operation times of each part type.
If the ratio is less than 1,
the demand is feasible in an average sense; otherwise, it is not.
MACHINE
: The machine ID number.
MACHINE STATE
: The
initial machine state, 1 denoting UP, 0 DOWN.
AVERAGE CAPACITY : The availability of the machine,
ratio of uptime to total cycle time.
given by the
CURRENT REQD CAP : The fraction of time required at each machine,
which
is the demand rate times the operation time summed over all
part types going to the machine.
FRACTION REQD OF AV CAPACITY
CAP.
Block
6 :
Indicates
: The ratio CURRENT REQD CAP/AVERAGE
the feasibility
of the demand.
Block
7
: A printout of the FMS configuration
that
is
self-explanatory and can be used to check the input data.
Block
8:
(a)
BID
SIMULATION STATE
AT TIME
= 0
Buffer
: Buffer ID
BSTORE
:
ID
of
part being transfered between a buffer
transportation element
BUFFER CONTENT
(PID/PTYP) : Part
ID
and
a
inside the storage bin.
(b) Element
UP/DWN : Operational
ELEM
State.
"1"
being Up and
: ID of the element.
PID
:
ID of the part in the element.
element.
PTYPE
"0" being Down.
: Part type in the element.
TIME COUNTER
: Time for next transfer.
ORIENTATION NOW
: Current orientation.
ORIENTATION NEXT:
Destined orientation.
35
"0" being no part in
the
Block 10:
SIMULATION STATE AT TIME "TFIN"
Here it lists the location of the
Same
as
Block 8.
still in the system at end of the production run.
Block 11: PRODUCTION SUMMARY
For each part type,
it
parts
lists:
(i) PART PRODUCTION
REQD
-- number of parts required,
. STARTD -- number of parts started,
. INSYS
-- number of parts still in the system,
-number of parts completed,
. COMP
. PCT
-completion percentage of the requirement.
(ii)
TIME IN THE SYSTEM
. AVE -average time in the system,
. MIN -- minimum time in the system,
. MAX -- maximum time in the system.
Block 12:
MACHINE PERFORMANCE SUMMARY
For each machine, it
lists:
--
the time in seconds and in percentage of
TFIN that the machine is processing a
workpiece;
IDLE
--
the time in seconds and in percentage of
TFIN that the machine is UP but not
processing;
TIME DOWN
--
the time in seconds and in percentage of
TFIN that the machine is DOWN;
WHEN UP --
the percentage of time the
machine
is
processing
when
it
is UP.
The value
is the
percent
of
TIME BUSY/(TFIN-TIME DOWN).
(1)
TIME BUSY
(2)
TIME
(3)
(4) PCT
Block 13:
AVERAGE WORK-IN-PROCESS
It
lists
the average number of parts
system at any time.
Block 14
:
TOTAL NUMBER OF MACHINE
of each type
in
the
FAILURES
Block 15 : MACHINE BLOCKAGE TIME
It lists the time in seconds when part is being blocked from
leaving the machine after processing is finished.
36
4.2.2
System Run Time Status
This file
is
assigned to logical
unit 13.
An
example of this output is listed in Appendix
III.4.
It
provides
information on the status of the production system
and
the scheduler at rum time. The status of the program execution is
provided
if activated by the various debug parameters.
It
also
indicates any abnormality such as machine blockage of the
operation of the production system.
HIERARCHICAL
STATUS :
It lists
the time TOPCON is called
and
the time each boundary is encountered by the x-trajectory. For each
boundary encountered,
the time,
and the computed production
rates,
PROD RATE are also printed.
FAIL TRACE OUTPUT : Actuated by the FAIL TRACE parameter within
the
run duration TRACE START to TRACE STOP.
Information on
the
time,
the machine and the change of state (failure or repair) is
listed here.
LOAD AND UNLOAD OUTPUT : Actuated by the IN/OUT TRACE parameter
within the duration TRACE START and TRACE STOP. The time and type
of every part being loaded or unloaded is printed here.
SUBROUTINE CALL :
Actuated by SUBR TRACE parameter within
the
duration TRACE START and TRACE STOP . The time each subroutine is
called is printed here.
4.2.3 Scheduler Output
This file
This
is
consistency.
is
assigned to logical unit 12.
just
the echo of the input data
to
verify
An example is listed in Appendix III.5.
37
data
5.
CONCLUSION
In this report,
we have described the program organization,
input
data representation and the use of the simulation software
FMSIM.
The high level of seperation between the manufacturing
system simulation module and the scheduling module has also been
described.
This
novel
feature
in FMS
simulations
makes
it
possible to compare different scheduling schemes.
The usefulness
of this
feature
has been described
in
(Akella, Choong and
Gershwin, 1984).
38
REFERENCES
the
"An Algorithm for
Gershwin (1983),
J.G. Kimemia and S.B.
Computer Control of Production in Flexible Manufacturing Systems,
IIE Transactions, Vol. 15, No. 4, December, 1983, pp.353-362.
SoB.
" Short Term
R. Akella and Y. Choong (1984);
Gershwin,
Production
Scheduling of an Automated Manufacturing Facility",
Institute of Technology Laboratory for Information
Massachusetts
and Decision System Report LIDS-FR-1356
Y. Choong and S.B. Gershwin (1984); " Performance of
Akella,
R.
Massachusetts
Policy",
Scheduling
Production
Hierarchical
Institute of Technology Laboratory for Information and Decision
System Report LIDS-FR-1357
J.D.C. Little (1961); " A Proof for the Queuing Formula:
Operations Research, Vol. 9, No. 3, pp 383-387
Introduction to Linear
"
(1977)
D.
Luenberger
Programming, Addison-Wesley.
nad
L = XW",
Nonlinear
Introduction
"
(1979);
Pritsker and C.d. Pegden
A.A.B.
New
York.
and
Sons,
Wiley
SLAM,
"
John
Simulation and
39
to
APPENDIX
I:
DIFFERENCES BETWEEN ALTERNATE POLICIES AND HIERARCHICAL POLICY
The
two
major differences between the Hierarchical
and the Alternate Policies are described below:
Policy
1.
Program differences :
The routines shown in Figures A.I.1 and
A.I.2
are
either different from or are not used at all
in
the
Hierachical Policy. Subroutines TOPCON from file "TPCNR1" must be
used
for
Policies X and Y,
while TOPCON from file "TPCNR2"
is
used for Policy Z.
2.
The Input Data differences : To use Policy X,
the cluster
number of each part type must be set at 1.
For Policies Y and Z,
the cluster numbers are set equal to part type numbers.
The steps required to switch from the Hierarchical Scheduler
to the Alternate Policies are:
(1)
remove the Scheduler Module: subroutines ABC, ADDCON, BDNCHK,
DSPACH,
FSTBDN, LP, LP1, LPINIT, THSH, TOPCN1 and TOPCON.
(2) plug in the subroutines TRHOLD, TRHLD2, CRAZY, DSPACH in
"DSPAH", THSH in file "THSHi", and TOPCN1 in file "TOPCN2".
file
(3)
plug in either
(i) subroutine TOPCON in file "TPCNR1" for Policy X and Policy
Y.
or
(ii) subroutine TOPCON in file "TPCNR2" for Policy Z.
40
APPENDIX II
II.1
:
:
PROGRAM VARIABLES AND PARAMETERS
Parameter Usage
These
parameters specify the dimension of the array
variables.
By varying the value of these parameters,
one can
change
the
maximum size of the production system and the maximum number
of part type that can be simulated.
BMACH
-
MMACH
-
BBUF
-
MBUF
-
MBUFC
BTRAN1 MTRAN1 BTRAN2 MTRAN2
MPTYP
MRTLGH
MMPSYS
II.2
:
-
ID number of 'base' (lowest number) machine, usually
set at 101
Maximum number of machines which can be simulated,
the limit is (BBUF-BMACH)
usually
ID number of 'base' (lowest number) buffer,
set at 201
Maximum number of buffers which can be simultated, the
limit is (BTRAN1-BBUF)
Maximum capacity of each buffer
ID number of 'base' non-turning transportation element,
usually set at 301
Maximum number of non-turning transportation elements,
the limit is (BTRAN2-BTRAN1)
ID
number of 'base' turning transportation
elements,
usually set at 601
Maximum number of turning transportation elements
Maximum number of part types which can be simulated
Maximum number of machines in a part's route
Maximum number of parts in any system at any one time
for any simulation run (i.e., without recompiling)
Variables for the System Simulator
COMMON /MMAC/
(VARIABLES DESCRIBING
-
MSTAT(BMACH:BMACH+MMACH-1,3)
,1) ,2) ,3) ,4) -
Static descriptiom of machines
failure rate in percent
repair rate in percent
ID number of input transportation element
ID number of output transportation element
MDYN(BMACH:BMACH+MMACH-1,3)
,1)
,2)
,3)
THE MACHINES)
-
1 = UP; 0
ID number
expected
-
Dynamic description of machines
- FAILED (DOWN)
of loaded part
completion time
MUSE(BMACH:BMACH+MMACH-1)
-
Machine
utilization
MDWN(BMACH:BMACH+MMACH-l)
-
Machine
down
MBLK(BMACH:BMACH+MMACH-l)
-
Machine
output-
41
for current
part
counter
(failed)
counter
blocked counter
-
MPUSE(BMACH:BMACH+MMACH-1,MPTYP)
-
OLDSTA(BMACH:BMACH+MMACH-1)
NMACH -
Number of machines
Amount of time each machine
spent on each part type
Previous
machines
failure
of
state
the
in system
TMCHIN -
Time to transfer a part into a machine
TMCHOT -
Time to transfer a part out of a machine
COMMON /BBUF/ (VARIABLES DESCRIBING THE BUFFERS)
BSTAT(BBUF:BBUF+MBUF-1,4) - Static description of buffers
,1) - Failure rate in percent
,2) - Repair rate in percent
,3) - Capacity
,4) - ID number of associated transportation element
BDYN(BBUF:BBUF+MBUF-1,2) ,1) ,2) ,3) ,4) -
Dynamic
1 - UP; 0 - FAILED (DOWN)
array
Pointer to 'BS'
Number of parts in buffer
complete
when
buffer will
Time
unloading
BUSE(BBUF:BBUF+MBUF-UF1)
-
BDWN(BBUF:BBUF+MBUF-1) BSTORE(BBUF:BBUF+MBUF-1)
NUMBER OF BUFFERS
COMMON /TTRAN/
Buffer down (failed)
-
or
counter
a
Part
being
transfered between
element
tation
buffer and a transpo
Contents
of buffers
IN THE SYSTEM
(VARIABLES DESCRIBING THE TRANSPORTATION SYSTEM)
TlSTAT(BTRANl:BTRANI+MTRANi-1,7)
,1)
,2)
,3)
,4)
,5)
,6)
,7)
,8)
loading
Buffer utilization counter
BS(BBUF:BBUF+MBUF-1,MBUFC) NBUF -
description of buffers
-
- Static description
turning element
of
ID number of input system element
ID number of output system element
Failure rate
Repair rate
Movement time per time step, when stopped
Movement time per time step, when moving
Orientation of element
Element type
42
non--
T1USE(BTRANI:BTRANl+MTRAN1-1)
- Occupation
elements
T1DWN(BTRANl:BTRANl+MTRANI-1)
- Failed
time
elements
T2STAT(BTRAN2:BTRAN2+MTRAN2-1,8)
,l)
,2)
,3)
,4)
,5)
,6)
,7)
,8)
-
time
straight
- Static description
elements
of turning
to
to
to
to
- Occupation
elements
T2DWN(BTRAN2:BTRAN2+MTRAN2--1) - Failed time for
TDYN(TRANl;TRAN2+MTRAN2-l,l)
,1)
,2)
,3)
,4)
,5)
,6)
,7)
,8)
,9)
,10)
,11)
-
-
straight
for
ID # of 1st system element connected
ID # of 2nd system element connected
ID # of 3rd system element connected
ID # of 4th system element connected
Failure rate
Repair rate
Reference orientation of element
+ = ID number of associated machine
- = type of rotating element
T2USE(BTRAN2:BTRAN2+MTRAN2--1)
for
current element
current element
current element
current element
time
for
turn
turning elements
Dynamic
description
transportation elements
of
1 = UP; 2 = FAILED (DOWN)
ID # of part at element
Priority of part
Current orientation of element
Next orientation of element
Belt movement. Dummy
Time for completion of operation
ID # of element it is pointing to
ID # of element it is going to point to
ID # of dummy loaded part
Priority of dummy loaded part
NTRAN1 - Number of non-turning transportation elements in system
NTRAN2 - Number of turning transportation elements in system
FRSTEL - First transportaion element in track, i.e., where parts
enter system.
LASTEL - Last transportation element in track, i.e., where parts
leave system.
ABUFEL - Transportation element adjacent to the auxiliary buffer
COMMON /PPART/
(DESCRIPTION OF PARTS)
IROUTE(MPTYP,MRTLGH)
- Sequence
part
of machines to be
OPTIM(MPTYP,MRTLGH) - Operation times
43
for part
visited
at machine
by
IPQTY(MPTYP) -
Initial part
CPQTY(MPTYP) -
Current part type quantity
PPRIO(MPTYP) -
Current
PINSYS(MPTYP) PDONE(MPTYP) RATEP(MPTYP)
type quantity
priority of part
Number of part type
type
in system currently
Number of completed parts
-
Specified rate of production for each part type
RATEPP(MPTYP) -
Initial
TIMEOP(MPTYP) -
Total operation
rate of production for each part type
time for each part type
TOTIM(MPTYP) -
Operation times used in
RATED(MPTYP) -
Demand rate for each part
RATEDC(MPTYP)
of each type
-
PSTORE(MPTYP) -
intermediate computations
type
(PARTS/SEC)
Demand rate for each cluster type (PARTS/SEC)
See Section 4, Remark: Future Development
Part to be
loaded into first
MCDEP(MPTYP,BMACH:BMACH-FMRTLGH-1)
-
element, 'FRSTEL'
Value
"1",
if
visits machine
part
PIDTYP(MPSYS) -
Type of part
PCUROP(MPSYS) -
Index for current or next operation for part
(Equals One when part enters system)
PENTIM(MPSYS) -
Time part
for each part in system
entered the system
NPTYP -
Number of part types
MPSYS -
Maximum number of parts
in system at any one time
NPSYS -
Current number of parts
in the system
COMMON/MMISC/
(MISCELANEOUS VARIABLES)
FIN
- System model input file number
FOUT - Simulation performance output file number
NIN Scheduler input file number (Hierarchical only)
NOUT - Scheduler output file number (Hierarchical only)
DOUT System run time status output file number
INERR - Number of errors in the input data
TNOW - Current time
TFIN - Termination time for simulation run
ITMP(MMPSYS) - Temporary Array
TMP(MMPSYS) - Temporary Array
RTEMP(MMPSYS) - 'REAL' Temporary Array
44
type
II.3 : Parameters and Variables for Hierarchical Scheduler
MACPRT
-
MAXSTA
-
MP1 -
Parameter to set the maximum allowable number of basis
variables. Set at (MMACH + MPTYP)
Parameter to set the maximum number of machine
Set at (2**MMACH-1)
states.
Parameter set at (MMACH + 2 + MPTYP)
BDN - Parameter to allocate the number of regions. Set at 15.
COMMON /TCNT/
ICBMAX
- Number of basic variable.
ICNMAX
- Number of non-basic variable.
CBIND(MACPRT) -
Index for basic variable.
CNIND(MACPRT) - Index for non-basic variable.
RCBVAL(MACPRT) - Cost coeeficient of basic variables.
RCNVAL(MPTYP) - Cost coefficient of non-basic variables.
RDBINV(MACPRT,MACPRT)
- The
inverse of the
matrix.
basis
constraint
RDN(MACPRT,MPTYP) - The non-basis constraint matrix.
RCX(MPTYP) - Cost coefficient of the variables.
RA(O:MAXSTA,MACPRT)
-
RB(O:MAXSTA,MACPRT)
- Parameter b.
Parameter A.
RBUF(MPTYP) - Buffer stock i.e. actual production surplus.
COMMON /REGION/
C(MP1,MPTYP) - Row vector of the cost coefficient for every
machine state
D(MPl)
- Column vector of the machine capacity for every
machine state
THTBDN(5*MACPRT) NEQBDN
-
Projected time to hit the next boundary.
Number of equality constraint equations added to
linear program constraint set.
COMMON /BOUND/
RTAU(O:MPTYP) - Time at which the reduced cost becomes zero.
45
the
RADIFF(MPTYP,MPTYP) -
RBDIFF(MPTYP)
this is the
In the reduced cost equation,
matrix associated with the parameter A.
- Same
as
above but
parameter b.
it
is
associated
with
COMMON /ADD/
RXBDNP(BDN,MPTYP) RATEPR(BDN,MPTYP)
Projected production surplus at the boundary.
- Computed production rate at
46
the boundary.
APPENDIX
In
this
appendix,
output data files.
There
are five
III
we
:
list
DATA
LISTING
the sample
input data
data files:
Appendix
III.1
:
System
Simulation
Input
Data
Appendix
III.2
:
Scheduler
Appendix
III.3
:
System Simulation
Appendix
III.4
:
System Run Time Status Output
Appendix
III.5
: Scheduler
Input Data
Output
47
Performance
Output
files
and
APPENDIX III.1 : SYSTEM SIMULATION INPUT DATA
48
0
LL
I-
*
*
*
*
*
*
*
*
*
U0
*
>z
o
*
*
*
·
*
*
O
0r
>
Z
O
0
*
*
*
*
*
*
*
tYU
W
H
0U
>
0
*
0
O
'O
0 0t
.>
00
*
*
aG
>
CO
-.
0-
IZ
Wo.Q
*
*
:
w
*
IU
I
H
*
*
*
i-<
0
*
F-
't
L
J* O **
*
*
*(0
U
0
0
-H
-
W
H
U
Q
C
w
.XO
H
O-100
*
CO
Ct4LQ
V
4
4
I
w
D
.
C.
m
W
*
*
4
v
*
*
**
*
*
J
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
<
0
*
*-w
*
H
*
*O
0
oo
0
-C
ZHi
Q
H
O
1
Q!wUwl
)moo
*O
D4H
O3
OH1HO
0
.
*
i
tiW W
H1 (tY
4
S*
I
u
D
0
W
1
W
ct
0
w
C.
Ci
*
0
Zw-P
li
*
4W
I'D
I
C
*
HO.-Q
tY
0
w
Z
w
I
W
H
Z
*
CD
*
*
C: UU
I
O
Z4
C0
4>
HH
'-HZ '0O
O
I
* -0
O
~OI
w
H
i-
.D
O
O
C
Q'
O
w0
Q' Q
4>
Z
O
w
0
*-C-
'
O
I
w
'-
I
Z
DH
.J
C
Q' G
Z
w
*
Z
I
0
4
0
HF
iH
Z
.
WJ
Ii
ct
w
Ci:
0
w
I
H
HH
'- Z
I
I
-
WO
*
H
O
O
CS
10
0.* F
*
3H
H4
0
i*
*C!
*
Z
w
Z
I-
-
I
0
W
0
Q
I
C
0
-
I
I
CD
W
I
,*
F t0
-X
(I.I
0
w
Z
0
I
0
>-
*
(.
n0
0C
0
0
O
0
-0
I
0
'0
0. F-
I
0
I
0
uL
Ci:
c4
*
0
n W
*
ZF-G
z-
H
G
W
H
W
r
.
Z
O
't-
*
O
H
< -
C
°
0<
*
.
,
I
Z
*
*-4U
I
*
I
:
*
*
'
I
*
*
<.
I
*
)
<
I
O
HQ
O
i WW
t*HO
4
Z
I
I
*
*
*
Ci:
C.
l
L~i
GU
CTD4
.
.*
*
*
H
2
X
a
-i
5
*
45
O
0n
l
* O-
HOUC0
LLH
F
4
4
*U
*Z
*
*
* *W
a!
H
*
*
lY H
a
.
I
*
0
Z
O
.
,
*
*
mC*
W*
Z
.
*
I
i*
*
*
*
*
J
Z
W
*
*
*
z
0
O*
-*
.
*
J
I
O
I
O
0
0
UJ
a,
0,
>
~
LU
0
.
.
.
0Z
.J
0
0
*
. .
vO
-D
'
0
- C.)
H
Z <
'
Z
Z-ZO0
L
Z
-
LU
w
0
I>0O
C,)
SN
OI
IL
ZI
40
0
0
0'~
F-
0H
0
Z'
0
<
1U
r
C0
I
U
O
Q
() t)
t)
.H
0
Z
0
L
Z
-'
CI
0
-
4
I
-<4
O
.
I
C
C) t)
)
D
Z
0
L
,
'D
0 C-
L
H
'Z0
Z
0
L
0
I>CL)
0
0
0
H
Vt)
0
0
L>
00 O
0
D
0.U
IH
C
Z
I
LO
-
0
.
)
<I
'
CS
F
a
L
0000'
C
Z,Z
,
Z<
I
FI
H
Icc*o I-
0
0
L,D
,
.
0
0UC)0
'-4
'CL
HD
0
,
0
I
0
J¢U.
..
*,
,
,
0
.
IZ
Z
Z,
Z
I
..
Z<
F
I
0CY
o
I
00
f
0
Z
O
4
O.
L
0
0
Lu
Z
-
*_ 4
CD
O
0 0
,
4
0
0
'-
H
I
0
5
I
0
0
0
o
LL
cL
5wZ
*
*z
J
~>
*
*
*
*
*
*
*
IZ
Ci
C-
*
*
*
*
*
*
<
OF
*
Q
Qt14
*
*
WWUJ
*
*
*
Q.Z
WV)
*
Z*
a
*
QW
*
*
*
*
*
ZS
**
*
*
*
J Z
JJ
<1-4
LL 5
__
*
*
*
*
*
O
*
14
i*
O
C)
0
~>
*
*
*
a
0
O
(S)
LL
l
0*
t,
F-
oo
-c-C
O<- N
(
WL
i-
o
CLW
W
Z J
1LW
U
Z
C
*
*
z
0
V
-F
-
*0
.
*O
*
*
*
*
00
0
W
CT
CF
0-<
)
O- *N
0000
o o
0
-*Q
O<
LX)iCL
C'Ny
0000
°*
0000
0
~~~*
I
CO
*-C'\CC))
0000
wI
WJf
W C)C)C)CO)C))CO
*
- -
-
-
-
- -
0.......
T
-
000~
--
-
-
-
CK
000000000000000000000000
JW
LL
>0
0
I
ZO
0
WI
*
*
*
*
-
-000000000000000000000000
CL
W
m<
*n
- - _- -
-
Q'
.
0
N-NF
D<1
*
*
W
>
O
S
i-i
*
.JW
4
<c
-
F-U
U
LL
DD
-0000000000
-
0
*
Z
O
0)
ZWFWm
0O<
1
Z
<J <
O -o N1
D
O(D (0 w IL
H
F-
(D (D (D (
-
*
1
wC C4Q
*
*
*
*
*
gWu
0
*
*
*
C
CF
*
*
O
*
I
W'F-W
F-
:)
0
U*
i-I
Q
Z
oI
C)
w
*
V)
*
:*
*
Z
Z
*
F
.Jw
IF<4
iCY
LUW
ILQ
LL.
Q'
* 0000
*-(NC
UC)C)CC)C)CO)U
0000
0I
w
1
0W
F-
D
F
*
Z
E
---(DC~O
s
c----c NCSNN
(D
Q
03 O N N T s
O N N o r
O 000000000-----0
O
0
*
)t
000000
CO s
3FW
Z
t
D(O0
>
n 0
'
0~~N0
O n
O
o
d
O
D
-
·
OOOOOOOOOO---
C)C)OCU)CCC)C
L
D-
t0-N 0
-
-
---
N
NN
'IT
0
0
w
0
4
0.
LU***
L)
.Z~~~~~~~~~~~
0
1-L
*00000000000000000000000000
<1U
UCy
II- >-
L
-1W
z
0)
<
00
00......
o~~~
Qi I
Z
LLW
I-
4
2
0
I**
44
~ ~~~
LL-
M CIJ
-Cl
CV
M CN CI4 M
Z-
*W M
L 0-LUD10
C0
N
C-4C'J--1-I-I
(D00(~~~
(O (D (Dw
0~
IWl-~
2
ZI
ww
*
*,
*
*
*
*
r
0 0
MN
0 0 00
wwo
I
V
CO
I
~I
- M
0
(P
0
ILUJ
***
CZ
0I
01LUD
0~
~
- VW
OZv,
LU
1-D'-'
0 00
C') (DC(
-
CO
I-
o
--
(PC(D w CO
- cl
CN
C'
I
(PtoCOD
(,)
LU
*
*
CDDDDDDDDDDDDDCCCCCCCLLCLL
5~~~~~~
0000
Li
0.1
0 00
(O1) P
0.- -
0
F- -r
0
1101111101111111011C'J
LUW
Ljj*
0
*
I0>
0
0*
*
>
LWJ
ILZ(*
O
-'T
<
ix
I
~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~
F-
~
4
*
*
*
a
LU
-j
4-4
*
*
*
0.>
0
)-W
*
>0 Z
*
0.
LI)~~~~~~~~~~~~~~~~~~~~~~~
U)
~
~
~ ~
400
~~~~ L
0
- -V
*
0
L~~~~~~~~~~~~
U0~
*
0i
i~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~L
iix
V)~~~~~~~~~
0
*LUJ
00
*0
zi
0 (
C
*
(D (D(D (DC
I
I ~*
I
I
I
*
*
*
Ia
CY
C,) CV -CO nr
*
*
*
*L00000000000000000000000000
5in
>
z
0
c..
0
I
I
I
LU~~~~~~~~~~~~~~~~~~~
*
*
~
I-
U-0
4n
0
LU
0
uuuuu000000000…uuCCC
*
0ZU
~ ~
*a
4-
~ C)
*
F-L.
I.-
0
>1F-
>0
I- LzL.
>0u
0
*
~~~~
~ ~~~~~~~~~~~~~
Q
*,
00000
0000
0()00
z~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c
U
m
0
00 2
0I
CY1'LU
Ii
Z
-CJC
TLO(
000000000
~0
0000000-00
-OOV
TCOt- I
v,~~
-00
--C0(NC0 0 - 00LD
0
VC
00 - t, 00'VV
r
00---------NN
0'40-4-
M
LU
-J
V
I IJ
~*CN
~I-I*
N-.
0LU
0 LUI *LP
I-U.
*
*
*
i
*
*
WI
ZLU
0
0Q
-
0.-
4
>C:~
Z0
0.-LU
~~~~~~~~~
U
w
~
-
.C
J
C,)
D
0*
*
v,
0.->o
LUO
0
-0
c
0L
APPENDIX III.2
: SCHEDULER INPUT DATA
54
0
0
uIn
0Z
0
z
C)
0
LU
AL
o
HCL
U-
LLLL
0
H
z
0
(5J
n
0
0>-~~~~~~
w~*
*
a:
O
*
*
'-Z
*
Ct
*
Z
oO
*
*
*
'-4-
H
4
*
*
()
a:
*
*
w
Z
O
o
*
*
a ui<
V
CLa-o
O
O
Z
t
1-I
L
0D
0
0
0O
.JO
'
'
LI*JJ
0
0H Q:
LaJW
H
Z
OH1
.0
O
0 *
w
O
O
w
H
0
I
OW
4Z
9
I
*W
* *I
O-
N
-
0 0
w
a:
w
01-
HI
IZ
)
J-~C~U~
U
0
:E
-
JL )
J4
r
z
1I
0-Lm0(
0
4
2
-J
0
-)
w
I
*
_
0
U
H
ZH
Z
W
O
0
C'C)O-m)
O
3U
0
w4
*
000U
OU..O
W
~C'N tO
'O
Zo
w
LL4
.w
*U
Q
ct0
w
U.
LLI
000
LI
0
L
Z
a:
3H
Z
ZO
O
-
I
I
Q
(
.)
J
O
Q
H
Z
O
u
CO
O
C.)
.
03
0
I
O
<
0
z
Ua:
W
o)
l
*
U
'-C*
J
)
Zw
' Z
I -i
01
a:
w
4
C4
W
0-
Hw
40O
O
0CJ'@fC
D
J
U)WQ5.-
*
wI
*H
Zw
C)
I
*
0O
U00
U000O
U00
0
Z
'
O
40
SW
000
0
0
tn
o
Ic
2
o
2
I-
o*
_ n
o
I
V
OU
c-
C
;
L
0
N
NnseJ0
~0~
O
I
O
CC
ZIZI
N C;
00
O
O0
I
ii
00
w0
0
0
0
c'w
o
LW
2
.~
w
a
2
M
U
a~
W
0Q
w
-
I
J
V
000
[
i-.-eCcFinw
O.
LI)
w<
-
00 in
2
0
cDT
0
02
WI-I
~
w
w0
L
I-
0
000
0
O
LUw
"C)0
WI-I
-Z
0W'-
0w
U
U
0
OW
V1 F-
01-a
W
-w
L0
0
0Isj-
in
.
000
0
000
0
I
I
(i
CV)
0
w
0
aCq
Q.
w
V)
0
I-
z
0
-j
z
0
I--
w
LV)
z
0
0.
(J)
0
J
0
c):
z
o
I-I-*<
0
LL
w
-J
U.
uo
0
0
z
Z
APPENDIX III.3 : SYSTEM SIMULATION PERFORMANCE OUTPUT
58
0
o
*
uJ
*
*
·
0
*
*
W)
C)
Z 0
*
*
V)
z
>
LLI
Z
z)
UJ
Ol
W
>
z
o:
*
>
e
4
*
0
0
*
*
*
*
*
I
*
C)
C)
*
*
,
*
*
*
*
,
U)W.i*
OIZ
0
*
e-
*J
**
*
j
*r
W
0
How<
Fn
*
*
0
*
*
1Z
LX
*
LU
Z
O
en
L
w
H
4
H
W
LLJ
H-H
1
Ct
W
i*
*
*
*
*
-O
1..
<
o
o
*C)
0
C0JH
i-enw0
1i
4LtQ
HL
-J
0
D CY
O
F
H
)wQ
OOLX
4
*
*
*
*
*
*
*
*
*
**
a*
Z*
*
Z
eI
L :to
0
H
Z
O
Q
Q
W0, e
D
Z
en
w
L) C
X
*
*
0*
0 c
'*Lu
w
L
C) L)
H
O uO
*
I
C)
0Q
Z
I
L
t
en.Q
w
4
en
Wx
0
WO
LXI
H
1I--I
w
*
0
c*
-
4
*z <
ww
w
H
LL
n
3
U
C)
i-
C)
<
Z
X
e0
-n
1-W
e
W-
Z
I
I
C)
4
LLJ
w
IH
O)
I
C
I
O e'0
Q
W
ILI
H
J
-
*Q
iIC
W
en
II
H
w
Z0
U
Z
I
OO
I
a
wU
z
w
w
IH
0
0
cW
0*
*
I
<
)
C)
0 un
I
w
i
Q)
w
0en
*
0i
00
XI
0
C)
O
U
i- 'w
..-
Q Ia .
I
.
I
Ln w
0
|,'
O
O
0.
4
0
0
*
*
*
*
*
*
*
U
*
*
L
*
*
o
a
L
ID
*
*
o
en
w
H
0
*
*
*
*
*
*
Iw
*
0
0
0
*
* 0
*
W
I.-
*
*
*
*
~0
O
0
0
*
*
*
*
0
*
*
*
*
*
*
z
C)
*
*
*
C/)
4
0
zu
ww)W
HO
C
Q
wi
H)
C) Z
F
i H
w
en
Z
C)O
U X
C
H
4
C
wH
QZ
C)
c's
0
0
1,
00
8
Z
0
0
0
z
o
0
Z
VZ0
.L
Z
0
tn
O
(b
HiZ<
t0Z
Cm
I
<
F
IL
0
.LU0
X
D INLi-
00000
O
4OC
4X
II
z
V)
'0
O,J
C"J
Z-
LUI
I
O *
l
00
O
O
F-iZ4
0
z
III
O 4 ,
0
Z
L
M,
I
0
o
i-U >
D
<-
00000
0
<I
(nI
I
-LU
O
0 0 C zIQ
I,
ZH
0
O .
-
0
LU
000
I
0
O
.-X
D
0
x. I
000
I
I
-
00000
2
I
O
0
10
LU
-LI
0
I
0
I
I
'U
u
0. Z
0.0
0
C
LU
0
O
~
1
81
0
0
0.
O
O
2
0
0
LUI
I
·
0
81) .J
LU
-
L
0O
L
0 o
*
0
8
LLJ
0
-I.
00
8
l*Z0
0
LU
8
0
ZZ0
*
0
o
8
1
II
0.*CL*1.J
O
0O
0
I
LU
O
<,
*
8
E
0
1
I
L
O
Z
N
LU
I
O, 0
O
0
X.
(L
000
0Q
O4
O
0
I
.J
I
>O
F-
(
-
c
Iz0
LU
L
I,
ZH 1
I
Z
0
L
I
L
W
0
I
LU
8-8
000
0
w
0.
~~~~~0
2t
*
*t
*
*
w
*
I0
*00~
00*0
m0
Z
~~Z
o
0
I-CY
oc CL
IW
0
2
~
a
>
o
.
O
*
WII
*
*
*
*
·*~
ix
*
LL**
W
*
Z
0
I-
.
O
41-I
l
QH
LL2
-
I--J
DW
z
0
0,
l
L
- -(
0
-
- CIJ
o
-W Lu
I
0
*f
*c
*
*c
*O
W
*
co
OOO+
*
L L
02
a1~W
0-
- C-Ncl
0t
3
Wot
2 oT.i
*
*0000
000
(~D
----
4?
tLLo
1
I
C'J( )
·0000
41-
W0000000
o
c
0.
I-I
0000
I-lW
w
0
---
0
w
m
~
~
~
I
00
I
I
I
I
I
-
r~~~~~~~~~~~
000000000
>2(D(D(
> 50'-
-M
000000000000000000000000
cirWLL
CL4
W0a
a
2
W
LL0
0
OX-c~Oo0
I
Q(l
* 0000000000
Z~
Z
Wo
I-I
4W
*
*4
*c
1-1LLOt
*
*
W
*
Z)
LLO
0000
'O
II
000000000000000000000000
4W
'II
4<
41-
*<
*
*
0000000
O
~~
2O F-
0
I-Ixz
w(0
l
t
0.
Z
otI-I
z
-~C~')
I-
·0000
I
*
0000000
~
~
--0-
-
CII
4
(4
Cm~~(D(DLD~~O~
Z
0
cc~~~~~~~~~~~~~~~~~~~~c
U-
-
>-
0
U.
C~~
0£-
w
w
*
*
W
-
(DW
~
WW
>2
* Z Of
0000
an <c'ncJ
0
1-0
0000
4?-
44
-4
CD((9CD
1--W
Z
i-
02
O. <'-C
0.W
Z-I
I
*
u0
IIn
0.
~
0000000
r--
T-t-
'Z
*
*C·
*
Z
*l
0*
it
*)u
*
~
F
a
*
LJ1.L
*-------------------
00
t
l
*
*t
*
)
0
0
w
0
1-
wL
0
0
OO S* UUU
0.
0
0
*
*~c
*C
OOOO
0 -Z
-a
000000000000
-'
r-
5
I*IN
*
*
*
4-J
4
Q+
1-4 -
t*
*
* *
0
~~
*
*
*
*
*
0
*
0000cra
O 0.
*
*
\
*
*k
*
00
~~**r
Z*L-.-.000
*
*
*
*
**
D
00
0000000000M
O
Z
~~~~~~~~~r
·000000000
3I
01-
r~·rr'T~·-C~C'1(JCI
CC
-TLDP0
--
C---C'J
) C
CCJ M
0
0
o
*
*
O
<
4
QIz
0
*
w*
*-z
CC-
0
Ck
W
vZ
o>
O0000000000000000
O
I40W
z·
CL)
O
OW
000
O O O O O O O O O O O O O O O O
O O
O
O
(0 I * tD
1 c: 1X1
CO Ui
NCt D
(D CN
N
tr
Z
C
0
0
N
O CN O(: O
Wma
C) -I
Z:
*
*
*
*
*
*
*
*
*
*
*
*
*
O
-
0
N
C
FI
c
~~ ~ ~
0
-(DCD
0'
-
~
~
0 0
CD
C:O
-
O
00
NI
- O
O
z
-000y
( I
O
w >l
I
4
CIO
~~F
0
0
CI
O
O
N
m
Z
c *0
0
*
**
*a
A
I-
W
i
( -W
O<X * .
*
I4
>
u
<A
ct
U.
Q U
LL0-~0
C) C)
--
aIJ
CO
0
N
t
N
r00~
oO~~
>-f*
0
>
L-
N
WIO
I
ix
XI
w
0
0N
l
o-n
z
ui
I
0
I-u..
-
0
CJwwQOC
0
.L
1:
0.
V)
0
WO
V)
i
a00
i
U
D
nr
I-J
*
L
(
U
QOO
_
*
OQC
*
0
we
0
OJ
0
*
w
0 U
wr
wa-
0 a
1-
*
X
0
O
C
U
0C
*
ZJ
C11C
V)
W
W
>
>L *W
W*
0 O
0W
U
v,
n0
~~~~~
4
W
If)
·*
-
F-
U)
*
~
4
I
*
c
O
*
*
*
*
*
*
z
|W
-O
(I
1
~
*
*
0
0w
(D0
2
*O
*
*
n
MO
44
LU 4
00000
00
*
r
tO~
°°*
*
*
1
>f
WU
0
0
0
LU
w
0
i1!i
0a~~~~-
H
i-
z
w
En
LI)
CY-Q
LI)
ct
w
H
0
t-
w
U
V)
<
Doooo<
~Za
o~~
z a
w
~
~
~
~~
v,
I
HI
m
0
w
C
~
0
D0000
(L
0LOw)
Z
O
InZ
L)
In
I
0
w
z
L0
w>-'O)
L0~~~-w
>-o
M
LU
wI
*
a
CN-
-W)L)
-
'
0
<
H
IHD
w
uW
ce
Z
H
'--
I-U F-
.4
H
la.
IX
O4
O
0)
Z
I
LU
e-4LU
H0>-
.
0V
F-w
I
*
z
z
'
0
z
~
--
-
< z
t-0
w :En
0
t
In
H
O U)
-tl
n
0
U-
w
0
'-'
Z
< m ZL
0D
w
'-eLU
HHO
0In w
(Un
0
0
m
mmmm
HV)Z
UcLU
LI
.4
LCDnDo>
I
ZIXDZHZO
LHUI-'-CLUHl
ZH.
a4UU
U.4
L
In
<'0000
ZI
IX
3-r----rIU'H-I
mUIn
0U-ZXIXHU
HL-
In
tn
ZZZZZH.4
)
4
Z
0LU
H
0
.4
LL
0
x
.4
0
0
'I
I
OIZ H
aa (r)
'-4DOZ d
H
UU
U<
OHc
I ZnH-Mt-r0
0a
I~Z~kcO DZ0000
-LU-o
LU"
r
Z
~0.
wx MLULLO H~
coO0
H~
o
O
w
<0
LUIX.4 *
w
:DLU0000
I
z
w
O
Zw
CL
-i
>wn~~~H.0000J
L0 0
LzL
>4
2-w
O
I-4LU
I
0<
w
Ut
Iv,
0t
m~~~0.
.. 0
0
--)O
< wUQ
UH0'---
-
LU
CO
.4
>
H
O
Z
Z
w
O
ZL
L "r
)N0000~
0
0000~o
Z !
Ck
H
w
Ou~0000~ ~
O)
LLO
OZ
H
it
U
alq
LL
u
ZQ~~
Z
w
14
D<
0n
In
r
U
Z
'-4
.
t--(D(
U
-4~
0
H
LU
ZInC
.4
O
z
~
r-
>I
a
<Oooo
zw .4
U 0F) 0l) tLO 00
0
~ ~ ~ <~ Z
LU
a
<-
t~0000l
a) CI
40000
Z
.
Z
.4
w
L<
o
J
u-
it
>
LU
w~~~F
V
.J
0
00
0
HL
.4
'-4~~
U
w
LU
Ix<u
.-
LL
0
0
LU
LU
Hoa
~
aC-
Ix
LUw
.4(0 .
< IX~
m
L
LI)
0>
InZZQQ
*-D
HUoco
0
n.4UIZ
m-Q
<a
< '-'
m (.0(D
..
-I
N
H
L
Ha0
CJ
zM
v IU)L)DC)
<k
X .(.
OLUL
U-'-'
.4
H
r-r-0-r0
- C
(
M C.)
a I-Z
0
<
Z
0O)'04
m Zt 0'-c DW.
.
U-ILi-
~r.4~vp
LU- >-<-***
'0(
Z)0000
0IX00
:):
.4(D(
C
1-. 0
H
.
Z
.
H0
IXN
IX
Ho
cr
o
0
0
U)
O
LU
Z
L
4
a
oCZ
Z
L-
V)
o
4
Q
LU
4
4
LU,
L
4
uU
Zi0>
iL
Z
000000000000000000000000
UJ4
O
4
ZI. l
Q
- *-tlCN
M
'-iJ
co
OLUO
00000000000000000000000000
^^
O
--- -----000000000
-
OOOO
w
-
(S
CS
ON
N
---
O
O LO
- -
c
0
SC
0
O
- -
-
-O
CO
LOO
000
4
000 N
CD)(D( D tD(D
LD
(C)(D
D
N
N
N
0 0 0 --00--
00000
o-
O )C
O 'O
) O JLU
O
CS
O)SC
-
D
0
-
'
-j00e(Dwwm
)w(D
OOOC0
(t( CD
-00--____._._
-
-O
l
o
J
0
C')
N
N
O
O
4O-
WOW
OO -
1O
CO
-
O
(N
CO
ODNNN
0
0
Lc
00000000
00000000
00000000
00000000
00000000
VH
0
00000000
00000000
00000000
00000000
H>
z0
00000000
00000000
*
*
tH
z
o
*
ZL0
0-
~ *L
Z
OX
Z
0
o00000000
000000000
00000000
00000000
0 0
00000000
0m
O
H
*Z0
000000000000
O00
O0 O0
O0
0
000000000
O
00000000
LLw
O0
~
L0
H*
t-
..
*
W
(N
00 00
3
00000000000
O
0000
000
0
00000000
00000000
O
0
0
000
00
0
:Ei
0
0
00000000
*~
0i
o
00
(Nmoo~
(No~o~~
(N~~~~
0
0
O
O
-
N
N
0
0
0
C,
00000000
00000000
00000000
00000000
00000000
00000000
o
00000000
z
00000000
00000000
o
I-F
CU
<
ciC4
~
N
00000000
*
*
i
w0
00
00
0
00
000
zO
IZ
-
0
z~~
*+~~
t
0
00
00
000
.
0
.-.
0
w
000
000000000000
00000000
OI
00000000
0 0000000
0
I-
w
I(
0
0
00000000
uI
0
o
-0
w
a
*
000000000
I
00000000(
0
*
c-.
-
i
i
00000000
a
0
*
0
C
zS
i
000
000
W
0U
0 zF~~~~z
00
Z
000
O)
<
Q
O
O
0
00000000
00000000
a
o~
0
0
u
00000000
*
*0
Z*
*
n0
)
W
Z
0
0000
00000
000000000
..................
0
000000000000
~
0000000000~
~~o~
000 ~
>
o
~
0
0
0
0)
~
~
0S
0
OU
-
on
>Z~~~~~~
CD
00
ZX
N
) 00
4
W
LO
I-
t- t- cli
- CS4
CS
i.N
I
C14
co W
0
rlC*
I- riN
CN CS
o
oo
cs
0
(' ,00
0
Cs4SN
NS CS
gD
0
Cl)
IN 0
-Ci
Ul
"T CIA
0)
0
LO
CS
N
t
>-<
~ ~~
~
s
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
mL
i
*
*
* Zi* *
J-*
Zi
tn
I
O
o
c00
oNv
s,n
0)0)0)Q~
N
n
cs o
0
'&0
I~
m
,ncn
0)
(~oN
(40
O
o
N
00
, 00)0)
cs ,n o3
0
,n
(ONO)
I0
N
N
N
~ ~ ~~ ~ ~
~
~
~
~
-
I
I
ilU)
0
oa
**
00
-
*
OF
00
0
0
I1
I
*
II
ZUi
*
*
1
*0
*
O i3
i
i
i*
*
*
*
i-
*
*
0.
*
*
*
i*
I
O
CU )
P-
OI
0
I
I
0O
0
IN
o
|
0
t
* iY *
**
)
0
I
*
* * *
*'-*
~I
0
0
i
*,*
L
0
I
*>-*
O0-
O
_>
*i
L
~
O
-
*
Z
cs
"
NN
I
* o *
00 r- (1
r-
C9
En
L
*
*
*
*
*
0.
_t
* 0
0
*
* .
*
*
*
*
*
,
*
*
Q
O
* 0
*
*
*
*
*
*
*
*
*
o*
*
0
OI
0
LLt
*
*
*
_
CD
*
*
*
*
*
*0
0
*
u~~~~~*z*
sro
0000
*
*
*
*
*
*
I
* - *
00
0
o
*
*
*
*
*
*
*
*
*
*
*
>
I
~~~~~~~~~~*
i*
F-Z
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
)
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
I*
w*
*
*
*
*
*
*
*
>
il*
i
*
*
*
Y*
O*
.*
*
*0
*
*
*
*,)
*
*
*
*
*
-*
I*
*
*
*
*
*
*
*
*
*
*
*La
*
*
*
0U
0>
>
LO
CD*
z-
_)
E
,n
0
Z
iYI
'S
N
Q
Q
(1
*Cl~
O
-
O
l
LO~~*
?
0*
t
LI
O
I
Z
I
.4
I-I
LL
t
LO
CD
*
*
0I *
*
*
*
*
*
*
*
-C>C> W
*
<
*
Z N ('ZS
a *
0c*
0
0
LO
c
0
Z
-
L*
c
I
Di
IC
O
00
('
-
0* II
i
Cl
'-
_)
- I
L It
I
I
0
'2
f
* >* O * O
>
*
*
*
1)
rx
W
0
?)
Ib
C>9
t-.0I
I
u
02
C)
0
0.
.
0
('
_
LI)
0
I*
-
N
-
c
0I
>
I>
-,
V*
0-
./.
I-
I
0Se
a
Z.
tU
>I0
z
0
I-
a
w
z
0
0
000
0c
L2
a~~
-iaaar
_
_
APPENDIX III.4
: SYSTEM RUN TIME STATUS OUTPUT
70
0
w
a.
o
C
~~~0
0
C)
o
~0
o CU
0
C)
C
(>4
U)
N
(>
LO
N
C~0
0
dr>
do
I)
oot-UCD
0
0
0
0
0
0
0
0
CC0
C0
0
0
0
0
C
0
0
C;
C
g
0
0
0
0
Co
0
C
0
0
0
0C
o6
c
~~~0
0
o
N
0
g
0C
8
8
C)
C
C0
C
0C
(
LO
0
04
n
0
0)C')
C
U
t(C)
0-0
o
C
0
0
0
LI)
o
o
O
I-
0
)
C)
C)
)0
0 W
U)
U4
0
0
~~~~~
~
~~~~~~
~
-- oC
z
0
0
C
C)
0-'
oCw
U)
0
LO
(
(
(
LI)
sr
fx
w
C)
0Z
O
w
o
'-
C)
O
w
0
I--
·
w
U-
O)
C)
O
C
w
O.
0
(
0)
00
(>4 0)4
'C>NL
4r-(00Cl)
N
0)
0
(>4
LO
~
0OH
0OC
0Oc
0
Oc
Li
m
0)-'
IN
I
-
C)-'
C)-
C)'-'
C)'-'
I-
O ~
OH
00 · 0Z
O
~
OH
03
O· <
CZ-
.CZ
C)'-<3
C)
C'
0)
i
I)
(n
I-~~O~_
o~
w
Z
w
W
.4
1-'
I-*(Da.Z(Z
4
C')
C
-
w
Z
I-
I
U
0O 0
0
a
~
O
OH
On
~03 Z 0~ ~03 · Z
C
>
aX N
0
'-4
OZ
.C)
0
C)'-'
O
w
C)
LV)
C
C)
U)
C')
N
(>4(I)
-
0C)Z
LI)
>4
LD
0)1
C Z
- 00
-
LI)'--
(>
LO
L
co (n
cZ-
LI)'-'-
-
(4
U)
0(0(
OZ
.C)
.CZ
.C)
0
C)'-<3
C)'-'0
C)'-'
C0
LI)
CD
w
oZ
wZ
uZ
w Z
(x
w
aX
w
a
W
w
WaOw
wa w
.4Wa.W
wa.w
I--31m
F 3
w xE-~- RI1E - - 3 x
< W
>WW
<
'-'I<
W
IXZ
CZ
aCZ
CZIU
WIa.
Qa.
a.
a.
nC)I--*
C)I
*-D
*
0a
O1-*
a)C><*C)C)<*C)*C)
C*0:lxw*CXCW*CXIXW*IXCXW
0
I
Z3
0C0
.C)
C)'-'3
C0
0
I-*(Da.*(Da.~Z*(Da.Z(Z
0
L
0
w
)
<
a.
w
aX
U)
(n
4
a:
w
2
'-
I7
U
m
C
U)
0
U
0
0
0
0
(>
NO )
U
(
O
LO
(n4
04
C1
)
0C0
C0 )
0 0
C))
.
C
0)
0
CC'
0
0)W
N)LOV
tt-
C o)
O
C.
0
C
C
CO
0)
wl)~v
(4
C
(DI0
0C)w
'IT
0Oc
0OC
0Oc
0C)
OC
N
0C
C)'-'
C)'-
C)'0
0C'
LO
)-'
C)
tN
C)
C
C)U
~~~~~~~~
)0
0
mCX
C)
C)
C')
WC>4C )A C
( 4
0)(I
.4
-j
0C)LItC cI)-C
tIC
aZ3
mLW
co
CN
CU')
)
.
W
O
OH OO OW O
J
O~On
u~O
03
O~OO~~
· Z
w0Z· Z
0~ Z
0~
Z
.)
C)'-<'
C )-Z
C
C
't
(
(n-C
.0
3 C'-'3
')~
0
C0
U
-
0 ~ O
OH
~· Z
0~
(C)N0t
0 t
0C
0C
0CI0
0 0
~
~ 00·
0
0
U)Y)
N
0)
I
NN
co
"a
-LI)
>4(li)
(>41/En
OC
(D
(D
0-C)
0-C)
LI)
U)
CZ
.)
C-3
Z'Z
.)
C.-3
CZ
.
C
(aC)
(DC)
0
(D 0
wZ
WZ
wZ
wZ
i
w
X
w
a
w
CX
w
uia.w
aw
,
wa w
waw
r
31.
31 m
- 3Z
F-35 M
W
-4
W
QW"
W
CZIaCZ
I-CZ I-M Z ix ZIa
a
a.
a.
.
a
*
1*Z)-*=
C1*D D
1*C)-0
0
a.*C00))<*)X*0C)C)<*C)<*C)X*
C)*CCXW*CXCXW*CXCxw*amCW*CEIXW*
CO 0 C
)
OZ
-
(
00
U)
o >"
LO
NI)4
I-
w
L>
0
C
C
C
0
0
0
Z
)
C')
~
.4
CX
C)U)
C)
0
OC0
wZ
w
CY
w
m
I- W Ca.W
wa.w
ww
-3:
>-f--3.
>W-<I-<W
rrz
WILy ZI
a
a.
* C l-*DC)I~)C
*C00X*COX
C*CXCXW*MMCW
C
OC
O
wc
W
0OH
a
C)
"
C
w
C (n
.-i
0(I)-v)0)'-C
0--
'IZ3
C0
Uz
C)
*C)I00)4
C')O
-
U)
0
LO
~u
C'
N
C)-~r
C0
4
0
W
(1)
0c
D -'IT
0)
0
(q00)4
C')
Z
w
200
0
01
00
LO
UW
N)V)
~
I-
0
-'CD)O
C)')
O
0
O.
)
NO
L
"w
Jw
N
CO
m~
t
LO
m~
tc)E
m
c>4
0
0 ()
'
4
.0
J
OH OO0 O~
wI ~OO~
O< zZ
0~ z
4
OC'
CO)
C)
m
NO
t-NU
w
1)
-N
Lo
CV
>
0)N
oo)
C)
V
0)4
U)
L
w
oI
(
w
.
(>4
C')
L)
>
0
U)r-'I
(D
(n
C)
0
0CO
0 U
Cw
C I
Ocn
0
LI
C)
C w
0~ tn
L
>4
q-oC
CO2
OC
0
Z
(I)
~
6
0
0
C
0
0C
w
.4aW
w m
> 4W
W I--
wZ
a
I--*(a.Z*(DZ
~
*(Da.Z*(a.Z(a.Z*
C)
0
0
w
0
0
0
0
0o0
0
0
0
C)
0
(D
.4,
C)
C)
w
V0
~~~~
C)
o
Z
(2
C0
0
0
CY)
(N4
0u
Z
0
Ow
C
C) )
ta, )
0O~
oC)V) '
0
O~
V)
>4
0
>:
Q0Ow
IC)Co
O~
0)
C)0ow
>- o
0
O
01
O~
N
.00i
01
O~
OW
OW
.40)
00
(N
0-
.4
0)
*
dIO~
00
0.40
r cliorO3
w
Z3
0
*-
.4
00
00~30
03
O
0
.4
0
C3LO
-
c
0
OOX
r
O0a-Z
OZ
U
'I
0
-
.4
04 -
0-
(
t3-
-
OZ -
-
Z 3
0000
0
03~*
(
- 3
I w o-w
M
0)
3'
000
)
.
0 F-*=)0
*ZD0*-*
ia-*00X*00)<*00)*00)<*0)*0)
* 0 a-Z
0
O'
OW
.4'-0)
Om
OW.14 -0
O3
00
0.
0
o0
0
CO
0O~
.0
O3
N
O3
)
0
-
0)
0
C
0
0
OZ OZ
OZ
0
*0
-0
0-3
0 0'0
00
00
0L
Z
WZ*Z
Z
WZ
m
w
Ix
w
Ix
m
w
*0
.
wo- w
-*
w 0-w
- Q Z*
:
a-<
--
c--Z
0*-**-*D0a*-
0
W
4
IN
0
O
O
0
C)
O
0'
C0
00
00
0
C)
0
O
O~
C)0
OC)0
0
0(0
OOW
.00)i
0
*0
Z *
0
-Z~ OH~
00 0
.4O
03
.4
('2
0
0
0
0
0
0
C
'
00.
0.4
0
O~ O~
0OW
O'
.00)i
0 ~O~
01
0OOW
.00j
.00j
0~0.40
00
03
0~3
00.
0
)
0
('
.4
CDC)OCD
(000o<
0
O~
O
0*-
~0*
0.
C)
C-
0D(
0.
0· O
OJ
CO
0*-
Cl)
C
0
Oot
0U
C0
0(
0
O
LO
C4
O~
C)
Cl)0.4
-
co
0
O
(NA
'IT
O
0C)
O~
00r
0
C)0
0
O
4
0
0*-
01
O~
.00
O
0
0
0 )-4
0
C
O
0
O~
.4
('
0
C)
0
00
OO
0
m
0.4
e)
Cl)
0.4
0~
00
0.4
03
0
0(
O~
00
0.
-3 O
)
C
a-
r
<Z
3-
I'-
)Z
OZ
Z
)ZOZ
O Z
I0
*Q
*o.
*.Q
*Q.0
300-3
C i-'3
O'- 3
Z 3
0 - 3
0
000
00
0
00
wZ
Z
z
wz
Z
wz
ix
c w cr wj 0m
w
OM w
a-Wu
w a-w
Wa-W
U
uLLL
a-LW
wa -w iW
3
F- 3Z*z a-F- 3,z
* aF-FQZ* -a-FCr2
3c
.w*X -a- I
-Z*M
0
.4
* n0*a-*0
'T0
0
-
Q Jt- -
0
N
0
*D0
F- * D 0
*OOX*OOX*00)*00>
.
0
0
--* D0*- *
0
D0*mrW0
W*C
rW*CrMrW*Cra
* 0 MZ * 0 fZ
0
(00
0o
0
ru
(0*-
-
0)
00
OO
C)
O~
C
O
C)
0
0C
OO
0
O~
C)
O~
0
oO~
0.
0'
0 00
C
O~
U
*-
0
0
0
0
0
O
C)
w
0
0
00
(D
Nr
0
0
0
.4
W
w
utO
WaCL
:Z*m -
0
0It
~0*-'
0~000
r-
0
(-::xZ*- Pa-<F-XZ*3 m>Fa-<C* Z*
>w
.4 * --
*- * 0 0Z
!'
0-<
0d·0
O
CO
0)1
.
a,
.
0 '"
~J
O
CO
~0*
0
Z3Z
0 0
0
0
0
C
D
t
0
0
0
0
O
C)C~~O
Ow
0
Cl)
0(N0
-
0
zJ
w
aQ w
w a-w
w a-wL
rW*CrMrW*Cr
0m
0C
0
0
0
0O
O~ 0
0O~
0)
CZ
Z
1-4-
0*Cr
0
0
0
0
0
0
0
0
0
0C
)~
0.
00O C)0
00(
0
O~
'CD)CCOC
00--
.4(00)
0)
Cl)1(.
*(
w Z
U
0o(D0
W
C
0C
CO
0
OO
O
(N
O
-
0)
coO<
DCD'
(2'"
CD0*-
OH3
000
o
-3
3)
0)
C)-
r
.4(0)
0)
00
04
-3
0
rCO'
C
OO
)
O~
(
O~
~Ow
C
00
C)('2
O r~0
0)
coCD
(O
' "
C O0*-
(NCl-
0
0
00
0
0
0
0
0
C
OC
~
0'
00 C
O~
C
O
-
0'
0
CO
C U)
C)
N
0'
0.
00 0C)i
0 )0D
m~
C 00
~
O~o2
cD
0*-
I
0
OO
O~ (N
O4
0
0
0
0
0
0
0
0
O
0C
C)
c~
0'U
C0
)l
0
O~
(
(3
0
:0*
'
0
D
D0
)-0)<)0
0CD
'"
O 0*--
:
LLaJ
u.
0O
(N
CDD
o
.4
d0
0
*
0 0
w
Z
m
Crj
O0(1
O~ N
.4
O
U
w
oc
0l)1
.4
O0
0)
Ow
('
O~
C)
~J
C)
S)
0
LO
Owr
C0)
w
*- a-w
0
c-4~~~~~(
Do
-O
(N
O~
.4
O~
w
w
w-
O~
Ow
.4"0)
W
0
0
0
0
0
0
0
0
0
0
0
0
0
C
0
0
0
0*- O
.4
0
0 V)
C )
0C
N
a 00
0U
. C
C)LO0
00
C0 0'
C
C
O~
O
-
00
o3
..
Z
0
0
0
0
0
0
0
0
0a-Z
F- *00.
z * oa-
z*
a Lz * 0
z * oa.z
C,)
0
0
w
(P
O0
O~~~~~~~~~~
o
o
ifl
L
N
co
0
(P
o
CO)
in
0
N(PI
0
o0
o
0
0
0
w
0
O
0
0
0
z
o
O0
-
8
z
0
Z
Z
00~'(
w
O
o
0
3
W
0
u
w
V)
>
0
~~O
(
P
w
ce
*
3W
0- 0
0-
0c
2
0U
0pt
00)
0
0
Or
00
io
0-0)
Z~ O~
1-<
0
w
U
.
(N
<
a (N
0
LU0)
LU
_--J~~~000-0
<
n
aU.
1-
0
10
w
u.
)
-
-J
1
0
-
w
2
Z
I
0
<
2
0
0)
-
j
0
m8
01
Z
N
OH~
co
~
003
0
0-1
0
0 -'
03
00 99 ~
0
(P
0 <
0 "
0o(
0
0
00(n
C).oJ
OZ
02
0
2 3
0 00
(P
uZ
w
LUi
ak
..4W0.W
w
1-3
>-1<
Ht-<
w1CXZ
-J
0.
* DO1 0.*OOX0
0a
O*
mw
9-'
1-*(PLiZ
F-
<
0-'
03
0)000
~ <1NC')~ ~00w ~
0
L
Q<
-Z
.
'-
0 0
0.
aN
"N
C
(0
PC'C)CN
N)(N
-M
I
0)
~
000
(N
P
0
Nr(N
00
O~
Z
C')
(O
w
0)
N0)..
LOnj
0) -'
3
CO)0
00
O 94 Z
0 Z
0<
N
t0inO
W
Cv)
N
(
cli
00
*Nt-
0-
0
3
W
Z
C')
NI
C')
(PD
(N
O~
N
LU
q0
Q
1-L
<
0'iN
N0
CY 'l)
C')
(N
CC)
Q.
C)-i
1
ti
O
uZ 0v
Z Zw N
1<
w
0
0Ot
<
Lo
01
U
m
b0m
tN
0)
L
C)
.i
0)
1-
~
00
Oc
Z
01 Z
1
o<
CD
)
T
C')C)
0 ~Z
00
O
0)
w
0 01*~9
0<
0N
0
0
W (P
0
L
.4(N
00w
-i
-4
0'00,-C)
0
<Ce0Z
U1
*0
Z 3
C)-H
00
(P
0
02
w
Ui
a
.4LU0.l
Lu
L>1- 3
Z
>'--<L
'-4
W1
CyZ
I
.4
0.
0
*:)01 <
0.*0
o*w
I-*P0Z
<
0
L
c
0(n
<
3
'-
0
-
w
Z
I
0
(P00
inO
ino
00
0C)
0
Or
0<
0(
0
O
0<
01F-
OH ~
N
(VN
a
0)
(PON
OtN
Z~q
1
0<
iL
0 c0
01
0'0-
0-
(P
O
0
u0
0)W
in
0N
tr0)
CN
-
(PiL
0
0
0 c',
1-C')
~
0)
(n
(P
03
(
C
i 0·
LO
(PW
u
00
00o
o
O~
0
(N
'
)
0
in-
0
'-
0
Z
0
0
0
w
CkI
0
0
0
3)
0
0
Qw
00
in
(N)
cq
-(
C')
*N
N-
o
0
0
0
CD(
w
01
(N
C)
-
-
~~~0
0
(PNN
O(P
O(
00
OZ0(N
t- T
in
in
-i
(N
LU
W0)
(N
0
(N
0)
N
N
J
00
NO."t1n (n
I
07)tN0)0)'-.
0)
00n-0
(00o
0'0
00
<
c
OZ<Z02'-'Z
Z'
0Z
3:
10
*0
-0
*0
2
Ct
)'-'3x 0 - 3:
0 0 00
-(0
(0
(D0
(P
0
02
wZ
wZ
wZ
w
wC
aU
u
aX
U
aX
.jw 0w
ww
w 0.
wOw
w
w x >-1- 31>-1-3:
m
3:
FZ
2>--W'1<W'
<L
WCX21CXZ1IZ1U Z
Ir
-j
0.
0..
0
.
0*0Z
I- *
c 1- *)0
*a0F<
0.*00)<*OO<*00)<*00
>(
m
o*C(xCx
EXCMw*Cacr
w
u*CL
w2
1-*(P0.Z*(Pa-2*aP0.Z*(P0.Z
-
0
0
'
(DOinL
Oc
w
(P J
M'i
C1
03
-C')
inO
)o)
N0)-i
LO -in
0) -'
N3
00 0
00
0 Z
01 94
Z
0<
0
0
-z
OH~
w
co
0
0(
w
C
3
W
0- C')
O
in0
0<
N (N
0
(
OD O
4
0 2
0<
N
I-N0-
-
~00
Z
0-
00 9-
i
N
t-Nl
n
OH
I0T
0
0)W
i
0
0
(P
C
-
O)
.
0- 0O-
0O~
W
-j
u
1-
W
0-i
(P
(N
0)
I
1-
.co0
00
-
(P
IN
04-
0
0
0
C')
to
0)
0
0
IP
0)W
in
(POin
0)
O
00-
'
(P0'
0
0
o
0·
r0
'U
)
-CO
00
(N
-
in
r0)
oNW
N
in
Er)
0)
00
-C)
((N
(N
'
(N
0)
O~O
0
r-N
ON
0
0- ()
0
)
C)O~
0IN
(P
0)
(N
-
0
0
0
-
Z
0
0-
C')
0(N
(P
0)
(N
C')
~~~~~~
0
LO
C')
in
C')
0
0
~~
0
8
Ow
00
iLO
m
2
0.
0
0
LO
0
0
0
0
0
C')
0)
~~0
"t
CD
-
0
0
~~
q
C)
0
0
0
N-
0
'-9)
LO
0
0
o~~~~~~~~~~0N
(N
Cy0
0
LO
~~~~~
0)
(N
1-
LO
0o
-.-
~
L
'
L
in
w0)co
N-
(N
(D)
0coJ
(P
0 i
(P'
0)3
3
C')C)
00
OZ
01* Z
0<
~
LO.4
0) N3
C')C)
00
OZ~
01*2Z0
w
0<
U v-0N 0 N "TN00 N(t-'N t0
0
C)
0)
EX
Q0
in
LN
0N
bl
I4(
0 (N
00c-J
' -0
4
0'-'
0'-'
0)'0'-o0
o
0)'
00
a 0202'-'Z
0
I
-0
-0
*0
Z3
0-3
C)O43
C)9-4
00
(0
(0
(P
02
wZ
w
wU
a
L
C
4 LUw
w0.w
w0.w
w)1- 31 >- 1-3
-3
>'-'1-<W
W1w-4
Cx ZIx Z I
m
.
0.
0
0.
* D01-*
:1*0
1-0
0.*0)*0<*00>(
<
0
a*CaCXw
*xLa*Cxw
J
1x
-*(
a
*L)0.Z*(P0.2
8
C')
OD
(N
-
0
LU
.
9
uL.
T
w
2
'
0O
W
w
O
O
o
o
0
0
0
o
0
O
O
O
O
o
o
0
0
0o
z
0
0
z
o
(n
0
c
Z
00
Ow
O I
[1n
(1)
o0
In
U)
L
>
W
00
OC
0
O-
4
z
0
:
3
0
oU0
Ow
O (n
o*
0 D
Z
LO
(
(D
0CL)
cE
>
03
s
_
IT
LU
I.
T --
*
LU
0
O0-J
0'03
CO 0
CO 0
w
*Z
-J
(C)
r
-
0
OJ
0-I
0
<03
<
*Z
0<
0 <
J
C
uC)
0
0
t-
0O
<
W 0G
-iC
X
0
0,
0
1-
-J
o
n-o
Z 3
00
uZ
w
J
CS 0
OIACJ
0 -
O /
0-
(n-o
I-
O~
o
0
o
3
(DO
wZ
0-
O
O
w
wa>w
w3w: F 3
:i->1 FzS 1 i < LL1
a.*00X*CO)<
0*m
aD
*
wU
APPENDIX III.5 SCHEDULER OUTPUT
75
O
0
*
aw
*
0
o
*
*
0
*
*
*
0
z
-4
z
*
*
0o
z
o
*
*
0
I-
*
a:
w
Zo
000000
o
0
0
*
o
O0
L
Z
0
I
3
0
0
z
N~
'
>
Q:
w
I
000000
O O O O O O
C'NNNDOSOOO
(pOO
I
___
I I
I
I
000000
@00000cx
v
-
t
S
I_
oI
~
0
C:
<
a
U
4W
0
ZO
at
0)
0O0
1w
05 a
w
.0
D-
L
J**
X
0000
3C)
Z
JUl
0
Z1
OH
0
0*
H
'-
at
0
N
L
H
Wq (.)
C
- N - N
to
.
0
*
*W
*
O
M
- N
N
-
W
in0
-Z
<
ct
**I
0
a1
a
'w
*it
O
Ou OO
iJ
0
4000000
000000
0
0
H
Ow
LL
w
0
000000
w
U)
D
ZI
H
ILI0
Z 0
Q
000000
4000000
000000
w
0
4000000
000000
w4
i
LLL
CLZ
000000
Z
U)
4
H
000000
v0
o
0
t
Z
-J
<
000000
000000
000000
000000
Un
O-0
W
<
000000
000000
000000
000000
000000
0
LL
LLO
D
U-
000000
*
*
*
*
O
0n.
000000
I
0U0
)
*H
Q
00
L)
w
000
I--
4
C)
U)
0 00
t
0
0
w
o
0.
uj
I
z
0
a
0n
CL
O
0
0-'-
-
t
C')
O;
Q
0
oooooo
U000000
W
..J
)
D <
L<
I
<H
0Z
LUJ0
IL
9I
*
<
JS
.en
H-
I.
0
LLI
I
0
e
0
C'C
OO
0D
-(*
oooooo
oo000
000000
000000
000000
000000
000000
00000
DW
WSJ
1<
C)
LW
iLU
H
U
7- i
Iw
W-4
w
IIa.
'D
IF-
LU
w
LUW
L
(O
0t
I
cr
0
I
00
00
0
C
0
C)
)
)
Ha<
0
O
Zw
W
II
<
c
--
*
H
000 <
E
I
0
0
II
I:
V
0
00
*Hj U - u
<
00I
(
C')
0
o
w
C,
a
er
w
U)
0Iuj
in
in
-J
cr
z
0o
0
r:4
LU
>
z
0o
U
C-,
in
I0·
<a
r2
0
4
4
FAL)
0
o
U
H
ULL
i
w -j
0
-4
Z
W
LL
The
following commands are required for execution of
on the MIT IPS VM/CMS.
Explanations are enclosed within parentheses.
Filename is to be inserted in place of "fn".
R,
( CMS system prompt
FMSIM
)
filedef 9 disk "fn" data a
( system simulation input file unit 9 )
R,
filedef 10 disk "fn" data a
( system simulation performance output file unit 10
R,
filedef 11 disk "fn" data a
( scheduler input file unit 11 )
R,
filedef 12 disk "fn" data a
( scheduler output file unit 12 )
R,
filedef 13 disk "fn" data a
( system run time status output file unit 13 )
R,
fminsim
( the executable module of the program, fmsim )
TABLE 1 :
COMMAND
TO RUN FMSIM ON VM/CMS
79
)
:
LANGUAGE
FORTRAN 77
OPERATING SYSTEM
IBM 370 VM/CMS
EXTERNAL
IMSL SCIENTIFC PACKAGE;
SUBROUTINES GGBN, VMULFF and
ZXOLP
LIBRARY
MEMORY REQUIREMENT
540K BYTES;
FOR THE PRODUCTION SYSTEM OF SIZE:
MAX. NUMBER OF MACHINE, MMACH
MAX. NUMBER OF BUFFER, MBUF
BUFFER CAPACITY, MBUFC
MAX. NUMBER OF RECTILINEAR CONVEYOR, MTRAN1
MAX. NUMBER OF ROTARY CONVEYOR, MTRAN2
SPEED
TABLE 2:
:
=
=
=
=
=
8
8
100
50
50
60 CPU SECONDS
( 8 HOUR PRODUCTION SIMULATION )
COMPUTATIONAL CHARACTERISTICS OF FMSIM
HIERARCHICAL SCHEDULER AND SIMULATION
80
cr 4
I
0ilrr,-
i
0
0UOtJ
f.O,
II
1
"
Cj~~~~~~~~~~~~~~~~~~~~~
--
,.
~l_
rl~t ~
~rc11
~-0
O
z
(~~'\F1/~~Z\
~~~~~~~o
--
=W0
Or
L
o
tI~II-I,
q..--LJLJ'
_J
I
I
z*/\*0
-
.
Z
J
-
>"ci
>
nll)-'
>-
u)
I,zJ-
I
I--
i~
o
LU
LIJ~~~~~~~~~~~~Lo ii,I
Ll
ct) 0IC~
to
~co 9m
a.
ImD'~
ON
0alr
I
L-
mc
fr
0
z
<
7
M
Oa
W
O
"- ,.-
/I',.-
HZ
W
w
r
I.
zJB
/i40
o
Q
C
--
----
~L
0
(t~
lo-i
'-
L
tD
0
C)
LL
0
Ld
o
X
z
o
QL.LJ
-
\~
-a.
PRODUCTION RATE OF
PART TYPE 1
Note:
Both part types go to both machines
Figure 2. PRODUCTION CAPACITY
[PARTS/HOUR]
SYSTEM
MACHINE PARAMETERS
REQUIREMENTS
I
CONFIGURATION
| (OPERATION TIMES,
MTBF, MTTR)
;
GENERATE
DECISION
TOP
-
LEVEL -
PARAMETERS
OFF-LINE
MACHINE
PARAMETER
CALCULATE
SHORT TERM
PRODUCTION
I STATUS OF
RATES
-
UPDATES
MACHINE STATUS
U
S
REQUIREMENTS
,
1
_
SCHEDULE TIMES
AT WHICH TO
PART
DISPATCH PARTS
LOCATIONS
L
LEVEL
ON-LINE
MACHINES AND
TRANSPORT
SYSTEM
MIDDLE
LEVEL
ON-LINE
-SYSEM
Figure 3. SHORT TERM PRODUCTION HIERARCHY
STATUS
SCHEDULER
INSTRUCTION ON WHEN
:TOPCNI MODULE
EVENT- DRIVEN
SIMULATOR
:LOGMOV MODULE
TO LOAD
TI ME - DRIVEN
CHANGE OF STATE
OR ELAPSED OF A
USER SPECIFIED
INTERVAL
Figure 4. INTERRELATIONSHIP OF THE SCHEDULING POLICY
AND THE PRODUCTION SIMULATION
INIPSY
:FEASIE
-ISTATOT
IjDYNOUT
. DEMAND
COM PAR
_
TOPC N 1
_
m
TOPCON
-I OLDEST
TDSPACD
LOGMOV l '
H
TOUTPUT
Figure 5.
TOP LEVEL CHART
-PARTLDOF PROGRAM FMSIM
_
==~~~~~~~~~~~~m
Ist NEIGHBOR
-2N
PRECEDING
NEIGHBOR F
1
-1
4th
2nd
NEIGHBOR
NEIGHBOR
12
3 rd
SUCCEDING
NEIGHBOR
1
MOVEMENT
NEIGHBOR
FOR ROTARY CONVEYOR
FOR RECTILINEAR CONVEYOR
ADJOINING
ELEMENT
OUTPUT ELEMENT
INPUT ELEMENT
FOR MACHINE
Figure 6.
O
FOR BUFFER
CONVENTION FOR ELEMENT LINKAGE
DSPACHI
DSPAC I
FSTLODI_
ILOAD
TR 1
TRANPS
0
Fi
7. IE
MO
R
ATIONSHIP
EL
TR 12
TR13
I TH
TR
STE SIMULBUF
OI~~POT
TR7
PROCES
BREAK
UNLOAD
Figure 7.
INTER MODULE RELATIONSHIPS IN THE
PRODUCTION SYSTEM SIMULATOR
(3)STOECURENT
(A)
USER OF
IPR
TERRVAX
YES
(2)
,
No
-YES
INITIALIZATION
1000-
(3) STORE CURRENT VALUES OF
(a) PRODUCTION SURPLUS---RXBDNP
(b) PRODUCTION RATES -- 'RATEPR
ADDRESS NEXT REGION
i.e. INCREMENT THE POINTER,
NEWREG
SPACE
ALLOCATION
EXCEEDED
YES
ET
NO
(4) COMPUTE TIME TO REACH NEXT
BOUNDARY
(5)
TO REACH
N
RETURN
NEXT
YES
Figure 8.
FLOW CHART OF THE
MIDDLE LEVEL OF THE
HIERARCHICAL
SCHEDULER (Part 1)
SPECIFIED
INTERVAL
NO
YE
GOTO 200
N
(6) EVALUATE BOUNDARY CONDITION
(7)
NO
ATTRACTIVE
ADD THE EQUALITY CONSTRAINT
AND THEN COMPUTE THE PRODUCTION
RATES TO TRACK ALONG THIS
BOUNDARY
HEDGING
GI
NO
GO
1
N
> 200!
(9) STORE LATEST VALUES OF
(a) PRODUCTION SURPLUS -- RXBDNP
(b) PRODUCT RATES
-RATEPR
Figure 8. FLOW CHART OF THE MIDDLE LEVEL
OF THE HIERARCHICAL SCHEDULER (Part 2)
INIPSY
,
IFEASlIB
;i
STATOT
DYNOUT
DEMAND
-I COMPAR
TOPTOPC
TOPCN1
N1
OLDEST
LOGMOV CDSPAC
PC-
* Indicates subroutines differing from
OUTPUT
[-PARTL D
those for hierarchical policy
Fig. A.I.1
SUBROUTINES FOR
ALTERNATE POLICIES
'TRHOLD
*Dummy
.-routine
TOPCON
TRHLD2
Creates group thresholds
T{CRAZY
-+- Intermediate
computations
for computing thresholds
C
N
1
*-
Indicates subroutines differing from or
not used in hierarchial policy
Figure A.I.2
SUBROUTINES USED WITH TOPCN1 MODULE
IN THE ALTERNATE POLICIES
Download