Class Pfqn_busyp_clw

java.lang.Object
jline.api.pfqn.Pfqn_busyp_clw

public final class Pfqn_busyp_clw extends Object
Busy period of a subnetwork evaluated from point values of the normalizing constant rather than from the whole population ladder. WHAT THIS BUYS OVER Pfqn_busyp / Pfqn_busyp_multiclass. Those walk the whole ladder (the whole lattice, multichain) because the numerator sums over {|m| >= n}. The complement of that set is the SHELLS |m| <= n-1, and summing the product form over the WHOLE lattice is the full network's own normalizing constant, G_I and H convolving to it:
   sum_{m : |m| >= n} G_I(m) H(N-m) = G(N) - sum_{m : |m| <= n-1} G_I(m) H(N-m)
 
so order n needs only the n lowest shells plus ONE evaluation of G(N). The ordinary busy period n=1 collapses to three constants,
   b(1,I) = [G(N) - H(N)] / sum_r A_r(I) H(N-e_r)
 
all point evaluations at or near the full population, which is what the normalizing-constant methods are built for. This routine calls CLW (Choudhury-Leung-Whitt, J. ACM 42, 1995, numerical inversion of the generating function); any method returning lG(N) can take its place. The cost stops depending on N: O(shells up to n-1) plus O(n*R) constant evaluations, against O(lattice) for the ladder routines. THE OPEN CASE NEEDS NO INVERSION. The subnetwork's constant sequence has generating function g(z) = prod_{i in I} f_i(z) and the tail is g(1) minus a partial sum, with f_i(1) = 1/(1-rho_i) at a single server and exp(rho_i) at an infinite one. That removes the tail TRUNCATION of the ladder routine, not just its cost: the tail is exact. ACCURACY: the numerator is a difference of two nearly equal quantities when the level set is unlikely, so the relative error grows with n, measured 6e-12 at n=1 against 2.7e-08 at n=N on a three-station closed model at N=20. Cost grows with n too, so the routine is most accurate where it is fastest. SCOPE: CLW's generating function covers single-server and infinite-server stations, so a general load-dependent scaling belongs to Pfqn_busyp_multiclass. The identity is for the AGGREGATE level set: a per-class one has complement {m_r <= n-1}, the whole lattice in the other chains, which buys nothing.
  • Method Details

    • pfqn_busyp_clw

      public static double[] pfqn_busyp_clw(Matrix alpha, Matrix mu, Matrix[] P, double[] N, int[] subnet, int[] n, Matrix gamma, boolean[] isdelay, String method)
      Mean busy period of order n for the subnetwork, via NC point evaluations.
      Parameters:
      alpha - relative arrival rates (JxR), one column per chain
      mu - service rates (JxR), the chain-r rate at node j
      P - routing matrices, one per chain (length 1 = shared by all)
      N - population per chain, infinite entries for an open chain
      subnet - zero-based node indexes forming the subnetwork
      n - busy period orders, counting the jobs of every chain
      gamma - external arrival rates (JxR), null for a closed network
      isdelay - infinite-server nodes, null meaning all single servers
      method - method name of the normalizing-constant method ("clw")
      Returns:
      mean busy period duration for each requested order
    • pfqn_busyp_clw

      public static double[] pfqn_busyp_clw(Matrix alpha, Matrix mu, Matrix P, double[] N, int[] subnet, int[] n)
      Closed-network form with a shared routing matrix and the CLW default.