Git Product home page Git Product logo

gwagner57 / oes Goto Github PK

View Code? Open in Web Editor NEW
16.0 5.0 4.0 33.71 MB

Various simulators for Object Event Simulation (OES), which is a Discrete Event Simulation paradigm combining object-oriented modeling with the simulation approach of event scheduling.

Home Page: https://sim4edu.com/oesjs/

License: MIT License

HTML 59.17% CSS 6.89% JavaScript 30.98% Python 2.96%
discrete-event-simulation simulation-framework simulation-experiments javascript python simulation simulator java

oes's Introduction

Core Simulators for Object Event Simulation

This project provides various simulators (or simulation engines) for Object Event Simulation (OES), which is a Discrete Event Simulation paradigm combining object-oriented modeling with the simulation approach of event scheduling.

For simplicity, all of these simulators have a minimalistic user interface.

The minimal version of an OES simulator is OES Core 0 with about 220 lines of code in JavaScript, supporting models with (global) model variables and functions, object types, event types, and simple simulation experiments.

The simulators OES Core 1-4 incrementally extend OES Core 0 by adding further features:

  1. OES Core 1 adds a seedable random number generator, a set of sampling functions from various probability distributions (uniform, triangular, normal, exponential, etc.), multiple scenarios per model, multiple experiment types per model, model parameters, parameter variation experiments, as well as persistent storage and export of experiment results.

  2. OES Core 2 adds the concept of activities, which are composite events that have some duration and typically depend on resources, together with the concepts of resource roles, resource constraints and resource pools. For an activity-based simulation model, the simulator can automatically compute (a) throughput, (b) queue length, (c) cycle time, and (d) resource utilization statistics per activity type.

  3. OES Core 3 adds the concepts of processing activities and processing networks.

  4. OES Core 4 adds the concept of agents.

You can run OESjs Core simulation examples from the project website.

OES Core 0

OES Core 0 is the minimal architecture for an OE simulator, supporting

  • model variables
  • object types and event types (including exogenous event types with recurrence/nextEvent functions)
  • next-event time progression
  • the uniform distribution as the only representative of probability distributions
  • simple simulation experiments with the (unseeded) random number generator provided by the host programming language.
The OES Core 0 information architecture

The OES Core 0 simulator algorithm

OES Core 1

OES Core 1 adds the following features to OES Core 0:

  • fixed-increment time progression
  • a seedable random number generator
  • a set of sampling functions from various probability distributions (uniform, triangular, normal, exponential, etc.)
  • multiple scenarios per model
  • multiple experiment types per model
  • model parameters
  • parameter variation experiments
  • persistent storage and export of experiment results
The OES Core 1 information architecture

OES Core 2

OES Core 2 adds the following features to OES Core 1:

  • activities as composite events, having a start event and an end event, and a duration as the time in-between their start and end events
  • resource roles with resource cardinality constraints
  • resource pools
  • automated (a) throughput, (b) queue length, (c) cycle time, and (d) resource utilization statistics per activity type
The OES Core 2 information architecture

oes's People

Contributors

bhavani-hakari avatar gwagner57 avatar osamaal-wardi avatar samor96 avatar shaikfat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.