LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
snc_mean_delay.h File Reference

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"
Include dependency graph for snc_mean_delay.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.

Detailed Description

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.