![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Port of matlab/src/solvers/CTMC/ctmc_stationary.m: the single entry point for the stationary distribution of a CTMC generated from a NetworkStruct. More...
#include <cstddef>#include <string>#include <vector>#include "line/api/mc/ctmc_solve_reducible_blkdecomp.h"#include "line/api/mc/stronglyconncomp.h"#include "line/util/error.h"#include "line/util/matrix.h"#include "line/num/number.h"Go to the source code of this file.
Classes | |
| struct | line::ctmc::CtmcStationaryResult< T > |
Namespaces | |
| namespace | line |
| namespace | line::ctmc |
Functions | |
| template<class T> | |
| CtmcStationaryResult< T > | line::ctmc::ctmc_stationary (const Matrix< T > &Q, std::size_t init_index=static_cast< std::size_t >(-1)) |
Variables | |
| static const double | line::ctmc::kArcTol = 1e-12 |
| Magnitude above which an off-diagonal generator entry counts as an arc. | |
Port of matlab/src/solvers/CTMC/ctmc_stationary.m: the single entry point for the stationary distribution of a CTMC generated from a NetworkStruct.
All the stationary mass of a reducible chain lives in its bottom strongly connected components, each weighted by the probability of being absorbed in it from the declared initial state; every other state is transient and carries zero. The block decomposition handles the irreducible case as the degenerate one BSCC / no transient states, so every solve goes through it and no dispatch can disagree with the algorithm about whether a chain is reducible.
The reference's local ctmc_initial_distribution turns (StateSpace, sn) into the row of the initial state; here that job already belongs to analyzer_detail::init_state_index, so this file takes the INDEX and stays free of any sn dependency. npos means the initial state is absent from the enumerated space – stochastic complementation may have removed it, an SPN whose immediate ENABLE states were eliminated being the usual case – and makes the block decomposition start in the SCCs with no incoming transition.
Definition in file ctmc_stationary.h.