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

Mean value analysis at a nonintegral population (fractional-base aMVA). More...

#include <cmath>
#include <cstddef>
#include <vector>
#include "line/num/number.h"
#include "line/util/error.h"
Include dependency graph for pfqn_nintmva.h:

Go to the source code of this file.

Classes

struct  line::pfqn::NintMvaResult< T >
 Mean performance measures of pfqn_nintmva at the requested population. More...

Namespaces

namespace  line
namespace  line::pfqn

Functions

template<class T>
NintMvaResult< T > line::pfqn::pfqn_nintmva (const std::vector< T > &L, const T &N, const T &Z)
 Mean value analysis at a nonintegral population (fractional-base aMVA).
template<class T>
NintMvaResult< T > line::pfqn::pfqn_nintmva (const std::vector< T > &L, const T &N)
 MATLAB default: no think time.

Detailed Description

Mean value analysis at a nonintegral population (fractional-base aMVA).

Templated port of matlab/src/api/pfqn/pfqn_nintmva.m.

The exact MVA recursion started from the FRACTIONAL base n_0 = N - floor(N) instead of from the empty network, giving mean performance measures of a single-class closed product-form network at a real-valued population (Dowdy and Gordon 1984, "aMVA"). The recursion is the standard Reiser-Lavenberg one,

R_i(n) = D_i (1 + Q_i(n-1)), X(n) = n / (Z + sum_i R_i(n)), Q_i(n) = X R_i,

stepped in unit increments from n = n_0 (where the arrival-theorem term Q_i(n_0 - 1) is taken as 0, the network below the base being empty) up to n = N. At integer N the base is 0 and the recursion is bit-identical to exact MVA; at fractional N it interpolates smoothly through the integral points, which is what a nonintegral degree of multiprogramming (a time-average over a measurement window) calls for.

Unlike pfqn_dnc this accepts a think time, since the delay enters the recursion and not a partial-fraction continuation. It is single-class: the multiclass recursion has no one-dimensional step. For fractional multiclass populations use pfqn_bs, which accepts them directly.

Reference: L. W. Dowdy, K. D. Gordon, "Algorithms for Nonintegral Degrees of Multiprogramming in Closed Queuing Networks", Performance Evaluation 4(1):19-28, 1984.

Arithmetic: EXACT-CAPABLE. Only field operations on T; the integer part of N is read through a double, which is lossless for any population a closed model can carry.

Definition in file pfqn_nintmva.h.