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

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

Detailed Description

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.