PhPh: A Python package for PH/PH/c queueing systems
PhPh is a Python package for evaluating 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
Classes and methods
The following shows how to create the model and provides a list of all available performance metrics.
Model class
Create the model object with:
mdl = phph.model(arrivalInitDistribution,arrivalGenerator,
serviceInitDistribution,serviceGenerator,
servers)
arrivalInitDistributionis a NumPy row vector defining the initial distribution of the PH distribution associated with arrivals.arrivalGeneratoris a NumPy matrix defining the PH generator of the distribution associated with arrivals.serviceInitDistributionis a NumPy row vector defining the initial distribution of the PH distribution associated with services.serviceGeneratoris a NumPy matrix defining the PH generator of the distribution associated with services.serversis 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 observingkcustomers 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 thanttime 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.
Metadata
Release files for phph 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| phph-0.1.1.tar.gz | 13.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| phph-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.1 kB
Release files / phph-0.1.1.tar.gz
| Download URL | phph-0.1.1.tar.gz |
|---|---|
| Size | 13.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
503ba9dee282872348eff8963478366921ef016068f34d98a62fe82def54c345
|
|
BLAKE2b-256 checksum How to use checksums |
b3a3b49e0f96aaf5a1c006d8e03c3cbf9a4cacb0605b3a70bc8e2d6ba42b38cb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / phph-0.1.1-py3-none-any.whl
| Download URL | phph-0.1.1-py3-none-any.whl |
|---|---|
| Size | 14.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2a72e13fc062c6a7d332a0246e14e7c0c967f58fc11642fd28c479d451004a59
|
|
BLAKE2b-256 checksum How to use checksums |
869757581f6c7d851bfec6f23ecda32765c1a18ad2febdcd4fee123eb645db1a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|