Giter Site home page Giter Site logo

m0d4 / in-the-queue-please Goto Github PK

View Code? Open in Web Editor NEW
11.0 1.0 5.0 65.42 MB

Implementing the Deterministic and Stochastic Models in Queuing Theory, including graph result (if exists for a model).

License: MIT License

Java 98.64% CSS 1.36%
queuing-theory queuing-models queuing-systems

in-the-queue-please's Introduction

In The Queue, Please!

In Brief, About Queuing Theory:

Queuing theory (or queueing theory) refers to the mathematical study of the formation, function, and congestion of waiting lines, or queues. The study of queues comes under a discipline of Operations Research called Queueing Theory and is a primary methodological framework for evaluating resource performance besides simulation. Queueing theory is generally considered a branch of operations research because the results are often used when making business decisions about the resources needed to provide a service.

At its core, a queuing situation involves two parts:

  • Someone or something that requests a service—usually referred to as the customer, job, or request.
  • Someone or something that completes or delivers the services—usually referred to as the server.

Queueing theory is used in software development for purposes such as project management kanban boards, inter-process communication message queues, and devops continuous deployment pipelines. A queueing model is constructed so that queue lengths and waiting time can be predicted.

Queueing theory notations:

Queueing theory uses notation with Greek letters. We use some of the popular notation; we also add some custom notion that help us with software projects.

Kendall Notation:

David G. Kendall devised a shorthand notation to describe a queueing system containing a single waiting queue: (A / B / X / Y / Z).

  • A : Customer arriving pattern (Inter-arrival-time distribution).
  • B : Service pattern (Service-time distribution).
  • X : Number of parallel servers.
  • Y : System capacity.
  • Z : Queueing discipline.

Examples:

  • M / M / 1 / ∞ / FCFS
  • M / M / 1 / K

Inter-arrival rate, service rate, dropout rate:

The most important notation:

  • λ: inter-arrival rate. This measures how fast new customers are coming into the queue.
  • μ: service rate. This measures how fast customers in the queue are being handled.
  • σ: dropout rate. This measures how fast customers are skipping out the queue unhandled.

Examples:

  • λ = μ means the arrival rate equals the service rate; the queue is staying the same size, other than dropouts.
  • λ > μ means the arrival rate is greater than the service rate; the queue is getting larger, other than dropouts.
  • λ < μ means the arrival rate is less than the service rate; the queue is getting smaller, other than dropouts.

Utilization ratio:

The most important notation that summarizes a queue:

  • ρ: utilization ratio = λ / μ

Examples:

  • ρ = 1 means the arrival rate is equal to the service rate; the queue is staying the same size.
  • ρ > 1 means the arrival rate is greater than the service rate; the queue is getting larger.
  • ρ < 1 means the arrival rate is less than the service rate; the queue is getting smaller.

Count:

We count customers often, and we use this notation:

  • κ: count (capacity of the system).

Example:

  • κ = 100 means there are 100 customers.
  • κ > 100 means there are more than 100 customers.
  • κ ≫ 100 means there are many more than 100 customers.

Standard notations:

Standard notations for queueing theory also uses these symbols:

  • n: the customer number in the system.
  • C: the number of parallel servers.
  • M: the initial number of customers.

Our Project:

Overview:

The understanding and prediction of the stochastic behavior of these queues will provide a theoretical insight into the dynamics of these shared resources and how they can be designed to provide better utilization. And the modeling and analysis of waiting queues/networks is the main implemented subject in this project.

Goals and Specifications:

We implemented, using Java and JavaFX GUI, the Deterministic and Stochastic Models:

  • Model D/D/1/K-1
  • Model M/M/1
  • Model M/M/1/K
  • Model M/M/C
  • Model M/M/C/K

Including graph result (if exists for a model), ending up with a cool CSS style!

Based on the model you choose and the inputs you have, the project can asnwer you the following questions:

  • Sketching number of the customers at time (t), (Only for Model D/D/1/K-1).
  • Expected number of the customers in the system (L).
  • Expected number of the customers in the queue (Lq).
  • Expected waiting time spent in the system (W).
  • Expected waiting time spent in the queue (Wq).

How to work?

After downloading the project and running it, it would be very easy steps:

  1. You will get the home application page, as shown in the screenshots below.
  2. Choose the model you want to make analysis with.
  3. Once you've chosen a model, only the needed parameters will be enabled.
  4. Only Model D/D/1/K-1 can be sketched. Also, you can make a query in.
  5. Enjoy!

Screenshots:

Screenshot from 2020-12-22 15-29-14


Screenshot from 2020-12-22 15-31-00


Screenshot from 2020-12-22 15-33-45

Contributors:

This project exists thanks to all wonderful people who contribute:

in-the-queue-please's People

Contributors

ahr9n avatar m0d4 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

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.