Skip to content

CiwPython/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.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:

About

Ciw is a simulation library for open queueing networks.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 16

Languages