LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
line::polling Namespace Reference

Classes

struct  PollingMoments
 Per-queue first two moments of the arrival, service and switchover processes, the reduced form both formulas consume. More...

Functions

template<class T>
std::vector< T > polling_qsys_1limited (const PollingMoments< T > &m)
 1-limited polling: one job served per visit.
template<class T>
std::vector< T > polling_qsys_decrementing (const PollingMoments< T > &m)
 Decrementing service, symmetric systems only (the MATLAB version rejects asymmetric parameters with a 1e-6 relative tolerance; here the check is exact, which is the right test in an exact field and a stricter one in double).
template<class T>
std::vector< T > polling_qsys_exhaustive (const PollingMoments< T > &m)
 Exhaustive service: the server empties a queue completely before switching.
template<class T>
std::vector< T > polling_qsys_gated (const PollingMoments< T > &m)
 Gated service: only the jobs found at the polling instant are served.

Function Documentation

◆ polling_qsys_1limited()

template<class T>
std::vector< T > line::polling::polling_qsys_1limited ( const PollingMoments< T > & m)

◆ polling_qsys_decrementing()

template<class T>
std::vector< T > line::polling::polling_qsys_decrementing ( const PollingMoments< T > & m)

Decrementing service, symmetric systems only (the MATLAB version rejects asymmetric parameters with a 1e-6 relative tolerance; here the check is exact, which is the right test in an exact field and a stricter one in double).

W = delta2/(2r) + (N lambda b2 (1 - lambda r) + (r + lambda delta2)(N - rho)) / (2 (1 - rho - lambda r (N - rho)))

Definition at line 128 of file polling_qsys_1limited.h.

References line::polling::PollingMoments< T >::b, line::polling::PollingMoments< T >::b2, line::polling::PollingMoments< T >::delta2, line::InputError::InputError(), line::polling::PollingMoments< T >::lambda, line::NumericError::NumericError(), polling_qsys_decrementing(), line::polling::PollingMoments< T >::r, line::polling::PollingMoments< T >::size(), and line::polling::PollingMoments< T >::validate().

Referenced by polling_qsys_decrementing(), and line::mva::solver_mva_polling_analyzer().

◆ polling_qsys_exhaustive()

template<class T>
std::vector< T > line::polling::polling_qsys_exhaustive ( const PollingMoments< T > & m)

Exhaustive service: the server empties a queue completely before switching.

Takagi (1988) eq. (15) in the station-time form. The unknowns are the n^2 station times r_ij collected row-major as index (i-1) n + j, 1-based in the reference and shifted by one here.

Parameters
mper-queue first two moments of arrivals, service and switchover
Returns
the n mean waiting times

Definition at line 103 of file polling_qsys_exhaustive.h.

References line::polling::PollingMoments< T >::b2, line::polling::PollingMoments< T >::delta2, line::polling::PollingMoments< T >::lambda, polling_qsys_exhaustive(), line::polling::PollingMoments< T >::size(), line::solve(), and line::polling::PollingMoments< T >::validate().

Referenced by polling_qsys_exhaustive(), and line::mva::solver_mva_polling_analyzer().

◆ polling_qsys_gated()

template<class T>
std::vector< T > line::polling::polling_qsys_gated ( const PollingMoments< T > & m)

Gated service: only the jobs found at the polling instant are served.

Takagi (1988) eq. (20), same station-time unknowns and the same layout. The switchover variance enters at index i here, not i-1 as in the exhaustive form; that asymmetry is in the reference and is reproduced, and both forms satisfy the pseudo-conservation law, which is what pins them.

Definition at line 170 of file polling_qsys_exhaustive.h.

References line::polling::PollingMoments< T >::b2, line::polling::PollingMoments< T >::delta2, line::polling::PollingMoments< T >::lambda, polling_qsys_gated(), line::polling::PollingMoments< T >::size(), line::solve(), and line::polling::PollingMoments< T >::validate().

Referenced by polling_qsys_gated(), and line::mva::solver_mva_polling_analyzer().