Metadata-Version: 1.0
Name: Ciw
Version: 2.1.3
Summary: A discrete event simulation library for open queueing networks
Home-page: https://github.com/CiwPython/Ciw
Author: Geraint Palmer, Vincent Knight
Author-email: palmer.geraint@googlemail.com
License: UNKNOWN
Description: Ciw
        ===
        
        A discrete event simulation library for queueing networks
        ---------------------------------------------------------
        
        
        .. image:: https://travis-ci.org/CiwPython/Ciw.svg?branch=master
            :target: https://travis-ci.org/CiwPython/Ciw
        
        .. image:: https://img.shields.io/pypi/v/ciw.svg
            :target: https://pypi.python.org/pypi/Ciw
        
        .. image:: https://coveralls.io/repos/github/CiwPython/Ciw/badge.svg?branch=master
            :target: https://coveralls.io/github/CiwPython/Ciw?branch=master
        
        .. image:: https://badges.gitter.im/Join%20Chat.svg
            :target: https://gitter.im/geraintpalmer/Ciw?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
        
        .. 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.
        A number of other features are also implemented, including priorities, baulking, schedules, and deadlock detection.
        
        
        - `Read the documentation <https://ciw.readthedocs.io>`_
        - `Example Jupyter Notebooks <https://github.com/CiwPython/Ciw-notebooks>`_
        - `Contribution guidelines <https://github.com/CiwPython/Ciw/blob/master/CONTRIBUTING.rst>`_
        - `Our great contributors <https://github.com/CiwPython/Ciw/blob/master/AUTHORS.rst>`_
        
        Install with :code:`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...
        
        
        History
        -------
        
        v2.1.3 (2020-10-06)
        ~~~~~~~~~~~~~~~~~~~
        - Small refactor to Node adding new servers, and to Individuals receiving the Simulation object.
        - Add a library of custom behaviour to docs
        - Support Python 3.8, update hypothesis
        
        v2.1.2 (2020-09-26)
        ~~~~~~~~~~~~~~~~~~~
        - Ability to incorporate customer behaviour Server and Individual classes.
        
        v2.1.1 (2020-05-27)
        ~~~~~~~~~~~~~~~~~~~~
        - State Trackers slightly more efficent, they do not record any state changes that result in the same state as before.
        - Add the NodePopulationSubset tracker.
        - Distribution objects can now see the Simulation object, for true state dependent distributions.
        
        v2.1.0 (2020-04-23)
        ~~~~~~~~~~~~~~~~~~~
        - State Trackers now track history
        - State Trackers give state probabilities
        - A number of performance improvements
        - Fix some documentation
        - Test on PyPy3.6 and Python 3.7 too
        
        v2.0.1 (2019-07-17)
        ~~~~~~~~~~~~~~~~~~~
        - setup.py now finds packages to fix pip install bug
        
        v2.0.0 (2019-07-10)
        ~~~~~~~~~~~~~~~~~~~
        - Large refactor:
        - Drop support for Python 2.7, Python 3.4.
        - Update networkx and pyyaml requirements.
        - Refactor time so that `Simulation` has `current_time` attribute.
        - Change Transition_matrices keyword to routing.
        - routing can take a process-based routing function.
        - Refactor distributions to be objects: ['Exponential', 0.5] -> ciw.dists.Exponential(0.5).
        - Distribution objects can be manipulated with +, -, * and /.
        - All keywords lower case to conform to Pep8.
        - deadlock_detector keyword takes object, not string.
        - tracker keyword takes object, not string.
        - Add tests and docs to show how objects can be used for state-dependent distributions.
        - All user facing api now takes float('inf') not 'Inf', expect for .yml files.
        - Reference Ciw paper in docs.
        - Add AUTHORS.rst to docs.
        
        v1.1.6 (2018-10-22)
        ~~~~~~~~~~~~~~~~~~~
        - Fixed bug in which preemptively iterrupted individuals remained blocked once service resampled.
        - Fixed bug in which interrupted individuals not removed from interrupted list when restarting service.
        - Some performance improvements.
        - Improve deadlock detection to check for knots less often.
        
        
        v1.1.5 (2018-01-11)
        ~~~~~~~~~~~~~~~~~~~
        - Fixed bug calculating the utilisation of servers.
        
        v1.1.4 (2017-12-12)
        ~~~~~~~~~~~~~~~~~~~
        - Time dependent batching distributions
        - Hard pin requirements versions
        
        v1.1.3 (2017-08-18)
        ~~~~~~~~~~~~~~~~~~~
        - Replace DataRecord object with namedtuple.
        - Number of minor tweaks for speed improvements.
        
        v1.1.2 (2017-07-05)
        ~~~~~~~~~~~~~~~~~~~
        - Batch arrivals.
        
        v1.1.1 (2017-06-23)
        ~~~~~~~~~~~~~~~~~~~
        - Server utilisation & overtime.
        - Small fixes to docs.
        - Testing on Python 3.6.
        
        v1.1.0 (2017-04-26)
        ~~~~~~~~~~~~~~~~~~~
        - Replace kwargs with actual keyword arguments in ciw.create_network.
        - Refactor server schedule inputs (schedules placed inside Number_of_servers instead of as their own keyword).
        
        v1.0.0 (2017-04-04)
        ~~~~~~~~~~~~~~~~~~~~
        - ciw.create_network takes in kwargs, not dictionary.
        - Add Sequential distribution.
        - Add truncated Normal distribution.
        - Refactor inputs for custom PDF.
        - Refactor inputs for server schedules.
        - Transition matrix now optional for 1 node networks.
        - Overhaul of documentation.
        - Add CONTRIBUTING.rst.
        - Slight improvement of ciw.random_choice.
        
        v0.2.11 (2017-03-13)
        ~~~~~~~~~~~~~~~~~~~~
        - Add ability to simulate until max number of customers have passed arrived/been accepted/passed through the system.
        
        v0.2.10 (2017-03-10)
        ~~~~~~~~~~~~~~~~~~~~
        - Performance improvements.
        - Drop dependency on numpy.
        
        v0.2.9 (2017-02-24)
        ~~~~~~~~~~~~~~~~~~~
        - Allow zero servers.
        
        v0.2.8 (2016-11-10)
        ~~~~~~~~~~~~~~~~~~~
        - Add option for time dependent distributions.
        
        v0.2.7 (2016-10-26)
        ~~~~~~~~~~~~~~~~~~~
        - Run tests on Appveyor.
        - Check docs build and pip installable on Travis.
        - Remove hypothesis cache.
        
        v0.2.6 (2016-10-17)
        ~~~~~~~~~~~~~~~~~~~
        - Add AUTHORS.rst.
        - Add progress bar option.
        
        v0.2.5 (2016-10-06)
        ~~~~~~~~~~~~~~~~~~~
        - Fix bug that didn't include .rst files in MANIFEST.in.
        
        v0.2.4 (2016-09-27)
        ~~~~~~~~~~~~~~~~~~~
        - Fixed bug in which priority classes and dynamic classes didn't work together.
        - New feature: preemptive interruptions for server schedules.
        
        v0.2.3 (2016-07-27)
        ~~~~~~~~~~~~~~~~~~~
        - Ability to set seed. More docs. Fixes to tests.
        
        v0.2.2 (2016-07-06)
        ~~~~~~~~~~~~~~~~~~~
        - Baulking implemented, and minor fixes to order of unblocking.
        
        v0.2.1 (2016-06-29)
        ~~~~~~~~~~~~~~~~~~~
        - Priority classes implemented.
        
        v0.2.0 (2016-06-20)
        ~~~~~~~~~~~~~~~~~~~
        - Python 3.4 and 3.5 compatible along with 2.7.
        - Data records now kept in list.
        
        v0.1.1 (2016-06-06)
        ~~~~~~~~~~~~~~~~~~~
        - Ability to incorporate behaviour nodes.
        - Data records are now named tuples.
        
        v0.1.0 (2016-04-25)
        ~~~~~~~~~~~~~~~~~~~
        - Re-factor inputs.
        - Simulation takes in a Network object.
        - Helper functions to import yml and dictionary to a Network object.
        - Simulation object takes optional arguments: deadlock_detector, exact, tracker.
        - simulate_until_max_time() takes argument max_simulation_time.
        
        v0.0.6 (2016-04-04)
        ~~~~~~~~~~~~~~~~~~~
        - Exactness implemented.
        - Restructure some features e.g. times_to_deadlock.
        - Custom simulation names.
        
        v0.0.5 (2016-03-18)
        ~~~~~~~~~~~~~~~~~~~
        - State space tracker plug-and-playable.
        - Add rejection dictionary.
        
        v0.0.4 (2016-02-20)
        ~~~~~~~~~~~~~~~~~~~
        - Empirical and UserDefined distributions added.
        - Tidy ups.
        
        v0.0.3 (2016-02-09)
        ~~~~~~~~~~~~~~~~~~~
        - Arrival distributions.
        - MMC options removed.
        - Fix server schedule bugs.
        
        v0.0.2 (2016-01-06)
        ~~~~~~~~~~~~~~~~~~~
        - Some kwargs optional.
        - Hypothesis tests.
        - Minor enhancements.
        
        v0.0.1 (2015-12-14)
        ~~~~~~~~~~~~~~~~~~~
        - Initial release.
        
        v0.0.1dev (2015-12-14)
        ~~~~~~~~~~~~~~~~~~~~~~
        - Initial release (dev).
        
        
        Contributors
        ------------
        
        Ciw has been developed by the following contributors:
        
        + `Geraint Palmer <https://github.com/geraintpalmer/>`_
        + `Vincent Knight <https://github.com/drvinceknight/>`_
        + `Lieke Hölscher <https://github.com/Lieke19/>`_
        + `Sam Luen-English <https://github.com/sluenenglish/>`_
        + `Alex Carney <https://github.com/alcarney/>`_
        + `Adam Johnson <https://github.com/adamchainz/>`_
        + `Nikoleta Glynatsi <https://github.com/Nikoleta-v3/>`_
        + `caipirginka <https://github.com/caipirginka>`_
        + `Emma Aspland <https://github.com/EmmaAspland>`_
        + `Henry Wilde <https://github.com/daffidwilde>`_
        + `timlathy <https://github.com/timlathy>`_
        + `Michalis Panayides <https://github.com/11michalis11>`_
        
Platform: UNKNOWN
