![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Closed model left by a MAP flow-equivalent server, and the per-station metrics behind it. More...
#include <cstddef>#include <vector>#include "line/api/fes/fes_map_interdeparture.h"#include "line/api/fes/fes_map_levels.h"#include "line/api/mam/map_moment.h"#include "line/api/mc/ctmc_solve.h"#include "line/api/pfqn/pfqn_mva.h"#include "line/num/number.h"#include "line/util/error.h"#include "line/util/linalg.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::fes::FesMapSolveResult< T > |
| System metrics of the delay plus flow-equivalent server model. More... | |
| struct | line::fes::FesMapDeaggregateResult< T > |
| Per-station metrics an aggregate stands for. More... | |
Namespaces | |
| namespace | line |
| namespace | line::fes |
Functions | |
| template<class T> | |
| FesMapSolveResult< T > | line::fes::fes_map_solve (const std::vector< mam::Map< T > > &fes, const mam::Map< T > &think_map, std::size_t n) |
| Closed model left by a MAP flow-equivalent server, and the per-station metrics behind it. | |
| template<class T> | |
| FesMapDeaggregateResult< T > | line::fes::fes_map_deaggregate (const std::vector< T > &pk, const std::vector< T > &L, const std::vector< int > &mi, const std::vector< bool > &isDelay) |
Closed model left by a MAP flow-equivalent server, and the per-station metrics behind it.
Templated port of matlab/src/api/fes/fes_map_solve.m and fes_map_deaggregate.m, mirrored by the JAR and native Python.
Closes the aggregation of Section 5.2.1 of Casale, Mi, Cherkasova and Smirni, IEEE Trans. Soft. Eng. 37(5), 2011. Once a subnetwork has been replaced by the load-dependent MAP of fes_map_aggregate, the model left is a delay holding the think times and one station, which is a finite level-dependent quasi birth-death process: level k is the number of jobs held by the flow-equivalent server and N-k jobs are thinking. The chain is the same block bidiagonal pair used to measure the inter-departure times, now read as a generator rather than as a MAP, so the delay is a station whose process is scaled by the number of jobs it holds and the marked transitions are the arrivals into the flow-equivalent server. The think time may itself be a MAP, which is how Section 5.3.1 models a bounded flash crowd.
The de-aggregation conditions on the population of the aggregate, E[Y_i] = sum_k pk(k) Y_i(k), which is the decomposition step of Chandy, Herzog and Woo, IBM J. Res. Dev. 19(1), 1975: exact for a product-form subnetwork, an approximation when the burstiness the flow-equivalent server carries also matters inside it. The aggregate metrics do not rely on it.
ARITHMETIC: field operations only, exact at T = Rational.
Definition in file fes_map_solve.h.