Class FluidMfqAdmits

java.lang.Object
jline.solvers.fluid.FluidMfqAdmits

public final class FluidMfqAdmits extends Object
Port of fluid_mfq_admits.m and fluid_is_single_queue.m: can the mfq fluid method (and its alias aoi) run as itself on this model?

The Markovian fluid queue answers ONE open station, Source -> Queue -> Sink. Off that shape mfq RESOLVES to matrix (SolverFluid.resolveMethod(jline.solvers.SolverOptions)), the fallback the analyzer has always taken; stating it before the gate makes the gate check, and the result name, the method that answers. One predicate, two callers (the resolution and the analyzer's own fallback in runAnalyzer), as in MATLAB, native python and C++.

Three arms, tried in the analyzer's order: the age-of-information shape (Aoi_is_aoi); the priority branch, taken when the classes carry distinct priorities (a class-independent finite positive service rate, a MAP {D0,D1} arrival for every open class, at least one of them modulated); the plain branch, stated for ONE open class. Closed classes are refused by the feature set rather than here.

A model the priority arm admits is answered by MFQPrioAnalyzer, the port of solver_mfq_prio.m.

  • Method Details

    • singleQueueReason

      public static String singleQueueReason(NetworkStruct sn)
      The reason sn is not the single-queue shape, or null when it is. Port of fluid_is_single_queue.m; node-level, as the reference is.
      Parameters:
      sn - the network struct
      Returns:
      the reference's errorMsg, or null
    • singleQueueStations

      public static int[] singleQueueStations(NetworkStruct sn)
      The source and queue STATION indices of the single-queue shape, or null off it.
      Parameters:
      sn - the network struct
      Returns:
      {sourceStation, queueStation}, or null
    • admits

      public static FluidMfqAdmits.Verdict admits(NetworkStruct sn)
      Port of fluid_mfq_admits.m.
      Parameters:
      sn - the network struct
      Returns:
      the verdict