Discrete Event Simulation Modeling

The great majority of processes we observe in the world consist of continuous changes. However, when we try to analyze these processes it often makes sense to divide a continuous process into discrete parts to simplify the analysis. Discrete Event Modeling techniques approximate continuous real-world processes with non-continuous events that you define.Discrete Event Modeling

Here are some examples of events:

  • a customer arrives at a shop,
  • a truck finishes unloading,
  • a conveyor stops,
  • a new product is launched,
  • inventory levels reaches a certain threshold, etc.

In discrete event modeling the movement of a train from point A to point B would be modeled with two events, namely a departure event and an arrival event. The actual movement of the train would be modeled as a time delay (interval) between the departure and arrival events. This doesn't mean however that you can't model the train as moving. In fact, with AnyLogic you can produce visually continuous animations for logically discrete events.

The term Discrete Event is however mainly used in the narrower sense to denote "Process-Centric" modeling that suggests representing the system being analyzed as a sequence of operations being performed on entities (transactions) of certain types such as customers, documents, parts, data packets, vehicles, or phone calls. The entities are passive, but can have attributes that affect the way they are handled or may change as the entity flows through the process. Process-centric modeling is a medium-low abstraction level modeling approach. Although each object is modeled individually as an entity, typically the modeler ignores many “physical level” details, such as exact geometry, accelerations, and decelerations. Process-centric modeling is used widely in the manufacturing, logistics, and healthcare fields.

Discrete event modeling techniques should be used only when the system under analysis can naturally be described as a sequence of operations. It is not always clear for any given modeling project which of the three modeling paradigms is best. For example, if it is easier to describe the behavior of each individual entity than trying to put together a global workflow, agent based modeling may be the way to go. Similarly, if you are interested in aggregates and not in individual unit interaction, system dynamics may be applied. AnyLogic supports all three modeling approaches, so you can experiment with the abstraction levels and modeling approach without needing multiple tools.

The AnyLogic Process Modeling Library

The primary AnyLogic toolkit for discrete event modeling is called the Process Modeling Library. The Process Modeling is a collection of objects for defining process workflows and their associated resources. All objects are highly customizable. Their parameters can be changed dynamically and their actions may depend on the entity's attributes. Objects have “onEnter/onExit” extension points that let you define the actions that need to be performed on the entities going through the process. The Process Modeling Library-based model components can naturally inter-operate with system dynamics and agent based components or with AnyLogic primitives such as events or state charts.

If the system you are modeling is complex, it makes sense to break it down into components and model them separately in different objects. You can define sub-process start and end points, expose them as the interface of the model component and hide the sub-process implementation. At the top level of the model you will be instantiating and connecting those high-level components together. As any object can be instantiated and parameterized many times this also provides a good basis for component reuse within one model or across models.

The Process Modeling Library works closely with the AnyLogic presentation/animation framework and enables you to develop very sophisticated process animations. The animations can be made hierarchical with multiple 2D or 3D views. For example, the high-level view on the process may show only key aggregate indicators, but you can switch to the components view with a detailed sub-process animation.

Network Based Modeling

The Process Modeling Library also contains a set of objects specifically designed for "space-aware" processes. Space aware processes are those that take place in a certain physical space and involve movement of entities and resources. The provided object set simplifies modeling of such systems and the approach is called Network Based Modeling. To use this technique you need to define the network topology, the resource pools, and the process itself. The process definition may be a mixture of network-specific objects, such as "move to location" or "attach resource unit" and regular Process Modeling Library objects. The entities and resources are automatically animated along the network segments or staying at nodes and this behavior can be interleaved with regular animations if desired.

Process Flow in AnyLogic

See AnyLogic discrete event model applets in the online model gallery.