Analyze product-form, single class closed networks with K service centers using the convolution algorithm.
Load-independent service centers, multiple servers (M/M/m
queues) and IS nodes are supported. For general load-dependent
service centers, use qncsconvld
instead.
INPUTS
N
Number of requests in the system (N>0
).
S(k)
average service time on center k (S(k) ≥ 0
).
V(k)
visit count of service center k (V(k) ≥ 0
).
m(k)
number of servers at center k. If m(k) < 1
,
center k is a delay center (IS); if m(k) ≥
1
, center k it is a regular M/M/m queueing center
with m(k)
identical servers. Default is
m(k) = 1
for all k.
OUTPUT
U(k)
center k utilization.
For IS nodes, U(k)
is the traffic intensity
X(k) * S(k)
.
R(k)
average response time of center k.
Q(k)
average number of customers at center k.
X(k)
throughput of center k.
G(n)
Vector of normalization constants. G(n+1)
contains the value of
the normalization constant with n requests
G(n), n=0, …, N.
NOTE
For a network with K service centers and N requests, this implementation of the convolution algorithm has time and space complexity O(NK).
REFERENCES
This implementation is based on G. Bolch, S. Greiner, H. de Meer and K. Trivedi, Queueing Networks and Markov Chains: Modeling and Performance Evaluation with Computer Science Applications, Wiley, 1998, pp. 313–317.
See also: qncsconvld.
The following code
n = [1 2 0]; N = sum(n); # Total population size S = [ 1/0.8 1/0.6 1/0.4 ]; m = [ 2 3 1 ]; V = [ 1 .667 .2 ]; [U R Q X G] = qncsconv( N, S, V, m ); p = [0 0 0]; # initialize p # Compute the probability to have n(k) jobs at service center k for k=1:3 p(k) = (V(k)*S(k))^n(k) / G(N+1) * ... (G(N-n(k)+1) - V(k)*S(k)*G(N-n(k)) ); printf("Prob( n(%d) = %d )=%f\n", k, n(k), p(k) ); endfor
Produces the following output
Prob( n(1) = 1 )=0.179750 Prob( n(2) = 2 )=0.484043 Prob( n(3) = 0 )=0.527791
Package: queueing