Skip to main content

Simulation Tools for Education and Practice

Project description

sim-tools: tools to support the Discrete-Event Simulation process in python.

Binder DOI PyPI version fury.io Anaconda-Server Badge Anaconda-Server Badge Read the Docs License: MIT Python 3.10+ License: MIT

sim-tools is being developed to support Discrete-Event Simulation (DES) education and applied simulation research. It is MIT licensed and freely available to practitioners, students and researchers via PyPi and conda-forge

Vision for sim-tools

  1. Deliver high quality reliable code for DES education and practice with full documentation.
  2. Provide a simple to use pythonic interface.
  3. To improve the quality of DES education using FOSS tools and encourage the use of best practice.

Features:

  1. Implementation of classic Optimisation via Simulation procedures such as KN, KN++, OBCA and OBCA-m
  2. Distributions module that includes classes that encapsulate a random number stream, seed, and distribution parameters.
  3. Implementation of Thinning to sample from Non-stationary poisson processes in a DES.
  4. Automatic selection of the number of replications to run via the Replications Algorithm.
  5. EXPERIMENTAL: model trace functionality to support debugging of simulation models.

Installation

Pip and PyPi

pip install sim-tools

Conda-forge

conda install -c conda-forge sim-tools

Binder

Binder

Learn how to use sim-tools

Citation

If you use sim0tools for research, a practical report, education or any reason please include the following citation.

Monks, Thomas. (2021). sim-tools: tools to support the forecasting process in python. Zenodo. http://doi.org/10.5281/zenodo.4553642

@software{sim_tools,
  author       = {Thomas Monks},
  title        = {sim-tools: fundamental tools to support the simulation process in python},
  year         = {2021},
  publisher    = {Zenodo},
  doi          = {10.5281/zenodo.4553642},
  url          = {http://doi.org/10.5281/zenodo.4553642}
}

Online Tutorials

  • Optimisation Via Simulation Colab

Contributing to sim-tools

Please fork Dev, make your modifications, run the unit tests and submit a pull request for review.

Development environment:

  • conda env create -f binder/environment.yml

  • conda activate sim_tools

All contributions are welcome!

Tips

Once in the sim_tools environment, you can run tests using the following command:

pytest

To view the documentation, navigate to the top level directory of the code repository in your terminal and issue the following command to build the Jupyter Book:

jb build docs/

To lint the repository, run:

bash lint.sh

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page