Class Qsys_mmapmap1

java.lang.Object
jline.api.qsys.Qsys_mmapmap1

public final class Qsys_mmapmap1 extends Object
The MMAP[K]/MAP[K]/1 FCFS queue in which each class's service phase is CARRIED. THE SERVICE LAW. Each class owns ONE service process whose successive draws are chained in the start order of THAT class: a class-k job starts in the phase the previous class-k draw ended in, whatever was served in between. That is how JMT and both LDES engines sample a MAP service, and the law SolverCTMC follows through the per-class carried-phase local variable. A renewal class keeps its marginal phase-type law, which is exact for it. THE REDUCTION. Under FCFS at one server the service-start order IS the arrival order, so the landing phase of each class-k draw can be decided at the ARRIVAL of its job. With V_k = (-S0)^-1 S1 a draw started in h ends in j with probability V_k(h,j); conditioned on (h,j) it is phase type: S0 restricted to the phases i with V_k(i,j) > 0, moved by the Doob transform S0(i,i')V_k(i',j)/V_k(i,j) and started in h. The queue is then a MMAP[K']/PH[K']/1 FCFS queue whose arrival environment is (arrival phase, carried phase of every carried class) and whose marks are (k,h,j). MMAPPH1FCFS (He, 2012) solves it exactly; the class measures are the sums over each class's marks. References: Q. He, "Analysis of a continuous time SM[K]/PH[K]/1/FCFS queue: Age process, sojourn times, and queue lengths", Journal of Systems Science and Complexity, 25(1):133-155, 2012.
  • Method Details

    • qsys_mmapmap1

      public static Qsys_mmapmap1.Result qsys_mmapmap1(MatrixCell D, List<MatrixCell> svc, boolean[] carry)
      Parameters:
      D - marked arrival process {D0, D1_1..D1_K} (BUTools layout)
      svc - svc.get(k) = {S0, S1}, the service MAP of class k
      carry - per-class flags of the carried classes, or null for every arriving class whose MAP is not renewal
      Returns:
      per-class mean queue lengths and sojourn times