Class Pfqn_oi_insvc
In an OI station the state is the ordered list c = (c_1,...,c_n) of job classes (position 1 = head) and the job in position p is served at the rank rate increment Delta_p(c) = mu(c_1..c_p) - mu(c_1..c_{p-1}), so that the total rate telescopes to mu(c). Position p is IN SERVICE when Delta_p(c) > 0, and sir_r(c) = #{p : c_p = r, Delta_p(c) > 0}. Note that sir_r counts JOBS, not servers: a single job served concurrently by several compatible servers counts once. This matches the definition used by the exact CTMC solver (State.toMarginal, PAS branch) and by LDES.
Because mu is permutation-invariant (a function of the count vector), the unnormalized weight of an ordering c of the multiset n factorizes over its prefixes as w(c) = prod_{p=1}^{|n|} 1/mu(n(c_1..c_p)), and the OI balance function Phi(n) = sum_{orderings c of n} w(c) obeys the standard balanced-fairness recursion (condition on the tail element c_{|n|}):
Phi(0) = 1, Phi(n) = (1/mu(n)) sum_{r: n_r>0} Phi(n - e_r).
Conditioning the same way on the tail element and using sir_r(c) = sir_r(c_1..c_{|n|-1}) + [c_{|n|} = r] * 1{mu(n) > mu(n - e_r)} gives the companion recursion for the sir-weighted balance Xi_r(n) = sum_{orderings c of n} w(c) sir_r(c):
Xi_r(0) = 0,
Xi_r(n) = (1/mu(n)) [ sum_{s: n_s>0} Xi_r(n - e_s)
+ 1{n_r > 0} 1{mu(n) > mu(n - e_r)} Phi(n - e_r) ].
Given n, every ordering carries the same class-weight factor, so the
conditional law of the ordering is w(c)/Phi(n) and
E[sir_r | n] = Xi_r(n) / Phi(n) =: g_r(n), a function of the count vector
alone. The station's in-service mean then follows from the count marginal pM
by E[sir_r] = sum_n pM(n) g_r(n), or, in normalizing-constant form, from the
functional-server identity of Pfqn_oi_fnc applied to f(n) = g_r(n)
(note g_r(0) = 0, as required).
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final class -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Pfqn_oi_insvc.Resultpfqn_oi_insvc(ToDoubleFunction<int[]> oirate, int[] N) Conditional mean number of in-service jobs per class over the population lattice 0 <= n <= N.
-
Constructor Details
-
Pfqn_oi_insvc
public Pfqn_oi_insvc()
-
-
Method Details
-
pfqn_oi_insvc
Conditional mean number of in-service jobs per class over the population lattice 0 <= n <= N.- Parameters:
oirate- rank rate mu(n) on a per-class count vector; mu(0) is taken as 0N- (1 x R) closed population vector, finite and nonnegative- Returns:
- the tables g, Xi and Phi, flat column-major over the lattice
-