Skip to content

Repository files navigation

Sim-tools

Tools to support Discrete-Event Simulation (DES) and Monte-Carlo Simulation education and practice

BinderDOIPyPI version fury.ioAnaconda-Server BadgeAnaconda-Server BadgeRead the DocsLicense: MITPython 3.10+

HELLO!!! TEST TEST TEST

sim-tools is being developed to support Discrete-Event Simulation (DES) and Monte-Carlo Simulation 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 and Monte-Carlo Simulation education and practice with full documentation.
  2. Provide a simple to use pythonic interface.
  3. To improve the quality of simulation education using FOSS tools and encourage the use of best practice.

👥 Authors

  • Thomas Monks ORCID: Monks

  • Amy Heather ORCID: Heather

  • Alison Harper ORCID: Harper

Features:

  1. Implementation of classic Optimisation via Simulation procedures such as KN, KN++, OBCA and OBCA-m
  2. Theoretical and empirical distributions module that includes classes that encapsulate a random number stream, seed, and distribution parameters.
  3. An extendable Distribution registry that provides a quick reproduible way to parameterise simulation models.
  4. Implementation of Thinning to sample from Non-stationary Poisson Processes (time-dependent) in a DES.
  5. Automatic selection of the number of replications to run via the Replications Algorithm.
  6. 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

Mamba

mamba is a FOSS alternative to conda that is also quicker at resolving and installing environments.

mamba install sim-tools

Binder

Binder

Learn how to use sim-tools

Citation

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

Monks, T., Heather, A., Harper, A. (2025). sim-tools: fundamental tools to support the simulation process in python. Zenodo. https://doi.org/10.5281/zenodo.4553641.

@software{sim_tools,
author = {Thomas Monks and Amy Heather and Alison Harper},
title = {sim-tools: fundamental tools to support the simulation process in python},
year = {2025},
publisher = {Zenodo},
doi = {10.5281/zenodo.4553641},
url = {https://doi.org/10.5281/zenodo.4553641}
}

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

NumPy style docstrings are used.

About

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

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages