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

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"
Include dependency graph for sn_gd_balance.h:

Go to the source code of this file.

Namespaces

namespace  line
namespace  line::sn

Functions

template<class 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.

Detailed Description

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.