![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Whittle balance check for a globally state-dependent rate scaling. More...
#include <cmath>#include <cstddef>#include <functional>#include <vector>#include "line/util/error.h"#include "line/num/number.h"Go to the source code of this file.
Namespaces | |
| namespace | line |
| namespace | line::sn |
Functions | |
| template<class T> | |
| T | line::sn::sn_gd_balance (const std::function< std::vector< T >(const std::vector< T > &)> &phi, const std::vector< std::size_t > &cutoffs) |
| Worst relative violation of the balance property over the given lattice. | |
Whittle balance check for a globally state-dependent rate scaling.
For every state n of the lattice 0..cutoffs and every pair of stations (s,t) populated in n, the balance property requires
phi_s(n) phi_t(n - e_s) = phi_t(n) phi_s(n - e_t).
When it holds, the chain is reversible with pi(n) ~ Phi(n) prod rho^n for the balance function Phi implied by phi, and the stationary law is insensitive to the service-time distribution beyond its mean. When it fails the model is still solvable by SolverCTMC, but it has no product form and IS sensitive – which is exactly the distinction this routine exists to make checkable, since nothing in a set_global_dependence declaration announces it.
Twin of matlab/src/api/sn/sn_gd_balance.m, python line_solver.api.sn.sn_gd_balance and jline.api.sn.SnGdBalance.
Reference: P. Whittle, "Partial balance and insensitivity", J. Appl. Prob. 22(1), 1985; T. Bonald, A. Proutiere, "Insensitivity in processor-sharing networks", Perf. Eval. 49, 2002.
Definition in file sn_gd_balance.h.