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

Green's independent server model of simultaneous server requests. More...

#include <cstddef>
#include <vector>
#include "line/api/fj/fj_harmonic.h"
#include "line/api/fj/fj_types.h"
#include "line/num/number.h"
#include "line/util/error.h"
#include "line/util/matrix.h"
Include dependency graph for fj_ism_green.h:

Go to the source code of this file.

Classes

struct  line::fj::FJIsmGreenResult< T >
 Everything Green's cycle decomposition produces. More...

Namespaces

namespace  line
namespace  line::fj

Functions

template<class T>
FJIsmGreenResult< T > line::fj::fj_ism_green (const T &lambda, const T &mu, unsigned s, const std::vector< T > &c)
 Green's independent server model of simultaneous server requests.

Detailed Description

Green's independent server model of simultaneous server requests.

Templated port of matlab/src/api/fj/fj_ism_green.m.

A customer needs j servers at once with probability c(j) and then releases them asynchronously as each of its j tasks completes at rate mu. Servers can idle while customers wait, which is what separates the model from M/G/s, and customer service ends with the last of its tasks, so its mean is H_j/mu.

E[B] = sum_j c(j) sum_{i=0..j-1} 1/((s-i) mu)

is the interservice time, the j-th order statistic of s exponentials because all s servers are busy whenever a customer enters service in a queueing period, and

E[D] = sum_i sum_{k=1..i} [ sum_{m=0..k-1} 1/((i-m) mu) ] q(i) c(s-i+k)/p_d

the initial delay of the customer that starts one. The busy-server distribution q and the nonqueue length come from the embedded chain absorbed when a queue forms, V = (I-T)^-1. The waiting-time transform of Eq. (61) factors into the equilibrium transform of D and the Pollaczek-Khinchine transform of an M/G/1 queue with service B, so

E[W] = (1-pi0) [ E[D^2]/(2 E[D]) + lambda E[B^2]/(2 (1-lambda E[B])) ].

Eq. (65) of the survey prints the inner sum as starting at 1/(s mu) even though only i servers are busy; it is started at 1/(i mu) here, which is what the accompanying text prescribes and what makes E[D] reduce to E[B] at i = s.

Definition in file fj_ism_green.h.