
Tools to support Discrete-Event Simulation (DES) and Monte-Carlo Simulation education and practice
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#
Deliver high quality reliable code for DES and Monte-Carlo Simulation education and practice with full documentation.
Provide a simple to use pythonic interface.
To improve the quality of simulation education using FOSS tools and encourage the use of best practice.
Features:#
Implementation of classic Optimisation via Simulation procedures such as KN, KN++, OBCA and OBCA-m
Theoretical and empirical distributions module that includes classes that encapsulate a random number stream, seed, and distribution parameters.
An extendable Distribution registry that provides a quick reproduible way to parameterise simulation models.
Implementation of Thinning to sample from Non-stationary Poisson Processes (time-dependent) in a DES.
Automatic selection of the number of replications to run via the Replications Algorithm.
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#
Learn how to use sim-tools
#
Online documentation: https://tommonks.github.io/sim-tools
Introduction to DES in python: https://health-data-science-or.github.io/simpy-streamlit-tutorial/
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#
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