sim-tools

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

https://github.com/tommonks/sim-tools

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.3%) to scientific vocabulary

Keywords

discrete-event-simulation empirical-distributions monte-carlo-simulation open-science python sampling-distribution simpy theoretical-distributions thinning-acceptance-rejection-method
Last synced: 6 months ago · JSON representation ·

Repository

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

Basic Info
Statistics
  • Stars: 7
  • Watchers: 2
  • Forks: 2
  • Open Issues: 4
  • Releases: 22
Topics
discrete-event-simulation empirical-distributions monte-carlo-simulation open-science python sampling-distribution simpy theoretical-distributions thinning-acceptance-rejection-method
Created about 6 years ago · Last pushed 7 months ago
Metadata Files
Readme Changelog License Citation

README.md

Sim-tools

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

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

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

  • Alison Harper    ORCID: Harper

  • Amy Heather    ORCID: Heather

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

bash pip install sim-tools

Conda-forge

bash conda install -c conda-forge sim-tools

Mamba

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

bash mamba install sim-tools

Binder

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 sim-tools 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

tex @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

NumPy style docstrings are used.

Owner

  • Name: Tom Monks
  • Login: TomMonks
  • Kind: user

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: sim-tools
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: 'Thomas '
    family-names: Monks
    affiliation: University of Exeter
    orcid: 'https://orcid.org/0000-0003-2631-4481'
repository-code: 'https://github.com/TomMonks/sim-tools'
keywords:
  - discrete-event simulation
  - simpy
  - python
  - open science
  - simopt
license: MIT

GitHub Events

Total
  • Create event: 10
  • Issues event: 13
  • Release event: 4
  • Watch event: 2
  • Delete event: 6
  • Issue comment event: 18
  • Push event: 76
  • Pull request event: 34
  • Fork event: 2
Last Year
  • Create event: 10
  • Issues event: 13
  • Release event: 4
  • Watch event: 2
  • Delete event: 6
  • Issue comment event: 18
  • Push event: 76
  • Pull request event: 34
  • Fork event: 2

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 13
  • Total pull requests: 60
  • Average time to close issues: 2 months
  • Average time to close pull requests: about 8 hours
  • Total issue authors: 2
  • Total pull request authors: 3
  • Average comments per issue: 1.31
  • Average comments per pull request: 0.02
  • Merged pull requests: 52
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 9
  • Pull requests: 35
  • Average time to close issues: about 2 months
  • Average time to close pull requests: about 14 hours
  • Issue authors: 2
  • Pull request authors: 3
  • Average comments per issue: 1.11
  • Average comments per pull request: 0.0
  • Merged pull requests: 29
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • TomMonks (9)
  • amyheather (4)
Pull Request Authors
  • TomMonks (62)
  • amyheather (5)
  • AliHarp (1)
Top Labels
Issue Labels
enhancement (2) bug (1) invalid (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 229 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 18
  • Total maintainers: 2
pypi.org: sim-tools

Simulation Tools for Education and Practice

  • Versions: 18
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 229 Last month
Rankings
Dependent packages count: 10.0%
Downloads: 16.1%
Average: 20.1%
Dependent repos count: 21.7%
Stargazers count: 23.0%
Forks count: 29.8%
Maintainers (2)
Last synced: 7 months ago

Dependencies

binder/environment.yml conda
  • matplotlib 3.8.2.*
  • numpy 1.26.0.*
  • pandas 2.1.3.*
  • pip 23.3.1.*
  • pytest 7.4.3.*
  • python 3.11.*
  • scikit-learn 1.3.2.*
  • scipy 1.11.3.*
requirements.txt pypi
  • matplotlib >=3.1.3
  • numpy >=1.18.1
  • pandas >=1.0.1
  • scipy >=1.4.1
  • seaborn >=0.10.0
.github/workflows/python-publish.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
setup.py pypi