Because simulation is such a powerful tool to assist in understanding complex systems and to support decision-making, a wide variety of approaches and tools exist.
Special Purpose Simulators
Many special purpose simulators exist to simulate very specific types of systems. For example, tools exist for simulating the movement of water (and contaminants) in an estuary, the evolution of a galaxy, or the exchange rates for a set of currencies. The key attribute of these tools is that they are highly specialized to solve a particular type of problem. In many cases, these tools require great subject-matter expertise to use. In other cases, however, the system being simulated may be so highly specified that using the tools is quite simple (i.e., the user is presented with a very limited number of options).
General Purpose Frameworks
Other tools are not specialized to a particular type of problem. Rather, they are "tool kits" or general purpose frameworks for simulating a wide variety of systems. There are a variety of such tools, each tailored for a specific type of problem. What they all have in common, however, is that they allow the user to model how a system might evolve or change over time. Such frameworks can be thought of as high-level programming languages that allow the user to simulate many different kinds of systems in a flexible way.
Perhaps the simplest and most broadly used general purpose simulator is the spreadsheet. Although spreadsheets are inherently limited by their structure in many ways (e.g., representing complex dynamic processes is difficult, they cannot display the model structure graphically, and they require special add-ins to represent uncertainty), because of their ubiquity, they are very widely used for simple simulation projects (particularly in the business world).
Other general purpose tools exist that are better able to represent complex dynamics, as well as provide a graphical mechanism for viewing the model structure (e.g., an influence diagram or flow chart of some type). Although these tools are generally harder to learn to use than spreadsheets (and are typically more expensive), these advantages allow them to realistically simulate larger and more complex systems than can be done in a spreadsheet.
The general purpose tools can be broadly categorized as follows:
Discrete Event Simulators
These tools rely on a transaction-flow approach to modeling systems. Models consist of entities (units of traffic), resources (elements that service entities), and control elements (elements that determine the states of the entities and resources). Discrete simulators are generally designed for simulating processes such as call centers, factory operations, and shipping facilities in which the material or information that is being simulated can be described as moving in discrete steps or packets. They are not meant to model the movement of continuous material (e.g., water) or represent continuous systems that are represented by differential equations.
This is a special class of discrete event simulator in which the mobile entities are known as agents. Whereas in a traditional discrete event model the entities only have attributes (properties that may control how they interact with various resources or control elements), agents have both attributes and methods (e.g., rules for interacting with other agents). An agent-based model could, for example, simulate the behavior of a population of animals that are interacting with each other.
This class of tools solves differential equations that describe the evolution of a system using continuous equations. These type of simulators are most appropriate if the material or information that is being simulated can be described as evolving or moving smoothly and continuously, rather than in infrequent discrete steps or packets. For example, simulation of the movement of water through a series of reservoirs and pipes can most appropriately be represented using a continuous simulator. Continuous simulators can also be used to simulate systems consisting of discrete entities if the number of entities is large so that the movement can be treated as a flow. A common class of continuous simulators are system dynamics tools, based on the standard stock and flow approach developed by Professor Jay W. Forrester at MIT in the early 1960s.
These tools combine the features of continuous simulators and discrete simulators. That is, they solve differential equations, but can superimpose discrete events on the continuously varying system. GoldSim is a hybrid simulator.