Skip to main content

A Python package for PH/PH/c queueing systems

Project description

phph -- A Python package for PH/PH/c queueing systems

phph is the Python package for evaluating the performance of PH/PH/c queueing systems.

Features

  • Available on PyPI.
  • Allows for evaluation of multiserver models containing any Phase-type (PH) inter-arrival and service-time distribution.
  • Returns fundamental performance metrics such as the expected waiting time, expected occupancy, and the probability of waiting longer than t units of time.
  • Users can choose to view the metrics observed by actual arriving customers or virtual Poisson arrivals.

Quick start guide

The following shows how to get quickly started with phph.

Installation

Download and install phph directly from PyPI.

pip install phph

Usage

Start by specifying the inter-arrival and service-time distributions.

#Import packages
import phph
import numpy as np

#Set the server capacity
servers = 5

#ARRIVAL PARAMETERS - Example of Erlang distribution

#Initial distribution
arrivalInitDistribution = np.matrix([[1,0]])

#Phase-type generator
arrivalGenerator = np.matrix([[-12,12],
                              [0,-12]])

#SERVICE PARAMETERS - Example of hyper-exponential distribution

#Initial distribution
serviceInitDistribution = np.matrix([[(1/3),(1/2),(1/6)]])

#Phase-type generator
serviceGenerator = np.matrix([[-2,0,0],
                              [0,-1,0],
                              [0,0,-6]])

Now, create the model object.

mdl = phph.model(arrivalInitDistribution,arrivalGenerator,
                 serviceInitDistribution,serviceGenerator,
                 servers)

We can now use the object mdl to return various performance metrics. In the following, we calculate the expected waiting time, the expected occupancy, and the probability of waiting.

#Expected waiting time 
print(mdl.meanWaitingTime())
#0.455024

#Expected occupancy
print(mdl.meanOccupancy())
#6.896811

#Probability of waiting
print(mdl.probWait())
#0.562802

User manual

The following shows how to create the model and provides a list of all available performance metrics.

Object creation

Create the model object with:

mdl = phph.model(arrivalInitDistribution,arrivalGenerator,
                 serviceInitDistribution,serviceGenerator,
                 servers)
  • arrivalInitDistribution is a NumPy row vector defining the initial distribution of the PH distribution associated with arrivals.
  • arrivalGenerator is a NumPy matrix defining the PH generator of the distribution associated with arrivals.
  • serviceInitDistribution is a NumPy row vector defining the initial distribution of the PH distribution associated with services.
  • serviceGenerator is a NumPy matrix defining the PH generator of the distribution associated with services.
  • servers is a non-zero positive integer and defines the number of servers in the queueing system.

Performance metrics

  • mdl.meanWaitingTime(). Returns the actual (i.e. observed by arriving customers) expected waiting time.
  • mdl.meanResponse(). Returns the actual expected total time in the system.
  • mdl.probWait(type="actual"). Returns the probability of waiting. Choose between "actual" (default) and "virtual" using the argument type.
  • mdl.probEmpty(type="actual"). Returns the probability that the system is empty. Choose between "actual" (default) and "virtual" using the argument type.
  • mdl.probK(k,type="actual"). Returns the probability of observing k customers in the system on arrival. Choose between "actual" (default) and "virtual" using the argument type.
  • mdl.waitDist(t,type="actual"). Returns the probability of waiting more than t time units. Choose between "actual" (default) and "virtual" using the argument type.
  • mdl.meanQueueLength(). Returns the expected length of the queue.
  • mdl.meanOccupancy(). Returns the expected occupancy.

Other output

  • mdl.localStateDist(k). Returns the local state distribution of level k.
  • mdl.localState(k). Returns the definition of the local state space of level k.

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

phph-0.1.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

phph-0.1-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

Details for the file phph-0.1.tar.gz.

File metadata

  • Download URL: phph-0.1.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.12

File hashes

Hashes for phph-0.1.tar.gz
Algorithm Hash digest
SHA256 8dde5dd194b0aada498dc7533ad0db5f751b39ee6ddc9af5ba37b9f590789ef4
MD5 da5a70bc0a74090fd08b8996a41e9db9
BLAKE2b-256 f3c99c17caa21f7e18a0df2fbb91a367e060a92f529ff6881e8ef70dfae336bf

See more details on using hashes here.

File details

Details for the file phph-0.1-py3-none-any.whl.

File metadata

  • Download URL: phph-0.1-py3-none-any.whl
  • Upload date:
  • Size: 14.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.12

File hashes

Hashes for phph-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 51e2b2dae58130ef15d7aa5e6dd2e47c4fda977a1afd914c1033a817a2c7e646
MD5 5b2d81c833aecf47987dee057ef9bebb
BLAKE2b-256 8aafd8a91325246946e4240a51fe2c7fe56278c2d56ea1ef0d36c9c3d7e43d5a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page