![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Censored GE/GE/c/K;N queue by entropy maximisation. More...
#include <algorithm>#include <cmath>#include <cstddef>#include <vector>#include "line/api/me/me_gegecn_pb.h"#include "line/num/number.h"#include "line/util/error.h"Go to the source code of this file.
Classes | |
| struct | line::me::GegecnResult< T > |
| What me_gegecn returns: the law and the four means read off it. More... | |
Namespaces | |
| namespace | line |
| namespace | line::me |
Functions | |
| template<class T> | |
| GegecnResult< T > | line::me::me_gegecn (const T &lambda, const T &Ca, const T &mu, const T &Cs, long c, long K, long N) |
| Port of me_gegecn. | |
Censored GE/GE/c/K;N queue by entropy maximisation.
Templated port of matlab/src/api/me/me_gegecn.m: the single-class censored FCFS queue of Kouvatsos (1994), Section 4.1, equations (4.1)-(4.3).
WHAT "CENSORED" MEANS HERE. The queue holds at most N jobs and never fewer than K: arrivals finding N jobs present are turned away, and departures are not allowed from state K. For a queue embedded in an OPEN network K is always 0; a positive K arises in closed networks, where it records the minimum occupancy forced by the remaining stations being full.
THE SOLUTION IS CLOSED FORM, NOT AN ITERATION. The ME state probabilities coincide with the global balance solution
p(n) = p(K) G_n x^h(n) y^f(n), n = K+1,...,N
with G_n = prod_{l=K+1}^{m(n)} g(l), J = max(c,K+1), h(n) = max(0,n-J), f(n) = max(0,n-N+1) and m(n) = max{K+1, min(c,n)}. The Lagrangian coefficients g(l), x and y come from raw system data. They are INVARIANT to N and K, which is why letting K -> 0 and N -> infinity recovers the stable GE/GE/c solution me_oqn uses – the same coefficients serve both.
WHY THIS PORT WORKS IN LOGS, as the reference does. x^(N-J) overflows on a saturated queue with a large buffer, and the log form additionally makes the rho = 1 case (x = 1) fall out of the same expression instead of needing the separate p(K) branch of (4.2).
Definition in file me_gegecn.h.