Skip to content

Tools to support the Discrete-Event Simulation process for education and practice.

License

Notifications You must be signed in to change notification settings

TomMonks/sim-tools

Repository files navigation

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