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

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

Detailed Description

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.