Class Pfqn_sens_linearizer
-
Method Summary
Modifier and TypeMethodDescriptionstatic Ret.pfqnSensLinearizerpfqn_sens_linearizer(Matrix L, Matrix N) static Ret.pfqnSensLinearizerpfqn_sens_linearizer(Matrix L, Matrix N, Matrix Z) Uses the termination test of the reference and 200 CORE iterations.static Ret.pfqnSensLinearizerpfqn_sens_linearizer(Matrix L, Matrix N, Matrix Z, double tol, int maxiter) Approximate moments E[Q_i], Var[Q_i], Cov[Q_i,Q_j], E[Q_i^2] and E[Q_i^3] of the per-station total queue lengths of a closed product-form queueing network, by the LINEARIZER-2 / LINEARIZER-3 algorithms of the reference (Section 5).
-
Method Details
-
pfqn_sens_linearizer
public static Ret.pfqnSensLinearizer pfqn_sens_linearizer(Matrix L, Matrix N, Matrix Z, double tol, int maxiter) Approximate moments E[Q_i], Var[Q_i], Cov[Q_i,Q_j], E[Q_i^2] and E[Q_i^3] of the per-station total queue lengths of a closed product-form queueing network, by the LINEARIZER-2 / LINEARIZER-3 algorithms of the reference (Section 5).Motivation. The exact moment analysis of
Pfqn_sens_momevaluates the MVA recursion on the whole population lattice, so it costs O(prod(N+1)) and is unusable once the populations are large. The Linearizer replaces that lattice by a fixed point over a handful of populations, and the reference observes that the same trick applies to the derivatives: differentiate the Linearizer equations, append the differentiated equations to the originals, and iterate all of them together. This routine does that, carrying both the first and the second derivative, so it returns everything (3.2) needs, including the third moment. Carrying only the first derivative is the reference's LINEARIZER-2; carrying the second as well is its LINEARIZER-3.The approximation. CORE (equations (5.1)-(5.2)) estimates the queue lengths at population n - 1_l from those at n by
v_i(l) = m_i^(n)(l) / n(l) m_i^(n-1_l')(l) = (n - 1_l')_l * ( v_i(l) + delta_i(l',l) )
and substitutes them into the exact MVA equations. Setting the delta terms to zero gives Bard-Schweitzer; Linearizer instead estimates them from (5.3), delta_i^(N)(l',l) = v_i^(N-1_l')(l) - v_i^(N)(l), by running CORE at each of the N - 1_l populations, and holds them fixed across populations (the heuristic (5.4)). Differentiating (5.1)-(5.3) gives (5.5)-(5.8), which are carried alongside.
Accuracy. The reference reports, over 51 networks including 34 stress cases, relative errors below 2.1% on E[Q], 4.1% on E[Q^2] and 6.2% on E[Q^3].
PfqnSensLinearizerTestmeasures the error against the exactPfqn_sens_momon models small enough for both, and asserts bands of that order rather than machine precision: this routine is an approximation and is expected to disagree with the exact answer.Reference: J. C. Strelen, "Moment Analysis for Closed Queuing Networks and its Linearizer", Performance Evaluation 11:127-142, 1990, Section 5, equations (5.1)-(5.8), the CORE-2 and LINEARIZER-2 algorithms. The delta definition follows the standard Chandy-Neuse Linearizer, v_i^(N-1_l')(l) - v_i^(N)(l), which is what LINE's
pfqn_linearizerimplements.Single-server stations plus an optional delay Z, matching
pfqn_linearizer. The exact counterpart isPfqn_sens_mom; the per-class exact second moments are inPfqn_sens_mva.- Parameters:
L- service demand matrix (M x R), L(i,r) = visits_ir / rate_irN- population vector (1 x R)Z- think time vector (1 x R), null or empty for zerostol- convergence tolerance of the CORE fixed point on the mean queue lengths; pass a non-positive value for the test of the reference, 1/(4000+16*sum(n)), which is also applied to the variances at 1e-3maxiter- maximum CORE iterations- Returns:
- the approximate base measures together with the approximate moments
-
pfqn_sens_linearizer
Uses the termination test of the reference and 200 CORE iterations. -
pfqn_sens_linearizer
-