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

OQNRC: approximate MVA for open queueing networks with restricted capacity. More...

#include <algorithm>
#include <cmath>
#include <cstddef>
#include <cstdio>
#include <string>
#include <vector>
#include "line/util/error.h"
#include "line/util/matrix.h"
Include dependency graph for pfqn_oqnrc.h:

Go to the source code of this file.

Classes

struct  line::pfqn::OqnrcResult
 Result of pfqn_oqnrc. More...
struct  line::pfqn::oqnrc_detail::Lattice
 Approximate MVA over the population lattice 0..Npop (pool 0 fastest). More...

Namespaces

namespace  line
 Conservation laws of a layered queueing network, enumerated from its structure.
namespace  line::pfqn
namespace  line::pfqn::oqnrc_detail

Functions

OqnrcResult line::pfqn::pfqn_oqnrc (const std::vector< double > &lam, const Matrix< double > &A, const Matrix< double > &S, const Matrix< double > &SCV, const std::vector< double > &nservers, const std::vector< bool > &isps, const std::vector< int > &pool, const std::vector< int > &Ncap, bool waitq, double tol, int iter_max)
 Runs OQNRC.

Detailed Description

OQNRC: approximate MVA for open queueing networks with restricted capacity.

Port of matlab/src/api/pfqn/pfqn_oqnrc.m, i.e. the algorithm of R. Buitenhek, G.-J. van Houtum, H. Zijm, "Approximate MVA algorithms for open queueing networks with restricted capacity", University of Twente, 1997.

An open network whose inner system holds at most Ncap[g] jobs of the classes in token pool g. Blocked arrivals wait outside (WAITQ, the paper) or are lost (DROP). Each pool is a closed token chain with a load-dependent synchronization station, nu(1) = lam_g/q_g, q_g = 1 - lam_g/TH_g^C(N_g) (q_g = 1 under DROP), solved by the approximate MVA recursion of the paper's Appendix over the population lattice. FCFS multi-server stations use the residual-service approximation, PS and INF are exact.

ARITHMETIC. double only: the recursion is an approximation and the WAITQ external queue needs a geometric tail.

Definition in file pfqn_oqnrc.h.