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

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"
Include dependency graph for mapqn_params.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>
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.

Detailed Description

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.