![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Exact moments E[Q], Var[Q], E[Q^2] and E[Q^3] of the grouped queue lengths of a closed product-form network, by second-order differentiation of the MVA recursion. More...
#include <cmath>#include <cstddef>#include <vector>#include "line/api/pfqn/pfqn_sens_mva.h"#include "line/num/number.h"#include "line/util/error.h"#include "line/util/matrix.h"#include "line/util/population.h"Go to the source code of this file.
Classes | |
| struct | line::pfqn::SensMomResult< T > |
Namespaces | |
| namespace | line |
| namespace | line::pfqn |
Functions | |
| template<class T> | |
| SensMomResult< T > | line::pfqn::pfqn_sens_mom (const Matrix< T > &L, const std::vector< int > &N, const std::vector< T > &Z, const std::vector< int > &mi, const std::vector< int > &groups) |
| Exact moments E[Q], Var[Q], E[Q^2] and E[Q^3] of the grouped queue lengths of a closed product-form network, by second-order differentiation of the MVA recursion. | |
| template<class T> | |
| SensMomResult< T > | line::pfqn::pfqn_sens_mom (const Matrix< T > &L, const std::vector< int > &N, const std::vector< T > &Z) |
| pfqn_sens_mom with unit multiplicities and per-station totals. | |
Exact moments E[Q], Var[Q], E[Q^2] and E[Q^3] of the grouped queue lengths of a closed product-form network, by second-order differentiation of the MVA recursion.
Templated port of matlab/src/api/pfqn/pfqn_sens_mom.m. Theorem 3.1 of Strelen (Performance Evaluation 11:127-142, 1990) states that one further factor Q_i in a moment costs one differentiation with respect to x_i, the reciprocal capacity of station i, so with m_i = E[Q_i] and equation (3.2)
Var[Q_i] = x_i dm_i/dx_i Cov[Q_i,Q_j] = x_j dm_i/dx_j E[Q_i^2] = x_i dm_i/dx_i + m_i^2 E[Q_i^3] = x_i^2 d2m_i/dx_i^2 + (x_i + 3 x_i m_i) dm_i/dx_i + m_i^3
The third moment therefore needs the SECOND derivative of the recursion, which is what this routine adds over pfqn_sens_mva and pfqn_sens. The parameter y_(h,g) rescales the demands of the classes of group g at station h; at y = 1 the y-derivatives are exactly the scaled x-derivatives that (3.2) asks for, because a pure rescaling gives d/dy = x d/dx and d2/dy2 = x^2 d2/dx2. The grouping is the class subset T of Theorem 1 of Akyildiz and Strelen (IEEE TComm 39(6):828-832, 1991); groups all equal to 0 gives the per-station totals of Strelen's x_i, one group per class gives the per-class moments.
Arithmetic. The recursion is field-only, so the moments instantiate at line::Rational and are exact rationals. The skewness is the one derived quantity that leaves the field (it divides by Var^1.5), so it is returned as a double rather than as a T, and the header carries no transcendental gate.
Definition in file pfqn_sens_mom.h.