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