Skip to content
/ Ciw Public
forked from CiwPython/Ciw

Ciw is a simulation library for open queueing networks.

License

Notifications You must be signed in to change notification settings

KernelA/Ciw

 
 

Repository files navigation

Ciw

A discrete event simulation library for queueing networks

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.

Install with pip install ciw.

Current supported version of Python:

  • Python 3.6
  • Python 3.7
  • Python 3.8

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:

About

Ciw is a simulation library for open queueing networks.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%