ciw

Ciw is a simulation library for open queueing networks.

https://github.com/ciwpython/ciw

Science Score: 51.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
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    4 of 19 committers (21.1%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.6%) to scientific vocabulary

Keywords

discrete-events-simulations python queueing queueing-theory simulation

Keywords from Contributors

computer-science game-theory mathematics evolutionary-game-theory prisoners-dilemma fuzzing algorithm optimisation
Last synced: 6 months ago · JSON representation ·

Repository

Ciw is a simulation library for open queueing networks.

Basic Info
  • Host: GitHub
  • Owner: CiwPython
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage: http://ciw.readthedocs.io
  • Size: 60 MB
Statistics
  • Stars: 159
  • Watchers: 13
  • Forks: 43
  • Open Issues: 29
  • Releases: 58
Topics
discrete-events-simulations python queueing queueing-theory simulation
Created about 10 years ago · Last pushed 8 months ago
Metadata Files
Readme Changelog Contributing License Citation Authors

README.rst

Ciw
===

A discrete event simulation library for queueing networks
---------------------------------------------------------

.. image:: https://github.com/CiwPython/Ciw/actions/workflows/tests.yml/badge.svg
    :target: https://github.com/CiwPython/Ciw/actions/workflows/tests.yml

.. image:: https://img.shields.io/pypi/v/ciw.svg
    :target: https://pypi.python.org/pypi/Ciw

.. image:: https://zenodo.org/badge/47995577.svg
    :target: https://zenodo.org/badge/latestdoi/47995577


.. figure:: https://github.com/CiwPython/Ciw/blob/master/docs/_static/logo_small.png?raw=true
    :width: 150px
    :height: 150px
    :scale: 100%
    :align: center

Ciw is a discrete event simulation library for open queueing networks.
It’s core features include the capability to simulate networks of queues, multiple customer classes, and implementation of Type I blocking for restricted networks.


- `Read the documentation `_
- `Contribution guidelines `_
- `Our great contributors `_

Install with :code:`pip install ciw`.

Current supported version of Python:

- Python 3.8
- Python 3.9
- Python 3.10
- Python 3.11
- Python 3.12

Usage
-----

Import Ciw::

    >>> import ciw

To define an M/M/3 queue, with λ = 0.2 and μ = 0.1::

    >>> N = ciw.create_network(
    ...     arrival_distributions=[ciw.dists.Exponential(rate=0.2)],
    ...     service_distributions=[ciw.dists.Exponential(rate=0.1)],
    ...     number_of_servers=[3]
    ... )

Now set a seed, create a Simulation object, and simulate for 1440 time units::

    >>> ciw.seed(1)
    >>> Q = ciw.Simulation(N)
    >>> Q.simulate_until_max_time(1440)

Collect results::

    >>> recs = Q.get_all_records()

Manipulate results to get useful statistics, e.g. average waiting time::

    >>> waits = [r.waiting_time for r in recs]
    >>> sum(waits) / len(waits)
    4.2305...


Features
--------

A number of other features are also implemented, including:

+ `Type I blocking `_
+ `A large range of sampling distributions `_
+ `Phase-Type distributions `_
+ `Time-dependent and state-dependent distributions `_
+ `Batch arrivals `_
+ `Baulking customers `_
+ `Reneging customers `_
+ `Processor sharing `_
+ `Multiple customer classes `_
+ `Priorities `_
+ `Server priorities `_
+ `Service disciplines `_
+ `Customers changing classes while queueing `_
+ `Customers changing classes after service `_
+ `Server schedules `_
+ `Slotted services `_
+ `State tracking `_
+ `Stopping the simulation after a certain amount of customers `_
+ `Process-based routing `_
+ `Logical routing `_
+ `Deadlock detection `_

Owner

  • Name: CiwPython
  • Login: CiwPython
  • Kind: organization

Citation (CITATION.rst)

