![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
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"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. | |
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.