![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Modified-offered-load and pointwise-stationary approximations for a time-varying multiserver system. More...
#include <cstddef>#include <functional>#include <limits>#include <vector>#include "line/api/qsys/qsys_mtginf.h"#include "line/num/number.h"#include "line/util/error.h"Go to the source code of this file.
Classes | |
| struct | line::qsys::QsysMolResult< T > |
| MOL and PSA measures of a time-varying multiserver system. More... | |
Namespaces | |
| namespace | line |
| namespace | line::qsys |
Functions | |
| template<class T> | |
| T | line::qsys::qsys_erlang_b (unsigned s, const T &a) |
| Erlang B by the recursion B_j = a B_{j-1}/(j + a B_{j-1}), which never forms a^s/s! | |
| template<class T> | |
| T | line::qsys::qsys_erlang_c (unsigned s, const T &a) |
| Erlang C from the same recursion; 1 when the load saturates the servers. | |
| template<class T> | |
| QsysMolResult< T > | line::qsys::qsys_mtgs0_mol (const std::function< T(const T &)> &lambdaFun, const std::function< T(const T &)> &serviceCcdf, const T &ES, unsigned s, const std::vector< T > &tvals, double startTime=-std::numeric_limits< double >::infinity(), bool delay=false) |
| Modified-offered-load and pointwise-stationary approximations for a time-varying multiserver system. | |
Modified-offered-load and pointwise-stationary approximations for a time-varying multiserver system.
Templated port of matlab/src/api/qsys/qsys_mtgs0_mol.m, cross-checked against jar/src/main/java/jline/api/qsys/Qsys_mtgs0_mol.java.
THE ONE IDEA. A stationary loss system with offered load a blocks with probability B(s,a). In a time-varying system the question is WHICH LOAD goes into that formula. PSA uses the instantaneous one, lambda(t)E[S]. MOL uses the offered load of the corresponding INFINITE-SERVER system,
m(t) = E[S] E[lambda(t - Se)] = int_0^Inf lambda(t-x) P(S>x) dx,
which is EXACT there and therefore carries the time lag and the smoothing the finite-server system also has. MOL is then B(s,m(t)). The difference between the two is precisely the lag: PSA peaks when the arrival rate peaks, MOL peaks later, and the real system peaks later too.
WHAT TO EXPECT. Against the exact time-varying birth-death chain on a sinusoidal rate, MOL cuts the mean RELATIVE error roughly threefold (0.13 against 0.44 at s = 100) because it gets the phase right; it does not always win on ABSOLUTE error, which is dominated by the peak of the cycle. Under constant input MOL is exact.
ARITHMETIC. The offered load is a quadrature, so transcendental only. The Erlang recursions themselves are exact and are exposed separately.
Reference: W. A. Massey, W. Whitt (1994). An analysis of the modified offered load approximation for the nonstationary Erlang loss model. Annals of Applied Probability 4(4), 1145-1160; W. Whitt (1991). Management Science 37(3), 307-314.
Definition in file qsys_mtgs0_mol.h.