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 argumenttype
.mdl.probEmpty(type="actual")
. Returns the probability that the system is empty. Choose between"actual"
(default) and"virtual"
using the argumenttype
.mdl.probK(k,type="actual")
. Returns the probability of observingk
customers in the system on arrival. Choose between"actual"
(default) and"virtual"
using the argumenttype
.mdl.waitDist(t,type="actual")
. Returns the probability of waiting more thant
time units. Choose between"actual"
(default) and"virtual"
using the argumenttype
.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 levelk
.mdl.localState(k)
. Returns the definition of the local state space of levelk
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8dde5dd194b0aada498dc7533ad0db5f751b39ee6ddc9af5ba37b9f590789ef4 |
|
MD5 | da5a70bc0a74090fd08b8996a41e9db9 |
|
BLAKE2b-256 | f3c99c17caa21f7e18a0df2fbb91a367e060a92f529ff6881e8ef70dfae336bf |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51e2b2dae58130ef15d7aa5e6dd2e47c4fda977a1afd914c1033a817a2c7e646 |
|
MD5 | 5b2d81c833aecf47987dee057ef9bebb |
|
BLAKE2b-256 | 8aafd8a91325246946e4240a51fe2c7fe56278c2d56ea1ef0d36c9c3d7e43d5a |