![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Server-Station Disaggregation bounds for a multiserver closed network (Dallery and Suri, SIGMETRICS 1986). More...
#include <algorithm>#include <vector>#include "line/num/number.h"#include "line/util/error.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::pfqn::SsdBounds< T > |
Namespaces | |
| namespace | line |
| Conservation laws of a layered queueing network, enumerated from its structure. | |
| namespace | line::pfqn |
Functions | |
| template<class T> | |
| SsdBounds< T > | line::pfqn::pfqn_ssd (const std::vector< T > &L, const T &N, const T &Z, const std::vector< T > &nservers) |
| Server-Station Disaggregation bounds for a multiserver closed network (Dallery and Suri, SIGMETRICS 1986). | |
| template<class T> | |
| SsdBounds< T > | line::pfqn::pfqn_ssd (const std::vector< T > &L, const T &N, const T &Z) |
Server-Station Disaggregation bounds for a multiserver closed network (Dallery and Suri, SIGMETRICS 1986).
Templated port of matlab/src/api/pfqn/pfqn_ssd.m. Single-class model: L is the per-station demand vector, N the population, Z the think time.
Theorem 5 eq. (6) carries no think time of its own. Inserting a bare +Z into the Theorem 5 form is NOT a bound, because the BJB optimistic step needs sum_k Q_k(N-1) = N-1, which fails once Z X(N-1) jobs sit at the terminal. The queueing term is corrected instead, scaled by the terminal-workload factor of Lazowska et al. 1984, Table 5.2: (N-1) Y_l / (1 + Z/(N R_l)) on the lower bound and (N-1) Y_u / (1 + Z/R_u) on the upper. Both reduce to the Z=0 forms exactly, so this generalises rather than replaces eq. (6), and the Z>0 case is computed instead of refused.
All operations stay in the field, so the bound is exact in rational arithmetic: a bound computed exactly is worth having, since a bound violated only by rounding is indistinguishable from a real violation.
Definition in file pfqn_ssd.h.