![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Anselmi-Cremonesi (2008) lower throughput bound for a closed single-class BCMP network with load-dependent stations. More...
#include <cstddef>#include <limits>#include <vector>#include "line/num/number.h"#include "line/util/error.h"Go to the source code of this file.
Classes | |
| struct | line::pfqn::LdBcmpBound< T > |
| Return value of pfqn_ldbcmp, mirroring [Xlo, Rhi, Qhat]. More... | |
Namespaces | |
| namespace | line |
| namespace | line::pfqn |
Functions | |
| template<class T> | |
| LdBcmpBound< T > | line::pfqn::pfqn_ldbcmp (const std::vector< T > &L, const T &N, const T &Z, const std::vector< T > &c, const T &tol) |
| Anselmi-Cremonesi (2008) lower throughput bound for a closed single-class BCMP network with load-dependent stations. | |
| template<class T> | |
| LdBcmpBound< T > | line::pfqn::pfqn_ldbcmp (const std::vector< T > &L, const T &N, const T &Z) |
Anselmi-Cremonesi (2008) lower throughput bound for a closed single-class BCMP network with load-dependent stations.
Templated port of matlab/src/api/pfqn/pfqn_ldbcmp.m. The bound (their eq. 15) uses the fact that a closed BCMP network is, as N -> inf, equivalent to the open network obtained by removing the bottleneck and injecting at rate 1/Dmax; Algorithm 1 refines it to a monotone fixed point
X = (N - Qhat) / [ Dmax (b + N - Qhat) - b (Dmax X')^N Dmax ]
where Qhat is the sum of the non-bottleneck open queue lengths, b the number of bottleneck stations, and c(i) the Heffes load-dependence coefficient.
APPLICABILITY. The bound requires N >= Qhat and every non-bottleneck utilization below one. MATLAB returns NaN in both cases; the port reports it through a flag on the result instead, since a NaN throughput propagates silently while a flag has to be read.
ARITHMETIC. The fixed point raises Dmax X to the integer power N, which is num_pow_int and stays in the field, and everything else is an addition or a division. The bound is therefore EXACT in rational arithmetic and is left ungated – but note that the iteration is a contraction, not a closed form, so what is exact is each iterate, not the limit.
Definition in file pfqn_ldbcmp.h.