# About SIGMA

### From Sigma

## SIGMA

SIGMA is a general event graph modeling environment that facilitates the development of correct simulation code. Reading an event graph facilitates model validation, and, since with SIGMA the model is the language, code verification is much easier using SIGMA than using traditional discrete event simulation coding methods.

Using modern simulation languages, it is quite possible to create complicated models of systems without the user having any idea how the simulation program actually works. Indeed a prime objective of some special-purpose simulators is to isolate the user completely from the simulation code. This is an advantage as long as the application does not extend beyond the domain of the simulator. However, once a certain level of skill in simulation modeling has been reached, many feel constrained by the inflexibility of high-level simulators.

The objective of event graph modeling using SIGMA is to provide a user-friendly environment in which to build, verify, and experiment with discrete event simulation models. Unlike most simulation software, SIGMA is designed to remove all of the mystery in discrete event simulation. Depending on your version, you may have access to the full source code of all SIGMA-generated simulation models. However, you can still choose to remain oblivious to the workings of the simulation program. With SIGMA the choice is yours. Initially event graph modeling may seem a bit abstract, but you will soon find it to be a simple yet powerful approach. SIGMA is suitable for both the beginner and the seasoned professional. While SIGMA is easy to learn and easy to use, it is powerful enough to allow for real growth as modeling skills evolve. Without learning any additional modeling tools, you will be able to model any discrete event system using event graphs.

Programming in the two dimensions of a graph has several advantages over traditional (line at a time) linear coding. Loops, conditional branching, function calls, and even notorious goto's are all easily represented as edges on a graph. In fact once you become familiar with SIGMA, you might consider using it as a general programming tool to create code that has nothing to do with simulation modeling. You might find that graphically programming in a plane makes more sense than writing code in the traditional linear method.

SIGMA makes simulation modeling much easier than directly writing code. With SIGMA, you interact with a simple graph. Details on edges (arrows) and event vertices (nodes) are available at the click of a mouse.

SIGMA also has instant input checking. Unlike simple syntax checkers, SIGMA checks your computation by actually executing expressions when they are entered. This helps to ensure that while running your model you will not encounter frustrating spelling, syntax, or computation errors.

Computer programs used for discrete event simulation are distinguished from other types of computer programs by two fundamental characteristics. Discrete event simulation programs will have both logic for representing the passage of time (they are dynamic as opposed to static) and logic for representing randomness (they are stochastic as opposed to deterministic). Reflecting these two fundamental features of a discrete event simulation program, SIGMA does two computations automatically; one computation models time while the other models randomness. In SIGMA, there are only two variables you should not change: CLK, which represents the current value of simulated time, and RND, which represents a randomly chosen number between zero and one.

A program that has randomness but is static might be used to generate artificial data samples to study the behavior of a statistical procedure; such a program is commonly referred to as a Monte Carlo simulation. Systems that are modeled as continuously changing, such as chemical reactions, electrical pulses, and mechanical linkages, fall into the realm of continuous simulations, which model the progression of change using differential or difference equations. Continuous time simulations are typically dynamic but deterministic. An example of a stochastic continuous time simulation is given in Chapter 5.

## The SIGMA Modeling Environment

SIGMA is a unique and powerful simulation environment. Developed primarily for discrete event simulations, SIGMA has been proven able to represent any computer program, with modeling power referred to in computer science as Turing Complete.

SIGMA is based on the concept of an Event (Relationship) Graph. Event Graphs graphically capture the events taking place within a system and the relationships among these events. While Event Graphs may look similar to flow graphs, they are very different: Event Graphs are relationship graphs. Thus, a simple model can represent a very large and complex system.

SIGMA’s most striking feature is that simulation models can be created, enriched, and edited while they are running. Events can be added, altered, or even deleted during a simulation run. Logic can be changed and errors corrected without stopping a run to change code and recompile. You can even pause and "replay" interesting events. Using SIGMA, a simulation model can be developed and verified in a fraction of the time it would take using conventional simulation languages.

Animation support is fundamentally different in SIGMA than in other simulation modeling environments. Animations are not created from simulation models using conventional add-on software; in SIGMA, the animation and the simulation model are identical.

In addition to graphical modeling, analysis, and animation, SIGMA also includes state-of-the-art graphical data tracking tools and allows pictures, graphs, plots, and data to be pasted into spreadsheets and word processors.

For speed and portability, SIGMA models can be automatically translated (with a mouse click) into a fast C code. Not only does this code allow models to run thousands of times faster, models can then be run from a spreadsheet and multiple experimental runs can be batched together. A SIGMA model can even write a description of itself in English.

Multiple SIGMA sessions can be run concurrently. You can copy and paste objects from one modeling session to another. In fact, models can be developed in one SIGMA session and then graphically integrated into another simulation model while that model is executing.

SIGMA supports the full simulation model life cycle: from model building and testing to output analysis, animation, documentation, and report writing. Discrete event simulation model building has never been easier, and the results from simulations have never before been so easy to observe and understand.