Skip to content
forked from CiwPython/Ciw

Ciw is a simulation library for open queueing networks.

License

Notifications You must be signed in to change notification settings

Arash3an3or/Ciw

 
 

Repository files navigation

Ciw

A discrete event simulation library for queueing networks

https://travis-ci.org/CiwPython/Ciw.svg?branch=master https://coveralls.io/repos/github/CiwPython/Ciw/badge.svg?branch=master
https://github.com/CiwPython/Ciw/blob/master/docs/_static/logo_small.png?raw=true

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. A number of other features are also implemented, including priorities, baulking, schedules, and deadlock detection.

Install with pip install ciw.

Current supported version of Python:

  • Python 3.5
  • Python 3.6
  • Python 3.7
  • PyPy3

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(0.2)],
...     service_distributions=[ciw.dists.Exponential(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...

About

Ciw is a simulation library for open queueing networks.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%