Giter Site home page Giter Site logo

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

View Code? Open in Web Editor NEW

This project forked from m0d4/in-the-queue-please

3.0 0.0 1.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%

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

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.