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.
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.
The AnyLogic Enterprise Library
The primary AnyLogic toolkit for process-centric modeling is called the Enterprise Library. The Enterprise Library 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 generic class Entity can be extended by adding custom fields and methods. The Enterprise 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 Active 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 Active Object can be instantiated and parameterized many times this also provides a good basis for component reuse within one model or across models.
The Enterprise 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 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 Enterprise 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 Enterprise 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.
See AnyLogic discrete event model applets in the online model gallery.