Business & Operations
Closed Queueing Network Throughput: Zahorjan-Lazowska Balanced Job Bounds (BJB)
Bracket exact Mean-Value-Analysis / Buzen closed-network throughput X(N) for fixed-population pallet loops and database thread pools between tight lower bound N / (D_tot + (N - 1) * D_max) and upper bound MIN(1 / D_max, N / (D_tot + (N - 1) * D_avg)).
Bound fixed-population AGV loops, CONWIP cells, and database connection pools in one formula!
In a closed queueing network—such as N = 10 automated guided vehicles (AGVs) circulating around K = 4 factory stations, or a fixed thread pool of N = 10 database workers—jobs never enter or leave from outside; the moment a job completes, another immediately re-enters! Solving exact throughput X(N) normally requires iterative Mean Value Analysis (MVA) or Jeffrey Buzen's (1973) convolution algorithm across all N populations.
John Zahorjan, Kenneth Sevcik, Derek Eager, and Edward Lazowska (1982) proved the remarkably tight closed-form Balanced Job Bounds (BJB) using just three numbers—total service demand across all K stations D_tot = SUM(D_k), bottleneck station demand D_max = MAX(D_k), and average station demand D_avg = D_tot / K: Lower Throughput Bound X_low(N) = N / (D_tot + ((N - 1) * D_max)), and Upper Throughput Bound X_up(N) = MIN(1 / D_max, N / (D_tot + ((N - 1) * D_avg)))! At N = 1, BOTH bounds collapse to exact 1 / D_tot = 2.000 jobs/s; at N = 10 (D_tot = 0.50 s, D_max = 0.20 s, K = 4 -> D_avg = 0.125 s), exact throughput is tightly bracketed between 4.348 and 5.000 jobs/s!
| Circulating Population N (D_tot = 0.50 s, D_max = 0.20 s, K = 4) | BJB Lower Bound X_low | BJB Upper Bound X_up | Bottleneck Ceiling 1 / D_max |
|---|---|---|---|
| Single Circulating Job (N = 1) | 2.000 jobs/s | 2.000 jobs/s (Exact!) | 5.000 jobs/s |
| Moderate Thread/Pallet Pool (N = 10) | 4.348 jobs/s | 5.000 jobs/s | 5.000 jobs/s |
| Heavy Saturation (N = 50) | 4.854 jobs/s | 5.000 jobs/s | Approaches 5.000 asymptote! |
Balanced Job Bound Lower Throughput Guarantee X_low(N)
Evaluates N / (D_tot + (N - 1) * D_max), corresponding to a worst-case unbalanced bottleneck network.
=IF(OR(B2 < 1, B3 <= 0, B4 <= 0, B4 > B3, B5 < 1), "Invalid Closed Network Inputs", ROUND(B2 / (B3 + ((B2 - 1) * B4)), 3))Balanced Job Bound Tight Upper Throughput Limit X_up(N)
Takes MIN(1 / D_max, N / (D_tot + (N - 1) * (D_tot / K))) combining asymptotic bottleneck cap with balanced-station throughput.
=IF(OR(B2 < 1, B3 <= 0, B4 <= 0, B4 > B3, B5 < 1), "Invalid Closed Network Inputs", ROUND(MIN(1 / B4, B2 / (B3 + ((B2 - 1) * (B3 / B5)))), 3))Try the example
Use the original values or change them to test your understanding.