4 % @brief Queue-Dependent (QD) approximate MVA solver.
10 % @brief Queue-Dependent (QD) approximate MVA solver.
11 % @fn pfqn_qd(L, N, ga, be, Q0)
12 % @param L Service demand matrix.
13 % @param N Population vector.
14 % @param ga Gamma scaling function (
default: ones).
15 % @param be Beta scaling function (default: ones).
16 % @param Q0 Initial queue length estimate (optional).
17 % @return Q Mean queue lengths.
18 % @return X System throughput.
19 % @return U Utilization.
20 % @return iter Number of iterations performed.
23function [Q,X,U,iter] = pfqn_qd(L,N,ga,be,Q0)
34 Q = L ./ repmat(sum(L,1),M,1) .* repmat(N,M,1);
38delta = (sum(N) - 1) / sum(N);
44while max(max(abs(Q-Q_1))) > tol
49 Ak{r}(k,1) = 1 + delta * sum(Q(k,:));
50 Akr(k,r) = 1 + deltar(r) * Q(k,r);
59 C(k,r) = L(k,r) * g(k) * b(k,r) * (1 + delta * sum(Q(k,:)));
62 X(r) = N(r) / sum(C(:,r));
65 Q(k,r) = X(r) * C(k,r);
66 U(k,r) = L(k,r) * g(k) * b(k,r) * X(r);