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

Exact mean waiting times of a polling system with a polling table. More...

#include <cstddef>
#include <string>
#include <vector>
#include "line/api/polling/polling_qsys_1limited.h"
#include "line/num/number.h"
#include "line/util/error.h"
#include "line/util/lu.h"
#include "line/util/matrix.h"
Include dependency graph for polling_qsys_table.h:

Go to the source code of this file.

Classes

struct  line::polling::PollingTableResult< T >
 Result of polling_qsys_table: waiting times and polling-instant moments. More...

Namespaces

namespace  line
 Conservation laws of a layered queueing network, enumerated from its structure.
namespace  line::polling

Functions

template<class T>
PollingTableResult< T > line::polling::polling_qsys_table_full (const std::vector< T > &lambda, const std::vector< T > &b, const std::vector< T > &b2, const std::vector< std::size_t > &table, const std::vector< T > &s_mean, const std::vector< T > &s_var, bool gated)
 Polling table, exhaustive or gated.
template<class T>
std::vector< T > line::polling::polling_qsys_table (const std::vector< T > &lambda, const std::vector< T > &b, const std::vector< T > &b2, const std::vector< std::size_t > &table, const std::vector< T > &s_mean, const std::vector< T > &s_var, bool gated)
 Mean waiting times only; see polling_qsys_table_full.

Detailed Description

Exact mean waiting times of a polling system with a polling table.

Templated port of matlab/src/api/polling/polling_qsys_table.m. The server visits the queues in the order table[0], table[1], ..., table[M-1] and then starts over, every queue appearing at least once and possibly several times; all queues are served exhaustively or all gated.

Method (buffer occupancy, Eisenberg 1972): the first and second moments of the queue lengths at the polling instants obey an affine recursion over the table positions. Composing the M steps gives a linear system of dimension n + n^2 whose solution is the cycle-stationary moment vector, then propagated to every position. The waiting time follows by length biasing:

exhaustive W_i = lambda_i b2_i/(2(1-rho_i)) + sum_m E[X_i(X_i-1)]_m / (2 lambda_i sum_m E[X_i]_m) gated W_i = (1+rho_i) sum_m E[X_i(X_i-1)]_m / (2 lambda_i sum_m E[X_i]_m)

the sums running over the positions m of queue i. For table = 1..n this is the classical cyclic system (Takagi 1988, eqs. 15 and 21), which the tests use as the oracle together with the CTMC of the same station.

Everything is rational in the input moments plus one linear solve, so the port is instantiable at an exact field.

Definition in file polling_qsys_table.h.