Marmote Core
The project aims at realizing the prototype of a software environment dedicated to modeling with Markov chains.
homogeneousMultiDRandomWalk.h
1 #ifndef HOMOGENEOUSMULTIDRANDOMWALK_H
2 #define HOMOGENEOUSMULTIDRANDOMWALK_H
3 
4 #include "markovChain.h"
5 #include "Distribution/discreteDistribution.h"
6 
18 {
19 protected:
20  // variables specific to this class
21  int _nbDims;
22  double* _stateSpace;
23  int *_dimSize;
24  double* _p;
25  double* _q;
26  double _r;
28 private:
29  int *_mu;
31 public:
39  homogeneousMultiDRandomWalk( int nbDims, int* sz, double* p, double* q );
46  homogeneousMultiDRandomWalk( int nbDims, double* p, double* q );
51 
52  void makeMarkovChain();
53 
54 public:
64  int* simulateHittingTime(int iState, bool *hittingSet, int nbSamples , int tMax);
65 
66 public:
72  void write(string format, string modelName);
73 
74 };
75 
76 #endif // HOMOGENEOUSMULTIDRANDOMWALK_H
Markov Chain class.
Definition: markovChain.h:32
double * _p
the probability to jump to the right
Definition: homogeneousMultiDRandomWalk.h:39
string modelName()
Utility to get _modelName.
Definition: markovChain.h:176
double _r
r = 1 - sum_i( p_i + q_i ) is the proba of staying in the same state
Definition: homogeneousMultiDRandomWalk.h:41
~homogeneousMultiDRandomWalk()
Standard destructor.
Definition: homogeneousMultiDRandomWalk.cpp:92
double * _stateSpace
representation of the state space when finite
Definition: homogeneousMultiDRandomWalk.h:37
int * _dimSize
size of the state space in each dimension
Definition: homogeneousMultiDRandomWalk.h:38
discreteDistribution * stationaryDistribution()
Computes the stationary distribution of the chain. These Markov chains have a product-form stationary...
Definition: homogeneousMultiDRandomWalk.cpp:125
string format()
Utility to get _format.
Definition: markovChain.h:182
void makeMarkovChain()
Instantiation of the generator for the markovChain ancestor Works only for dimension 2...
Definition: homogeneousMultiDRandomWalk.cpp:104
homogeneousMultiDRandomWalk(int nbDims, int *sz, double *p, double *q)
Constructor for the class. The initial state is set arbitrarily to (0,...,0).
Definition: homogeneousMultiDRandomWalk.cpp:56
The general d-dimensional random walk with homogeneous transition probabilities. This model is charac...
Definition: homogeneousMultiDRandomWalk.h:32
void write(string format, string modelName)
General output procedure for this class of Markov chains.
Definition: homogeneousMultiDRandomWalk.cpp:222
int * simulateHittingTime(int iState, bool *hittingSet, int nbSamples, int tMax)
Obtain samples of hitting times through Monte Carlo simulation. A trajectory is simulated until it hi...
Definition: homogeneousMultiDRandomWalk.cpp:176
The general discrete distribution with finite support.
Definition: discreteDistribution.h:25
double * _q
the probability to jump to the left
Definition: homogeneousMultiDRandomWalk.h:40
int _nbDims
number of dimensions of the grid. Is equal to 2 here
Definition: homogeneousMultiDRandomWalk.h:36