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

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

Detailed Description

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.