Class Dpfqn_ncld

java.lang.Object
jline.api.dpfqn.Dpfqn_ncld

public final class Dpfqn_ncld extends Object
Convolution over the discrete-time product form of a closed cycle of state dependent Bernoulli servers.

Port of matlab/src/api/dpfqn/dpfqn_ncld.m. With q_j(n) = 1 - p_j(n) the queue length vector has the stationary law of Daduna (2001), theorem 3.2,

   pi(n_1,...,n_J) = prod_j w_j(n_j) / G(N,J)
   w_j(n) = prod_{h=1}^{n-1} q_j(h) / prod_{h=1}^{n} p_j(h),   w_j(0) = 1
 

which reduces to the state independent form of Dpfqn_nc when p_j(n) does not depend on n. Note that w_j misses the factor q_j(n_j) in the numerator, so the extra 1/q_j on a busy node in the state independent case is not tied to the node being non-empty but to its actual queue length.

The constants are assembled by truncated convolution of the per-node weight vectors, together with the J complement constants (the cycle with node j removed) obtained from a prefix/suffix pass. Deconvolution is never used, so a node with a near-unit service probability does not destroy the accuracy of the other marginals.

See Also:
  • Method Details

    • dpfqn_ncld

      public static DpfqnNcLdResult dpfqn_ncld(double[][] P, int N)
      Parameters:
      P - service probabilities, P[j][n-1] = p_j(n) in (0,1]
      N - number of customers cycling in the J nodes
      Returns:
      the normalizing, complement and arrival constants