Object-Event Simulation (OES)

The first simulator provided by Sim4edu, Omega-Epsilon (ΩΕ), is a JavaScript implementation of Object-Event Simulation (OES). It 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 on the roadmap of Sim4edu is called Alpha-Omega-Epsilon ΩΕ), which implements Agent/Object-Event Simulation (A/OES) supporting agent-based discrete event simulation.

Basic OES is a general form of Discrete Event Simulation. It is a continuation of an earlier R&D project called Entity-Relationship Modeling and Simulation.

OES 2, also called Agent/Object-Event Simulation (A/OES), is an extension of Basic OES by adding the concept of agents and the related simulation concepts of perception, communication and action. A/OES is a continuation of an earlier R&D project called Agent-Object-Relationship 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

  1. Describe its object types and event types.
  2. 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:

  1. Object types in the form of classes (of an object-oriented language like UML or JavaScript),
  2. 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, and A/OESL is a historic successor of AORSL.

In OES, two categories of simulated events are distinguished:

  1. 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.
  2. 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