LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
npfqn_dps_morrison.h File Reference

Two-term heavy-usage asymptotic approximation for a closed queueing network with one infinite-server (think) station and one discriminatory processor-sharing (DPS) station. More...

#include <cstddef>
#include <vector>
#include "line/api/npfqn/npfqn_types.h"
#include "line/num/number.h"
#include "line/util/error.h"
Include dependency graph for npfqn_dps_morrison.h:

Go to the source code of this file.

Classes

struct  line::npfqn::DpsMorrisonResult< T >
 Mean queue lengths, sojourn times and throughputs, with Morrison's intermediate constants. More...

Namespaces

namespace  line
namespace  line::npfqn

Functions

template<class T>
DpsMorrisonResult< T > line::npfqn::npfqn_dps_morrison (const std::vector< T > &N, const std::vector< T > &Z, const std::vector< T > &S, const std::vector< T > &w)
 Evaluates Morrison's two-term approximation.

Detailed Description

Two-term heavy-usage asymptotic approximation for a closed queueing network with one infinite-server (think) station and one discriminatory processor-sharing (DPS) station.

Templated port of matlab/src/api/npfqn/npfqn_dps_morrison.m, cross-checked against jar/src/main/java/jline/api/npfqn/Npfqn_dps_morrison.java (identical term for term, including the sigma solve and the W_m recursion).

Reference: J.A. Morrison, "Asymptotic analysis of a large closed queueing network with discriminatory processor sharing", Queueing Systems 9 (1991) 191-214.

The network is NOT product-form, so nothing here computes a normalizing constant: the method expands the GENERATING FUNCTION of the balance equations. The substitution P(n) = <w,n> f(n) clears the DPS denominator and turns the balance recursion into a linear PDE with affine coefficients (eq. 2.5); rescaling z = 1 - xi/sqrt(N) and expanding in powers of N^(-1/2) leaves a degenerate leading operator whose kernel is the functions of the similarity variable eta, and the solvability condition along its characteristic gives an ODE for the amplitude (eq. 2.20). RESULT 1 (eq. 4.11) and RESULT 2 (eq. 4.17) are the two-term approximations returned here.

Scaling. Morrison writes K_j = N b_j and lambda_j = N r_j g_j with usage rho = sum_j b_j/g_j = 1 - a/sqrt(N). N is bookkeeping only and the approximation is invariant to it, so this routine fixes N = 1: b = N_pop, g = Z/S, r = 1/Z, a = 1 - rho. Accuracy is governed by the PHYSICAL regime – large populations with rho near 1. rho > 1 is admissible, being the saturated regime of appendix A.

Arithmetic. The W_m of eq. (3.23) need an erfc and an exp, so this requires transcendental arithmetic and cannot be instantiated at T = Rational.

Definition in file npfqn_dps_morrison.h.