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

Conditional waiting-time moments of the Hl/Hn/1 Lindley recursion. More...

#include <cstddef>
#include <string>
#include <vector>
#include "line/api/qsys/qsys_lindley_moment.h"
#include "line/api/qsys/qsys_mm1_lindley.h"
#include "line/num/number.h"
#include "line/util/error.h"
#include "line/util/matrix.h"
Include dependency graph for qsys_hh1_lindley.h:

Go to the source code of this file.

Namespaces

namespace  line
namespace  line::qsys

Functions

template<class T>
LindleyResult< T > line::qsys::qsys_hh1_lindley (const std::vector< T > &lambda, const std::vector< T > &pa, const std::vector< T > &mu, const std::vector< T > &ps, const std::vector< T > &Wn, unsigned mmax=2)
 Conditional waiting-time moments of the Hl/Hn/1 Lindley recursion.
template<class T>
LindleyResult< T > line::qsys::qsys_hh1_lindley (const std::vector< T > &lambda, const std::vector< T > &pa, const std::vector< T > &mu, const std::vector< T > &ps, const T &Wn, unsigned mmax=2)
 Scalar-Wn overload.

Detailed Description

Conditional waiting-time moments of the Hl/Hn/1 Lindley recursion.

Templated port of matlab/src/api/qsys/qsys_hh1_lindley.m. No JAR counterpart. Hyperexponential primitives are mixtures of exponentials, so conditioning on the arrival phase i and the service phase j reduces one Lindley step to the M/M/1 step at rates lambda(i) and mu(j), and

E[W_{n+1}^m | W_n] = sum_i sum_j pa(i) ps(j) E_ij[W_{n+1}^m | W_n].

Phases are drawn independently for each customer, which is what makes the mixture exact rather than an approximation; a Markov-modulated arrival stream would not decompose this way.

The variance is NOT the mixture of the per-phase variances, because the phase is itself random. It is recovered from the first two MIXED raw moments, which adds the between-phase spread of the means, and mixing the variances instead would understate it.

Unlike qsys_mm1_lindley the mean is read from moments(:,1) rather than from an explicit closed form, since the mixture has none; that is also what MATLAB does.

Reference: S. Palomo, J. Pender, "Learning the Tandem Network Lindley Recursion", Proc. Winter Simulation Conference, 2021, theorem 3. Registered in .citations() as 'condlindley'.

Definition in file qsys_hh1_lindley.h.