Class Qsys_tandem_ub_ciucu

java.lang.Object
jline.api.qsys.Qsys_tandem_ub_ciucu

public final class Qsys_tandem_ub_ciucu extends Object
Tail bounds for a GI/Hn/1 -> ./Hn/1 tandem of two FCFS single servers.

Port of matlab/src/api/qsys/qsys_tandem_ub_ciucu.m. Both stations serve the same hyperexponential law Y, Z ~ sum_i p_i Exp(mu_i), a scalar p = 1 giving exponential service, and the arrivals are renewal with a light-tailed interarrival time supplied through its Laplace-Stieltjes transform E[e^{-s X}].

With theta the positive root of E[e^{theta (Y-X)}] = 1 and alpha = E[X e^{-theta X}], the test function

   gamma(u,v) = 1{0<=u<=v} [1 - A e^{-theta u} - (B + C u + D v) e^{-theta v}]
 

satisfies the integral inequality of Theorem 1(b) of the reference once the five sufficient conditions of its Lemma 4 fix A, B, C and D; Corollary 2 then turns gamma into the tail bounds returned here. The two exponentials mix a polynomial of degree one in x, which is what lets the bound follow the concave bend of the tail on a linear-log scale where a purely exponential bound cannot.

In the M/M/1 -> ./M/1 case the five inequalities hold as equalities, so gamma is the exact joint distribution and both bounds are exact: P(S > x) = (1 + theta x) e^{-theta x} and P(W > x) = (1 - 2 theta^2/(mu(mu+theta)) + x(mu-theta)theta/(mu+theta)) e^{-theta x}. Away from it the bound stays sharp: against an exact CTMC reference for the Erlang(2)/M/1 -> ./M/1 tandem it is within 2% at P(S>x) = 1e-2 and within 0.6% at 5e-10, with the correct asymptotic slope theta^2/(mu(1-alpha mu)). Accuracy degrades with service variability, to about a factor of two at CV(Y) = 2.

Reference: F. Ciucu, S. Mehri, "On the Distribution of Sojourn Times in Tandem Queues", Proc. ACM Meas. Anal. Comput. Syst. 9(2), Article 27, 2025 (ACM SIGMETRICS 2025). Registered in .citations() as 'tandemub'.

Since:
LINE 3.1.0
  • Method Details

    • qsys_tandem_ub_ciucu

      public static QsysTandemUbResult qsys_tandem_ub_ciucu(double[] x, DoubleUnaryOperator lst, double[] p, double[] mu)
      Bounds with the derivative of the transform obtained numerically.
      Parameters:
      x - thresholds at which the tails are bounded, nonnegative
      lst - interarrival transform, s -> E[e^{-s X}] for s >= 0
      p - service phase probabilities, nonnegative and summing to one
      mu - service phase rates, positive
      Returns:
      the tail bounds and the coefficients behind them
    • qsys_tandem_ub_ciucu

      public static QsysTandemUbResult qsys_tandem_ub_ciucu(double[] x, DoubleUnaryOperator lst, double[] p, double[] mu, DoubleUnaryOperator dlst)
      Bounds with an analytic derivative of the transform.
      Parameters:
      x - thresholds at which the tails are bounded, nonnegative
      lst - interarrival transform, s -> E[e^{-s X}] for s >= 0
      p - service phase probabilities, nonnegative and summing to one
      mu - service phase rates, positive
      dlst - s -> E[X e^{-s X}], minus the derivative of lst; null to obtain it by a Richardson-extrapolated central difference, which costs four extra transform evaluations and loses roughly four digits
      Returns:
      the tail bounds and the coefficients behind them