Class Solver_nc_dt_analyzer

java.lang.Object
jline.solvers.nc.analyzers.Solver_nc_dt_analyzer

public final class Solver_nc_dt_analyzer extends Object
Exact normalizing-constant analysis of a discrete-time (slotted) queueing model, selected by options.config.slotted or options.config.timescale="discrete".

Two families are covered, both from H. Daduna, Queueing Networks with Discrete Time Scale, LNCS 2046, Springer, 2001:

  • chapter 2, a Bernoulli server fed by a Bernoulli arrival stream, with an unbounded buffer (theorem 2.3, corollary 2.7), a finite buffer (corollary 2.8) or a load-dependent service probability (example 2.10), evaluated by Dqsys_bernoulli1;
  • chapter 3, a closed cycle of Bernoulli servers (theorem 3.2, corollary 3.4), evaluated by Dpfqn_nc when the service probabilities are state independent and by Dpfqn_ncld otherwise.

Every metric is expressed on the slot lattice, which ncIsDtModel(NetworkStruct, SolverOptions) requires to be the unit one: a Geometric(p) is the same law in every solver, so its per-slot probability is p only on a slot of length 1 (see SlottedRequest). Rates are therefore per-slot probabilities and times are numbers of slots, which are also model time units.

Metrics are SLOT-BOUNDARY values (late arrival with delayed access): the state is read after the arrivals of a slot and before its departures, the stationary law phi of Chao, Miyazawa and Pinedo (1999), example 12.10. The slot-inside law psi gives a smaller queue and a response time one slot shorter.

On the cycle route the per-class split is proportional to the per-class population. Service in the cycle is type independent and FCFS forbids overtaking, so the cyclic order of the jobs is frozen; the marginal law of the queue lengths carries no class information, and the long-run share of station j held by chain g is its population share N_g/N. That is the sense in which section 3.2 of the reference calls the multichain case a direct adaptation of the unichain one.

  • Method Details

    • isSlotted

      public static boolean isSlotted(SolverOptions options)
      True when the caller asked for the discrete-time route, through config.slotted or config.timescale="discrete" as read by the resolver NC, MAM and LDES share (SlottedRequest).
    • ncIsDtModel

      public static Solver_nc_dt_analyzer.DtModel ncIsDtModel(NetworkStruct sn, SolverOptions options)
      ncIsDtModel(NetworkStruct) under the caller's slot length. A Bernoulli server needs the unit slot: a Geometric steps in whole time units, so on any other lattice it is not a one-slot geometric server.
    • ncIsDtModel

      public static Solver_nc_dt_analyzer.DtModel ncIsDtModel(NetworkStruct sn)
      Classify sn against the two discrete-time product-form families.

      The admissible feature set is narrow because the discrete-time product form is narrow. Beyond the geometric service requirement a cycle is the only topology (section 4.1 records that general discrete-time topologies of FCFS Bernoulli servers have no product form), every station must be a single server (Pestien and Ramakrishnan, quoted before example 2.10, proved that a multiserver node inside a cycle of geometrical queues destroys the product form for any finite server count), and class switching is rejected.

    • solver_nc_dt_analyzer

      public static NCResult solver_nc_dt_analyzer(NetworkStruct sn, SolverOptions options)
      Exact discrete-time analysis of sn.