![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Upper bound on the mean delay, from integrating the delay tail bound. More...
#include <cmath>#include "line/api/snc/snc_thetaopt.h"#include "line/api/snc/snc_types.h"#include "line/util/error.h"Go to the source code of this file.
Namespaces | |
| namespace | line |
| namespace | line::snc |
Functions | |
| SncResult | line::snc::snc_mean_delay (const Envelope &arv, const Envelope &srv, double thetamax=1e3) |
| Upper bound on the mean delay, from integrating the delay tail bound. | |
Upper bound on the mean delay, from integrating the delay tail bound.
For a nonnegative delay E[D] = int_0^inf P{D>d} dd, so integrating the tail bound of snc_bound_delay bounds the MEAN. At fixed theta the bound is K*exp(-a*d) with a = theta*rhoS and K = exp(theta*(sigmaA+sigmaS))/(1-exp(-theta*(rhoS-rhoA))), so, clipping the bound at 1 where it exceeds it, the integral is available in CLOSED FORM: (log(K)+1)/a when K >= 1 and K/a otherwise. No quadrature is involved, so the result is a bound and not a bound plus a discretization error.
IT IS A LOOSE MEAN BOUND AND THAT IS INHERENT: on the M/M/1 read in job units it returns 2.4x the exact 1/(mu-lambda) at rho = 0.1 and 10.4x at rho = 0.95, because the prefactor of the tail bound, not its decay rate, dominates an integral over the whole axis. Use snc_perc_delay when the quantile is what matters.
Port of matlab/src/api/snc/snc_mean_delay.m. This is what the SolverBA snc.upper response-time column calls.
Definition in file snc_mean_delay.h.