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

Pseudo stochastic complement of a CTMC partition. More...

#include <cstddef>
#include <vector>
#include "line/api/mc/ctmc_solve.h"
#include "line/num/number.h"
#include "line/util/error.h"
#include "line/util/matrix.h"
Include dependency graph for ctmc_pseudostochcomp.h:

Go to the source code of this file.

Classes

struct  line::mc::PseudoStochCompResult< T >
 Blocks of the partition together with the pseudo complement over I. More...

Namespaces

namespace  line
namespace  line::mc

Functions

template<class T>
PseudoStochCompResult< T > line::mc::ctmc_pseudostochcomp (const Matrix< T > &Q, const std::vector< std::size_t > &keep)
 Pseudo stochastic complement of a CTMC partition.
template<class T>
PseudoStochCompResult< T > line::mc::ctmc_pseudostochcomp (const Matrix< T > &Q)
 Default partition: the first ceil(n/2) states.

Detailed Description

Pseudo stochastic complement of a CTMC partition.

Templated port of jar/src/main/java/jline/api/mc/Ctmc_pseudostochcomp.java, which has no MATLAB twin. The exact complement over a retained set I censors the excursions through the complement Ic and needs the inverse of Q22; the pseudo complement replaces that inverse by the single rank-one return law S = Q11 + Q12 1 y, y = pi(Ic) Q21 / sum( pi(Ic) Q21 ), i.e. every excursion into Ic is assumed to re-enter I through the stationary re-entry distribution y, independently of where it left. This is exact when Q22 is a single lumped state and is the Takahashi-style approximation otherwise; it costs one stationary solve instead of one linear solve per retained state.

The default retained set, used when keep is empty, is the first ceil(n/2) states, matching the reference.

ARITHMETIC: field plus the stationary solve, so exact under Rational whenever ctmc_solve is.

Definition in file ctmc_pseudostochcomp.h.