Class Polling_qsys_decrementing

java.lang.Object
jline.api.polling.Polling_qsys_decrementing

public final class Polling_qsys_decrementing extends Object
Mean waiting-time analysis for a decrementing (semiexhaustive) polling system with Poisson arrivals and general service and switchover times.

The decrementing discipline serves a queue until the number of jobs present drops to one less than the number found at the polling instant. For a symmetric system of N queues the mean message waiting time is given in closed form by Pittel (1973) and Takagi (1984); see also Takagi, "Queuing Analysis of Polling Models", ACM Computing Surveys 20(1), 1988, eq. (28):

   E[W] = delta2/(2 r)
        + ( N lambda b2 (1 - lambda r) + (r + lambda delta2)(N - rho) )
          / ( 2 ( 1 - rho - lambda r (N - rho) ) )
 
where lambda is the per-queue arrival rate, b and b2 the first and second moments of the service time, r and delta2 the mean and variance of the per-queue switchover time, and rho = N lambda b the total offered load. No exact closed-form expression for the individual E[W_i] is known for asymmetric decrementing systems. There an approximation is returned: E[W_i] = c f_i with f_i = (1-rho_i)/(1-rho-lambda_i(1-rho_i)R), R the total switchover time, and c chosen so that the W satisfy the exact pseudo-conservation law (see Polling_pcl). It is exact for symmetric systems; against the exact CTMC of two- and three-queue exponential systems its error was within about 15%.
  • Method Details

    • polling_qsys_decrementing

      public static double[] polling_qsys_decrementing(MatrixCell[] arvMAPs, MatrixCell[] svcMAPs, MatrixCell[] switchMAPs)
      Computes mean waiting times for a decrementing polling system (exact when symmetric, PCL-scaled approximation otherwise).
      Parameters:
      arvMAPs - per-class arrival MAPs (assumed Poisson; only the rate is used)
      svcMAPs - per-class service MAPs (first and second moments are used)
      switchMAPs - per-class switchover MAPs (mean and variance are used)
      Returns:
      array of mean waiting times, one per class
    • polling_qsys_decrementing

      public static double[] polling_qsys_decrementing(double[] lambda, double[] b, double[] b2, double[] r1, double[] delta2)
      Moment form. The formulas read only the per-queue arrival rate, the first two service moments and the switchover mean and variance, so a caller holding a law with no MAP (a Det or Uniform switchover, a general service) passes those directly instead of a MAP surrogate of the wrong variance.
      Parameters:
      lambda - per-queue Poisson arrival rate
      b - per-queue mean service time E[S]
      b2 - per-queue second service moment E[S^2]
      r1 - mean of the switchover out of each queue (Takagi's r_i)
      delta2 - variance of the switchover out of each queue
      Returns:
      mean waiting time per queue