Class Qsys_ggnm_diffusion

java.lang.Object
jline.api.qsys.Qsys_ggnm_diffusion

public final class Qsys_ggnm_diffusion extends Object
Diffusion approximation for the G/GI/n/m queue.

THE APPROXIMATION IS ONE DIFFUSION WITH TWO REGIONS. Below the staffing level the queue behaves like an infinite-server system, whose limit is NORMAL with variance-to-mean ratio the ASYMPTOTIC PEAKEDNESS

  z = 1 + (ca^2 - 1) omega_G,  omega_G = int G^c(x)^2 dx / int G^c(x) dx
(eqs. 1.6-1.7); above it the queue behaves like a single-server queue, whose limit is EXPONENTIAL with variability v = (ca^2 + cs^2)/2 (eq. 3.7). The steady-state law is a normal piece spliced to an exponential piece, and every measure is an integral of that density (eq. 3.14).

WHAT z SAYS. The service-time distribution enters the delay probability ONLY through omega_G, which is 1 for deterministic service, 1/2 for exponential, and falls toward 0 as service gets more variable. At ca^2 = 1 the delay probability does not depend on the service law at all (z = 1), which is the long-standing M/GI/n-by-M/M/n approximation; away from ca^2 = 1 it does.

With m infinite the delay probability is alpha(beta/sqrt(z)) for the Halfin-Whitt function alpha (eq. 3.10), so this generalizes Qsys_mmk_qed.

Port of MATLAB qsys_ggnm_diffusion.m.

Reference: W. Whitt (2004). A diffusion approximation for the G/GI/n/m queue. Operations Research 52(6), 922-941.

Since:
LINE 3.1.0
  • Method Details

    • qsys_ggnm_diffusion

      public static Map<String,Double> qsys_ggnm_diffusion(double lambda, double mu, int n, double m, double ca, double cs)
      The queue with exponential service.
      Parameters:
      lambda - arrival rate
      mu - service rate of one server
      n - number of servers
      m - extra waiting spaces, Double.POSITIVE_INFINITY if unbounded
      ca - coefficient of variation of the interarrival time
      cs - coefficient of variation of the service time
      Returns:
      the steady-state measures
    • qsys_ggnm_diffusion

      public static Map<String,Double> qsys_ggnm_diffusion(double lambda, double mu, int n, double m, double ca, double cs, DoubleUnaryOperator serviceCcdf, double tol, int panels)
      Parameters:
      lambda - arrival rate
      mu - service rate of one server
      n - number of servers
      m - extra waiting spaces, infinite if unbounded
      ca - coefficient of variation of the interarrival time
      cs - coefficient of variation of the service time
      serviceCcdf - G^c(x) = P(S > x), or null for the exponential of rate mu
      tol - service-tail cut for the peakedness integral
      panels - Simpson panels for it
      Returns:
      map with beta, gamma, peakedness, peakednessWeight, variability, probDelay, probBlock, meanQueueLength, meanNumber, meanWait, utilization, throughput and trafficIntensity