https://github.com/mahtabranjbar/queue-simulation
The Single Queue Simulation is an implementation of a simulation model with multiple servers and queue priority.
https://github.com/mahtabranjbar/queue-simulation
genetic-algorithm informed simu uninformed-search
Last synced: 8 months ago
JSON representation
The Single Queue Simulation is an implementation of a simulation model with multiple servers and queue priority.
- Host: GitHub
- URL: https://github.com/mahtabranjbar/queue-simulation
- Owner: MahtabRanjbar
- Created: 2023-09-15T09:48:11.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-09-15T10:00:01.000Z (over 2 years ago)
- Last Synced: 2025-04-30T14:29:29.565Z (8 months ago)
- Topics: genetic-algorithm, informed, simu, uninformed-search
- Language: Python
- Homepage:
- Size: 36.1 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Single Queue Simulation
The Single Queue Simulation is an implementation of a simulation model with multiple servers and queue priority. It simulates a system where customers arrive, join a single queue, and are served by a specified number of employees (servers). The simulation takes input parameters and generates statistics based on the simulated events.
The simulation model considers the following parameters:
- `NUMBER_OF_CUSTOMERS`: The number of customers in the calling population.
- `NUMBER_OF_EMPLOYEES`: THe number of employees (resources, servers, etc.) that handle customer requests.
- `PRIORITY_CHANCE`: The probability of a customer being in priority. (0-1) (defualts to 0.2)
- `LOGGING`: Whether to log the events of the system in the `out.txt` file.
## Usage
To run the Single Queue Simulation, follow these steps:
1. Navigate to the "src" folder in your command line or terminal:
```bash
cd src
```
2. Execute the simulation by running the python . command:
```bash
python .
```
## Sample Stats
After running the simulation, you will obtain various statistics and visualizations. Here are some sample statistics:
### Charts:


### Customer Statistics:
The following statistics provide insights into the customers' experience:
```bash
Simulation states (first 10 rows):
Arrival Time Service Start Service End Service Time Service Wait Total Time Server #
0 1.27 1.27 13.86 12.59 0.00 12.59 0
1 1.63 1.63 9.28 7.65 0.00 7.65 1
2 1.71 27.81 38.39 10.58 26.10 36.68 1
3 1.99 25.33 32.55 7.22 23.34 30.56 0
4 2.95 32.55 43.91 11.36 29.60 40.96 0
5 3.07 17.42 27.81 10.39 14.35 24.74 1
6 3.28 13.86 25.33 11.47 10.58 22.05 0
7 3.52 38.39 48.90 10.51 34.87 45.38 1
8 3.64 9.28 17.42 8.14 5.64 13.78 1
9 4.46 43.91 53.41 9.50 39.45 48.95 0
Customer stats:
Arrival Time Service Start Service End Service Time Service Wait Total Time
count 10.000000 10.000000 10.00000 10.000000 10.000000 10.000000
mean 2.752000 21.145000 31.08600 9.941000 18.393000 28.334000
std 1.045432 14.874369 15.04994 1.776166 14.302249 14.489606
min 1.270000 1.270000 9.28000 7.220000 0.000000 7.650000
25% 1.780000 10.425000 19.39750 8.480000 6.875000 15.847500
50% 3.010000 21.375000 30.18000 10.450000 18.845000 27.650000
75% 3.460000 31.365000 42.53000 11.165000 28.725000 39.890000
max 4.460000 43.910000 53.41000 12.590000 39.450000 48.950000
```
### Servers statistics:
```bash
Servers:
Customers Count Service Time Idle Time
0 5 52.137228 1.272772
1 5 47.268062 6.141938
Servers stats:
Customers Count Service Time Idle Time
count 2.0 2.000000 2.000000
mean 5.0 49.702645 3.707355
std 0.0 3.443021 3.443021
min 5.0 47.268062 1.272772
25% 5.0 48.485353 2.490063
50% 5.0 49.702645 3.707355
75% 5.0 50.919937 4.924647
max 5.0 52.137228 6.141938
```
### System events:
System Events are logged in the `out.txt` file if logging is enabled.
```bash
1.27 # New customer arrived and queued.
1.27 @ Customer assigned to server 1 and is set to finish in 13.86
1.63 # New customer arrived and queued.
1.63 @ Customer assigned to server 2 and is set to finish in 9.28
1.71 # New customer arrived and queued.
1.99 # New customer arrived and queued.
2.95 # New customer arrived and queued.
3.07 # New customer arrived and queued.
3.28 # New customer arrived and queued.
3.52 # New customer arrived and queued.
3.64 # New customer arrived and queued.
4.46 # New customer arrived and queued.
9.28 * Server 2 finished proccessing and is free.
9.28 @ Customer assigned to server 2 and is set to finish in 17.42
13.86 * Server 1 finished proccessing and is free.
13.86 @ Customer assigned to server 1 and is set to finish in 25.33
17.42 * Server 2 finished proccessing and is free.
17.42 @ Customer assigned to server 2 and is set to finish in 27.81
25.33 * Server 1 finished proccessing and is free.
25.33 @ Customer assigned to server 1 and is set to finish in 32.55
27.81 * Server 2 finished proccessing and is free.
27.81 @ Customer assigned to server 2 and is set to finish in 38.39
32.55 * Server 1 finished proccessing and is free.
32.55 @ Customer assigned to server 1 and is set to finish in 43.91
38.39 * Server 2 finished proccessing and is free.
38.39 @ Customer assigned to server 2 and is set to finish in 48.9
43.91 * Server 1 finished proccessing and is free.
43.91 @ Customer assigned to server 1 and is set to finish in 53.41
48.9 * Server 2 finished proccessing and is free.
53.41 * Server 1 finished proccessing and is free.
```