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

Bard Large Customer Population (LCP) approximate MVA. More...

#include <cmath>
#include <cstddef>
#include <limits>
#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_lcp.h:

Go to the source code of this file.

Namespaces

namespace  line
namespace  line::pfqn

Functions

template<class T>
AmvaResult< T > line::pfqn::pfqn_lcp (const Matrix< T > &L, const std::vector< T > &N, const std::vector< T > &Z, const std::vector< AmvaSched > &type, double tol=1e-6, std::size_t maxiter=1000, const Matrix< T > &QN0=Matrix< T >())
 Bard Large Customer Population (LCP) approximate MVA.
template<class T>
AmvaResult< T > line::pfqn::pfqn_lcp (const Matrix< T > &L, const std::vector< T > &N, const std::vector< T > &Z)
template<class T>
AmvaResult< T > line::pfqn::pfqn_lcp (const Matrix< T > &L, const std::vector< T > &N)

Detailed Description

Bard Large Customer Population (LCP) approximate MVA.

Templated port of matlab/src/api/pfqn/pfqn_lcp.m, cross-checked against jar/src/main/java/jline/api/pfqn/mva/Pfqn_lcp.java. Y. Bard, "Some extensions to multiclass queueing network analysis", in Performance of Computer Systems, North-Holland, 1979: the first approximate MVA algorithm. It estimates the arrival-instant queue length by the time-averaged one WITHOUT removing the arriving customer,

A_k^(c)(N) = Q_k(N - 1_c) ~= Q_k(N) = sum_s Q_ks(N),

since with a large population one customer less cannot change the mean queue lengths appreciably. Dropping the Bard-Schweitzer proportional factor (N_r - 1)/N_r from pfqn_bs is exactly this algorithm, so LCP is uniformly more pessimistic than pfqn_bs and is inaccurate at small populations.

Arithmetic: sums, products and divisions only, so the iterate is EXACT in rational arithmetic. The stopping rule still selects WHICH iterate is returned, the same caveat pfqn_bs carries.

Definition in file pfqn_lcp.h.