![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Horizontal-cut mean value analysis for a MAP server (SolverMVA method 'amva.mapqn'). More...
#include <algorithm>#include <cmath>#include <cstddef>#include <vector>#include "line/num/number.h"#include "line/util/error.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::mapqn::MapqnAmvaResult< T > |
| X: class throughputs; Qq: mean queue lengths at the MAP station (job in service included); U: busy probability per class, X E[S]; ES: mean service times; pi: joint phase law at N (class R fastest). More... | |
Namespaces | |
| namespace | line |
| namespace | line::mapqn |
Functions | |
| template<class T> | |
| MapqnAmvaResult< T > | line::mapqn::mapqn_amva (const std::vector< T > &mu_in, const std::vector< Matrix< T > > &D0s, const std::vector< Matrix< T > > &D1s, const std::vector< int > &N) |
Horizontal-cut mean value analysis for a MAP server (SolverMVA method 'amva.mapqn').
Closed multiclass network of an exponential infinite-server station (think rate mu_r for class r) and one FCFS single-server station whose class-r service is the MAP (D0_r, D1_r); the MAP of class r moves only while a class-r job is in service and is frozen otherwise, the convention of the CTMC solver. The recursion walks the population lattice n <= N in lexicographic order and solves ONE linear R x R system per point. Its unknowns are the per-phase means Q_r^k = E[n_r 1{k}] over the joint phase k = (k_1..k_R), the busy laws U_r^k = P[serving r, k], the phase law pi_k and the throughputs X_r.
Exact relations: the joint phase balance, the class marginals U_r = X_r E[S_r] theta_r and the per-class horizontal cut (generator balance of n_r 1{k}) of Casale-Smirni, "MAP-AMVA: Approximate Mean Value Analysis of Bursty Systems", IEEE/IFIP DSN 2009. Closures: the product busy law theta_r(k_r) prod_{s != r} phi_s(k_s), phi the post-completion law of a frozen MAP, which solves the phase balance identically; the service-age closure of the cross term E[n_r 1{serving s} 1{k}] (class r accumulates at its throughput over the elapsed class-s service, whose mean given the phase is theta_s (-D0_s)^{-1} / theta_s); Little's law resolved by arrival phase with the exact FCFS response of the queue composition seen at n - e_r (the multiclass arrival theorem). K_r = 1 for every class reproduces multiclass FCFS MVA on class means.
Port of matlab/src/api/mapqn/mapqn_amva.m; the arithmetic is done in double whatever T, since the recursion interpolates response tables at fractional populations.
Definition in file mapqn_amva.h.