![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Robust Queueing Network Analyzer (RQNA) of Robust Queueing Theory, a port of matlab/src/solvers/MVA/solver_rqt.m, cross-checked against jar/src/main/java/jline/solvers/mva/handlers/Solver_rqt.java. More...
#include <cmath>#include <cstddef>#include <vector>#include "line/api/mam/map_moment.h"#include "line/api/npfqn/npfqn_traffic_rqt.h"#include "line/api/qsys/qsys_gigk_rqt.h"#include "line/api/qsys/qsys_gigk_rqt_gamma.h"#include "line/lang/distribution.h"#include "line/lang/qn/network_struct.h"#include "line/solvers/mva/mva_types.h"#include "line/util/error.h"#include "line/util/matrix.h"Go to the source code of this file.
Namespaces | |
| namespace | line |
| namespace | line::mva |
Functions | |
| template<class T> | |
| MvaSolution< T > | line::mva::solver_rqt (const qn::NetworkStruct< T > &L, const MvaOptions &opt) |
Robust Queueing Network Analyzer (RQNA) of Robust Queueing Theory, a port of matlab/src/solvers/MVA/solver_rqt.m, cross-checked against jar/src/main/java/jline/solvers/mva/handlers/Solver_rqt.java.
Single-class open network of FCFS queues with Markovian routing. The stochastic primitives are replaced by polyhedral uncertainty sets and each node is analysed in isolation under a worst case. The algorithm is Section 7.2 of the reference: the external streams get Gamma_a = sigma_a, the effective arrival process at each node follows from the network characterization of Theorem 10 (npfqn_traffic_rqt), the service variability parameter from the adaptation of Section 7.1 (qsys_gigk_rqt_gamma), and the system time at each node is the worst-case bound of Theorem 3 (qsys_gigk_rqt). The published step 3, path enumeration, is not needed here: LINE aggregates per-node system times into per-class response times through the visit ratios.
The adaptation is regressed against simulation in heavy traffic, so accuracy degrades at low utilization: on M/M/1 the error is about 5% at rho=0.9 but over 50% at rho=0.5.
REFERENCE INDEXING, REPRODUCED. Like solver_qna and solver_rqna, the reference indexes the stateful-indexed sn.rt with STATION indices, which is exact only when every stateful node is a station; that precondition is asserted.
ARITHMETIC: transcendental (real exponents), so under Rational the body is discarded and RQT is refused by name, matching solver_qna and solver_rqna.
Reference: C. Bandi, D. Bertsimas, N. Youssef (2015). Robust Queueing Theory. Operations Research 63(3), 676-700.
Definition in file solver_rqt.h.