Class Pfqn_qlen_joint_moments

java.lang.Object
jline.api.pfqn.nc.Pfqn_qlen_joint_moments

public final class Pfqn_qlen_joint_moments extends Object
Joint moments of the queue-length vector of a closed product-form network, obtained from normalizing constants.

The coordinates are (station,class) pairs. Two pairs sharing a class give the cross-station covariance of that class; two pairs sharing a station give the cross-class covariance at that station, which is what a class-oriented method of moments (Pfqn_comomrm and its relatives) is positioned to deliver. Two exact routes reach the joint survival array, and both end in the same conversion, the tail edge of the house of moments (jline.api.moment) followed by the joint central-moment and cumulant conversions:

  • SINGLE CLASS (R = 1), route "tail". The survival probabilities are ratios of normalizing constants of the network itself, P(n_i >= k_i for all i) = (prod_i L_i^k_i) G(N - sum_i k_i) / G(N), which holds because a load-independent single-class station has the geometric occupancy L_i^n. Only N+1 constants of the ORIGINAL model are needed, which is why any normalizing-constant algorithm serves it.
  • MULTICLASS, route "pmf". The geometric factorization fails, since a multiclass load-independent station carries the multinomial occupancy f_i(n_i) = (|n_i|)! prod_r L_(i,r)^n_(i,r) / n_(i,r)!. What holds instead is the joint law of the selected stations in terms of the COMPLEMENTARY network, the model with those stations deleted and the think times kept, P(n_i = m_i, i in S) = prod_i f_i(m_i) G_(S^c)(N - sum_i m_i) / G(N). The survival array is the reverse cumulative sum of that array, exactly, since the box covers the support.

Neither the factorial nor the raw moments have a one-constant closed form; the survival array is the queue-length functional that does. The normalizing-constant algorithm is INJECTED rather than called at a fixed site: the whole set of populations is known before any evaluation, so it is emitted in one batch and an algorithm that produces several constants in one pass serves it without recomputation. A precomputed table, which the MATLAB and native-Python versions accept directly, is passed here by wrapping it in the same functional interface.

Reference: M. Reiser and S. S. Lavenberg. Mean-value analysis of closed multichain queuing networks. Journal of the ACM, 27(2):313-322, 1980.

Since:
LINE 3.0
  • Method Details

    • pfqn_qlen_joint_moments

      public static Ret.pfqnQlenMoments pfqn_qlen_joint_moments(Matrix L, Matrix N, Matrix Z, int[][] pairs)
      Joint queue-length moments with the default options and no injected source of normalizing constants.
      Parameters:
      L - service demand matrix of the queueing stations (M x R)
      N - population vector (1 x R)
      Z - think time vector (1 x R), may be null
      pairs - P x 2 matrix of 0-based (station,class) pairs
      Returns:
      the moment arrays over the selected coordinates
    • pfqn_qlen_joint_moments

      public static Ret.pfqnQlenMoments pfqn_qlen_joint_moments(Matrix L, Matrix N, Matrix Z, int[][] pairs, String route, BiFunction<Matrix,Matrix,Matrix> lgSource, SolverOptions options)
      Joint queue-length moments of a closed product-form network.
      Parameters:
      L - service demand matrix of the QUEUEING stations (M x R). Delay stations belong in Z, their marginals following a different law. Load-dependent and multiserver stations are out of scope for both routes
      N - population vector (1 x R)
      Z - think time vector (1 x R), may be null for a closed model with no delay
      pairs - P x 2 matrix of 0-based (station,class) pairs, one per dimension of the returned arrays; null selects every class of every station
      route - "auto" (tail when R = 1, pmf otherwise), "tail" or "pmf"
      lgSource - where log G comes from, or null to always call Pfqn_nc. It is invoked ONCE per network with the demand matrix and a P x R matrix of populations, and must return a P x 1 matrix of log G with NaN where it cannot serve; those rows are filled in by Pfqn_nc
      options - options passed to Pfqn_nc; null uses the exact method, since an approximate normalizing constant would silently make the moments approximate
      Returns:
      the moment arrays over the selected coordinates