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

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

Detailed Description

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.