Object Event Modeling and Simulation
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 for making information models and extended Event Graphs (or DPMN) for making 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 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. A forthcoming version of the OESjs framework will implement the AOES paradigm for agent-based discrete event simulation.
While the OESjs framework is quite a large piece of software, mainly due to its advanced user interfaces, there are also Object Event Core Simulators, the code of which is available (in various programming languages) as a starting point or reference for building your own simulator (possibly in another language).
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, AOESL is a historic successor of AORSL, since the AOES 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.
- An initial state definition.
- Simulation settings, like the length of the simulation or a seed for the random number generator.
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
- Model parameters (for parameter variation experiments)
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