Object-Event Modeling and Simulation (OEM+OES) is a general Discrete Event Simulation paradigm based on modeling objects and events as the fundamental components of a discrete dynamic system. It can be viewed as an extension of Schruben's Event Graphs.
Agent/Object-Event Simulation (A/OES), is an extension of basic OES by adding the concepts of agents, perception, communication and action.
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:
- 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, an execution delay for real-time simulation, or a seed for the random number generator.
- An initial state definition.
It may also include
- A visualization definition (like a 3D visualization of a 2D space model).
- User interface (UI) definitions, e.g. a UI for defining the initial state or a UI for defining the form of visualization.
An OES model may consist of:
- Object types
- Event types with event rules defining the causation of state changes and follow-up events
- A space model such as a grid space or a 2D/3D continuous space
- Statistics variables
- Global variables and/or global functions