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

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

Detailed Description

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.