Class Pfqn_pas_nc
-
Method Summary
Modifier and TypeMethodDescriptionstatic Ret.pfqnOiNcpfqn_pas_nc(double[] Z, int[] N, List<ToDoubleFunction<int[]>> mu) Normalizing constant of a closed P&S network with no placement order, i.e.static Ret.pfqnOiNcpfqn_pas_nc(double[] Z, int[] N, List<ToDoubleFunction<int[]>> mu, List<boolean[][]> prec) Normalizing constant G_C of the communicating class selected by the placement order.
-
Method Details
-
pfqn_pas_nc
Normalizing constant of a closed P&S network with no placement order, i.e. the plain OI constant. PreferPfqn_ncoi, which computes the same value on the count lattice at far lower cost.- Parameters:
Z- (R) think-time demand of the aggregated delay node.N- (R) closed population, finite.mu- list of P&S station rate handles.- Returns:
- G(N) and log G(N).
-
pfqn_pas_nc
public static Ret.pfqnOiNc pfqn_pas_nc(double[] Z, int[] N, List<ToDoubleFunction<int[]>> mu, List<boolean[][]> prec) Normalizing constant G_C of the communicating class selected by the placement order.Method: build station M's chain head-first; appending class r at chain position k = sum(occ)+1 is admissible iff no class already placed at that station must come after r, and contributes the reciprocal OI prefix rate 1/mu_M(occ+e_r); the chain may be finalized (recursing to station M-1) only when occ is a placement-order ideal at full multiplicity. When every P&S station has been peeled the residual population sits at the delay node with the multinomial weight prod_r Z_r^{N_r}/N_r!.
This is a MICROSTATE routine: it walks the ordered chains position by position, because with a placement order the reachable set is a set of ORDERINGS that does not collapse onto the count lattice. Cost: one node per feasible ordered prefix, which with an empty order is sum_{b<=N} C(|b|+M-1,M-1) |b|!/prod_r b_r!, factorial in sum(N).
- Parameters:
Z- (R) think-time demand of the aggregated delay node; null or empty for a network with no delay station.N- (R) closed population, finite.mu- list of P&S station rate handles; each maps a per-class count vector to the total service rate of that station.prec- placement order, one (R x R) matrix per station, with prec.get(m)[i][j] true iff class i must be placed before class j at station m (the closure ofPas_placement.pas_placement, fed by the global DAG ofPas_swap2order.pas_swap2order). A single-entry list is broadcast to every station; null or empty means no order, so G is the plain OI constant. NOTE the orientation: around a cycle each downstream station traverses its chain in the opposite direction, so downstream stations take the TRANSPOSE of the upstream order. Passing the same matrix to both stations of a cycle silently returns a smaller, wrong G.- Returns:
- G_C and log G_C.
-