Four dominating simulation method, their history and current state.

Dominating simulation modeling methods

Simulation modeling is a wide sphere with a lot of application areas. 4 major modeling paradigms (systems of view, mind-sets, approaches and concepts) can be used as a basement in model building:

  • dynamic systems modeling
  • system dynamics
  • discrete event simulation
  • agent based modeling

Dynamic systems modeling and system dynamics operate with continuous processes, while discrete event and agent based simulation use discrete ones.

The methods can be used at different abstraction levels (quantity of details included in a model). Dynamic system models have low abstraction levels, they are highly detailed. On the other hand, system dynamics assumes a high level of abstraction when a developer designs a model. Discrete event simulations mostly use an average level of abstraction. The agent-based approach is kind of unique, since it can be applied on all abstraction levels.

Discrete event simulation

Geoffrey Gordon was the first person to introduce the idea of simulation, based on a concept of discrete events. This idea was initially implemented in a software called GPSS (General Purpose Simulation System). GPSS is known as the language that made simulation a practical method available for software developers.

GPSS language introduced the flowchart and network-based modeling paradigm. A system in this paradigm is defined as a flow of entities called transacts moving along the structure diagram. Transacts stay in queues, compete for resources and blocks that serves them, and finally leave the system. System structure is defined as a flowchart consisting of connected blocks.

There are two point of view on transacts and blocks. From one point of view, transact are active entities, since they moved through the system, while blocks are passive since they stay serving transacts. From another point of view, transacts are passive since they have no behavior, being changed only in blocks that are active objects, since they do have a behavior.

Any discrete event model can be treated as a process of servicing orders, defined with an algorithm of order movements through the blocks. Discrete event simulation models usually have stochastic elements such as random service time and random time when orders enter the system.

discrete event simulation flowchart discrete event simulation operations log discrete event simulation results histogram

System dynamics

The system dynamics approach was introduced by Jay Forrester in the late 50s as “the study of information feedback characteristics of industrial activity to show how organizational structure, amplification (in policies), and time delays (in decisions and actions) interact to influence the success of the enterprise.” System dynamics application area includes social, urban and ecology challenges. In this approach, real-world processes are defined as a set of stocks and flows between them, additional information provided defines flow values.

System dynamics diagram is a graphical notation for creating system dynamics simulation models. The same model can be represented as a system of differential equations, that is, the math beneath system dynamics methods. This graphical notation for modeling all system components and their dependencies makes system dynamics a very convenient instrument for visual representation of the whole system on high abstraction level.

system dynamics model example: labor simulation

Dynamic systems simulation

matlab simulink model - dynamic system ABS example

Dynamic systems are complex objects, whose behavior can be defined with algebraic and differential equations, as well as events that change model environment or even structure. Control systems, physical and mechanical objects, chemistry processes, signal processing are typical examples of such dynamic systems.

A method of building structural schemas from programmatic solving blocks is used to simulate the dynamics systems. These programmatic blocks are an analogy of hardware blocks: current sources, integrators, amplifiers, adders and multipliers. Such block structures can be built using library blocks of a special tool like Mathlab Simulink. This software tool automatically creates a system of equations that are numerically solved on the computer.

Block diagrams are convenient for quickly creating small models, but they are difficult to read. That is why equations in Koshi form are also shown in such tools.

A general remark: dynamics system simulations have very high technical complexity in comparison with business simulations.



Agent based simulation

There are a lot of definitions of the word agent. What they all have in common is that an agent has activity, autonomous behavior, can take decisions while following a set of rules, can interact with an environment and other agents, and can even change itself. The agent-based modeling approach is typical for systems whose dynamics are not caused by global rules and policies, but instead global rules and policies are as a result of the individual activities of group members. Agent-based modeling is a down-top approach; its goal is to get a perception of system dynamics, based on assumptions about the individual object’s behavior and interactions.

Agent-based model can be created with a set of libraries and tools that help to define programming code—agent behavior algorithms. There is also graphical notation based on state charts and action charts.

Agent-based simulation model architecture Agent statechart

The current obvious trend in the simulation tool market is combining different techniques in a single tool. AnyLogic is the pioneering simulation software tool in this field; it combines 3 out of 4 modeling techniques and calls this approach multimethod modeling. PowerSim has a combination of system dynamics modeling and discrete event simulation elements. Extend, being a discrete event simulation tool, has system dynamics as well.