Objekt-Ereignis-Modellierung und -Simulation (OEM&S)
Object Event Modeling and Simulation (OEM&S) is a general Discrete Event Simulation (DES) paradigm combining object-oriented modeling and event-based simulation (with event scheduling). An OES design model, providing a computationally complete description of a DES model, consists of (1) an information design model and (2) a process design model. The information design model specifies the types of objects and events that occur in the process design model, while the process design model defines causal regularities involving events as causes and object state changes as well as follow-up events as effects.
The preferred approach in OEM&S is to use UML Class Diagrams and extended Event Graphs (or DPMN) for making OES information and process models, and use an OES framework, like the JavaScript-based simulation framework OESjs or the Python-based framework OESpy, for implementing them.
Like Petri Nets and DEVS, OES has a formal semantics. But while Petrie Nets and DEVS are purely computational formalisms without an ontological foundation, OES is based on the ontological categories of objects, events and causal regularities.
Agent/Object Event Modeling and Simulation (A/OEM&S), is an extension of basic OEM&S by adding the concepts of agents, perception, action and communication.
Sim4edu currently provides the OESjs simulation framework, which is a JavaScript implementation of the OES paradigm, or, more precisely, of its language OESL and its abstract simulator Omega-Epsilon-Sigma (ΩΕΣ) that supports both next-event time progression, as used in discrete event simulation, and fixed-increment time progression, as used in NetLogo-based social science simulations as well as in continuous state change simulations. The next simulator/framework on the roadmap of Sim4edu will implement the A/OES paradigm for agent-based discrete event simulation.
A real-world discrete event system (or discrete dynamic system) consists of:
- objects (of certain types) whose states may be changed by
- events (of certain types) occurring at a point in time from a discrete set of time points.
This means that in order to model a discrete event system using OES, we have to
- Describe its object types and event types.
- Specify, for any event type, which causal regularity, responsible for state changes of objects and follow-up events, is triggered by events of that type. Causal regularities are captured by event rules.
The OES language (OESL) allows defining:
- Object types in the form of classes (of an object-oriented language like UML or JavaScript),
- Event types in the form of classes, and their event rules in the form of a special onEvent method in the corresponding event class.
OESL is a historic successor of ERSL, since the OES paradigm has been developed as a continuation of an earlier R&D project called Entity-Relationship Modeling and Simulation. Likewise, A/OESL is a historic successor of AORSL, since the A/OES paradigm has been developed as a continuation of an earlier R&D project called Agent-Object-Relationship Simulation.
In OES, two categories of simulated events are distinguished:
- Exogenous events occur, periodically, due to factors that are external to the simulation model. Their re-occurrence pattern is modeled in the form of a recurrence function.
- Caused events are simulated events that are caused by other simulated events.
An OES scenario consists of:
- An OES model defining object types and event types (with event rules), as well as output statistics. It may include a space model definition.
- Simulation parameter definitions, like the length of the simulation or a seed for the random number generator.
- An initial state definition.
An OES model may include definitions of
- Object types
- Event types with event rules defining the causation of state changes and follow-up events
- A time model: either discrete or continuous time
- A space model such as a grid space or a 2D/3D continuous space
- Statistics variables
- Global model variables and/or functions
An OES scenario simulation can be configured with
- A visualization definition (like a 3D visualization of a 2D space model)
- A user interaction definition for making simulation games
- Various user interface (UI) definitions, e.g. a UI for defining the initial state or a UI for defining the form of visualization