Class Mdd_ps
Under processor sharing every job at a station is in service at once, each
holding its own phase, so naming a single in-service phase (what
Mdd_descriptor does, which is non-preemptive semantics) cannot
represent the state. The local state here is instead the PER-PHASE COUNT
vector v = (v_1,...,v_h), v_a jobs in phase a, with n = sum(v) jobs present.
That is still a per-station quantity, so every event stays a product of
per-level terms and the Kronecker form of Eq. 1 survives.
With one server shared by n jobs each job advances at rate 1/n, so from local state v with n = sum(v):
internal v -> v - e_a + e_b at v_a * D0[a][b] / n (a != b) departure v -> v - e_a at v_a * t[a] / n * P[i][j] arrival v -> v + e_b at pie[b]
An infinite-server (delay) station is the same without the 1/n scaling. For h = 1 the departure rate collapses to n*mu/n = mu at PS and to n*mu at IS, reproducing the usual single-server and delay rate laws.
The local domain is the number of compositions of 0..N over h phases, C(N+h,h), against 1+N*h for the non-preemptive encoding: the price of tracking every job's phase rather than one.
-
Method Summary
Modifier and TypeMethodDescriptionstatic MddDescriptormdd_ps(double[] mu, double[][] P, double[] servers, int N, MddServiceLaw[] proc) Build the descriptor.
-
Method Details
-
mdd_ps
public static MddDescriptor mdd_ps(double[] mu, double[][] P, double[] servers, int N, MddServiceLaw[] proc) Build the descriptor.- Parameters:
mu- station service rates, ignored where proc gives a lawP- station-to-station routing matrix, row-stochasticservers- servers per station, 1 (PS) or infinite (IS); no other value has a per-phase-count encoding hereN- closed populationproc- per-station service law, or null for an exponential station
-