Package jline.api.pfqn
Class Pfqn_busyp_clw
java.lang.Object
jline.api.pfqn.Pfqn_busyp_clw
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 Summary
Modifier and TypeMethodDescriptionstatic 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.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.
-
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 chainmu- service rates (JxR), the chain-r rate at node jP- routing matrices, one per chain (length 1 = shared by all)N- population per chain, infinite entries for an open chainsubnet- zero-based node indexes forming the subnetworkn- busy period orders, counting the jobs of every chaingamma- external arrival rates (JxR), null for a closed networkisdelay- infinite-server nodes, null meaning all single serversmethod- 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.
-