![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Mean Age of Information, its transform and the peak age of an M/GI/1 FCFS queue. More...
Go to the source code of this file.
Namespaces | |
| namespace | line |
| namespace | line::aoi |
Functions | |
| template<class T> | |
| AoiLstResult< T > | line::aoi::aoi_fcfs_mgi1 (const T &lambda, const Lst< T > &H_lst, const T &E_H, const T &E_H2) |
| Mean Age of Information, its transform and the peak age of an M/GI/1 FCFS queue. | |
Mean Age of Information, its transform and the peak age of an M/GI/1 FCFS queue.
Templated port of matlab/src/api/aoi/aoi_fcfs_mgi1.m, cross-checked against jar/src/main/java/jline/api/aoi/Aoi_fcfs_mgi1.java (identical).
W*(s) = (1-rho) s / (s - lambda + lambda H*(s)) (Pollaczek-Khinchine) T*(s) = H*(s) W*(s) A*(s) = lambda H*(s) / (s + lambda - lambda H*(s)) * W*(s) (Theorem 2) E[A] = E[H] + E[T] + (1 - 2 rho)/lambda - (d/ds) T*(s) at s = lambda E[Apeak] = E[T] + 1/lambda
from Inoue, Masuyama, Takine and Tanaka (IEEE Trans. IT 65(12), 2019). The derivative term is what carries the correlation between the interarrival time and the system time.
static_assert(num_traits<T>::has_transcendental) – the derivative is taken by MATLAB's central difference with step 1e-6 max(1,lambda), reproduced here so the two agree digit for digit. That step is a tolerance, not an exact operation: in an exact field the function would return an exact value of the wrong quantity, which is worse than refusing.
Note that the transform A*(s) itself is a rational function of s whenever H*(s) is, so the returned Lst is exact for its argument; only the mean is approximate.
Definition in file aoi_fcfs_mgi1.h.