Class Solver_mam_reneging

java.lang.Object
jline.solvers.mam.handlers.Solver_mam_reneging

public final class Solver_mam_reneging extends Object
The reneging arm of MATLAB solver_mam_retrial: the MAP/M/s+G queue whose waiting jobs abandon after a generally distributed patience, solved as the multi-regime Markov fluid queue of O. Gursoy, K. A. Mehr and N. Akar, "The MAP/M/s + G Call Center Model with Generally Distributed Patience Times".

THE FLUID IS THE VIRTUAL WAITING TIME. The background chain is (busy servers, MAP phase), s+1 blocks of MAP phases; the last block has drift +1 and stands for the work an admitted arrival adds, every other block drift -1. The patience CDF is quantized into mapmsg_quantization regimes spanning [0, T], T the 1-1e-4 quantile of the patience; an arrival that finds virtual wait in regime k balks with the patience CDF at the regime's representative wait (midpoint, T for the tail [T, inf)), which is the abandonment of a FCFS queue since the virtual wait IS the wait that arrival would see.

MATLAB solves the fluid queue with the MAPMsG library's MRMFQSolver; this port solves the same queue with Mfq_multiregime (Kankaya and Akar, the method MRMFQSolver implements) and reads the per-regime state masses off its distribution function. The two agree to round-off: on M/M/3+M, MAP/M/3+M and M/M/4+Erlang-2 the native-python MRMFQ port and this construction coincide to 1e-14.

The struct field read is sn.impatienceProc, the (D0,D1) pair MATLAB also exposes as sn.patienceProc. Network.refreshImpatience fills it for a Markovian patience only, so a Det, Gamma, Lognormal, Pareto, Uniform or Weibull patience reaches no regime grid and is refused by name.

  • Field Details

    • DEFAULT_QUANTIZATION

      public static final int DEFAULT_QUANTIZATION
      Default regime count, MATLAB convertPatienceToRegimes.
      See Also:
  • Method Details

    • patienceProc

      public static MatrixCell patienceProc(NetworkStruct sn, int ist, int r)
      The (D0,D1) patience law at (station ist, class r), or null when none is carried.
    • hasRenegingPatience

      public static boolean hasRenegingPatience(NetworkStruct sn)
      True when some station-class pair declares RENEGING impatience together with a patience law. Mirrors MATLAB mam_has_reneging_patience.
    • declaresReneging

      public static boolean declaresReneging(NetworkStruct sn)
      True when some station-class pair declares RENEGING impatience, with or without a patience law the struct can carry. A RENEGING pair whose law is not Markovian has no impatienceProc entry, and the gates must still see it: read off hasRenegingPatience alone, such a model would fall through to dec.source and be solved with the patience ignored.
    • renegingApplicable

      public static Solver_mam_reneging.RenegingInfo renegingApplicable(NetworkStruct sn)
      Is this model the MAP/M/s+G shape the analyzer solves? Mirrors MATLAB mam_reneging_applicable; the error messages are its own.
    • solver_mam_reneging

      public static MAMResult solver_mam_reneging(NetworkStruct sn, SolverOptions options, Solver_mam_reneging.RenegingInfo info)
      Solve the MAP/M/s+G queue.