Arte SheetsLearn. Try. Understand.

Business & Operations

Allen-Cunneen G/G/c Multi-Server Queue Waiting Time Approximation

Calculate expected waiting time in queue Wq and queue length Lq for general multi-server G/G/c stations (fab tool groups, CT scanners, call centers) using Allen-Cunneen variability scaling (Ca^2 + Cs^2) / 2.

Extend Kingman's variability law from 1 server to c parallel servers!

Erlang-C solves M/M/c multi-server queues ONLY when both interarrival times and service times are exponential (squared coefficients of variation Ca^2 = 1 and Cs^2 = 1), while Kingman's VUT equation handles general variability ONLY for a single server (c = 1)! What about a 3-machine CNC cell or 4-bay ambulance triage desk where batch arrivals are bursty (Ca = 1.2) or automated cycles are tight (Cs = 0.5)?

Arnold Allen and G. Cunneen's G/G/c approximation scales the M/M/c Erlang-C mean wait Wq_MMc = Pw / (c * mu * (1 - rho)) by the exact average of arrival and service squared coefficients of variation: Wq_GGc = (Pw / (c * mu * (1 - rho))) * ((Ca^2 + Cs^2) / 2), and Little's Law gives queue length Lq = (c * rho * mu) * Wq_GGc! Notice that when Ca = Cs = 1, (1 + 1)/2 = 1 recovers exact Erlang-C; reducing variability from (Ca=1.2, Cs=0.8) down to (Ca=0.5, Cs=0.5) slashes multi-server queue wait OVER FOUR-FOLD from 0.0607 hr (3.64 min) to 0.0146 hr (0.88 min) WITHOUT buying extra machines!

3-Server Cell (c=3, mu=10/hr, rho=0.80, Pw=0.35)Variability (Ca, Cs)Variability Factor (Ca^2+Cs^2)/2Mean Queue Wait Wq (hr)
Bursty Shop FloorCa = 1.2, Cs = 0.8(1.44 + 0.64) / 2 = 1.040.0607 hr (3.64 min)
Pure Poisson Erlang-CCa = 1.0, Cs = 1.0(1.00 + 1.00) / 2 = 1.000.0583 hr (3.50 min)
Scheduled Paced CellCa = 0.5, Cs = 0.5(0.25 + 0.25) / 2 = 0.250.0146 hr (76% wait cut!)

Allen-Cunneen G/G/c Expected Waiting Time in Queue Wq (Hours)

Validates stability 0 < rho < 1 and evaluates (Pw / (c * mu * (1 - rho))) * ((Ca^2 + Cs^2) / 2).

=IF(OR(B2 < 1, B3 <= 0, B4 <= 0, B4 >= 1, B5 < 0, B5 > 1, B6 < 0, B7 < 0), "Invalid G/G/c Parameters", ROUND((B5 / (B2 * B3 * (1 - B4))) * (((B6 ^ 2) + (B7 ^ 2)) / 2), 4))

Expected Queue Length Lq = lambda * Wq = (c * mu * rho) * Wq (Jobs)

Applies Little's Law with arrival rate lambda = c * mu * rho.

=IF(OR(B2 < 1, B3 <= 0, B4 <= 0, B4 >= 1), "Invalid G/G/c Parameters", ROUND((B2 * B3 * B4) * ((B5 / (B2 * B3 * (1 - B4))) * (((B6 ^ 2) + (B7 ^ 2)) / 2)), 3))

Try the example

Use the original values or change them to test your understanding.

Further reading