User Manual, Developers Guide and API Documentation

wns::markovchain::MarkovContinuousTime< T > Class Template Reference

Class to represent a Markov Continuous Time Process. More...

#include <markovchain/MarkovContinuousTime.hpp>

Inheritance diagram for wns::markovchain::MarkovContinuousTime< T >:

Inheritance graph
[legend]
Collaboration diagram for wns::markovchain::MarkovContinuousTime< T >:

Collaboration graph
[legend]

List of all members.

Public Member Functions

double calculateNextState (int chainNumber)
 Calculates the next state and the next transition time for the chain chainNumber.
virtual void calculateStateProbabilities ()
 determine the probability of each state.
 MarkovContinuousTime (int _numberOfStates, int _numberOfChains, std::vector< T > states, TransitionMatrixType matrix, std::vector< int > startStates, simTimeType startTime, simTimeType stopTime)
 Creates a complete MarkovContinuousTime (full specification given).
 MarkovContinuousTime (int _numberOfChains)
 Creates an empty MarkovContinuousTime. the numberOfChains is required as an argument.
void prepareMatrixOfDistributions ()
 : fills in the matrix of distributions with generators for random values
void setStartTime (simTimeType _startTime)
 setStartTime
void setStopTime (simTimeType _stopTime)
 setStopTime
void setTransitionDistributionSpec (std::string distSpec)
 set a Python compatible specification string for the random number distributions used for flexible transition statistics.
void startEvents ()
 : first prepares the matrix of distributions, then initializates all the structures needed. Sets the first Timeout
virtual void stateChangeNotification (const int &chainNumber)
 : stateChangeNotification
std::string stringify (double x) const
 stringify: converts a double to a string
 ~MarkovContinuousTime ()
 destructor MarkovcontinuousTime

Protected Types

typedef wns::container::Matrix
< wns::distribution::Distribution *, 2 > 
MatrixDistType
 type for the matrix of distributions.

Protected Member Functions

virtual void onTimeout (const int &chainNumber)
 onTimeout: changes to the new state, sets the next timeout
virtual void stopMarkovProcess ()
 stop the process (for all chains). No more state changes will happen.

Protected Attributes

MatrixDistType matrixDistribution
 matrix of distributions
simTimeType startTime
 start time
simTimeType stopTime
 stop time
std::string transDistSpec
 : flexible specification of the transition distribution
double transitionScale
 transition scale: value to tune up (>1) or down (<1) the rate of state changes

Friends

class MarkovContinuousTimeTest


Detailed Description

template<class T>
class wns::markovchain::MarkovContinuousTime< T >

Author:
Sara Gutierrez de Mesa (sgm@comnets.rwth-aachen.de)

Rainer Schoenen (rs@comnets.rwth-aachen.de)

Definition at line 54 of file MarkovContinuousTime.hpp.


Member Typedef Documentation

Definition at line 380 of file MarkovContinuousTime.hpp.


Constructor & Destructor Documentation

template<class T>
wns::markovchain::MarkovContinuousTime< T >::MarkovContinuousTime ( int  _numberOfChains  )  [inline]

Definition at line 63 of file MarkovContinuousTime.hpp.

template<class T>
wns::markovchain::MarkovContinuousTime< T >::MarkovContinuousTime ( int  _numberOfStates,
int  _numberOfChains,
std::vector< T >  states,
TransitionMatrixType  matrix,
std::vector< int startStates,
simTimeType  startTime,
simTimeType  stopTime 
) [inline]

Definition at line 78 of file MarkovContinuousTime.hpp.

template<class T>
wns::markovchain::MarkovContinuousTime< T >::~MarkovContinuousTime (  )  [inline]

Definition at line 99 of file MarkovContinuousTime.hpp.


Member Function Documentation

template<class T>
double wns::markovchain::MarkovContinuousTime< T >::calculateNextState ( int  chainNumber  )  [inline]

Definition at line 138 of file MarkovContinuousTime.hpp.

