GithubHelp home page GithubHelp logo

abdeltwabmf / queueing-modelsim Goto Github PK

View Code? Open in Web Editor NEW
19.0 1.0 7.0 2.09 MB

Queueing Models Simulator.

License: GNU General Public License v3.0

Python 100.00%
queueing queueing-theory queueing-networks queueing-models queueing-simulation queueing-systems gui python python-gui python-gui-tkinter

queueing-modelsim's Introduction

Queueing ModelSim

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.

About Queueing Theory

Definition

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

Different Types of Queueing Systems

Also known as Kendall's Notation with the format A/B/C/D/E, where:

  • A represents the probability distribution for the arrival process
  • B represents the probability distribution for the service process
  • C 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 distribution
  • D for a deterministic or constant value
  • G 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

What It Does and How to Use It

Prerequisite Libraries

  • 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
  1. Clone or download the repository using the following command: git clone https://github.com/AbdeltwabMF/Queueing-ModelSim Clone

  2. Navigate to the Queueing-ModelSim/src directory and run python3 main.py.

    • Choose the queueing model you want to calculate: D/D/1/K, M/M/1, M/M/1/K, M/M/C, or M/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 or M).
    • Press "Calculate".

    Run

  3. For Deterministic Queues (D/D/1/K), a window will prompt you to choose the data you want to plot. Deterministic

Plots

The following figures depict various aspects of the queueing system:

  • Number of entities (customers) in the system at each unit of time. Entities_in_System
  • Time that customer n spends in the queue to be served. Waiting_in_queue
  • Time that customer n spends in the system until departure. Waiting_in_System
  • Time of departure for each entity (customer). Departure_time
  • Customers who balked and corresponding processing time. Balking_customers
  • Arrival time of each entity. Arrival_time

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). Stochastic

License

Licensed under the GPL-3.0 License

queueing-modelsim's People

Contributors

abdeltwabmf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

queueing-modelsim's Issues

Plot environment

When I wanted to run the code and see the plots for D/D/1/K
I encountered with

FigureCanvasAgg is non-interactive, and thus cannot be shown
  plt.show()

To resolve this error, I had to add a few lines in the src/plots.py as follows:

import matplotlib
matplotlib.use('Qt5Agg')

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.