https://github.com/ccfelius/queueing
Simulated queueing systems using Simpy
https://github.com/ccfelius/queueing
queueing-theory simulation-times stochastic-simulation
Last synced: about 1 year ago
JSON representation
Simulated queueing systems using Simpy
- Host: GitHub
- URL: https://github.com/ccfelius/queueing
- Owner: ccfelius
- Created: 2020-11-25T11:10:13.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2023-11-14T07:20:00.000Z (over 2 years ago)
- Last Synced: 2023-11-14T08:28:52.288Z (over 2 years ago)
- Topics: queueing-theory, simulation-times, stochastic-simulation
- Language: Python
- Homepage:
- Size: 3.69 MB
- Stars: 4
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Queueing: Discrete Event Simulation
### License:
[](https://opensource.org/licenses/MIT)
### Required Packages:
numpy
matplotlib
random
time
math
scipy
simpy
pandas
scipy.stats
### Explanations per file
- MM2.py
We this file for various experiments, including the following:
We can collect the data of MMC with 1, 2 and 4 servers by:
Setting RHO = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.975], SIMULATIONS = 500, SIM_TIME= 500, MU = 1 and changing SERVERS each time we run for the values 1, 2 and lastly 4.
- MM1_SJ_data.py
When executing this file we collect data of the M/M/1 queue with shortest job first scheduling with a varying rho. Using servers=2 we can compare this to M/M/2 using: compare_124_processing.py
- MDN_data.py
By changing servers to 1,2,4 we can analyse this data using compare_124_processing.py. Or we can have 2 servers and compare this with tail.py (also setting servers=2) using compare_2_processing.py.
- compare_124_processing.py
The data of for example the MMC with 1, 2, 4 servers runs can be processed using this file. Executing this file, a plot is created of the average waiting times with 1, 2and 4 servers.
- compare_2_processing.py
When comparing 2 types queueing this file is used.
- MM2-2000.py
In this file an M/M/c system is simulated for rho=0.9. It is particularly used to gather data if the simulation time is highly increased.
- histogram.py
In this file histograms of the distribution of average waiting times for different simulation times are plotted.
- probabilities.py
This file is necessary for running the other files; in this file methods to calculate the expected queue length, the expected average waiting time and the confidence interval are stated.
- tail.py
A system with a long-tail distributed processing time can be simulated within this file. Mu = 1 for 75% of the time, but Mu=5 for 25% of the time.
- MDN.py
In this file a deterministic M/D/c system can be simulated.
- proc_09.py
In this file the statistical properties of simulations for rho=0.9 are calculated. The data is read from the data/ folder and subsequently the results are denoted in table 3 in the report.
- dataprocessing.py
This file generates a plot in which for every rho ([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.975]) and simulation times 5, 50, 500 and 1000 the average waiting time is plotted. The amount of servers is 2.
- Data folder
In the datafolder all data of the previously mentioned simulations used to create the plots in the report are collected in this file.