template<class T>
virtual void wns::markovchain::MarkovContinuousTime< T >::calculateStateProbabilities (  )  [inline, virtual]

Continuous Time Markov Chain: In theory, these equations are solved for vectorN: 1) vectorN * matrixT = 0 (you guess right, matrixT has one linear dependent row) 2) vectorN * vector1 = 1 This is performed by doing a singular value decomposition (SVD). Note that the result is only valid if the transition distribution is NegExp (Markov property). In some other cases and if p[state] is equal for all states, the results are ok, too. Especially the meanRate is Ok then.

Reimplemented from wns::markovchain::MarkovBase< T >.

Reimplemented in wns::markovchain::MarkovContinuousTimeTraffic.

Definition at line 324 of file MarkovContinuousTime.hpp.

template<class T>
virtual void wns::markovchain::MarkovContinuousTime< T >::onTimeout ( const int chainNumber  )  [inline, protected, virtual]

Implements wns::events::MultipleTimeout< int >.

Definition at line 412 of file MarkovContinuousTime.hpp.

template<class T>
void wns::markovchain::MarkovContinuousTime< T >::prepareMatrixOfDistributions (  )  [inline]

Definition at line 207 of file MarkovContinuousTime.hpp.

template<class T>
void wns::markovchain::MarkovContinuousTime< T >::setStartTime ( simTimeType  _startTime  )  [inline]

Definition at line 108 of file MarkovContinuousTime.hpp.

template<class T>
void wns::markovchain::MarkovContinuousTime< T >::setStopTime ( simTimeType  _stopTime  )  [inline]

Definition at line 117 of file MarkovContinuousTime.hpp.

template<class T>
void wns::markovchain::MarkovContinuousTime< T >::setTransitionDistributionSpec ( std::string  distSpec  )  [inline]

Input: transitionDistributionSpec containing "X" as a placeholder e.g. "Pareto(1.2,X,0.0,1e100)" "Uniform(1.5*X,0.5*X)" "Norm(X,X*X)"

Definition at line 194 of file MarkovContinuousTime.hpp.

template<class T>
void wns::markovchain::MarkovContinuousTime< T >::startEvents (  )  [inline]

Definition at line 255 of file MarkovContinuousTime.hpp.

template<class T>
virtual void wns::markovchain::MarkovContinuousTime< T >::stateChangeNotification ( const int chainNumber  )  [inline, virtual]

Reimplemented in constanze::GeneratorMMPP.

Definition at line 301 of file MarkovContinuousTime.hpp.

template<class T>
virtual void wns::markovchain::MarkovContinuousTime< T >::stopMarkovProcess (  )  [inline, protected, virtual]

Definition at line 438 of file MarkovContinuousTime.hpp.

template<class T>
std::string wns::markovchain::MarkovContinuousTime< T >::stringify ( double  x  )  const [inline]

Definition at line 126 of file MarkovContinuousTime.hpp.


Friends And Related Function Documentation

template<class T>
friend class MarkovContinuousTimeTest [friend]

Definition at line 444 of file MarkovContinuousTime.hpp.


Member Data Documentation

Definition at line 385 of file MarkovContinuousTime.hpp.

template<class T>
simTimeType wns::markovchain::MarkovContinuousTime< T >::startTime [protected]

Definition at line 396 of file MarkovContinuousTime.hpp.

template<class T>
simTimeType wns::markovchain::MarkovContinuousTime< T >::stopTime [protected]

Definition at line 401 of file MarkovContinuousTime.hpp.

template<class T>
std::string wns::markovchain::MarkovContinuousTime< T >::transDistSpec [protected]

Definition at line 406 of file MarkovContinuousTime.hpp.

template<class T>
double wns::markovchain::MarkovContinuousTime< T >::transitionScale [protected]

Definition at line 391 of file MarkovContinuousTime.hpp.


The documentation for this class was generated from the following file:

Generated on Sun May 27 03:33:00 2012 for openWNS by  doxygen 1.5.5