The QSIM application has a graphical user interface that requires no programming and provides all the tools for building, executing, and analyzing discrete event simulation models.
Above is a simple M/M/1 queueing model built with the QSIM application. An M/M/1 queueing model has a Poisson arrival process, exponential service times for a single server, and a FIFO queueing discipline. You can build a model of such a queueing system, control the simulation of the model, and produce summary statistics from the simulation sample path from within the application. You can save the model and the sample path in SAS data sets for reuse and further analysis. The application is designed to simplify model building by encouraging the construction of hierarchical models based on user-built model components that can be stored, shared, and replicated easily. In this context, a model is a directed network. Transactions flow through the network, changing the state of the model upon arrival at vertices or nodes. The type of state change that occurs depends on the current state of the simulation and the particulars of the model.
When the transaction leaves the Sampler it flows down the arc to the node FIFO Queue instantaneously. On transaction arrival at the FIFO Queue, the queue broadcasts messages down arcs asking nodes downstream if they are busy or not. The responses depend on the types of components that are connected to the queue and the state of the simulation when the message is received. It is important to note that broadcasting and evaluation of these messages also does not advance the simulation clock. If the queue gets a response that there is a nonbusy node, then it sends the transaction down the arc leading to that node. Otherwise, the transaction remains in the queue. When the simulation is first started, the Server is empty; when it gets the message "are you busy" from the queue, it responds "no." As a result, the queue routes the transaction down the arc to the Server.
When the transaction arrives at the Server, service is scheduled and the transaction ties up the server. By default, the service time is an observation of an exponential random variable with parameter 1. Both the service distribution and its parameters can be changed using the server's control panel. While the server is serving this transaction, any "are you busy" messages sent to it result in a "yes" response. When service is complete, the server sends the transaction on any arcs directed away from it and also sends a message up the arcs directed into it requesting an additional transaction. In this example, if the FIFO Queue is not empty, it will remove the transaction that has been there the longest and send it to the Server. By default, all queues in the system have a capacity of 50 transactions. Of course, this capacity can be changed through the user interface or programmatically. Note that, since by default the inter-arrival times and the service times are exponential deviates, the transaction time in the system would not have a stationary distribution if the queue had infinite capacity.
Finally, the transaction flows to a Bucket, which collects simple statistics on the transaction and passes the age of the transaction to the Line Plot display component. Within the Bucket control panel, an array of univariate statistical analyses can be produced by selecting the "Analyze" button. In the Line Plot the sample path for age (total time in the M/M/1 system) of transactions is represented by the scrolling chart, with the blue bar indicating the most recent observed value.
Statistics and Operations Research Home Page | Interactive Visualization and Simulation