Buzen's algorithm

This is an old revision of this page, as edited by Encyclops (talk | contribs) at 00:42, 14 April 2009 (More words on why it is important, add the other name for the algo). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In queueing theory, a discipline within the mathematical theory of probability, Buzen's algorithm is an algorithm for calculating the normalization constant G(K) in the Gordon–Newell theorem. This method was first proposed by Jeffrey P. Buzen in 1973.[1] Once G is computed the probability distributions for the network can be found. In contrast, Mean-value analysis is an alternative algorithm that can also be used to derive some performance measures (such as the mean queue lengths) without having to directly compute the normalization constant.

The motivation for this algorithm is efficiency: a straightforward Gordon-Newell calculation would require the enumeration of all states that the system can be in, resulting in a combinatorial explosion. Buzen's algorithm is of order , making the application of the G-N theorem practical, and opening up a large class of queueing systems to accurate modeling.

In the queuing literature Buzen's algorithm is sometimes also referred to as the Convolution algorithm.

Derivation

G(N) = g(M, N)

 
 

to avoid affecting the product.

 

This recursive relationship allows for the calculation of all G(N) up to any value of N in order O(MN2) time.

There is a more efficient algorithm for finding G(N') for some network. If it is assumed that  , then the recursive relationship can be simplified as follows:

 

This simpler recursive relationship allows for the calculation of all G(N) up to any value of N to be found in order O(MN) time.

Implementation

References

  1. ^ Buzen, Jeffrey (1973). "Computational algorithms for closed queueing networks with exponential servers". Communications of the ACM. 16 (9): 527. doi:10.1145/362342.362345. {{cite journal}}: Unknown parameter |month= ignored (help) [1]