This software is designed to calculate the characteristics of different queues using the BMAP (Batch Markovian Arrival Process) as input, and deterministic queues characterized by units of input (i.e., customers) arriving at known points in time with fixed service intervals.
Queueing theory is a powerful tool for analyzing the daily phenomenon of waiting in line. Learn how to define queueing theory, its origins, significance, and real-life applications.
Typical examples include:
- Banks/supermarkets: waiting for service
- Computers: waiting for a response
- Public transport: waiting for a train or bus
Also known as Kendall's Notation with the format A/B/C/D/E
, where:
A
represents the probability distribution for the arrival processB
represents the probability distribution for the service processC
represents the number of channels (servers)D
represents the maximum number of customers allowed in the queueing system (either being served or waiting for service)E
represents the maximum total number of customers
Common options for A
and B
are:
M
for a Poisson arrival distribution (exponential inter-arrival distribution) or an exponential service time distributionD
for a deterministic or constant valueG
for a general distribution (with known mean and variance)
If D
and E
are not specified, it is assumed that they are infinite.
Common symbols used include:
λ
for the mean arrival rateµ
for the mean service rate
- Install Python 3:
sudo apt install python3
- Install pip for Python 3:
sudo apt install python3-pip
- Install required libraries:
sudo pip3 install tk matplotlib
-
Clone or download the repository using the following command:
git clone https://github.com/AbdeltwabMF/Queueing-ModelSim
-
Navigate to the
Queueing-ModelSim/src
directory and runpython3 main.py
.- Choose the queueing model you want to calculate:
D/D/1/K
,M/M/1
,M/M/1/K
,M/M/C
, orM/M/C/K
. - Input the arrival rate (
λ
) and service rates (µ
). - Provide additional parameters such as the number of servers (
C
) and maximum number of entities (K
orM
). - Press "Calculate".
- Choose the queueing model you want to calculate:
-
For Deterministic Queues (
D/D/1/K
), a window will prompt you to choose the data you want to plot.
The following figures depict various aspects of the queueing system:
- Number of entities (customers) in the system at each unit of time.
- Time that customer n spends in the queue to be served.
- Time that customer n spends in the system until departure.
- Time of departure for each entity (customer).
- Customers who balked and corresponding processing time.
- Arrival time of each entity.
For Stochastic Models, a window will display server utilization (rho
), average entities in the system (L
), average entities in queue (Lq
), average time an entity spends in the system (W
), and average time an entity waits in line to be served (Wq
).
Licensed under the GPL-3.0 License