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)
32hasOpenClasses =
false;
35 hasOpenClasses =
true;
41if nargin<6 %~exist(
'S',
'var')
44if nargin<5 %~exist('mi','var')
50 % Sum think times across multiple delay stations
54 mu(ist,:) = min(1:Ntot,S(ist)*ones(1,Ntot));
56hasMultiServer = false;
58 if isfinite(S(ist)) && S(ist) > 1
59 hasMultiServer = true;
64if ~hasMultiServer % if no multi-server
nodes
65 if hasOpenClasses % open or mixed model
66 [XN,QN,UN,CN,lG] = pfqn_mvamx(lambda,L,N,Z,mi);
68 [XN,QN,UN,CN,lG] = pfqn_mva(L,N,Z,mi);
70else % if the model has multi-server
nodes
71 if hasOpenClasses % open or mixed model
73 lG = NaN; % NC not available in this case
74 [XN,QN,UN,CN] = pfqn_mvaldms(lambda,L,N,Z,S);
76 line_error(mfilename,'Queue replicas not available in exact MVA for mixed models.');
79 [XN,QN,UN,CN,lG] = pfqn_mvald(L,N,Z,mu);