GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - CiwPython/Ciw: Ciw is a simulation library for open queueing networks.

BranchesTags
Open more actions menu

Latest commit

 

History

1,215 Commits
1,215 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
ciw
ciw
 
 
docs
docs
 
 
tests
tests
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
.readthedocs.yaml
.readthedocs.yaml
 
 
AUTHORS.rst
AUTHORS.rst
 
 
CHANGES.rst
CHANGES.rst
 
 
CITATION.rst
CITATION.rst
 
 
CONTRIBUTING.rst
CONTRIBUTING.rst
 
 
LICENSE.txt
LICENSE.txt
 
 
MANIFEST.in
MANIFEST.in
 
 
README.rst
README.rst
 
 
doctests.py
doctests.py
 
 
new_release_checklist.md
new_release_checklist.md
 
 
requirements.txt
requirements.txt
 
 
setup.py
setup.py
 
 
test_requirements.txt
test_requirements.txt
 
 

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.

  • Read the documentation
  • Contribution guidelines
  • Our great contributors

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:

  • 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

About

Ciw is a simulation library for open queueing networks.

ciw.readthedocs.io

Topics

discrete-events-simulationspythonqueueingqueueing-theorysimulation

Resources

Readme
MIT license

Contributing

Contributing
Activity
Custom properties

Stars

176 stars

Watchers

12 watching

Forks

48 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.