![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Model parameters and variable indexing shared by the mapqn QR bounds. More...
#include <cstddef>#include <string>#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::MapqnParams< T > |
| Parameters of a MAP queueing network for the QR bounds. More... | |
| struct | line::mapqn::P2Index |
| Flat index of the joint variable p2(j,nj,k,i,ni,h). More... | |
| struct | line::mapqn::MapqnQrResult< T > |
| Result of a QR bound solve. More... | |
Namespaces | |
| namespace | line |
| namespace | line::mapqn |
Enumerations | |
| enum class | line::mapqn::MapqnSense { line::mapqn::Max , line::mapqn::Min } |
| Which direction the bound is taken in. More... | |
Functions | |
| template<class T> | |
| T | line::mapqn::mapqn_q (const MapqnParams< T > &p, int i, int j, int k, int h, int n) |
| q(i,j,k,h,n): rate at which queue i, holding n jobs and in phase k, moves to phase h while routing a job to queue j. | |
Model parameters and variable indexing shared by the mapqn QR bounds.
A MAP queueing network here is M queues, N circulating jobs, K(i) phases at queue i, completion rates mu{i}(k,h), background (non-completion) phase transition rates v{i}(k,h), load-dependent scalings alpha(i,n) and routing probabilities r(i,j). This mirrors the params struct that matlab/lib/qrf/mapqn_bnd_qr_ld.m takes and the Mapqn_parameters class in jar/src/main/java/jline/api/mapqn/.
Index convention: queues and phases are 0-based here (C++ convention), populations are as written, 0..N. The MATLAB reference is 1-based in queues and phases, so every loop for i = 1:M becomes for i = 0; i < M; ++i and every q_val(i,j,k,h,n) argument drops by one except n. This matches the JAR, whose q takes 0-based i,j,k,h and a 1-based population n (see the mapqn section of _kb/03-api-layer.md).
Arithmetic: nothing here is transcendental. q is a sum of products of model data, so at T = line::Rational every LP coefficient is an exact rational and the bound the LP returns is the exact optimum of the exact polytope.
Definition in file mapqn_params.h.