Class Pfqn_mvacld
-
Method Summary
Modifier and TypeMethodDescriptionstatic Ret.pfqnMVACLDpfqn_mvacld(Matrix L, Matrix N, Matrix mu) MVAC for a load-dependent closed network with no infinite-server center.static Ret.pfqnMVACLDpfqn_mvacld(Matrix L, Matrix N, Matrix Z, Matrix mu) MVAC (Mean Value Analysis by Chain) for a closed multichain product-form queueing network that may contain queue-length dependent (QLD) service centers.
-
Method Details
-
pfqn_mvacld
MVAC for a load-dependent closed network with no infinite-server center. -
pfqn_mvacld
MVAC (Mean Value Analysis by Chain) for a closed multichain product-form queueing network that may contain queue-length dependent (QLD) service centers. This is the Section V extension of Conway, de Souza e Silva and Lavenberg, IEEE Trans. Computers 38(3):432-442, 1989;Pfqn_mvacimplements Sections II-IV, which cover single-server fixed-rate (SSFR) and infinite-server (IS) centers only.Where
Pfqn_mvacpropagates the MEAN queue-lengths L^k_j(v) through eq. (7) and closes the recursion with the arrival-theorem identity (10), the QLD extension propagates the MARGINAL queue-length DISTRIBUTIONS P^k_j(n,v) instead. That is forced by load dependence -- the rate seen by a job depends on the whole occupancy, so a mean no longer suffices -- but it also SIMPLIFIES the recursion: eq. (21)-(25) read level k-1 only at the shifted vectors v + 1_i, so the basic step sweeps v in I_k alone, wherePfqn_mvacmust sweep the larger I_k u ... u I_K. The marginals come almost for free and are returned as a first-class output.Notation follows
Pfqn_mvac: j, i index centers (j = 1,...,J1 the QLD centers of L, j = J1+1,...,J the IS centers of Z), k, l index the single-customer chains, a_jk = theta_jk T_jk is the demand of chain k at center j, K = sum(N) and I_k = {v : sum_j v_j = K - k} with v_j the number of self-looping single-customer (SCSL) chains pinned at center j. P^k_j(n,v) is the probability of n customers at center j -- EXCLUDING the v_j SCSL customers there -- in the network with normalizing constant G_k(v). Writing tau_k(v,i) for the throughput of an SCSL chain that replaces chain k at center i:tau_k(v,i) = T_ik^-1 sum_{n=0}^{k-1} P^{k-1}_i(n,v+1_i) * mu_i(n+v_i+1)/(n+v_i+1) (21) tau_k(v,i) = T_ik^-1, i IS (22) L^k_{jk}(v) = theta_jk tau_k(v,j)^-1 / sum_m theta_mk tau_k(v,m)^-1 (23) lambda^k_k(v) = tau_k(v,j(k)) L^k_{j(k)k}(v) (24) P^k_j(n,v) = L^k_{jk}(v) P^{k-1}_j(n-1,v+1_j) + sum_{m != j} L^k_{mk}(v) P^{k-1}_j(n,v+1_m) (25)with P^0_j(0,v) = 1 and P^{k-1}_j(n,.) = 0 for n < 0 or n > k-1. Eq. (21) is just "the mean rate at which an SCSL chain is served": given n other customers the processor-sharing rate share is mu_i(n+v_i+1)/(n+v_i+1), averaged over the distribution of those others. The queueing discipline may be assumed PS with no loss of generality, since product-form measures do not depend on it.
This implementation writes (23)-(24) in the reference-station-free form
c_i(k,v) = sum_{n=0}^{k-1} P^{k-1}_i(n,v+1_i) mu_i(n+v_i+1)/(n+v_i+1) L^k_{jk}(v) = (a_jk/c_j) / sum_m (a_mk/c_m) lambda^k_k(v) = 1 / sum_m (a_mk/c_m)which follows from theta_jk tau_k(v,j)^-1 = a_jk/c_j and theta_{j(k)k} = 1, so only the demands a_jk are needed and the visit ratios never appear separately. For an IS center c_i = 1 identically, which is exactly (22). Eq. (25) is self-normalizing, sum_n P^k_j(n,v) = sum_m L^k_{mk}(v) = 1, so no normalizing constant is formed and the recursion involves only positive quantities: unlike the classic load-dependent MVA of
Pfqn_mvaldit cannot produce negative probabilities and needs no stabilization.Parts 2 and 3 are unchanged from
Pfqn_mvac, since eq. (6) holds verbatim in the presence of QLD centers: part 2 resolves the chains that visit at least one IS center, and the chains that visit no IS center are resolved by re-executing part 1 with their label interchanged with K.- Parameters:
L- service demand matrix of the QLD centers (M x R)N- population vector (1 x R), finite and nonnegativeZ- demand matrix of the IS centers, (1 x R) or (Mz x R), one row per centermu- load-dependent rates (M x Nt) with Nt >= sum(N); mu(j,n-1) is the total service rate of center j with n jobs present. mu(j,:) = 1 is a single-server fixed-rate queue, mu(j,n-1) = min(n,c) a c-server queue, mu(j,n-1) = n an infinite server. A null or empty matrix means all centers are SSFR, in which case results agree withPfqn_mvac- Returns:
- per-class throughput, queue-length, per-station utilization, per-class cycle time and the marginal queue-length distributions
-