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

Hsieh-Lam Proportional Approximation Methods (PAMB / PAMI / PAMT). More...

#include <cstddef>
#include <vector>
#include "line/api/pfqn/pfqn_bs.h"
#include "line/num/number.h"
#include "line/util/error.h"
#include "line/util/matrix.h"
Include dependency graph for pfqn_pam.h:

Go to the source code of this file.

Namespaces

namespace  line
namespace  line::pfqn

Enumerations

enum class  line::pfqn::PamVariant { line::pfqn::Basic , line::pfqn::Improved , line::pfqn::Two }
 Which of the three proportional approximations to run. More...

Functions

template<class T>
AmvaResult< T > line::pfqn::pfqn_pam (const Matrix< T > &L, const std::vector< T > &N, const std::vector< T > &Z, PamVariant variant=PamVariant::Basic)
 Hsieh-Lam Proportional Approximation Methods (PAMB / PAMI / PAMT).
template<class T>
AmvaResult< T > line::pfqn::pfqn_pam (const Matrix< T > &L, const std::vector< T > &N)

Detailed Description

Hsieh-Lam Proportional Approximation Methods (PAMB / PAMI / PAMT).

Templated port of matlab/src/api/pfqn/pfqn_pam.m, cross-checked against jar/src/main/java/jline/api/pfqn/mva/Pfqn_pam.java. C. T. Hsieh, S. S. Lam, "PAM - A noniterative approximate solution method for closed multichain queueing networks", ACM SIGMETRICS Perform. Eval. Rev. 16(1), 1988. The three variants are NONITERATIVE: the queue lengths are seeded by the proportion of a class demand that falls at each centre,

E_ck = D_ck / sum_i D_ci, Q_ck(N) = E_ck N_c,

and the MVA equations are then unrolled a fixed number of times. PAMB applies the last MVA step; PAMI additionally scales a class down wherever it would drive a centre past full utilization; PAMT seeds at N - 1_i - 1_j and applies the last TWO MVA steps before that capping.

The seed spreads the whole class population over the queueing centres and ignores Z, exactly as published: PAM buys speed, not accuracy.

Arithmetic: sums, products, divisions and comparisons only, and there is no fixed point, so the result is EXACT in rational arithmetic.

Definition in file pfqn_pam.h.