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

Kerola's multiclass composite bound (Perf. More...

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

Go to the source code of this file.

Classes

struct  line::pfqn::McubBounds< T >
 Return value of pfqn_mcub, mirroring [Xub, Xlb]. More...

Namespaces

namespace  line
namespace  line::pfqn

Functions

template<class T>
McubBounds< T > line::pfqn::pfqn_mcub (const Matrix< T > &L, const std::vector< T > &N, const std::vector< T > &Z)
 Kerola's multiclass composite bound (Perf.
template<class T>
McubBounds< T > line::pfqn::pfqn_mcub (const Matrix< T > &L, const std::vector< T > &N)

Detailed Description

Kerola's multiclass composite bound (Perf.

Eval. 6:1-9, eqs. 10-16) on the per-class throughput of a closed product-form network.

Templated port of matlab/src/api/pfqn/pfqn_mcub.m. The multiclass Balanced Job Bound gives the per-class lower bound

X_r^- = N_r / (sum_k L_kr + Z_r + (Ntot - 1) max_k L_kr)

and the residual-utilization argument then gives the composite upper bound

X_r^+ = min_k [1 - sum_{s != r} X_s^- L_ks] / L_kr

at O(MR). Despite the name it has nothing to do with pfqn_cub, which is the Grundmann-Moeller cubature normalizing constant.

ARITHMETIC. Sums, products, maxima and divisions only, so the bound is EXACT in rational arithmetic and is deliberately left ungated.

Definition in file pfqn_mcub.h.