Package jline.api.mdd

Class Mdd_ps

java.lang.Object
jline.api.mdd.Mdd_ps

public class Mdd_ps extends Object
Kronecker rate descriptor for shared-server stations with phase-type service.

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 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 law
      P - station-to-station routing matrix, row-stochastic
      servers - servers per station, 1 (PS) or infinite (IS); no other value has a per-phase-count encoding here
      N - closed population
      proc - per-station service law, or null for an exponential station