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

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"
Include dependency graph for me_gegecn.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.

Detailed Description

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.