Process Modeling

From Support

Jump to: navigation, search

Many popular simulation packages are based on what is known as a process worldview. (The process approach is also sometimes called network modeling.) With this modeling philosophy, the focus is typically on transient entities, such as customers in a service system or parts flowing through a factory. Steps followed by these transient entities as they move through a system are identified. A simulation model is developed by placing preprogrammed blocks of code in a sequence that approximates the actual processing sequence being modeled. The processing of a transient entity is conceptually viewed as the entity flowing from block to block. The process modeling viewpoint is possibly the purest form of transient entity modeling.

Process-oriented simulation languages provide a series of preprogrammed blocks that represent some of the typical processing stages in a queueing system. Examples of such blocks include a block to represent the entity waiting (i.e., a QUEUE block) and another to represent the start of service (i.e., a SEIZE block). Popular software packages that include a process-oriented feature include GPSS, SIMAN, and SLAM.

Although each of the popular process modeling software packages is similar in function, each has its own terminology. For example, GPSS provides a GENERATE block, which introduces a transient entity into the system; SIMAN calls this a CREATE block. Time delay is modeled using an ADVANCE block in GPSS and a DELAY block in SIMAN. GPSS and SIMAN both have QUEUE blocks to collect waiting time statistics, and both represent the entity waiting for service using SEIZE and RELEASE blocks. (Separate ENTER and LEAVE blocks are used in GPSS to model several identical parallel servers, which they call a "storage facility.") Time delays are modeled on the network arrows in SLAM, similar to the edge delay times used in event graphs.


A schematic diagram of the blocks in a GPSS model that represents a single server queue is shown below. Here the customer enters the system in the GENERATE block and joins QUEUE number 1. If server (number 1) is idle, it is SEIZEd and the customer DEPARTs from the line. After the clock ADVANCEs for the service time, the server is RELEASEd and the customer exits the system at the TERMINATE block.

Event graphs, while much simpler than most process languages to learn and use, are more general. In fact, you can build versions of these process languages using SIGMA. See GPSS.MOD for an event graph of the GPSS single server queue pictured below. This model uses the SIGMA PUT and GET functions, described in List Functions, for queue management.

Block Diagram for a GPSS Model of a Single Server Queue
Block Diagram for a GPSS Model of a Single Server Queue


SIGMA can be used to build a dynamic Windows subset of the manufacturing-specific simulation language, SIMAN (a product of Systems Modeling Co.). Two queuing models have been included here. SIMAN1.MOD and SIMAN2.MOD. The first is a basic model containing a subset of SIMAN blocks, where each block is a group of animated event vertices. SIMAN2.MOD was built by copying and pasting blocks from SIMAN1.MOD. The data for SIMAN2.MOD are in the text file, DISTNS.DAT. (See Reading Data File Functions to learn how to create data files that will be read by the DISK{} function.) However unlike in SIMAN, you can change the probability distributions of a model while it is running. With SIMAN2.MOD on the screen, open the data file DISTNS.DAT (using File/View Output/Text File). Use the Window/Tile command to see both the simulation and the data file. Start the simulation and let it run in Graphics mode while you look at the output plot. Enter a new valid SIGMA expression, such as 3+BET{.5;.5} for a Beta distribution (using capital letters), in the data file while the model is running. As soon as DISTNS.DAT is saved, the new data will be incorporated into the model and the resulting changes will appear in the output plot.

SIGMA Simulation of a SIMAN Model
SIGMA Simulation of a SIMAN Model

Proponents of the process approach argue that it is natural to focus on the movement of transient entities since their motion "catches the eye." Once the definition of each of the preprogrammed blocks in the software package is understood, it is a simple manner to string them together into a simulated process. This is certainly one of the more easy to use modeling approaches for the beginner and largely explains its commercial success.

A disadvantage of the process modeling approach is that modeling certain situations may be difficult or impossible to simulate depending on the software you are using. You can only include in your model those features that the software vendor has anticipated and provided for with a specific block. Another drawback is that process modeling can be very inefficient. For example, a process model of a queue with hundreds of transactions can run much slower (or not at all) than the same model with only a few customers. This is because each customer that enters the system "generates" or "creates" a separate record in memory. Earlier remarks concerning the trade-offs between resident and transient entity models apply here. (Process models that use simultaneous resources are subject to Deadlock.)

Petri Net Simulation PETRINET.MOD

PETRINET.MOD is a animated simulation of a Petri net that illustrates the so-called "activity" approach to simulation modeling. Here tokens are removed from "places" (balls) when "transitions" (bars) are enabled. This model can be used to simulate two tandem queues. Note that a transparent bitmap is used for some of the vertices. Ungroup one of the "places" to see how this is animated. (See Animations for more about transparent bitmaps.).

SIGMA Simulation of a timed Petri Net
SIGMA Simulation of a timed Petri Net

Event Graphs are more general than standard timed stochastic Petri Nets and it is easy to convert a Petri Net model to an Event Graph - Simply replace all PN Transitions with Timed Edges connected by at most one conditional edge for each PN Place.

Back to Event Graph Modeling

Personal tools