Computers ind. En~n~ Vol.15, Nos 1-4, pp.104-112, 1988
cdf/BOSS:
0360-8352/88 $3.00+0.00 Copyright c 1988 Pergamon Press plc
Printed in Great Britain. All rights r e s e r v e d
A L a n g u a g e and M i c r o C o m p u t e r I m p l e m e n t a t i o n for D i s c r e t e S i m u l a t i o n
G. L. Curry, Departments
B. L. D e u e r m e y e r and R. M. F e l d m a n
of I n d u s t r i a l and A g r i c u l t u r a l Texas A & M U n i v e r s i t y C o l l e g e Station, T e x a s 77843
Engineering
Abstract tion of the editor, c o m p i l e r and r u n - t i m e c o m p o n e n t s into a single s y s t e m f a c i l i t a t e s modeling, debugging and analysis. The m o d e l e r can b u i l d a model, d e b u g it and e x e c u t e it w i t h o u t ever h a v i n g to access o p e r a t i n g s y s t e m commands or even leave the editor. B e g i n n i n g students are not i n t i m i d a t e d or c o n f u s e d b y this e n v i r o n m e n t and q u i c k l y get over the fear and a n x i e t y of d e a l i n g w i t h a new and
A discrete simulation modeling language and m i c r o c o m p u t e r environment is described. The l a n g u a g e e x t e n d s the w e l l - k n o w n b l o c k orient a t i o n to a full s t r u c t u r e d p r o g r a m m i n g language. The language was s p e c i f i c a l l y d e s i g n e d to support the n e e d s of e d u c a t i o n and this is a c c o m p l i s h e d by the s e l f - c o n t a i n e d environment, and the syntax and c a p a b i l i t i e s of the language. R e a l - t i m e a n i m a t i o n and user i n t e r r u p t c a p a b i l i t i e s e n h a n c e the l e a r n i n g p r o c e s s as well as the m o d e l i n g and a n a l y s i s process.
u n k n o w n system. More advanced u s e r s a p p r e c i a t e the u n i f i e d f r a m e w o r k b e c a u s e they are free to c o n c e n t r a t e on m o d e l i n g and analysis and not on s y s t e m level concerns.
1 Introduction The p u r p o s e of this a r t i c l e is to i n t r o d u c e cdf/BOSS, a new d i s c r e t e s i m u l a t i o n l a n g u a g e and microcomputer environment designed to s u p p o r t education, cdf/BOSS (Block O r i e n t e d ~ i m u l a t i o n System) is easy to use and p r o v i d e s s u f f i c i e n t p o w e r and f l e x i b i l i t y to s u p p o r t the v a r i e t y of topics that can be c o v e r e d in a first course in simulation. T h e s e include e l e m e n tary modeling, s o p h i s t i c a t e d m o d e l ing, s t a t i s t i c a l a n a l y s i s and c o m b i n a t i o n s all of t h e s e topics.
The l a n g u a g e p r o v i d e s both s i m u l a t i o n b l o c k c o m m a n d s (in the v e i n of GPSS [2] and SIMAN [I]) and an a l m o s t c o m p l e t e Pascal p r o g r a m m i n g structure. In this manner, r o u t i n e s i m u l a t i o n tasks are readily c a r r i e d out w i t h "blocks" while more a l g o r i t h m i c n o n - s i m u l a t i o n tasks are d i r e c t l y and simply p e r f o r m e d w i t h p r o g r a m m i n g statements. S u f f i c i e n t p r o g r a m m i n g cap a b i l i t i e s are a v a i l a b l e to s u p p o r t the c r e a t i v e d e s i r e s of the modeler. The language m a k e s use of n a m e d p a r a m e t e r s for s i m u l a t i o n b l o c k s so that the m e a n i n g of a p a r a m e t e r is c l e a r b e c a u s e the name is part of the command. However, c d f / B O S S r e m a i n s s u f f i c i e n t l y close to GPSS and S I M A N that m o v e m e n t b e t w e e n t h e s e languages and cdf/BOSS is not difficult.
c d f / B O S S is a s e l f - c o n t a i n e d m o d e l i n g and a n a l y s i s environment. The h e a r t of the s y s t e m is a full f e a t u r e d text e d i t o r w h i c h not only p r o v i d e s the f a c i l i t i e s for b u i l d i n g and m o d i f y i n g m o d e l s but also p r o v i d e s the c a p a b i l i t i e s for r u n n i n g s i m u l a t i o n models. Comm a n d s (editing, file m a n i p u l a t i o n and simulation) are a c c e s s e d with a u n i f i e d c o l l e c t i o n of function keys and p u l l d o w n menus. The integra-
The c o m p i l e r and run-time components of c d f / B O S S p e r f o r m all of the tasks n e c e s s a r y to execute a
104
Curry
model. Because the system is integrated, compiler errors leave t h e cursor in the vicinity of the point of error -- this along with the meaningful error messages r e p o r t e d by the compiler greatly simplify error diagnosis and correction. The run-time system provides both a real-time animation feature and a user interrupt capability. Animation makes it possible to monitor the dynamic behavior of the system being modeled; several of its capabilities are under user control. The interrupt system displays a menu with a wide range of commands including quit, print results, view entity lists, among others. Together, these two features enhance the learning process as well as facilitate model validation and interpretation. 2 The Modeling Language The cdf/BOSS modeling system is a block oriented language with discrete modeling constructs and a variety of programming statements. The discrete simulation capabilities essentially match those of the more popular block oriented languages, such as GPSS and SIMAN, while the (C or Pascal-like) programming constructs and expression flexibility facilitate more complex modeling within the natural framework of the system. The language also provides the capability to setup and control a simple animation feature which allows real-time observation of resources, gates, chains, queues and the system event chain dynamics while the simulation executes.
The language segments a model into three distinct categories: definitions, control statements, and model logic. The formal structure of a cdf/BOSS model is: PROGRAM DEFINITION CONTROL LOGIC END.
The segments must appear in the specified order following the segment keyword identifier. The definition segment is
et:
al. : cdf/B0SS
where all user defined variables are declared and initialized. Five types of variables are supported: (i) standard mathematical types: sequences, discrete and continuous intervals, arrays, strings, functions and reals; (2) entity types: e n t i t y pointers, attribute reals, and attribute arrays; (3) discrete simulation types: resources, queues, gates, chains; (4) statistical types: histograms, flowtime and variable value statistics, and distributions; and (5) statement labels. A key feature of cdf/BOSS is that all data constructs are treated in the same fashion. Simulation structures such as RESOURCES are declared and initialized exactly in the same manne~ as ARRAYS and other mathematical objects, cdf/BOSS also provides a simple mechanism for user-defined functions. The control segment consists of directives to control the execution of the simulation. Simulation length controls such as time and processed entity counts, statistical reset controls, random number seed initialization, and animation lists are all located within the control segment. A unique feature of the control segment is an executable logic section (EXITLOGIC) which is performed at the completion of each simulation run. In this logic, the control of multiple runs, statistics gathering over multiple runs, and other functions associated with the initialization and control of multiple simulations is provided. Essentially, only programming type statements, not simulation block commands can occur within the Exit Logic section of the Control Segment. The logic segment contains the simulation activity blocks (or commands), entity flow statements, and general programming statements. A variety of discrete simulation constructs such as entity creation and disposal, resource requests and returns, queues or waiting lists, and standard as well as user-defined statistical distributions are provided. In addition, useful programming statements such as IF/THEN/ELSE, WHILE, REPEAT/UNTIL,
105
106
Proceedings of the 10th Annual Conference on Computers & Industrial Engineering
FOR,
DOCASES
and P R I N T
are avail-
Server
: RESOURCE={Capacity=l};
able.
T h e c o m b i n a t i o n of a full c o m p l e m e n t of s i m u l a t i o n b l o c k s t a t e m e n t s a n d p r o g r a m m i n g statements enables structured programm i n g in t h e c o n t e x t of a b l o c k o r i e n t e d language. Thus, t h e adv a n t a g e s of s t r u c t u r e d p r o g r a m m i n g are c o m b i n e d in c d f / B O S S w i t h the s i m p l i c i t y of the b l o c k o r i e n t e d languages. A free-form named-par a m e t e r s y n t a x for s i m u l a t i o n blocks replaces the more common p o s i t i o n a l m e t h o d u s e d by S I M A N and GPSS. 2.1 D e f i n i t i o n
Segment
T h e d e f i n i t i o n s e g m e n t contains definitions and initializat i o n of all v a r i a b l e s u s e d in the model development. The general d e f i n i t i o n s y n t a x c o n s i s t s of an identifier, a c o l o n followed by a t y p e d e s i g n a t o r , an e q u a l s i g n and then the variable initialization: name
: TYPE
= initialization;
N a m e is a s t r i n g of up to 15 c h a r a c t e r s f o l l o w e d by an o p t i o n al s u b s c r i p t (x.5, x.0.5, etc.). A l l v a r i a b l e s , e x c e p t for r e a l s and functions, m u s t h a v e a t y p e designator. Simulation construct types, s u c h as RESOURCE, h a v e an i n i t i a l i z a t i o n s t r u c t u r e w h i c h is p r e d i c a t e d on t h e k e y - w o r d concept with standard default values. T h i s t y p e of i n i t i a l i z a t i o n is n o t o r d e r d e p e n d e n t and, therefore, is i n d i c a t e d b y enc l o s i n g t h e i n i t i a l i z a t i o n list in braces, { ), w h i l e m a t h e m a t i cal s t a t e m e n t s u s e the p a r e n t h e ses notation. For example, a t w o - d i m e n s i o n a l a r r a y is c o d e d in the form MyData
: ARRAY[<1,2>,<1,2,3>] = ((ii,12,13), (21,22,23)) ;
w h e r e the v a l u e s w i t h i n the a r r a y i n d i c a t e the data e n t r y index. Thus, M y D a t a [ l , 2 ] has the v a l u e 12. S i m u l a t i o n c o n s t r u c t s such as R E S O U R C E h a v e k e y - w o r d s init i a l i z e d as:
Other examples which t r a t e the l a n g u a g e syntax c a p a b i l i t i e s are:
illusand
x = 5; Q s e q : S E Q U E N C E = <1,2,4..6>; M y P o i n t e r . l : ENTITY; f(x,y) = 14x +23y^2; Data : H I S T O G R A M = ( Cells = 5, M i n V a l u e = 0, M a x V a l u e = i00); M y N a m e : Q U E U E = {Capacity = 3, D i s c i p l i n e = FIFO, H i s t o g r a m = Data); LABELS and A T T R I B U T E S are lists of b r a n c h i n g labels and e n t i t y variables, respectively. For example, i n c l u d i n g the following statements associates with all e n t i t i e s c r e a t e d in the s i m u l a t i o n the u s e r - d e f i n e d att r i b u t e s w i t h t h e i r initial values: A T T R I B U T E S = ( size = 0, s e g : ARRAY[<1,2,3>] = (2,5,3)); A t h i r d c o n s t r u c t of this form is the A L I A S d e f i n i t i o n w h i c h allows the m o d e l e r to give synonyms to any c d f / B O S S name. The c o n s t r u c t s and types a v a i l a b l e in t h e c d f / B O S S lang u a g e are listed in T a b l e 1 below. C o m p l e t e definitions, par a m e t e r s lists and d e f a u l t v a l u e s are not l i s t e d h e r e for brevity. 2.2 The L o g i c
Segment
T h e logic s e g m e n t consists of a s e q u e n c e of s i m u l a t i o n c o n s t r u c t s (blocks), and p r o g r a m statements, e a c h of w h i c h describes a particular instruction or c o u r s e of action. The r u n - t i m e s y s t e m e x e c u t e s these s t a t e m e n t s in the o r d e r specified, in c o n j u n c t i o n w i t h the data s t r u c t u r e s a n d parameters. S t a t e m e n t s can be e i t h e r simple or c o m p o u n d (a c o m p o u n d s t a t e m e n t is a list of s t a t e m e n t s e n c l o s e d w i t h i n b e g i n and end). Since m o s t p r o g r a m m i n g s t a t e m e n t s operate on s i n g l e statements, the c o m p o u n d s t a t e m e n t is the m e c h a n i s m for h a n d l i n g m u l t i p l e statements. The c d f / B O S S language c o n s i s t s of six b a s i c s t a t e m e n t categories:
Curry et al. : cdf/BOSS
Table
i: c d f / B O S S
DEFINITION
System
and Language
107
Summary
segment
N a m i n g C o n v e n t i o n s for all types: Simple : Name Indexed: N a m e . N u m b e r S i m u l a t i o n structures: RESOURCE QUEUE GATE CHAIN HISTOGRAM STATISTICS VARSTATISTICS DISTRIBUTION ENTITY ATTRIBUTES LABELS U s e r v a r i a b l e t y p e s (all m u s t be initialized): REAL ARRAY SEQUENCE INTERVAL STRING TEXTFILE D e f i n e u s e r functions: FUNCTION R e n a m i n g capability: ALIAS LOGIC
segment
ARRIVE SEIZE COPY LINK STARTSTAT SEARCH INTERRUPT FOR IF PRINT HALT System
simulation block statements CREATE SCHEDULE DEPART WAIT PREEMPT RELEASE COMBINE GATHER BUNDLE UNBUNDLE UNLINK SETGATE TESTGATE ENDSTAT REMOVE RESET programming statements WHILE REPEAT DOCASES GOTO GOSUB RETURN PRINTLN EJECTPAGE CLEARSCREEN ABORT
Attributes
Constants:
PI (=3.14159265), P o s I n f (= i0 to p o w e r N e g I n f (= - PosInf), I n t P o s I n f (=32000)
30),
Functions: sin(x) cos(x) tan(x) arctan(x) (angles in radians) exp(x) logl0(x) in(x) sqrt(x) sqr(x) abs(x) floor(x) (largest i n t e g e r <= argument) ceiling(x) (smallest i n t e g e r >= argument) sign(x) (=i.0 if positive, 0.0 if negative) CAPACITY CUMNUMBER CUMPRODUCTNT BLOCKTOTAL
USED CUMVALUE CUMPRODUCTVT BLOCKCOUNT
AVAILABLE CUMZEROS LASTTIME
RCURNUMBER MAXNUMBER
Variables: CLOCKTIME Internal
EVENTCHAIN
Entity Attributes: ENTITYNUMBER RESUMETIME WATCHCHAR
PREEMPTLEVEL
STATEMENT
Operators Arithmetic
: + * / ^ (exponentiation) max m i n (e.g. x m a x y) m o d (x m o d y is r e m a i n d e r of x/y) Relational operators : = <> < <= > >= Logical operators : or not and xor containment operators : in notin Conditional expressions: USE Iterative constructs : SUM PRODUCT MAX MIN ARGMAX ARGMIN
108
Proceedings of the 10th Annual Conference on Computers & Industrial Engineering
i. 2. 3. 4.
s i m u l a t i o n commands; a s s i g n m e n t statements; g o t o and g o s u b / r e t u r n ; c o n d i t i o n a l (if, docases) ;
5.
repetitive
6.
printing
(while, for, repeat/until); (print, println) ;
S t a t e m e n t s 2-6 are p a t t e r n e d a f t e r the syntax of c o m m o n p r o g r a m m i n g l a n g u a g e s such as Pascal and C. The simulation c o m m a n d s (I) are s i m i l a r to the m o d e l i n g s t a t e m e n t s of d i s c r e t e s i m u l a t i o n l a n g u a g e s such as GPSS and SIMAN. The general simulation c o n s t r u c t s y n t a x uses a c o m m a n d w o r d and a list of k e y w o r d p a r a m e t e r designators. P a r a m e t e r s not listed in a b l o c k r e c e i v e the s t a n d a r d d e f a u l t values. The s t a n d a r d b l o c k syntax form is: optional-label: COMMAND = ( Keyword = expression expression <,repeats>
);
To i l l u s t r a t e c o n s i d e r a simple a r r i v a l p r o c e s s w i t h a single c a p a c i t y r e s o u r c e and a probab i l i s t i c s e r v i c e time. A sample f r a g m e n t from a logic s e g m e n t for m o d e l i n g such a s y s t e m w o u l d look s i m i l a r to: A R R I V E ( Time = Expd(10) ); SEIZE { Name = server ); WAIT { Time = D u n i f o r m ( 8 , 1 6 ) ) ; R E L E A S E { Name = server ); DEPART ( };
i m m e d i a t e l y seize the r e s o u r c e are a u t o m a t i c a l l y q u e u e d in a d e f a u l t r e s o u r c e q u e u e in FIFO order. A n a m e d queue w i t h a u s e r - d e t e r m i n e d s e q u e n c i n g rule can be u s e d by i n d i c a t i n g in the R E S O U R C E d e c l a r a t i o n that a s p e c i a l i z e d queue is needed, via the Q U E U E parameter. A QUEUE d e c l a r a t i o n s t a t e m e n t is then used to s p e c i f y the n a m e d - q u e u e characteristics. c d f / B O S S uses r e g u l a r assignm e n t s t a t e m e n t s (similar to BASIC and FORTRAN) rather than assignm e n t blocks. A n i n t e r e s t i n g use of the a s s i g n m e n t statement is to store data into a H I S T O G R A M variable. This is a c c o m p l i s h e d by m e r e l y a s s i g n i n g the d e s i r e d v a l u e to the h i s t o g r a m name: such as Data = I0. The system finds the p r o p e r data cell in the h i s t o g r a m and increments the cell count. The cdf/BOSS system allows c h a n g i n g the attribute values of n o n a c t i v e entities t h r o u g h an E N T I T Y p o i n t e r variable. The S E A R C H (a list) c o m m a n d associates a s p e c i f i c e n t i t y with the E N T I T Y variable. For example the statement myPointer.l[size]
= 3;
will change the "size" a t t r i b u t e of the e n t i t y p o i n t e d to by m y P o i n t e r . l to the v a l u e 3.
Expd and D u n i f o r m are the e x p o n e n t i a l and d i s c r e t e u n i f o r m d i s t r i b u t i o n s y s t e m functions, respectively. S e r v e r is a res o u r c e and m u s t have b e e n de-
T a b l e 1 is a list of the s i m u l a t i o n c o m m a n d s and p r o g r a m m i n g s t a t e m e n t s a v a i l a b l e in the c d f / B O S S system. Most of these c o n s t r u c t s are s e l f - e v i d e n t with r e s p e c t to t h e i r g e n e r a l functions.
c l a r e d in the d e f i n i t i o n s e g m e n t and w o u l d be identical to the R E S O U R C E e x a m p l e g i v e n in S e c t i o n 2.1. The S E I Z E b l o c k requests the s e r v e r and the R E L E A S E b l o c k r e t u r n s the a l l o c a t e d units. The r e s o u r c e is h e l d for a s p e c i f i e d length of time b y the i n s e r t a t i o n of the W A I T c o m m a n d b e t w e e n the SEIZE and R E L E A S E statements. E n t i t i e s (customers) are c r e a t e d and s c h e d u l e d into the s y s t e m by the A R R I V E c o m m a n d and the D E P A R T c o m m a n d r e m o v e s them from the system. E n t i t i e s w h i c h cannot
c d f / B O S S p r o v i d e s a collection of iterative constructs: Sum, Product, Min, Max, Argmin, and Argmax. These constructs a l l o w the m o d e l e r to d e v e l o p s o p h i s t i c a t e d queue selection a n d / o r r e s o u r c e filling routines of t h e i r own. For example, the following s t a t e m e n t selects the r e s o u r c e w h i c h has the m i n i m u m n u m b e r of queued customers (used[Q.l] is a s y s t e m v a r i a b l e of the c u r r e n t n u m b e r of entities in the s t r u c t u r e named Q.I) from
Curry e•
a list of 4 resources queues named Q.i (for i = i, ..., 4): SEIZE
( Name = Q.Argmin ( used[Q.i] : i in ) };
The example problem in Section 4 illustrates a complete cdf/BOSS model and output. This example was chosen to demonstrate a variety of the language constructs. 3 cdf/BOSS System Environment The cdf/BOSS system is completely self contained and is build around a full featured text editor with pulldown menus. The system supports editing functions, file and printer routines, and access to the compiler and run-time subsystems. Output can be routed to the screen, printer, or to a file for later editing and inclusion into reports. The editor provides the environment in which models are developed as well as the means for activating the compiler/translator module and ultimately the run-time subsystem. The editor, MOR, is the interface for the collection of MicroOR systems (MicroLP, MicroNL, MicroDP and cdf/BOSS are the currently supported systems) of which cdf/BOSS is the discrete simulation module. Therefore, the same editor is used to interact all of these systems from a common base. The editor is setup to interface with all these systems and no operating characteristics need be changed to use any of the other systems. Once the compiler is invoked, the cdf/BOSS model is parsed and a sequence of encoded commands and programming statements are produced for execution by the run-time module. If a compile error is detected, a message is displayed, and the editor is reactivated with the cursor placed essentially at the point of the error. Run-time errors are noted, such as division by zero, the program statement number indicated, and then control is returned to the editor. Another very useful feature of cdf/BOSS is the on-line help
al.
: cdf/BOSS
system. When the F1 function key is pressed an overlay window appears on the screen containing a menu of available command constructs, programming statements, system functions, variables, etc. By typing in the appropriate keyword, modelers can trace their way to the proper construct, associated information and language syntax. Each construct within cdf/BOSS has an associated help file entry containing the definition, syntax, keywords and associated parameters, and an example illustrating the construct usage. The key sequence CTRL F1 activates a help menu system for the MOR environment. An aspect of the cdf/BOSS system that is useful for model development, particularly for beginning modelers, is the WATCHLIST animation feature. The modeler can provide in the control segment a list of queues, resources, gates, chains and the simulation future event chain, the contents of which, are of particular interest. Then by activating the WATCHLIST option, these contents will be displayed and updated as the model simulation progresses. The display can operate on a fixed time lapse or can be single stepped by the modeler. An individual character can be assigned to each entity so that specific entities can be followed via the animation as they proceed through the system. An interrupt feature activated by pressing the ESC key or by an entity executing an INTERRUPT command within the model, allows the modeler to observe various system entity lists. These lists are delineated by the WatchList setup and can include queues, resources, gates and chains. The View option of the interrupt facility allows the modeler to view various entity attributes. Other options within the interrupt feature include terminating the simulation, print out the current statistics data, change the animation watch option status and delay timing, etc.
109
Ii0
Proceedings of the lOth Annual Conference on Computers & Industrial Engineering
4 cdf/BOSS Example To i l l u s t r a t e the v e r s a t i l i t y of the c d f / B O S S l a n g u a g e and m i c r o c o m p u t e r implementation, cons i d e r m o d e l i n g a job shop c o n s i s t ing of t h r e e shops. Jobs arrive at the shop a c c o r d i n g to an e x p o n e n tial d i s t r i b u t i o n w i t h a m e a n of 3 time units. T h e r e are four possible job s e q u e n c e s t h r o u g h the shops w h i c h are d e f i n e d by the ARRAY, seq. The attribute, where, specifies the c u r r e n t l o c a t i o n of the job w i t h i n its sequence; the attribute, kind, d e f i n e s the specific s e q u e n c e for each job w h i c h is c h o s e n w i t h equal p r o b a b i l i t y from the four p o s s i b l e sequences. For simplicity, the job p r o c e s s i n g times are a s s u m e d to be e x p o n e n t i a l with m e a n s s p e c i f i e d by shop and g i v e n in the ARRAY, shopTime. The s i m u l a t i o n r e s u l t s are d i s p l a y e d in Figure i. The c d f / B O S S o u t p u t c o n s i s t s of the m o d e l l i s t i n g w i t h line n u m b e r s added to the logic s e g m e n t statements. T h e s e n u m b e r s are used to report the e n t i t y a c t i v i t i e s and r u n - t i m e e r r o r d i a g n o s t i c s by s t a t e m e n t number. Then these counts are d i s p l a y e d followed by r e s o u r c e and q u e u e statistics.
d y n a m i c p r o g r a m m i n g system; Mic r o L P - a linear b a s e d o p t i m i z a t i o n system, and M i c r o N L - a n o n l i n e a r p r o g r a m m i n g and search t e c h n i q u e s system. The c d f / B O S S system is the b a s i s of a f o r t h c o m i n g text on s i m u l a t i o n D i s c r e t e Simulation: F u n d a m e n t a l and M i c r o c o m p u t e r Support, Holden-Day, Inc. 6 References [i] Pegden, C. Dennis. 1984. I n t r o d u c t i o n to SIMAN. Systems M o d e l i n g Corp., State College, PA. [2] Schriber, Thomas, J. 1974. S i m u l a t i o n U s i n g GPSS. John W i l e y & Sons, New York.
Guy L. C u r r y is a P r o f e s s o r in the D e p a r t m e n t s of Industrial E n g i n e e r ing and A g r i c u l t u r a l Engineering. He r e c i e v e d the B.S. and M.S. d e g r e e s in m a t h e m a t i c s from the U n i v e r s i t y of O k l a h o m a and W i c h i t a S t a t e University, respectively, and a Ph.D. in i n d u s t r i a l e n g i n e e r i n g from The U n i v e r s i t y of Arkansas. His r e s e a r c h interests include s y s t e m s analysis, o p e r a t i o n s research and m o d e l i n g of biological systems. He has p u b l i s h e d articles in over 30 j o u r n a l s and is a m e m b e r of IIE, ORSA, TIMS and ASAE.
5 Conclusions The c d f / B O S S s y s t e m p r o v i d e s both the e n v i r o n m e n t and l a n g u a g e to m a k e it p a r t i c u l a r l y useful as an e d u c a t i o n a l system. It is easy e n o u g h to use for b e g i n n i n g s t u d e n t s and yet p r o v i d e s sufficient p o w e r and f l e x i b i l i t y to s u p p o r t the needs of a d v a n c e d m o d e l i n g and analysis. The rea l - t i m e a n i m a t i o n and u s e r - i n t e r rupt c a p a b i l i t i e s also f a c i l i t a t e learning how discrete simulation s y s t e m s operate, h o w the s y s t e m b e i n g m o d e l e d functions, as well as d e b u g g i n g models, c d f / B O S S is a m o n g the first p r o f e s s i o n a l systems d e s i g n e d b o t h for ease of use and flexibility. The c d f / B O S S s y s t e m is a m e m b e r of a family o p e r a t i o n s r e s e a r c h / m a n a g e m e n t s c i e n c e oriented m i c r o c o m p u t e r s y s t e m s g e n e r a l l y r e f e r r e d to as MicroOR. The o t h e r s y s t e m s are M i c r o D P - a d i s c r e t e
Bryan L. D e u e r m e y e r is a Professor of I n d u s t r i a l Engineering. He r e c e i v e d a B.A. in c h e m i s t r y from the U n i v e r s i t y of Minnesota, and an M.S. and Ph.D. in industrial e n g i n e e r i n g from N o r t h w e s t e r n University. He has also served on the f a c u l t y of the K r a n n e r t G r a d u a t e School of M a n a g e m e n t at Purdue University. His r e s e a r c h interests are in i n v e n t o r y control, operations r e s e a r c h and c o m p u t e r s c i e n c e r e l a t e d to m o d e l i n g and analysis, and has p u b l i s h e d in m a n y p r o f e s sional j o u r n a l s on these topics. He is a m e m b e r of IIE, ORSA, TIMS, S i g m a Xi and is a r e g i s t e r e d P r o f e s s i o n a l E n g i n e e r in Texas.
R i c h a r d M. F e l d m a n is a Professor on I n d u s t r i a l Engineering. He r e c e i v e d the B.A. and M.S. d e g r e e s in m a t h e m a t i c s from Hope College
Curry et al. : cdf/BOSS
mathematical and biological modeling. H e h a s p u b l i s h e d w i d e l y in many professional j o u r n a l s a n d is an A s s o c i a t e E d i t o r of O P e r a t i o n s Research. H e is a m e m b e r of IIE, O R S A a n d T I M S a n d is a r e g i s t e r e d Professional E n g i n e e r in T e x a s .
and Michagan State University, respectively. He a l s o r e c e i v e d a n M.S. in i n d u s t r i a l e n g i n e e r i n g from Ohio University a n d a Ph.D. in industrial engineering from Northwestern University. His research i n t e r e s t s a r e in s t o c h a s t i c p r o cesses, operations research, and
cdf/BOSS
Example
Model
Output
For A Simple
cdf/BOSS Date:
Iii
Job
Shop
1.00
2/12/88
Time:
19:09:01
B:jobshop.dse MODEL DESCRIPTION **************************************************** PROGRAM " A simple job shop example" DEFINITION Attributes = { W h e r e = i, K i n d = 0 ); Seq : Array[ , ] = ( (3,1,2,1,0) ,(1,2,3,2,1) ,(2,1,2,3,1)
,(3,1,2,0,0)
);
ShopTime : A r r a y [ < i . . 3 > ] = (5.0, 3.5, 6.1); Shop.l:Resource = { C a p a c i t y = 2); Shop.2:Resource = ( C a p a c i t y = i); Shop.3:Resource = ( C a p a c i t y = 3); M a x S t e p s = 5; s t i m e = i00; LABELS = ( thru); CONTROL StopTime = stime; S e e d = 1111; WatchList = { Shop.l:'l', Shop.2:'2', Shop.3:'3' ); WatchStatus = off; LOGIC [ i] ARRIVE ( T i m e = expd(3) ); Kind = Duniform(l,4) ; [ 2] [ 3] WHILE W h e r e in [ l . . M a x S t e p s ] DO [ 4] BEGIN [ 5] IF S e q [ K i n d , W h e r e ] = 0 T H E N G O T O Thru; [ 6] SEIZE ( Name =Shop. Seq[Kind,Where],
1 ); [ v] Where]])
[
WAIT
( Time
= Expd(ShopTime[Seq[Kind,
RELEASE
{ Name
=Shop.
8]
[ 9] [ 10] Thru:
[ 12] [ 13]
=
Units
=
};
1 };
[ ii]
Units
END.
Where = Where END; DEPART{};
+ i;
Seq[Kind,Where],
112
P r o c e e d i n g s of the 10th Annual Conference on Computers & I n d u s t r i a l
Simulated Stmt 1 2 3 4 5 6 7 8 9 i0
Line 1 2 3 5 5 6 7 8 9 ii
THRU
..................... SHOP. 1.0 Capacity Current Units 2 2 Capacity Inf
Capacity Inf
Capacity Inf
Average Units 2
Average Units 3
Default Queue Current Number 0
.................... MAXSTEPS = STIME =
Global 5.00 i00.00
C o m p i l e time: 3.30 Run time : 8.78 Total memory available Memory used by model Maximum dynamic memory Total memory used
Average Time 3.02
Average Number 9.01
Average Number 1.61
Statistics Maximum Number 1
Average Time 4.91
Average Number 3.59
Average Number 0.75
Statistics Maximum Number 24
Total 40 39 128 125 7 118 93 89 89 i0
Current 1 0 0 0 0 25 4 0 0 i0
.......................
Average Number 1.82
Statistics Maximum Number i0
Average Units 1
Default Queue current Number 19
SHOP. 3.0 Capacity Current Units 3 1
i00.00 Information Name ARRIVE ASSIGNMENT WHILE IF GOTO SEIZE WAIT RELEASE ASSIGNMENT DEPART
Resources
Default Queue Current Number 6
SHOP. 2.0 Capacity Current Units 1 1
time
Block Label
Average Time 5.95
Average Number 0.07
Variables
(Secs.) (Secs.) : 296170 : 6690 used: 4908 : 11598
Total Number 39
Maximum Number 2
Average Time 11.23
Total Number 38
Total Number 26
Maximum Number 1
Average Time 40.97
Total Number 41
Total Number 28
Maximum Number 3
Average Time 1.36
Total Number 5
........................
Engineering