/Queueing-Simulation

A Java program that simulates the working of a multi-server queueing model

Primary LanguageJavaMIT LicenseMIT

Queueing Simulation

A Java program that simulates the working of a multi-server queueing model.

Overview

Cars (sedans or SUV's) arrive at random at a service station, where they are serviced by one of the following two servers:

  • Sedan server
  • SUV server

The sedan server provides faster service as compared to the SUV server.

By default, a car will be serviced by a server of its own type. However, if that server is currently busy, the following may occur:

  • If the other server is currently free, the car will begin service at that server
  • If the other server is also busy, the car will join the queue of its own server (i.e. a sedan cannot join the SUV server's queue)

The arrival time of the cars is distributed as:

Arrival time Probability
1 25
2 40
3 20
4 15

The service times of the sedan and SUV servers are distributed as:

Service time Probability
2 30
3 28
4 25
5 17
Service time Probability
3 35
4 25
5 20
6 20

Input:

The number of cars to run the simulation for

Output:

The statistics for each car which includes:

  • Car number
  • Random digit for car type
  • Car type
  • Random digit for inter arrival time
  • Inter arrival time
  • Arrival time
  • Served by
  • Random digit for service time
  • Service time
  • Service start time
  • Service end time
  • Waiting time of the car
  • Idle time of the server

The simulation statistics are also calculated, which includes:

  • Average waiting time
  • Probability that a customer has to wait
  • Probability of sedan server being idle
  • Probability of SUV server being idle
  • Average service time
  • Average time between intervals
  • Average waiting time of those who wait