LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
Queueing Systems

Single-station queueing system analysis.

The qsys module provides exact and approximate formulas for single-station queueing systems, including M/M/1, M/M/k, M/G/1, G/I/G/1 approximations, and finite buffer loss models.

Function List

Basic Queueing Models:

  • qsys_mm1 - M/M/1 queue: mean waiting time
  • qsys_mmk - M/M/k queue: mean waiting time with Erlang-C formula
  • qsys_mg1 - M/G/1 queue: Pollaczek-Khinchine formula
  • qsys_gm1 - G/M/1 queue: mean waiting time

Discrete-Time (Slotted) Models:

  • qsys_geogeo1 - Geo/Geo/1 queue: exact stationary distribution and means
  • qsys_geoxgeo1 - Geo^X/Geo/1 queue: batch arrivals, exact means via the pgf

G/I/G/1 Approximations:

G/I/G/k Approximations:

Finite Buffer Loss Models:

qsys_mm1

Description: M/M/1 queue mean waiting time.

Syntax:

[W, rho] = qsys_mm1(lambda, mu)

Parameters:

NameDescription
lambdaArrival rate
muService rate

Returns:

NameDescription
WMean waiting time (including service)
rhoUtilization

qsys_mmk

Description: M/M/k queue mean waiting time using Erlang-C formula.

Syntax:

[W, rho] = qsys_mmk(lambda, mu, k)

Parameters:

NameDescription
lambdaArrival rate
muService rate per server
kNumber of servers

Returns:

NameDescription
WMean waiting time (including service)
rhoUtilization per server

qsys_mg1

Description: M/G/1 queue using the Pollaczek-Khinchine formula.

Syntax:

[W, rhohat] = qsys_mg1(lambda, mu, cs)

Parameters:

NameDescription
lambdaArrival rate
muService rate
csCoefficient of variation of service time

Returns:

NameDescription
WMean waiting time (including service)
rhohatEffective utilization for M/M/1 equivalence

qsys_geogeo1

Description: Discrete-time Geo/Geo/1 queue: exact stationary distribution and mean measures. Time advances in slots of unit length; in each slot an arrival occurs with probability a and, if the server is engaged, a service completion occurs with probability s. The observation epoch is selected by the convention argument: 'LAS_DA' (default, the state after both the departure and the arrival of the slot) or 'EAS' (the state after the departure and before the arrival). The two are one departure apart, so the mean sojourn times differ by exactly one slot and the waiting times coincide.

Syntax:

result = qsys_geogeo1(a, s)
result = qsys_geogeo1(a, s, convention)

Parameters:

NameDescription
aPer-slot arrival probability, 0 < a < s
sPer-slot service completion probability, 0 < s <= 1
conventionObservation epoch, 'LAS_DA' (default) or 'EAS'

Returns: struct with meanQueueLength, meanWaitingQueue, meanSojournTime, meanWaitingTime, meanServiceTime, utilization, throughput, emptyProb, ratio and a pmf function handle.

Reference: H. Daduna, Queueing Networks with Discrete Time Scale, LNCS 2046, Springer 2001, corollary 2.7.

qsys_geoxgeo1

Description: Discrete-time Geo^X/Geo/1 queue with batch arrivals. In each slot a batch arrives with probability a; the batch size is geometric on {1,2,...} with parameter beta, so the job arrival rate is lambda = a/beta and stability requires lambda < s. The mean follows from the queue-length generating function and depends on the batch only through its first two factorial moments. At beta = 1 the result equals qsys_geogeo1.

Syntax:

result = qsys_geoxgeo1(a, beta, s)
result = qsys_geoxgeo1(a, beta, s, convention)

Parameters:

NameDescription
aPer-slot probability that a batch arrives, 0 < a <= 1
betaBatch-size geometric parameter; batch supported on {1,2,...} with mean 1/beta
sPer-slot service completion probability, 0 < s <= 1
conventionObservation epoch, 'LAS_DA' (default) or 'EAS'

Returns: struct with arrivalRate, throughput, utilization, boundaryEmptyProb, meanQueueLength, meanWaitingQueue, meanSojournTime, meanWaitingTime, meanServiceTime and a pgf function handle. No pmf is returned: for a general batch law the stationary distribution has no elementary closed form.

qsys_gm1

Description: G/M/1 queue mean waiting time.

Syntax:

W = qsys_gm1(sigma, mu)

Parameters:

NameDescription
sigmaLoad at arrival instants (Laplace transform of inter-arrival times)
muService rate

Returns:

NameDescription
WMean waiting time (including service)

qsys_gig1_ubnd_kingman

Description: Kingman's upper bound for G/I/G/1 queue.

Syntax:

[W, rhohat] = qsys_gig1_ubnd_kingman(lambda, mu, ca, cs)

Parameters:

NameDescription
lambdaArrival rate
muService rate
caCoefficient of variation of inter-arrival times
csCoefficient of variation of service times

Returns:

NameDescription
WUpper bound on mean waiting time
rhohatEffective utilization

qsys_gig1_approx_allencunneen

Description: Allen-Cunneen approximation for G/I/G/1 queue.

Syntax:

[W, rhohat] = qsys_gig1_approx_allencunneen(lambda, mu, ca, cs)

Parameters:

NameDescription
lambdaArrival rate
muService rate
caCoefficient of variation of inter-arrival times
csCoefficient of variation of service times

Returns:

NameDescription
WApproximate mean waiting time
rhohatEffective utilization

qsys_gig1_approx_gelenbe

Description: Gelenbe approximation for G/I/G/1 queue.

Syntax:

