![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Port of matlab/src/solvers/FLD/solver_fluid_qsys_analyzer.m: the single-station fluid limits. More...
#include <algorithm>#include <cmath>#include <cstddef>#include <functional>#include <limits>#include <string>#include <vector>#include "line/api/mam/map_cdf.h"#include "line/api/qsys/qsys_ggingi_tga.h"#include "line/api/qsys/qsys_ggisgi_fluid.h"#include "line/api/qsys/qsys_gtmtst_fluid.h"#include "line/api/qsys/qsys_mtginf.h"#include "line/api/qsys/qsys_mtgs0_mol.h"#include "line/api/sn/sn_arrival_rate_fun.h"#include "line/api/sn/sn_patience_handles.h"#include "line/lang/qn/network_struct.h"#include "line/num/number.h"#include "line/solvers/fluid/solver_fluid.h"Go to the source code of this file.
Namespaces | |
| namespace | line |
| namespace | line::fluid |
Functions | |
| bool | line::fluid::fluid_is_time_varying_limit (const std::string &m) |
| The three single-station limits that report a TRAJECTORY rather than a stationary point, and so need a finite horizon; ggisgi and tga are stationary and are not among them. | |
| std::string | line::fluid::fluid_qsys_horizon_supports (const std::string &method, const FluidOptions &opt) |
| The horizon rule the time-varying limits impose, as a public predicate a REPORT can ask: empty when method may be asked for with these options. | |
| template<class T> | |
| FluidSolution | line::fluid::solver_fluid_qsys (const qn::NetworkStruct< T > &sn, const FluidOptions &opt, std::vector< FluidTranPoint > *traj=nullptr) |
| Solve a single-station model with one of the closed-form fluid limits. | |
Port of matlab/src/solvers/FLD/solver_fluid_qsys_analyzer.m: the single-station fluid limits.
A Source -> Queue -> Sink model with one class, answered by a closed-form fluid or Gaussian limit rather than by integrating the network drift.
WHY THESE ARE FLUID METHODS AND NOT MVA ONES. Each depends on the service or patience law BEYOND ITS MEAN – the stationary point of the Liu-Whitt model is where the patience ccdf crosses 1/rho, the Mt/G/inf mean is a convolution with the service ccdf – and each is the limit of a sequence of systems, not an approximation to a fixed one. That is the fluid solver's contract.
METHODS ggisgi.fluid stationary point of the G/GI/s+GI fluid model (Liu and Whitt, Operations Research 60(5), 2012) ggingi.tga truncated Gaussian approximation, the O(sqrt(n)) fluctuation around that point (Liu, Whitt and Yu, NRL 63(3), 2016) tvms the Gt/Mt/st+GI many-server fluid queue at CONSTANT staffing (Liu and Whitt, INFORMS J. Computing 26(1), 2014) mtginf the exact Mt/G/inf mean (Eick, Massey and Whitt, Management Science 39(2), 1993) mol the modified-offered-load approximation for a finite server count (Massey and Whitt, Ann. Appl. Prob. 4(4), 1994)
ARITHMETIC: transcendental. Every one of them integrates or bisects.
Definition in file fluid_qsys.h.