4 % @brief General-purpose MVA
for mixed networks with multiserver
nodes.
10 % @brief General-purpose MVA
for mixed networks with multiserver
nodes.
11 % @fn pfqn_mvams(lambda, L, N, Z, mi, S)
12 % @param lambda Arrival rate vector.
13 % @param L Service demand matrix.
14 % @param N Population vector.
15 % @param Z Think time vector.
16 % @param mi Queue replication factors (
default: ones).
17 % @param S Number of servers per station (default: ones).
18 % @return XN System throughput.
19 % @return QN Mean queue lengths.
20 % @return UN Utilization.
21 % @return CN Cycle times.
22 % @return lG Logarithm of normalizing constant.
25function [XN,QN,UN,CN,lG]=pfqn_mvams(lambda,L,N,Z,mi,S)
26% [XN,QN,UN,CN,LOGG]=PFQN_MVAMS(LAMBDA,L,N,Z,MI,S)
28% this
is a general purpose script to handle mixed qns with multi-server
nodes
29% S(i) number of servers in station i
30[M,R]=size(L); % get number of queues (M) and
classes (R)
31Ntot = sum(N(isfinite(N)));
33if nargin<6 %~exist(
'S',
'var')
36if nargin<5 %~exist('mi','var')
42 % Sum think times across multiple delay stations
46 mu(ist,:) = min(1:Ntot,S(ist)*ones(1,Ntot));
48if max(S(isfinite(S))) == 1 % if no multi-server
nodes
49 if any(isinf(N)) % open or mixed model
50 [XN,QN,UN,CN,lG] = pfqn_mvamx(lambda,L,N,Z,mi);
52 [XN,QN,UN,CN,lG] = pfqn_mva(L,N,Z,mi);
54else % if the model has multi-server
nodes
55 if any(isinf(N)) % open or mixed model
57 lG = NaN; % NC not available in this case
58 [XN,QN,UN,CN] = pfqn_mvaldms(lambda,L,N,Z,S);
60 line_error(mfilename,'Queue replicas not available in exact MVA for mixed models.');
63 [XN,QN,UN,CN,lG] = pfqn_mvald(L,N,Z,mu);