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

Geo^X/Geo/1: the discrete-time single-server queue with batch arrivals. More...

#include <string>
#include "line/api/dqsys/dqsys_geogeo1.h"
#include "line/num/number.h"
#include "line/util/error.h"
Include dependency graph for dqsys_geoxgeo1.h:

Go to the source code of this file.

Classes

struct  line::dqsys::GeoXGeo1Result< T >

Namespaces

namespace  line
namespace  line::dqsys

Functions

template<class T>
GeoXGeo1Result< T > line::dqsys::dqsys_geoxgeo1_moments (const T &a, const T &batchMean, const T &batchSecondFactorial, const T &s, GeoConvention convention=GeoConvention::LAS_DA)
 Geo^X/Geo/1 for an arbitrary batch law given by its first two factorial moments.
template<class T>
GeoXGeo1Result< T > line::dqsys::dqsys_geoxgeo1 (const T &a, const T &beta, const T &s, GeoConvention convention=GeoConvention::LAS_DA)
 Geo^X/Geo/1: the discrete-time single-server queue with batch arrivals.
template<class T>
line::dqsys::dqsys_geoxgeo1_pgf (const GeoXGeo1Result< T > &r, const T &z, const T &Az)
 Probability generating function of the stationary queue length.

Detailed Description

Geo^X/Geo/1: the discrete-time single-server queue with batch arrivals.

Templated port of matlab/src/api/qsys/dqsys_geoxgeo1.m, cross-checked against jar/src/main/java/jline/api/qsys/Qsys_geoxgeo1.java.

A batch arrives in a slot with probability a and carries X >= 1 jobs; the server completes a job in a slot with probability s. With A(z) the pgf of the number of jobs arriving in one slot the slot-boundary content obeys

P(z) = p_0 s (z-1) A(z) / ( z - A(z)(s + (1-s) z) ), p_0 = 1 - lambda/s

and differentiating at z = 1 gives

E[N] = lambda + ( a E[X(X-1)]/2 + lambda (1-s) ) / (s - lambda)

so the batch law enters only through its first two factorial moments. For a geometric batch with parameter beta, E[X] = 1/beta and E[X(X-1)] = 2(1-beta)/beta^2, and at beta = 1 the result collapses onto dqsys_geogeo1.

Everything is a rational function of (a, beta, s), so the exact instantiation carries no rounding. That matters in the same regime as for Geo/Geo/1: the interesting case is s - lambda small, and that is exactly where the double evaluation of the E[N] quotient loses digits.

The MATLAB entry point returns the pgf as a function handle taking (z, A(z)); here that is the free function dqsys_geoxgeo1_pgf, which takes the result struct and the same pair.

Definition in file dqsys_geoxgeo1.h.