Please use the following to cite the latest version of the Ciw library::

    @misc{ciwpython,
      author       = {{{The Ciw library developers}}},
      title        = {Ciw: <RELEASE TITLE>},
      year         = <YEAR>,
      doi          = {<DOI INFORMATION>},
      url          = {http://dx.doi.org/10.5281/zenodo.<DOI NUMBER>}
    }

To check the details (RELEASE TITLE, YEAR, DOI INFORMATION and DOI NUMBER)
please view the Zenodo page for the project. Click on the badge/link below:

.. image:: https://zenodo.org/badge/47995577.svg
	:target: https://zenodo.org/badge/latestdoi/47995577

GitHub Events

Total
  • Create event: 5
  • Commit comment event: 1
  • Release event: 2
  • Issues event: 10
  • Watch event: 12
  • Issue comment event: 21
  • Push event: 11
  • Pull request event: 24
  • Fork event: 1
Last Year
  • Create event: 5
  • Commit comment event: 1
  • Release event: 2
  • Issues event: 10
  • Watch event: 12
  • Issue comment event: 21
  • Push event: 11
  • Pull request event: 24
  • Fork event: 1

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 944
  • Total Committers: 19
  • Avg Commits per committer: 49.684
  • Development Distribution Score (DDS): 0.181
Past Year
  • Commits: 84
  • Committers: 3
  • Avg Commits per committer: 28.0
  • Development Distribution Score (DDS): 0.107
Top Committers
Name Email Commits
Geraint Palmer p****t@g****m 773
Vince Knight v****t@g****m 76
Michalis P****M@c****k 32
Lieke l****2@h****m 17
timlathy t****v@g****m 7
Sam Luen-English s****h@g****m 7
Galen Seilis g****s@s****a 7
Emma a****l@c****k 5
caipirginka g****b@o****m 5
Matthew Howells h****w@h****k 3
Henry Wilde h****e@g****m 3
The Gitter Badger b****r@g****m 2
Nikoleta G****E@c****k 1
Vince Knight v****e@v****g 1
Lieke L****e 1
Geraint Palmer p****1@c****k 1
Alex Carney a****g@g****m 1
KernelA 1****A 1
Adam Chainz a****m@a****u 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 75
  • Total pull requests: 101
  • Average time to close issues: 10 months
  • Average time to close pull requests: 26 days
  • Total issue authors: 29
  • Total pull request authors: 11
  • Average comments per issue: 2.65
  • Average comments per pull request: 0.96
  • Merged pull requests: 84
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 10
  • Pull requests: 17
  • Average time to close issues: 2 months
  • Average time to close pull requests: about 1 month
  • Issue authors: 2
  • Pull request authors: 2
  • Average comments per issue: 1.6
  • Average comments per pull request: 0.53
  • Merged pull requests: 12
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • galenseilis (21)
  • geraintpalmer (14)
  • mnips (4)
  • drvinceknight (4)
  • wibrt (2)
  • daffidwilde (2)
  • lec00q (2)
  • khunetworking (2)
  • markz1er (1)
  • matthew-machado (1)
  • nicolasochoa (1)
  • amm266 (1)
  • sdedison (1)
  • Porridge979 (1)
  • alcarney (1)
Pull Request Authors
  • galenseilis (80)
  • geraintpalmer (35)
  • MichalisPanayides (7)
  • drvinceknight (6)
  • MHowells (3)
  • KernelA (1)
  • daffidwilde (1)
  • EmmaAspland (1)
  • caipirginka (1)
  • timlathy (1)
  • ralic (1)
Top Labels
Issue Labels
feature (6) 2.0.0 (6) enhancement (3) documentation (2) question (1) wontfix (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 1,904 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 3
  • Total versions: 63
  • Total maintainers: 1
pypi.org: ciw

A discrete event simulation library for open queueing networks

  • Versions: 63
  • Dependent Packages: 0
  • Dependent Repositories: 3
  • Downloads: 1,904 Last month
Rankings
Downloads: 4.6%
Stargazers count: 6.1%
Forks count: 6.2%
Average: 6.7%
Dependent packages count: 7.3%
Dependent repos count: 9.1%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/tests.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
docs/requirements.txt pypi
  • pandas *
  • sphinx ==4.3.2
requirements.txt pypi
  • PyYAML >=5.1
  • networkx >=2.3
  • numpy >=1.21.6
  • tqdm >=4.64.0
test_requirements.txt pypi
  • PyYAML >=5.1 test
  • coverage * test
  • hypothesis ==5.33.0 test
  • networkx >=2.3 test
  • tqdm >=4.64.0 test