W = qsys_gig1_approx_gelenbe(lambda, mu, ca, cs)

Parameters:

NameDescription
lambdaArrival rate
muService rate
caCoefficient of variation of inter-arrival times
csCoefficient of variation of service times

Returns:

NameDescription
WApproximate mean waiting time

qsys_gig1_approx_heyman

Description: Heyman approximation for G/I/G/1 queue.

Syntax:

[W, rhohat] = qsys_gig1_approx_heyman(lambda, mu, ca, cs)

Parameters:

NameDescription
lambdaArrival rate
muService rate
caCoefficient of variation of inter-arrival times
csCoefficient of variation of service times

Returns:

NameDescription
WApproximate mean waiting time
rhohatEffective utilization

qsys_gig1_approx_kimura

Description: Kimura approximation for G/I/G/1 queue.

Syntax:

W = qsys_gig1_approx_kimura(sigma, mu, ca, cs)

Parameters:

NameDescription
sigmaLoad parameter
muService rate
caCoefficient of variation of inter-arrival times
csCoefficient of variation of service times

Returns:

NameDescription
WApproximate mean waiting time

qsys_gig1_approx_klb

Description: Kramer-Langenbach-Belz (KLB) approximation for G/I/G/1 queue.

Syntax:

[W, rhohat] = qsys_gig1_approx_klb(lambda, mu, ca, cs)

Parameters:

NameDescription
lambdaArrival rate
muService rate
caCoefficient of variation of inter-arrival times
csCoefficient of variation of service times

Returns:

NameDescription
WApproximate mean waiting time
rhohatEffective utilization

qsys_gig1_approx_kobayashi

Description: Kobayashi approximation for G/I/G/1 queue.

Syntax:

[W, rhohat] = qsys_gig1_approx_kobayashi(lambda, mu, ca, cs)

Parameters:

NameDescription
lambdaArrival rate
muService rate
caCoefficient of variation of inter-arrival times
csCoefficient of variation of service times

Returns:

NameDescription
WApproximate mean waiting time
rhohatEffective utilization

qsys_gig1_approx_marchal

Description: Marchal approximation for G/I/G/1 queue.

Syntax:

[W, rhohat] = qsys_gig1_approx_marchal(lambda, mu, ca, cs)

Parameters:

NameDescription
lambdaArrival rate
muService rate
caCoefficient of variation of inter-arrival times
csCoefficient of variation of service times

Returns:

NameDescription
WApproximate mean waiting time
rhohatEffective utilization

qsys_gig1_approx_myskja

Description: Myskja approximation for G/I/G/1 queue.

Syntax:

W = qsys_gig1_approx_myskja(lambda, mu, ca, cs, q0, qa)

Parameters:

NameDescription
lambdaArrival rate
muService rate
caCoefficient of variation of inter-arrival times
csCoefficient of variation of service times
q0Lowest value of the relative third moment
qaThird relative moment E[X^3]/6/E[X]^3

Returns:

NameDescription
WApproximate mean waiting time

qsys_gig1_approx_myskja2

Description: Myskja improved approximation for G/I/G/1 queue.

Syntax:

W = qsys_gig1_approx_myskja2(lambda, mu, ca, cs, q0, qa)

Parameters:

NameDescription
lambdaArrival rate
muService rate
caCoefficient of variation of inter-arrival times
csCoefficient of variation of service times
q0Lowest value of the relative third moment
qaThird relative moment E[X^3]/6/E[X]^3

Returns:

NameDescription
WApproximate mean waiting time

qsys_gigk_approx

Description: G/I/G/k multiserver approximation.

Syntax:

[W, rhohat] = qsys_gigk_approx(lambda, mu, ca, cs, k)

Parameters:

NameDescription
lambdaArrival rate
muService rate per server
caCoefficient of variation of inter-arrival times
csCoefficient of variation of service times
kNumber of servers

Returns:

NameDescription
WApproximate mean waiting time
rhohatEffective utilization

qsys_gigk_approx_kingman

Description: Kingman approximation for G/I/G/k multiserver queue.

Syntax:

[W, rhohat] = qsys_gigk_approx_kingman(lambda, mu, ca, cs, k)

Parameters:

NameDescription
lambdaArrival rate
muService rate per server
caCoefficient of variation of inter-arrival times
csCoefficient of variation of service times
kNumber of servers

Returns:

NameDescription
WApproximate mean waiting time
rhohatEffective utilization

qsys_mm1k_loss

Description: M/M/1/K finite buffer loss probability.

Syntax:

[lossprob, rho] = qsys_mm1k_loss(lambda, mu, K)

Parameters:

NameDescription
lambdaArrival rate
muService rate
KBuffer capacity (including server)

Returns:

NameDescription
lossprobBlocking/loss probability
rhoUtilization

qsys_mg1k_loss

Description: M/G/1/K finite buffer loss probability using Niu-Cooper method.

Syntax:

[lossprob, rho] = qsys_mg1k_loss(lambda, svc_density, K)

Parameters:

NameDescription
lambdaArrival rate
svc_densityService time probability density function handle
KBuffer capacity

Returns:

NameDescription
lossprobBlocking/loss probability
rhoUtilization

qsys_mg1k_loss_mgs

Description: M/G/1/K finite buffer loss probability using MacGregor Smith approximation.

Syntax:

[lossprob, rho] = qsys_mg1k_loss_mgs(lambda, mu, mu_scv, K)

Parameters:

NameDescription
lambdaArrival rate
muService rate
mu_scvSquared coefficient of variation of service time
KBuffer capacity

Returns:

NameDescription
lossprobBlocking/loss probability
rhoUtilization