Compute Asymptotic Bounds for closed, multiclass networks with K service centers and C customer classes. Single-server and infinite-server nodes are supported. Multiple-server nodes and general load-dependent servers are not supported.
INPUTS
N(c)
number of class c requests in the system
(vector of length C, N(c) ≥ 0
).
D(c, k)
class c service demand
at center k (C \times K matrix, D(c,k) ≥ 0
).
S(c, k)
mean service time of class c
requests at center k (C \times K matrix, S(c,k) ≥ 0
).
V(c,k)
average number of visits of class c
requests to center k (C \times K matrix, V(c,k) ≥ 0
).
m(k)
number of servers at center k
(if m is a scalar, all centers have that number of servers). If
m(k) < 1
, center k is a delay center (IS);
if m(k) = 1
, center k is a M/M/1-FCFS server.
This function does not support multiple-server nodes. Default
is 1.
Z(c)
class c external delay
(vector of length C, Z(c) ≥ 0
). Default is 0.
OUTPUTS
Xl(c)
Xu(c)
Lower and upper bounds for class c throughput.
Rl(c)
Ru(c)
Lower and upper bounds for class c response time.
REFERENCES
See also: qncsaba.
The following code
S = [10 7 5 4; ... 5 2 4 6]; NN=20; Xl = Xu = Rl = Ru = Xmva = Rmva = zeros(NN,2); for n=1:NN N=[n,10]; [a b c d] = qncmaba(N,S); Xl(n,:) = a; Xu(n,:) = b; Rl(n,:) = c; Ru(n,:) = d; [U R Q X] = qncmmva(N,S,ones(size(S))); Xmva(n,:) = X(:,1)'; Rmva(n,:) = sum(R,2)'; endfor subplot(2,2,1); plot(1:NN,Xl(:,1), 1:NN,Xu(:,1), 1:NN,Xmva(:,1), ";MVA;", "linewidth", 2); ylim([0, 0.2]); title("Class 1 throughput"); legend("boxoff"); subplot(2,2,2); plot(1:NN,Xl(:,2), 1:NN,Xu(:,2), 1:NN,Xmva(:,2), ";MVA;", "linewidth", 2); ylim([0, 0.2]); title("Class 2 throughput"); legend("boxoff"); subplot(2,2,3); plot(1:NN,Rl(:,1), 1:NN,Ru(:,1), 1:NN,Rmva(:,1), ";MVA;", "linewidth", 2); ylim([0, 700]); title("Class 1 response time"); legend("location", "northwest"); legend("boxoff"); subplot(2,2,4); plot(1:NN,Rl(:,2), 1:NN,Ru(:,2), 1:NN,Rmva(:,2), ";MVA;", "linewidth", 2); ylim([0, 700]); title("Class 2 response time"); legend("location", "northwest"); legend("boxoff");
Produces the following figure
Figure 1 |
---|
Package: queueing