![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Aggregate Queue Length (AQL) approximate MVA. More...
#include <cmath>#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"Go to the source code of this file.
Namespaces | |
| namespace | line |
| namespace | line::pfqn |
Functions | |
| template<class T> | |
| AmvaResult< T > | line::pfqn::pfqn_aql (const Matrix< T > &L, const std::vector< T > &N, const std::vector< T > &Z, double tol=1e-7, std::size_t maxiter=1000) |
| Aggregate Queue Length (AQL) approximate MVA. | |
| template<class T> | |
| AmvaResult< T > | line::pfqn::pfqn_aql (const Matrix< T > &L, const std::vector< T > &N) |
Aggregate Queue Length (AQL) approximate MVA.
Templated port of matlab/src/api/pfqn/pfqn_aql.m. AQL solves K+1 coupled populations at once: the full population N and each N - e_s. The arrival estimate is R(k,s|n) = L(k,s) [1 + (|n| - 1) (Q(k|n)/|n| - gamma(k,s))] with the correction gamma(k,s) = Q(k|N)/|N| - Q(k|N - e_s)/(|N| - 1) refreshed after every sweep. The aggregate queue length Q(k|n) is kept per population rather than per class, which is what distinguishes AQL from Linearizer and makes it cheaper by a factor of the class count.
Iterates to a relative tolerance, so exact arithmetic buys nothing: the static_assert records that.
Definition in file pfqn_aql.h.