![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Steady state of the G/GI/s+GI fluid model. More...
#include <algorithm>#include <cmath>#include <cstddef>#include <functional>#include <limits>#include <string>#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::QsysFluidAbandonResult< T > |
| Steady state of the G/GI/s+GI fluid model. More... | |
Namespaces | |
| namespace | line |
| namespace | line::qsys |
Functions | |
| template<class T> | |
| QsysFluidAbandonResult< T > | line::qsys::qsys_ggisgi_fluid (const T &lambda, const T &mu, unsigned s, const std::function< T(const T &)> &patienceCcdf, const std::function< T(const T &)> &servingCcdf=std::function< T(const T &)>(), const std::vector< T > &agePoints=std::vector< T >(), double tol=1e-12, double maxTime=std::numeric_limits< double >::quiet_NaN()) |
| Steady state of the G/GI/s+GI fluid model. | |
Steady state of the G/GI/s+GI fluid model.
Templated port of matlab/src/api/qsys/qsys_ggisgi_fluid.m, cross-checked against jar/src/main/java/jline/api/qsys/Qsys_ggisgi_fluid.java.
Scale the content by s and let s grow. Customers become quanta of fluid but their sojourns do not shrink, so the ages survive the limit: the state is the density b(x) of fluid in service of age x and the density q(x) of fluid waiting of age x. With rho = lambda/(s mu),
rho <= 1 b(x) = rho G^c(x), q = 0 (3.2) rho > 1 b(x) = G^c(x), q(x) = rho F^c(x) on [0,w] (3.4)-(3.5)
with the queue boundary w solving F^c(w) = 1/rho (3.6): fluid that survives its patience for w enters service, so the surviving fraction must equal the fraction 1/rho the servers can absorb. Then
P(abandon) = 1 - 1/rho, W = int_0^w F^c = m_a F_e(w), Q = lambda W.
WHAT THE DISTRIBUTIONS CONTRIBUTE (Corollary 3.1): the rates and the number in service depend on G and F only through their means; w, Q and the queue age profile depend on F beyond its mean but on G only through its mean. Neither s nor anything about the arrival process beyond its rate appears.
ARITHMETIC. The boundary w comes out of a bisection against a tolerance and the mean wait out of a Simpson quadrature, so this is an approximation of an approximation and there is nothing to gain from exact arithmetic; the instantiation is therefore restricted to the transcendental types.
Reference: W. Whitt (2006). Fluid models for multiserver queues with abandonments. Operations Research 54(1), 37-54.
Definition in file qsys_ggisgi_fluid.h.