Polling Systems
Analysis of gated, exhaustive, and k-limited polling.
The polling module implements algorithms for polling systems with various
polling strategies (gated, exhaustive, k-limited).
Key function categories:
Gated polling:
polling_qsys_gated()Exhaustive polling:
polling_qsys_exhaustive()Limited polling:
polling_qsys_1limited()
Polling System Analysis Algorithms.
Native Python implementations for analyzing polling/vacation queue systems with various disciplines.
- Key algorithms:
polling_qsys_exhaustive: Exhaustive polling discipline polling_qsys_gated: Gated polling discipline polling_qsys_1limited: 1-Limited polling discipline
- polling_qsys_exhaustive(arvMAPs, svcMAPs, switchMAPs)[source]
Compute exact mean waiting times for exhaustive polling system.
In exhaustive polling, the server continues to serve a queue until it becomes empty before moving to the next queue.
Based on Takagi, ACM Computing Surveys, Vol. 20, No. 1, 1988, eq (15).
- Parameters:
arvMAPs (List[Tuple[numpy.ndarray, numpy.ndarray]]) – List of arrival process MAPs, each as (D0, D1) tuple.
svcMAPs (List[Tuple[numpy.ndarray, numpy.ndarray]]) – List of service process MAPs, each as (D0, D1) tuple.
switchMAPs (List[Tuple[numpy.ndarray, numpy.ndarray]]) – List of switching time MAPs, each as (D0, D1) tuple.
- Returns:
Array of mean waiting times for each queue.
- Return type:
- polling_qsys_gated(arvMAPs, svcMAPs, switchMAPs)[source]
Compute exact mean waiting times for gated polling system.
In gated polling, the server serves all customers present at the beginning of a visit period.
Based on Takagi, ACM Computing Surveys, Vol. 20, No. 1, 1988, eq (20).
- Parameters:
arvMAPs (List[Tuple[numpy.ndarray, numpy.ndarray]]) – List of arrival process MAPs, each as (D0, D1) tuple.
svcMAPs (List[Tuple[numpy.ndarray, numpy.ndarray]]) – List of service process MAPs, each as (D0, D1) tuple.
switchMAPs (List[Tuple[numpy.ndarray, numpy.ndarray]]) – List of switching time MAPs, each as (D0, D1) tuple.
- Returns:
Array of mean waiting times for each queue.
- Return type:
- polling_qsys_1limited(arvMAPs, svcMAPs, switchMAPs)[source]
Compute exact mean waiting times for 1-limited polling system.
In 1-limited polling, the server serves at most one customer from each queue before moving to the next queue.
Based on Takagi, ACM Computing Surveys, Vol. 20, No. 1, 1988, eq (20).
- Parameters:
arvMAPs (List[Tuple[numpy.ndarray, numpy.ndarray]]) – List of arrival process MAPs, each as (D0, D1) tuple.
svcMAPs (List[Tuple[numpy.ndarray, numpy.ndarray]]) – List of service process MAPs, each as (D0, D1) tuple.
switchMAPs (List[Tuple[numpy.ndarray, numpy.ndarray]]) – List of switching time MAPs, each as (D0, D1) tuple.
- Returns:
Array of mean waiting times for each queue.
- Return type:
- polling_qsys_decrementing(arvMAPs, svcMAPs, switchMAPs)[source]
Compute exact mean waiting times for a symmetric decrementing (semiexhaustive) polling system with open (Poisson) arrivals.
In decrementing service, the server serves a queue until the number of jobs present drops to one less than the number found at the polling instant. The symmetric system admits the exact closed form of Pittel (1973) and Takagi (1984); see Takagi, ACM Computing Surveys, Vol. 20, No. 1, 1988, eq (28). No exact closed form for the individual E[W_i] is known for asymmetric decrementing systems, so this analysis is restricted to the symmetric case.
- Parameters:
arvMAPs (List[Tuple[numpy.ndarray, numpy.ndarray]]) – List of arrival process MAPs, each as (D0, D1) tuple.
svcMAPs (List[Tuple[numpy.ndarray, numpy.ndarray]]) – List of service process MAPs, each as (D0, D1) tuple.
switchMAPs (List[Tuple[numpy.ndarray, numpy.ndarray]]) – List of switching time MAPs, each as (D0, D1) tuple.
- Returns:
Array of mean waiting times for each queue (all equal, symmetric case).
- Return type: