Question? Leave a message!




Simulation Software

Simulation Software
Chapter 4 Simulation Software Banks, Carson, Nelson Nicol DiscreteEvent System Simulation„„„„„„„„„ ………… „„ Outline Outline and and Purpose Purpose Discuss the history of simulation software. Discuss features and attributes of simulation software, organized into three categories: General Generalpurpose purpose p programming rogramming languages languages, Flexible and familiar. Well suited for learning DES principles and techniques e.g., C, C++, and Java. Simulation programming language, TM ® ® e.g., GPSS/H , SIMAN V and SLAM II . Simulation environment Good for building models quickly Provide builtin features (e.g., queue structures) Graphics and animation provided E E.g g.:: Arena Arena, Automod Automod,… 2History History o of f S Simulation imulation Software Software 3…………… „„„ History History o of f S Simulation imulation Software Software 1995 60 The Period of Search Search for unifying concepts and the development of reusable routines to facilitate simulation. Mostly conducted in FORTRAN 1961 75 The Advent Appearance of the forerunners of simulation programming languages languages (SPLs (SPLs.) ) The first process interaction SPL, GPSS was developed at IBM 1966 70 The Formative Period Concepts were reviewed and refined to promote a more consistent representation of each language’s worldview Sources: Nance (1995) and panel discussion at the 1992 Winter Simulation conference (Wilson, 1992). 4……………………… „„„ History History o of f S Simulation imulation Software Software 1971 78 The Expansion Period Major Major advances advances in in GPSS GPSS came came from from outside outside IBM IBM GPSS/NORDEN, a pioneering effort that offered an interactive, visual online environment (in Norden Systems.) GASP added support for the activityscanning worldview and event scheduling scheduling w worldview orldview (at (at P Purdue.) urdue.) 1979 86 The Period of Consolidation and Regeneration Beginnings of PSLs written for, or adapted to, desktop computers and microcomputers. Two Two m major ajor descendants descendants o of f G GASP ASP appeared: appeared: SLAM SLAM II II and and SIMAN SIMAN (provide multiple modeling perspectives and combined modeling capabilities). 1987 – Now The Period of Integrated Environments G Growth th of f SPL SPLs on th the personall computter and d t th he emergence off simulation environments with graphical user interfaces, animation and other visualization tools. Recent advancements have been made in webbased simulation. Sources: Nance (1995) and panel discussion at the 5 1992 Winter Simulation conference (Wilson, 1992).…………… „ Selection Selection of of Simulation Simulation Software Software Advice when evaluating and selecting simulation soft ftware: Consider the accuracy and level of detail obtainable, ease of learning, vendor support, and applicability to your applications. Execution speed is important. Beware of advertising claims and demonstrations. Ask Ask tthe he vendor vendor to to solve solve a a small small v version ersion of of your your problem. problem. 6„„„„„ Selection Selection simulation simulation Software Software Model building feature Runtime environment Animation of lay yout features Output features Vendor supp pport and p product documentation 7„„„„„„„„„„„„„ Model Model building building feature feature Modeling worldview IInputt d datta anallysiis capabilit bility Graphical model building Conditional routing Simulation programming Syntax Input Input flexibility flexibility Modeling conciseness Randomness Si Specialliized d componentts and d ttempllattes Userbuilt objects Interface with general programming language 8„„„„ Runtime Runtime environment environment Execution Speed Model size; number of variables and attributes Interactive debugger Model status and statistics 9„„„„„„„„„„„„ Animation Animation of of layout layout features features Type of animation It Import ddrawiing andd ob bjjectts ffilile Dimension Movement Quality of motion Libraries of common objects Navigation Navigation Views Display step SSl electtb ablle ob bjjectts Hardware requirments 10… „„„„„„ Output Output features features Op ptimization Standardized Report Statistical Statistical A Analysis nalysis Business Graphic File Export Database 11„„„„„„„ Vendor Vendor support support and and product product documentation documentation Training Documentation Help sy ystem Tutorials Supp pport Upgrades, maintenance Track Track report report 12……… „ Selection Selection of of Simulation Simulation Software Software Advice when evaluating and selecting simulation soft ftware: Beware of “checklists” with “yes” and “no” as the entries, e.g. many packages claim to have a conveyor entity, however, implementations have considerable variation and level of fidelity. Determine whether the simulation package and language are sufficiently powerful to avoid having to write logic in any external language. Beware of “no programming required,” unless either the package is a nearperfect fit to your problem domain, or programming is possible with the supplied blocks, nodes, or processflow diagram. 13………………… „„ An An Example Example Simulation Simulation The checkout counter: a typical singleserver queue The simulation will run until 1000 customers have been served. Interarrival times of customers Exp(4.5 min). Service times are ((p appprox.) ) Normal( (3.2 min, 0.6 min) ). When the cashier is busy, a queue forms with no customers turned away. Manual Manual simulation simulation in in Examples Examples 3 3..3 3 and and 3 3..4 4.. Two events: the arrival and departure events (logic illustrated in Figures 3.5 and 3.6.) This example is used to illustrate simulations in Java, GPSS/H and SSF in the following slides. 14Global Global View View     Customer being served   Arriving customer (in server)   Server   Customers are waiting Departing customer System to be served (in queue) 15Event Eventscheduling/time scheduling/timeadvance advance algorithm algorithm 16…… „„„„„ Simulation Simulation in in Java Java Java is widely used programming language that has bbd een used exttensiivelly iin siimullattiion. It does not provide any facilities directly aimed at aiding the the simulation simulation analyst. analyst. The runtime library provides a randomnumber generator. It supports modular construction of large models. Simulation libraries such as SSG alleviate the development burden. Provides Provides access access to to standardized standardized s simulation imulation ffunctionality unctionality and and hide hide lowlevel scheduling minutiae. 17„„„„„„„„„„„„„ …… „ Simulation Simulation in in Java Java Discreteevent simulation model written in Java contains the following following :: Basic components: System state Entities and attributes Sets Events Activities Delay ys Common components (when organizing model in a modular fashion by using methods): Clock Initialization Initialization m method ethod Mintime event method Event methods Randomvariate generators Main program Report generator. 18„ Simulation in in Java: Java: The overall structure of Java simulation simulation is: is: 19„ SingleServer Queue Example : Si Simullati tion iin J Java The overall structure structure of of Java Java simulation structure of the grocery checkout counttl er example: 20„ SingleServer Queue Example Simulation in Java The main program: 21The The C Checkout heckout Counter: Counter: Variables Variables QueueLength ,NumberInService System state CustomersFCFS queue of customers Entity attributes and set FutureEventList Future event List MeanInterArrivalTime, MeanServiceTime Activity durations MeanInterArrivalTime, MeanServiceTime, SIGMA standard Input parameters deviation, TotalCustomers (The stopping criterion) Clock Simulation variables LastEventTime ,TotalBusy, Max QueueLength, Statistical SumResponseTime, NumberOfDepartures ,LongService who accumulators sp pends 4 or more minutes RHO=BusyTime/Clock Proportion of time server is busy Summary statistics AVGR average response time ,PC4 proportion of customers 22 who spent 4 or more minutesThe Checkout Counter: Functions and Mt Methhd ods exponential (mu) Functions normal (mu,SIGMA) Initialization ProcessArrival Methods ProcessDeparture ProcessDeparture Rep portGeneration 23„ SingleServer Queue Example Simulation in Java Structure of the main program: class Sim // Class Sim variables public static double Clock, MeanInterArrivalTime, MeanServiceTime, SIGMA, LastEv LastEventTime entTime, TotalBusy, MaxQueueLength, SumResponseTime; public static long NumberOfCustomers, QueueLength, NumberInService, TotalCustomers, NumberOfDepartures, LongService; publ blic ffl inal static int arrivall = 1; public final static int departure = 2; public static EventList FutureEventList; public public static static Queue Queue Customers Customers; ; public static Random stream; … continued on next slide … 24„ SingleServer Queue Example Simulation in Java Structure of the main program (continued): … continued continued from from last last slide slide … public static void main(String argv) MeanInterArrivalTime = 4.5; MeanServiceTime = 3.2; SIGMA = 0.6; TotalCustomers = 1000; long seed =1000; //Long.parseLong(argv0); stream = new Random(seed); // initialize rng stream FutureEv FutureEventList entList = = new new Ev EventList entList(); (); Customers = new Queue(); Initialization(); // Loop until first "TotalCustomers" have departed while(NumberOfDepartures TotalCustomers ) Event evt=(Event)FutureEventList.getMin(); // get imminent event FutureEventList.dequeue(); // be rid of it Clock = evt.gettime(); // advance simulation time if if( ( evt evt. .get gettype type() () == arriv arriva all ) ) ProcessArriv ProcessArriva all( (evt evt); ); else ProcessDeparture(evt); ReportGeneration(); 25 „ SingleServer Queue Example Simulation in Java The initialization method: 26„ SingleServer Queue Example Simulation in Java Structure of the initialization method: // seed the event list with TotalCustomers arrivals public static void Initialization() Clock = 0.0; QQg ueueLength = 0; ; NumberInService = 0; LastEventTime = 0.0; TotalBusy = 0 ; MaxQueueLength = 0; SumR SumResponse esponseT Tiim me e = = 0 0; ; NumberOfDepartures = 0; LongService = 0; // create first arrival event Event evt = new Event(arrival, exponential( stream, MeanInterArrivalTime)); FutureEventList.enqueue( evt ); 27„ SingleServer Queue Example Simulation in Java The arrival event method: 28……… „ SingleServer Queue Example Simulation in Java Structure of the arrival event method: UUdt pdate server sttattus Collect statistics Schedule next arrival public static void ProcessArrival(Event evt) Customers.enqueue(evt); QueueLength++; // if the server is idle, fetch the event, do statistics // // and put into service and put into service if( NumberInService == 0) ScheduleDeparture(); else TotalBusy += (Clock LastEventTime); // server is busy // adjust max queue length statistics if (MaxQueueLength QueueLength) MaxQueueLength = QueueLength; // schedule the next arrival Event nextarrival = new Event(arrival, Clock+exponential(stream, MeanInterArrivalTime)); FutureEv FutureEventList entList. .en enqueu queue e( ( next nextarriv arriva all ); ); LastEventTime = Clock; 29„ SingleServer Queue Example Simulation in Java The departure event method: 30… „ SingleServer Queue Example Simulation in Java Structure of the departure event method: Ob Obtaiin th he jjob b at th he h head d off th he queue public static void ScheduleDeparture() double ServiceTime; // get the job at the head of the queue while (( ServiceTime = normal(stream, MeanServiceTime, SIGMA)) 0 ); Event depart = new Event(departure,Clock+ServiceTime); FutureEventList.enqueue( depart ); NumberInService = 1; QueueLength; … continued on next slide … 31……… „ SingleServer Queue Example Simulation in Java Structure of the departure event method (continued): Gh Get the d descriiptiion off ffiiniish hiing customer Schedule departure of the next customer if queue is not emptied Collect statistics … continued from last slide … public static void ProcessDeparture(Event e) // get the customer description Eventfh finishedd = ( (Event) ) C Customers.d dequeue() (); // if there are customers in the queue then schedule // the departure of the next one if( QueueLength 0 ) ScheduleDeparture(); else else Numbe Number rI In nSe Service rvice = 0 0; ; // measure the response time and add to the sum double response =(Clock finished.gettime()); SumResponseTime += response; if( response 4.0 ) LongService++; // record long service T To otalBusy talBusy + += ( (Clock Clock LastEv LastEventTime entTime ); ); NumberOfDepartures++; LastEventTime = Clock; 32„ SingleServer Queue Example Simulation in Java Report generator: 33„ SingleServer Queue Example Simulation in Java Structure of the report generator: public static void ReportGeneration() double RHO = TotalBusy/Clock; double AVGR = SumResponseTime/TotalCustomers; double double PC PC4 4 = = (( ((double double) )LongService LongService)/ )/T To otalCustom talCustome ers rs; ; System.out.println( "SINGLE SERVER QUEUE SIMULATION GROCERY STORE CHECKOUT COUNTER "); S System.out.printlln( ( " "\ \tMEAN INTERARRIVAL TIME " " + MeanInterArrivalTime ); System.out.println( "\tMEAN SERVICE TIME " + MeanServiceTime ); Sy Sys st te em m. .out out. .pri prin ntl tln n( ( "\ \tST tSTA ANDARD DEVIA NDARD DEVIAT TION OF ION OF SERVIC SERVICE E TIMES TIMES “ + SIGMA ); … continued on next slide … 34„ SingleServer Queue Example Simulation in Java Structure of the report generator (continued): … continued from last slide … System.out.println( "\tNUMBER OF CUSTOMERS SERVED " + +Tt TotallCCust tomers ) ); System.out.println(); System.out.println( "\tSERVER UTILIZATION “ + RHO ); SSt ystem.out t.priit ntlln( ( " "\ \tMAXIMUM LINE tMAXIMUM LINE LENGTH LENGTH " + MaxQueueLength ); System.out.println( "\tAVERAGE RESPONSE TIME " + AVGR + " MINUTES" ); St System.out t.prit intlln( ( " "\ \tPROPOR tPROPORT TION WHO SPEND ION WHO SPEND FOUR FOUR " ") ); System.out.println( "\t MINUTES OR MORE IN SYSTEM " + PC4 ); System.out.println( "\tSIMULATION RUNLENGTH " " + + Cl Clock k + + " MINUTES" " MINUTES" ) ); System.out.println( "\tNUMBER OF DEPARTURES " + TotalCustomers ); 35 „ SingleServer Queue Example Simulation in Java Sim class methods to generate exponential and normal random variates: variates: public static double exponential(Random rng, double mean) return meanMath.log( rng.nextDouble() ); public static double SaveNormal; public public static static int int NumNormals NumNormals = = 0 0; ; public static final double PI = 3.1415927 ; public static double normal(Random rng, double mean, double sigma) double ReturnNormal; // should we generate two normals if if( (NNN umNormalls == 0 0 ) ) double r1 = rng.nextDouble(); double r2 = rng.nextDouble(); ReturnNormal = Math.sqrt(2Math.log(r1))Math.cos(2PIr2); Sa Sav ve eNormal Normal = Math Math. .sqrt sqrt( (2 2Math Math. .log log( (r r1 1)) ))Math Math. .si sin n( (2 2PI PIr r2 2); ); NumNormals = 1; else NumNormals = 0; ReturnNormal = SaveNormal; return ReturnNormalsigma + mean ; 36… „ SingleServer Queue Example Simulation in Java The output: SINGLE SERVER QUEUE SIMULATION GROCERY STORE CHECKOUT COUNTER MEAN INTERARRIVAL TIME 4.5 MEAN MEAN SERVICE SERVICE TIME TIME 33.22 STANDARD DEVIATION OF SERVICE TIMES 0.6 NUMBER OF CUSTOMERS SERVED 1000 SERVER UTILIZATION 0.7175 MAXIMUM LINE LENGTH 7.0 AVERAGE RESPONSE TIME 6.7358 MINUTES PROPORTION WHO SPEND FOUR MINUTES OR MORE IN SYSTEM 0.675 SIMULATION RUNLENGTH 4455.02 MINUTES NUMBER NUMBER OF OF DEPARTURES DEPARTURES 1000 1000 Note: Most of the output statistics are estimates that contain rand dom error. 37……………… „„„ Simulation Simulation in in GPSS GPSS GPSS is a highly structured, specialpurpose simulation programming programming language language. Based on the processinteraction approach. Oriented toward queueing systems. Use of block diagram: Provides a convenient way to describe the system. With With over over 40 40 standard standard blocks blocks. Blocks represents events, delays and other actions that affect transaction flow. Block Block d diagram iagram is is converted converted tto o b block lock statements statements, c control ontrol statements are added, and result in a GPSS model. 38……… „„ Simulation Simulation in in GPSS GPSS st The 1 version was released by IBM in 1961. GPSS/H is the most widely used version today. Released in 1977 Flexible yyp et powerful. TM The animator is Proof Animation . 39SingleServer Queue Example Simulation in GPSS/H Bii Beginning off Random data variable, collection exponentially distributed Customer Customer captures cashier resource Random variable, Customer gives up normally the use of the distributed distributed f facilit ility 40„ SingleServer Queue Example Simulation in GPSS/H First, define ampervariables. SIMULATE Define Ampervariables INTEGER LIMIT REAL REAL IA IAT T,MEAN MEAN,STDEV STDEV,COUNT COUNT LET IAT=4.5 LET MEAN=3.2 LET STDEV=.6 LET LET LIMIT LIMIT=1000 1000 41„ SingleServer Queue Example Simulation in GPSS/H Write input data to file and provide formatting information. W Wr rite ite I Input nput Data Data to to File File PUTPIC FILE=OUT,LINES=5,(IAT,MEAN,STDEV,LIMIT) Mean interarrival time . minutes Mean Mean service service ttime ime . minutes minutes Standard deviation of service time . minutes Number of customers to be served 42„„ SingleServer Queue Example Simulation in GPSS/H GPSS/H block section description and inputs. START control statement controls simulation execution. GPSS/ GPSS/H H Block Block Section Section GENERATE RVEXPO(1,IAT) Exponential arrivals QUEUE SYSTIME Begin response time data collection QUEUE LINE Customer joins waiting line SEIZE SEIZE CHECKOUT CHECKOUT Bi Begin ch heck koutt att cashh regiistter DEPART LINE Customer starting service leaves queue ADVANCE RVNORM(1,MEAN,STDEV) Customer's service time RELEASE CHECKOUT Customer leaves checkout area DEPART SYSTIME End resp ponse time data collection TEST GE M1,4,TER Is response time GE 4 minutes BLET COUNT=COUNT+1 If so, add 1 to counter TER TERMINATE 1 ST STAR ART T LIMIT LIMIT Simulate Simulate for for required required number number 43„ SingleServer Queue Example Simulation in GPSS/H Write desired output data to file OUT. Write Customized Output Data to File PUTPIC FILE=OUT,LINES=7,(FR(CHECKOUT)/1000,QM(LINE), QT(SYSTIME),COUNT/N(TER),AC1,N(TER)) Server utilization . Maximum line leng gth Average response time . minutes Proportion who spend four minutes . or more in the system Simulation runleng gth . minutes Number of departures END 44„ SingleServer Queue Example Simulation in GPSS/H Sample output report: Mean interarrival time 4.50 minutes Mean service time 3.20 minutes Standard deviation of service time 0.60 minutes Number of customers to be served 1000 Server utilization 0.676 Maximum line length 7 Average response time 6.33 minutes Proportion who spend four minutes 0.646 or more in the system S Simulation runlength 4767.27 minutes Number of departures 1000 45…………………… „„ Simulation Simulation in in SSF SSF The Scalable Simulation Framework (SSF) is an Application Program Program Interface Interface (API) (API) Describes a set of capabilities for objectoriented, processview simulation. The API is sparse and allows implementations to achieve high performance, e.g. on parallel computers. A widely used base, particularly in network simulation by using the addon framework SSFNet. SSF API defines 5 base classes: Processes: impp( lements threads of control (where the action method contains the execution body of the thread.) Entity: describes simulation objects. inChannel inChannel and and outChannel outChannel:: communication communication endpoints endpoints. Event: defines messages sent between entities. 46………… „ SingleServer Queue Example Simulation in SSF SSQueue is a class that contains the whole simulation experiment: experiment: class SSQueue extends Entity Defines experimental private static Random rng; constants. public static final double MeanServiceTime = 3.2; publi blic sttati tic fi finall d doubl ble SIGMA SIGMA = 0 0.6 6; Contains SSF public static final double MeanInterarrivalTime = 4.5; communication public static final long ticksPerUnitTime = 1000000000; public long generated=0; endpoints. ppg ublic Queue Waiting;; Defines Defines an an inner inner outChannel out; class, arrival. inChannel in; public static long TotalCustomers=0, MaxQueueLength=0, T To otalServiceT talServiceTime= ime=0 0;; public static long LongResponse=0, umResponseTime=0, jobStart; class arrival long id, arrivaltime; public arrival(long num, long a) id=num; arrivaltime = a; 47 … continued on next slide………… „ SingleServer Queue Example Simulation in SSF Arrival is an SSF process: … continued from last slide… Stores the identity of entity class Arrivals extends process private Random rng; Creates a private private SSQueue SSQueue owner; owner; random randomnumber number public Arrivals (SSQueue owner, long seed) generator, super(owner); owner = owner; rng = new Random(seed); Generates and enqueues enqueues a a new new public boolean isSS( imple()) return true; arrival, then public void action() blocks for an inter if ( generated++ 0 ) // put a new Customer on the queue with the present arrival time arrival time. int int Size Size = owner owner.W .Waiting.numElements(); aiting.numElements(); owner.Waiting.enqueue( new arrival(generated, now())); if( Size == 0) owner.out.write( new Event() ); // signal start of burst waitFor(owner.d2t( owner.exponential(rng, owner owner.MeanInterarrivalT MeanInterarrivalTime)) ime)) ); ); 48………… „ SingleServer Queue Example Simulation in SSF Server process: Thi This process iis call lled d wh hen a jjob b h has complletted d serviice or b by a siignall from the arrival process. Update statistics. Customer Customer is is dequeued dequeued from from the the waiting waiting list list o or r tthe he process process s suspends uspends if if no no customer was waiting. class Server extends process private Random rng; private SSQueue owner ; private arrival inservice; private long servicetime; public Server(SSQueue owner, long seed) super(owner); owner = owner; rng = new Random(seed); public boolean isSimple() return true; … continued on next slide… 49„ SingleServer Queue Example Simulation in SSF Server process (continued): … continued continued from from last last slide slide… public void action() // if inservice is not null, we entered because of a job completion if( inservice = null ) owner.TotalServiceTime += servicetime; long insystem = (now() inservice.arrivaltime); owner.SumResponseTime += insystem; if( owner.t2d(insystem) 4.0 ) owner.LongResponse++; inservice = null; if( if( o owner wner.MaxQueueLength .MaxQueueLength owner owner.W .Waiting.numElements() aiting.numElements() + 1 1 ) ) owner.MaxQueueLength = owner.Waiting.numElements() + 1; owner.TotalCustomers++; if( owner.Waiting.numElements() 0 ) ii inservice = ( (arriivall))owner.W Waiititing.d dequeue( ()); servicetime = 1; while ( servicetime 0.0 ) servicetime = owner.d2t(owner.normal( rng, owner.MeanServiceTime, owner.SIGMA)); waitFor(( servicetime ) ); else waitOn( owner.in ); // we await a wakeup call 50 „„ Simulation Simulation in in SSF SSF SSF bridges the gap between models developed in pure Java and and models models developed developed in in languages languages specifically specifically designed designed for for simulation. It also provides the flexibility offered by a generalprogramming language, yet has essential support for simulation. 51……… „„„„„ Simulation Simulation Software Software All the simulation packages described in later subsections run on a PC under under Microsoft Microsoft W Windows indows 2000 2000 or or XP XP. Common characteristics: Graphical user interface, animation A Auttomati ticall lly coll llectted d outtputts. Most provide statistical analyses, e.g., confidence intervals. All packages considered in this chapter take the processinteraction world ldviiew, a ffew allso allllow eventtschhdl eduliing mod dells and d miixed d discretecontinuous models. For animation, some emphasize scale drawings in 2D or 3D; others emphhi asize iiconiictti ype animatition. Almost all offer dynamic business graphing, e.g., time lines, bar charts and pie charts. 52…………… „„„„„„ Trends Trends in in Simulation Simulation Packages Packages Highfidelity simulation Highaccuracy simulation of complex systems Data exchange standards SiSimullattiion iinputt//tt output can bbe iintterffacedd tto othther packkages Distributed (client/server) computing support Large Large organization/wide organization/wide area area collaboration collaboration ( (e e.g g., across across LAN LAN, IInternet) nternet) General purpose simulations vs. specialized simulations simulations Do it once, make it reusable Richer object libraries/reusable block sets Multiple computer simulations to accelerate 53 simulations………………………… „„„„„ Implementation Implementation Directions Directions Top Down Defff ine high level structure first, ffill in details Nothing is working until the details are done Bottom Up Define the details first, stitch them together Interfaces will change as more details are defined Straight through Start at system input, progress through to final output (or vice versa) Outside In Front and back interfaces are defined first,,, interior details later, meet in middle Pieces may not join at the center properly Inside Out Inner Inner connections connections are are c completed ompleted, outer outer pieces pieces are are added added There is something to test from the beginning 54………………… „„„ Simulation Simulation Software Software (Not (Not discussed discussed iin n tthe he book) book) OpNet Modeler/IT Guru graphical modeling of complex networks Matlab/SIMULINK block diagram focus focus on scientific/technical applications rih ich sett off B Bllock ksetts/ /TToolblboxes MathCAD equati tionbbd ased work ksh heetts includes symbolic programming (e.g., s simp plificat catio on/e /expa pans sio on o of equat equatio ons s) ) 55………………………… „ Simulation Simulation Software Software cntd. cntd. Software package discussed: A Arena AutoMod Delmia/QUEST Extend Flexsim Micro Micro S Saint aint ProModel Simul8 WITNESS WITNESS 56…………… „„„„„ Arena Arena Simulation Simulation S Software oftware Arena can be used for simulating discrete and continuous systems. At At th the h heartt off A Arena iis th the S SIMAN IMAN siimullati tion llanguage. The Arena Basic Edition: For modeling business processes and other systems in support of high lll evel anallysiis need ds. The Arena Standard Edition: For modeling more detailed discrete and continuous systems. Models are built from graphical objects called modules to define system logic and physical components. Includes modules focused on specific aspects of manufacturing and material materialhandling handling systems systems. The Arena Professional Edition: With capability to craft custom simulation objects that mirror components of of real real system system, including including terminology terminology, process process llogic ogic, data data, e etc tc. 57…… „„„„ Arena Arena Simulation Simulation S Software oftware The Arena family includes: OptQuest: an optimization software package. Arena Contact Center and Arena Packaging: designed specifically to model call centers and highspeed production lines. Arena’s Input Analyzer automates the process of selecting the proper distribution and its inputs. The The Output Output Analyzer Analyzer and and Process Process A Analyzer nalyzer automate automate comparison of different design alternatives. 58………… „„„„„„„„„ AutoMod AutoMod Simulation Simulation S Software oftware AutoMod Product Suite includes: AutoMod AutoMod simulation simulation package, package, AutoStat AutoStat for for experimentation experimentation and and analysis, analysis, and and AutoView for making AVI moves of the builtin 3D animation. Main focus: manufacturing and materialhandling systems (has built in templates.) Also Also contains contains a a full full s simulation imulation p programming rogramming language language. Strength: detailed, large models used for planning, operational decision support, and controlsystem testing. An AutoMod model consists of one or more sy ystems. A system can be either a process system or a movement system. A model may contain any number of systems, which can be saved and reused as objects in other models. AutoStat AutoStat provides provides a a complete complete environment environment for for tthe he user user to to define define scenarios scenarios, conduct experimentation and perform analysis. Optimization is based on an evolutionary strategies algorithm. 59…… „„„„„„„ Extend Extend Simulation Simulation S Software oftware Extend OR, Industry, and Suite are used for simulating discrete and mixed mixed discrete discretecontinuous continuous systems systems. Extend CP is for continuous modeling only. Extend combines a block diagram approach to modelbuilding with a developg pment environment for creating new blocks. Models are built by placing and connecting blocks, and entering the parameters on the block’s dialog window. For creating new blocks, Extend comes with a compiled Clike programming programming environment environment. Input parameters can be changed interactively during a model run and can come from external sources. Provides Provides iconic iconic process process flow flow animation animation of of the the b block lock diagram diagram. Has an open architecture and also supports linking to and using code written in external languages. 60……………… „„„ Flexsim Flexsim Simulation Simulation S Software oftware Flexsim is a discreteevent, objectoriented simulator developed in C C++, using using O Open pen GL GL technology technology. Flexsim is commonly used to To build models that behave like the actual physical or conceptual systems they represent. To improve production efficiencies and reduce operating costs through simulation, experimentation, and optimization of dynamic flow systems. Engineers and managers use Flexsim to evaluate plant capacity, balance packaging packaging and and manufacturing manufacturing lines lines, manage manage bottlenecks bottlenecks. The results of each simulation can be analyzed: Graphically through 3D animation, and Through Through statistical statistical reports reports and and graphs. graphs. 61……… „„„„„ Micro Micro S Saint aint Simulation Simulation S Software oftware Micro Saint is a generalpurpose, discreteevent, network simulation software software package package for for building building m models odels tthat hat simulate simulate real reallife life p processes rocesses. It does not use the terminology or graphic representations of a specific industry. Model can be built for anyp y process that can be rep presented by y a flowchart diagram. It provides two views of the simulation model: Network diagram view: the process flowchart in action. Actionview provides a realistic 2D picture of the process. OptQuest optimization is included: Automatically search for and find optimal or nearoptimal solutions. 62…… „„„„„„„„ ProModel ProModel Simulation Simulation S Software oftware A simulation and animation tool designed to model manufacturing systems systems. Has manufacturingoriented modeling elements and rulebased decision logic. The modeling elements in ProModel are parts (entities), locations, resources, path th nettwork ks, routi ting and d processiing llogiic, and d arriivalls. Includes logic for automatically generating cost data associated with a process. Also Also comes comes w with ith a an n output output viewer viewer. Its runtime interface allows a user to define multiple scenarios for experiments. It It offers offers 2 2 D D animation animation with with an an optional optional 3 3 D D like like perspective perspective view view. The company also offers MedModel for healthcare systems and ServiceModel for service systems. 63……………… „„„„„ B45 Delmia/QUEST Delmia/QUEST Simulation Simulation S Software oftware Delmia/QUEST is a manufacturingoriented simulation package. Combines Combines an an object object based based, true true 3 3 D D s simulation imulation environment environment with with a a graphical graphical u user ser interface for materialflow modules. Incorporates 2D and 3D CAD geometry to create a virtual factory environment. The company also offers a number of workcell simulators: ® IGRIP for robotic simulation and programming. TM ERGO for ergonomic analyses. TM PROCESS ENGINEER for processplanning. SSC imulation Control Language ( (SCSCL) ): allows expert users to deffine customer behavior and to gain control over simulation. Batch Control Language (SCL): open architecture allows the advanced user to perform perform batch batch simulation simulation runs runs to to automatically automatically collect collect and and tabulate tabulate data data. Output is available both numerically and visually. 64Slide 64 B45 Delmia/QUEST (Check this throughout for consistency) Brian; 2005/03/11…… „„„„„„ SIMUL SIMUL8 8 Simulation Simulation S Software oftware SIMUL8 models are created by drawing the flow of work with the computer mouse mouse, u using sing a a s series eries o of f iicons cons and and arrows arrows to to represent represent the the r resources esources and and queues in the system. Main focus is service industries where people are processing transactions. The compy pany’s g goal is to sp pread simulation very y widely y across businesses. Have very different pricing and support policies. Contains features that watch how the product is being used. Simulation models and data are saved in SML format. SIMUL8 has a VBA interface and supports ActiveX/COM so that external applications can build and control SIMUL8 simulations. The product is available at two levels: Standard and Professional. 65…… „„„„ WITNESS WITNESS Simulation Simulation S Software oftware WITNESS has separate versions for manufacturing and service industries industries. WITNESS models are based on template elements. Elements may be customized and combined into module elements and templates templates f for or reuse reuse. Displayed in a 2D layout animation with multiple windows and display layers. WITNESS WITNESS has has object object model model and and ActiveX ActiveX c control ontrol ffor or simulation simulation embedding and includes direct data links to Microsoft Excel, MINITAB and any OLEDB database source. 66……………………… „„„ Exp perimentation and StatisticalAnaly ysis Tools Virtually all simulation packages offer support for statistical analysis of simulation simulation output output. In recent years, many packages have added optimization as one of the analysis tools. Optimization Optimization is is used used to to find find a a “ “near nearoptimal” optimal” s solution olution. User must define an objective or fitness function, e.g. cost. Recent advances in the field of metaheuristics has offered new approaches approaches to to simulation simulation optimization optimization. Products discussed: Arena’s Output and Process Analyzer AutoStat AutoStat OptQuest SimRunner 67…………… „„„ Arena’s Output and Process Analyzer Experimental and Analysis Tools Output Analyzer Provides Provides confidence confidence iintervals ntervals, comparison comparison of of multiple multiple systems systems, and and warm warm up determination to reduce initial condition bias. Process Analyzer Adds Adds sophisticated sophisticated scenario scenariomanagement management capabilities capabilities tto o A Arena rena for for comprehensive design of experiments. Allows a user to define scenarios, make the desired runs, and analyze the results. results. OptQuest is used for optimization. 68„„„ … „„ OptQuest OptQuest Experimental Experimental and and Analysis Analysis T Tools ools An optimization tool. OptQuest is based on a combination of methods: scatter search, tabu search, linearinteger programming, and neural networks. The combination of methods allows the search process to escape local optimality in the quest for the best solution. Scatter search: Populationbased approach Creates new solutions with combining existing solutions Tabu search: is then superimposed to prohibit the search from reinvestigating previous solutions NNl eural N Network k: S Screens out sollutiions lik likelly to b be poor 69… „„„„„„ AutoStat AutoStat Experimental Experimental and and Analysis Analysis T Tools ools AutoStat is the run manager and statisticalanalysis product in the AutoMod AutoMod product product ffamily amily. It provides a number of analyses Including warmup determination, absolute and comparison confidence intervals intervals, design design o of f e experiments xperiments, s sensitivity ensitivity analysis analysis. The evolutionarystrategies algorithm used is well suited to find a nearoptimal solution without getting trapped at a local optimum. An An end end user ser c can an define define a an ny n number mber of of scenarios scenarios b by defining defining ffactors actors and their range or values. AutoStat supports correlated sampling using common random numbers numbers. AutoStat is capable of distributing simulation runs across a local area network and pulling back all results to the user’s computer. 70………… „„„„ SimRunner SimRunner Experimental Experimental and and Analysis Analysis T Tools ools SimRunner was developed by PROMODEL Corporation. Available Available ffor or ProModel ProModel, MedModel MedModel and and ServiceModel ServiceModel. Uses genetic algorithms and evolutionary strategies. Manipulates the input factors within boundaries specified by the user seeki king tto opttiimiize th the obj bjecti tive ffuncttiion. Also has a utility for helping users estimate: The end of the warmup phase The number of replications needed to obtain an estimate of the objective function’s mean value to within a specified percentage error and confidence level. 71„„„„„„„ ……… „ Summary Summary Three types of software for simulation models developments: developments: Generalpurpose programming languages, e.g., Java, C. Not specifically designed for use in simulation. Simulation Simulation libraries libraries, e e.g g., SSF SSF, are are s sometimes ometimes available available ffor or standardized simulation functionality. Helps to understand the basic concepts and algorithms. TM ® S Simu ulat atio on p prog ogra amming g la anguages, guages, e e.g g.,, G GPSS/ SS/H ,,S SIMAN V ® and SLAM II . Designed specifically for simulation of certain systems, e.g. queueing systems. Si Simullatiion enviironment, e.g., A Arena, A AutoM Mod d. Output analyzer is an important component, e.g. experimental design, statistical analysis. Many Many packages packages offer offer optimization optimization ttools ools a as s w well ell. 72