This repository contains simulations for different queuing systems using Python. The project is divided into four main directories, each focusing on different aspects of queuing theory, including customer priority handling, multiple server systems, simple queues, and variance reduction techniques.
- Files:
Simple_Queue.pdf
: A report comparing the performance of simple queue systems under FIFO (First-In, First-Out) and LIFO (Last-In, First-Out) disciplines.First_in_First_out.py
: A Python file implementing a simple M/M/1 queue under the FIFO discipline.Last_in_First_out.ipynb
: A Python file implementing a simple M/M/1 queue under the LIFO discipline.
- Files:
Multiple_Servers.pdf
: A report exploring the performance of multiple server systems, including tandem queues and shared queues, analyzing metrics like mean delay and system performance.Shared_queue_by_two_servers.ipynb
: A Python file simulating shared queues handled by two servers.Tandem_queues.ipynb
: A Python file simulating a series of tandem queues.
- Files:
Customer_with_priority.pdf
: A detailed report explaining the impact of customer priority rules on queuing system performance, including scenarios with and without preemption.Preemption_policy.ipynb
: A Jupyter notebook implementing the simulation where high-priority customers preempt low-priority customers.Waiting_policy.ipynb
: A Jupyter notebook implementing the simulation where priority is considered without preemption.
- Files:
Variance_reduction.pdf
: A report on techniques for variance reduction, focusing on antithetic and control variate methods in queuing simulations.Antithetic_variate.ipynb
: A Python file demonstrating the antithetic variate technique for variance reduction.Control_variate.ipynb
: A Python file demonstrating the control variate technique for variance reduction.
Each of the directories contains a PDF report that explains the simulation methods, experimental setup, and results for the respective queuing systems. These reports provide insights into the different scenarios explored, the metrics analyzed, and the conclusions drawn from the simulations.
- Clone this repository:
git clone https://github.com/saurabhshivpuje/Customer_Queues.git cd Customer_Queues
- Navigate to the desired directory and run the Jupyter notebooks to explore the simulations:
cd <directory_name> python3 <python_file_name> or jupyter <notebook_name>
This project provides a comprehensive exploration of various queuing models, including priority-based systems, multiple servers, and methods to improve the accuracy of simulations through variance reduction. The simulations and reports are aimed at providing a deeper understanding of queuing theory concepts and their practical applications.