390 likes | 922 Views
Simulation Software. For discrete-event simulations, an environment designed to help the simulation builder must provide: The generation of random numbers.
E N D
For discrete-event simulations, an environment designed to help the simulation builder must provide: • The generation of random numbers. • The generation of random variates from a specified probability distribution - there are many distributions that correspond to real situations, and so one should expect a fairly large library. • Advancing simulation time. • Determining the next event and passing control to a (possibly user-defined) block of code to manage the event. • Managing lists of records. • Collecting output statistics and generating a report. Tools to format the report may be included. • Detecting error conditions.
All the previous bullets follow from our experience with setting up and running simulations. In the case of a "continuous simulation", a major problem is that the mathematical model may be continuous, but the computer model, by its very nature, must be discrete. Time, in continuous simulations, is managed differently from discrete event simulation - it usually advances in specified amounts or, in some cases, the amount varies depending on problems due to accuracy, if the problems can be related at run-time to the size of the time-step. An early, and justly famous, simulation environment was that provided by the Norwegian language SIMULA, credited with being the first object-oriented language. Other discrete-event simulation languages are GPSS (I.B.M., 1961) and SIMSCRIPT (Rand Corp., 1963). These have been around for many years - they were all in use by the mid 1960's- and have seen countless upgrades and modernizations.
Most of the older languages provide an interface made up of header files and libraries of special purpose functions, plus a language (sometimes derived from FORTRAN, or Modula, or C…, but designed to have the constructs and transfers of control that would be encountered in the domains to be simulated). Some of the implementations would allow more generality (e.g., multiple types of lists), user-defined records and comparison functions, etc.; some of the implementations may allow for non-deterministic execution, or parallel execution. The newer languages - post 1985 - have all tried to make use of graphical interfaces, both for output (the user can follow the progress of a simulation presented graphically - the early flight simulators were one example) and for input (where dialog boxes and interaction windows have replaced the static - and often human unreadable - files to be prepared by the user.
Advantages of Simulation Packages. We will compare the discussion in Law & Kelton with that appearing in Kobayashi's - they are separated by about 22 years, and should give us a sense of what has changed in between. Kobayashi: a) They provide a convenient representation of elements that commonly appear in simulation models; b) they expedite configuration changes of the system model; c) they provide an internal timing and control mechanism required to execute a simulation run; d) they facilitate collection of data and statistics on the aggregate behavior of the simulated system and production of reports in a proper format.
Law & Kelton: a) simulation packages provide most of the features needed to build a simulation model, resulting in decrease in programming time and decrease in project cost; b) they provide a natural framework for simulation modeling, since their basic modeling constructs are closer to the simulation than those in a general purpose programming language; c) simulations are easier to modify and maintain; d) they provide better error detection, since many potential errors are checked for automatically. No great changes, are there?
Advantages of General Purpose Environments. Kobayashi: a) you may not have access to a simulation package; b) nobody around you knows a simulation language and learning one would take too much time; c) debugging facilities in a simulation package may not be as sophisticated as those provided with a popular general purpose language; d) general purpose languages are more efficient - because they often have very good optimizing compilers; e) you may want to build special control (or data collection, or reporting) schemes in you simulator and no existing environment will permit you to do so.
Law & Kelton: a) most modelers know a programming language, but not a simulation package; b) efficiency of execution; efficiency of representation (see our having to use those constructs, regardless of whether another set of constructs would have been "better"); c) standard programming environments (C, C++) are much cheaper to acquire - the project cost, though, may be ultimately larger. Again, no surprises - very similar observations. One would tend to conclude that the use of simulation environments will ultimately be a "local choice", driven by many considerations, not all of them rational.
Something which does not seem to be discussed in any of the textbooks - it is, probably, not "serious" enough - is the field of computer games. In Kobayashi's time, computer games were rather limited - graphical interfaces were (for most of us on limited budgets) non-existent, and the PC was just beginning. There are now hundreds of computer games that can be described as simulations: flight simulators, race car simulators, city simulators, civilization simulators, fight and battle simulators. Some must support large amount of Physics, some must support legal and psychological frameworks, etc. The field of computer games is now worth many billions of dollars a year, and probably dwarfs the worth of most other "simulation uses" normally discussed in textbooks.
Pitfalls of Simulation. • Failure to have a well-defined set of objectives at the beginning of the study. • Failure to communicate with management throughout the course of the study. • Misunderstanding of simulation by customer. • Treating a simulation study as if it were mostly an exercise in programming. • Failure to have people with knowledge of simulation methodology and statistics on the modeling team. • Failure to collect good system data. • Inappropriate simulation software. • Inappropriate use of simulation software - misunderstanding functions that are inadequately documented.
Belief that easy-to-use simulation packages, requiring little or no programming, require a lower level of technical competence. Misuse of animation. Failure to account correctly for sources of randomness in the actual system. Using arbitrary distributions as input to the simulation. Analyzing output data from one run using formulas that assume independence. Doing just one "run", and concluding that's "true". Comparing alternative designs on the basis of one run each. Using the wrong performance measures.
Classification of Simulation Software. a) General Purpose vs Application-Oriented. b) Modeling Approaches: event-scheduling approach vs process approach. In the first, time "jumps" from the time of one event to the time of the next event, in the second, time actually passes - whatever that might mean, including the possibility that control will pass from one customer to another while the first customer is waiting. This basically means that procedures can be suspended at appropriate points and can be resumed when appropriate. This would require a multi-threaded system, or at least one where each customer has its own independent process.
c) Common Modeling Elements. System Type Entities Attributes Resources Queues Manufacturing Part Part number, due date Machines, workers Queues or buffers Communications Message Destination, message length Nodes, links Buffers Airport Airplane Flight number, weight Runways, gates Queues Insurance agency Application, claim Name, policy number, amount Agents, clerks Queues
Desirable Software Features. a) General Capabilities - including model flexibility, ease of use and ease of learning. b) Hardware and software considerations (e.g., Lisp Machines vs PCs - GENSYM) c) Animation - graphics support - concurrent vs post-processed. d) Statistical Features. e) Customer Support and Documentation (e.g., Threat Assessment Software). f) Output reports and plots.
General Purpose Simulation Packages. ARENA: http://www.sm.com/Univ/default.htm This is the package developed by one of the textbook authors. It is available in several version, one free (you have to buy the textbook - Simulation with Arena - about $65). It appears to be DEAD… EXTEND: ?? SIMSCRIPT II.5: http://www.caciasl.com/ You can follow the pointers for some description - with a fair number of pictures - of the modules available.
Object-Oriented Simulation Packages. GENSYM: http://www.gensym.com/contact/ Has an extensive package for process simulation. The company had a start about 20 years ago on Lisp Machines, managed to survive the demise of the “special purpose hardware”, and is now making a reasonable, although not rich living delivering process control programs and simulation studies. Much of the money seems to be in training people to use the software… MODSIM: http://faculty.erau.edu/korn/modsamples.html This has a multitude of programs in MODSIM, to cover a number of simulations. Attempts at finding a source for MODSIM failed - CACI Products Corp. does not list it as a product.
Application-Oriented Simulation Packages. http://www.automod.com/ Provides a number of case studies and pointers to web articles in the manufacturing field. http://cbl.leeds.ac.uk/nikos/tex2html/examples/concepts/node48.html Provides a substantial number of descriptions of various simulation and interactive animation packages. http://www.ecst.csuchico.edu/~mcleod/software.html This provides a catalog of packages and their distributors.
Web-based Simulation Packages. see: http://ms.ie.org/websim/survey/survey.html This provides a number of links to papers, surveys, discussions, etc. You may also do a web search on "Web-based simulation" to obtain pointers to commercial and non-commercial products. Advantages: you don't need to have anything in house, since the packages will reside on external servers. You may be able to obtain very high performance by distributing the computation on the web. Disadvantages: you don't have anything in house. Your work will be accessible to anyone who can "tap the web" - security may be a problem.
Open a Web Browser and find out how to search the Web for Web-Based Simulation. It should lead you to a number of web sites, some useful, some less so (this is a standard feature of web searches). Problem: based on the initial URL given for Web-based Simulation Packages, and on whatever else you found via a web search, write a short summary (a page) of the advantages and disadvantages of such packages. You may quote anyone you want, to whatever extent you want, as long as you reference your quote. You must also reference any materials you are using to support your claims. Just submitting one other person's statements will not be considered adequate; you must mention and use at least three different sources (beyond my own brief statements: repeating those without references will get you a zero).