![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Exact time-varying analysis of the Mt/G/infinity queue. More...
#include <algorithm>#include <cmath>#include <cstddef>#include <functional>#include <limits>#include <vector>#include "line/api/qsys/qsys_types.h"#include "line/num/number.h"#include "line/util/error.h"Go to the source code of this file.
Classes | |
| struct | line::qsys::QsysMtginfResult< T > |
| Time-varying measures of the Mt/G/infinity queue. More... | |
Namespaces | |
| namespace | line |
| namespace | line::qsys |
Functions | |
| template<class T> | |
| QsysMtginfResult< T > | line::qsys::qsys_mtginf (const std::function< T(const T &)> &lambdaFun, const std::function< T(const T &)> &serviceCcdf, const T &ES, const std::vector< T > &tvals, double startTime=-std::numeric_limits< double >::infinity(), double ES2=std::numeric_limits< double >::quiet_NaN(), const std::function< T(const T &)> &servicePdf=std::function< T(const T &)>(), double tol=1e-12, std::size_t panels=4000, double maxAge=1e12) |
| Exact time-varying analysis of the Mt/G/infinity queue. | |
Exact time-varying analysis of the Mt/G/infinity queue.
Templated port of matlab/src/api/qsys/qsys_mtginf.m, cross-checked against jar/src/main/java/jline/api/qsys/Qsys_mtginf.java.
THE RESULT IS EXACT, not an approximation. With infinitely many servers customers never interact, so the model is a Poisson random measure and the number in system at time t is POISSON with mean
m(t) = E[ int_{t-S}^{t} lambda(u) du ] = ES E[lambda(t - Se)] = int_0^Inf lambda(t-x) P(S > x) dx
where Se is the STATIONARY-EXCESS (equilibrium) law of the service time, with density P(S>x)/ES. Because the law is Poisson the variance equals the mean.
THE PHYSICS. Reading m(t) as ES E[lambda(t-Se)] says the time-varying load is the stationary load ES lambda(t) subjected to a TIME LAG and a SPACE SHIFT: to first order m(t) ~ ES lambda(t - E[Se]) with E[Se] = E[S^2]/(2 ES), so peak congestion LAGS peak arrival rate, and by more than the mean service time when the service law is variable. The pointwise stationary approximation is the zeroth-order term of the same expansion.
ARITHMETIC. The age integral is a Simpson quadrature against a tail cut, so the answer is a quadrature approximation whatever the arithmetic; the instantiation is restricted to the transcendental types.
Reference: S. G. Eick, W. A. Massey, W. Whitt (1993). The physics of the Mt/G/infinity queue. Operations Research 41(4), 731-742.
Definition in file qsys_mtginf.h.