Marmote Core
The project aims at realizing the prototype of a software environment dedicated to modeling with Markov chains.
Public Member Functions | Protected Attributes | List of all members
homogeneous1DRandomWalk Class Reference

The 1-dimensional random walk with homogeneous transition probabilities. This model is characterized by: More...

#include <homogeneous1DRandomWalk.h>

Inheritance diagram for homogeneous1DRandomWalk:
markovChain

Public Member Functions

 homogeneous1DRandomWalk (double l, double m)
 Constructor for a homogeneous1DRandomWalk chain with infinite state space. More...
 
 homogeneous1DRandomWalk (int sz, double l, double m)
 Constructor for a homogeneous1DRandomWalk chain. More...
 
 ~homogeneous1DRandomWalk ()
 Destructor for a homogeneous1DRandomWalk chain. More...
 
void makeMarkovChain ()
 Instantiation of the generator for the markovChain ancestor. More...
 
discreteDistributiontransientDistribution (int t, int nMax)
 Computes the transient distribution for a RW1D Markov Chain. More...
 
DistributionstationaryDistribution ()
 Computes the stationary distribution for a homogeneous1DRandomWalk chain. When the state space is infinite, the Geometric distribution is returned. If the chain is not stable, the (improper) geometric distribution with parameter 1 is returned. When the state space is finite, the truncated Geometric distribution is returned as a discreteDistribution object. More...
 
discreteDistributionstationaryDistribution (int nMax)
 Computes the stationary distribution for a homogeneous1DRandomWalk chain. When the state space is infinite, the Geometric distribution is returned. If the chain is not stable, the (improper) geometric distribution with parameter 1 is returned. When the state space is finite, the truncated Geometric distribution is returned as a discreteDistribution object. More...
 
simulationResultsimulateChain (long int tMax, bool stat, bool traj, bool trace)
 Simulates the evolution of a homogeneous1DRandomWalk chain. More...
 
void write (string format, string prefix)
 Writes a homogeneous1DRandomWalk chain in files with some specified format. Supported formats: More...
 
- Public Member Functions inherited from markovChain
 markovChain (int sz, timeType t)
 Simple constructor for the Markov chain from the size. More...
 
 markovChain (transitionStructure *tr)
 Constructor for the Markov chain using a transition structure. More...
 
 markovChain (string format, string param[], int nbreParam, string modelName, bool isAbstract)
 Constructor for Markov chains from files in various formats. In the abstract form, the object just stores the name(s) of the files that define the mode. In the non-abstract (concrete) form, the chain is instantiated in the memory with a concrete transition structure. Only the ERS, PSI and Xborne formats are supported at this time for concrete chains. More...
 
virtual ~markovChain ()
 Standard destructor. The generator and the initial distrib are destroyed. More...
 
int stateSpaceSize ()
 Read accessor to get the number of states in the state space of the Markov chain. More...
 
transitionStructuregenerator ()
 Read accessor to get the value of _generator which is a transitionStructure. More...
 
void setInitDistribution (discreteDistribution *d)
 Write accessor to set the value of _initDistribution which is a discreteDistribution. More...
 
void setGenerator (transitionStructure *tr)
 Write accessor to set the value of _generator which is a transitionStructure. More...
 
RInsideRmotor ()
 Read accessor to the embedded R engine, a static variable named _Rmotor. When accessed for the first time, an instance of RInside is created. More...
 
Distributionread ()
 Method(s) for deserializing Distribution from Xborne file (.pi). More...
 
void setFormat (string format)
 Utility to set the value of _format. More...
 
void setModelName (string modelName)
 Utility to set the value of _modelName. More...
 
void setAbstractNbre (int abstractNbre)
 Utility to set the value of _abstractNbre. More...
 
void setAbstract (string abstract[])
 Utility to set the value of the table containing names related to the model: file names, extensions etc. More...
 
int abstractNbre ()
 Utility to get _abstractNbre. More...
 
string modelName ()
 Utility to get _modelName. More...
 
string format ()
 Utility to get _format. More...
 
void abstract ()
 Utility to display the value of the table _abstract[]. More...
 
virtual simulationResultsimulateChain (double tMax, bool Stats, bool Traj, bool withIncrements, bool Print)
 Simulates the evolution of a Markov Chain using the PSI program. This is a front-end function to both discrete-time and the continuous-time simulators. More...
 
virtual simulationResultsimulateChainDT (int tMax, bool stats, bool traj, bool trace)
 Simulates the evolution of a discrete-time Markov Chain. More...
 
virtual simulationResultsimulateChainCT (double tMax, bool stats, bool traj, bool withIncrements, bool trace)
 Simulates the evolution of a continuous-time Markov Chain. More...
 
simulationResultsimulatePSI (int tMax, bool stats, bool Traj, bool Print)
 Simulates the evolution of a Markov Chain. This is a front-end function to the discrete-time simulator. For continuous time, the PSI simulator does not allow to control the simulation horizon. The effect of "Print" is to be handled in the specific simulation function, not here. More...
 
DistributionstationaryDistribution_iterative (string method, int tmax, double precision, string initDistribType, discreteDistribution *initDistrib, bool progress)
 Multi-purpose entry point for iterative methods for approximating the stationary distribution of discrete-time Markov chains. Offers the maximal flexibility with respect to parameters, as well as the possibility to set defaults. More...
 
DistributionstationaryDistribution (bool progress)
 Entry point for methods Computing the stationary distribution of chains using the iterative method. More...
 
virtual DistributionstationaryDistributionCT (bool progress)
 Computing the stationary distribution of a CTMC using uniformization and the iterative method. More...
 
virtual DistributionstationaryDistributionCT_embedding (int tMax, double epsilon, discreteDistribution *iDis, bool progress)
 Computing the stationary distribution of a CTMC using embedding and the iterative method. More...
 
virtual DistributionstationaryDistribution_power (int tMax, double epsilon, discreteDistribution *iDis, bool progress)
 Computing the stationary distribution of a DTMC using the standard iterative power method. More...
 
void NCDProperty (double epsilon)
 Entry point for NCD command of XBORNE (Near Complete Decomposibility) More...
 
void BandIMSUB (std::string modelName="modelName")
 Entry point for BandIMSUB command of XBORNE. More...
 
void Vincent ()
 Entry point for Vincent command of XBORNE. More...
 
void RowVincent ()
 Entry point for RowVincent command of XBORNE. More...
 
void Absorbing ()
 Entry point for Absorbing command of XBORNE: computes the absorbing states of a DTMC. More...
 
void ProdFundSW (std::string modelName="modelName")
 Entry point for ProdFundSW command of XBORNE. More...
 
void RowSum (std::string modelName="modelName")
 Entry point for RowSum command of XBORNE. More...
 
DistributionstationaryDistributionGthLD ()
 Entry point for methods computing stationary distributions using the GTH method for solving the linear system. More...
 
DistributionstationaryDistributionSOR ()
 Entry point for methods computing stationary distributions using the SOR method for solving the linear system. More...
 
DistributiontransientDistributionR (int fromState, double t)
 Method for computing the transient distribution of a Markov chain. It wraps the 'solve.uc' method of the R package of L. Cerda-Alabern. More...
 
DistributiontransientDistributionDT (int fromState, int t)
 Method for computing the transient distribution of a DTMC. Uses the general method evaluateMeasure. More...
 
DistributionstationaryDistributionR ()
 Entry point for methods computing stationary distributions using the R package 'markovchain' for solving the linear system. More...
 
simulationResultsimulateChainR (double tMax, bool stats, bool traj, bool trace)
 Simulates the evolution of a discrete-time Markov Chain. Wraps the 'rmarkovchain' method of the R package 'markovchain'. More...
 
double transitionProbability (int stateFrom, int stateTo)
 Method to get the transition probabilities from some intial to some destination state. It wraps the 'transitionProbability' method of the R package 'markovchain'. More...
 
std::vector< int > absorbingStates ()
 Method that returns the list of absorbing states of the markovchain object. It wraps the 'absorbingStates()' method of the R package 'markovchain'. More...
 
std::vector< std::vector< int > > recurrentClasses ()
 Method that returns the recurrent classes of the markovchain object as a list of lists of states. It wraps the 'recurrentClasses()' method of the R package 'markovchain'. More...
 
std::vector< std::vector< int > > communicatingClasses ()
 Method that returns the communicating classes of the markovchain object as a list of lists of states. It wraps the 'communicatingClasses()' method of the R package 'markovchain'. More...
 
bool isirreducible ()
 Method verifing whether a Markov chain is irreducible. It wraps the "is.irreducible()' method of the R package 'markovchain'. More...
 
bool isaccessible (int stateFrom, int stateTo)
 Method verifying if two states communicate in a Markov chain. Wraps the 'is.accessible()' method from the R package 'markovchain'. More...
 
simulationResultstationaryDistributionSample (int nbSamples)
 Methods to sample from the stationary distribution using backwards coupling. The result is returned in a simulationResult object, but the interpretation is different: it does not represent trajectories. Here, "state" entries are the measured states, and "time" entries are the measured coupling time. More...
 
DistributionhittingTimeDistribution (int iState, bool *hitSetIndicator)
 Entry point for methods computing the distribution of the hitting time (first entry times) from some state to some set of states. More...
 
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 hits the target set, or its length attains a maximum, whichever comes first. Samples with the maximum are returned although they do not represent a proper hitting time. It is the responsibility of the calling party to ignore these values. More...
 
double * averageHittingTime (bool *hitSetIndicator)
 Entry point for methods computing average hitting times (first entry times) from every state to some set of states. More...
 
double * averageHittingTimeDT (bool *hitSetIndicator)
 Computing the average hitting times in a discrete-time Markov chain. Uses a direct Gauss-Seidel matrix inversion. More...
 
double * averageHittingTimeDT_iterative (bool *hitSetIndicator)
 Computing the average hitting times in a discrete-time Markov chain. Uses an iterative approximate computation. More...
 
virtual markovChaincopy ()
 copy utility More...
 
virtual markovChainuniformize ()
 Uniformize Markov Chain, by uniformizing the generator. If the chain is already discrete time, a copy is returned. More...
 
virtual markovChainembed ()
 Construct discrete-time Markov Chain obtained at transition times. If the chain is already discrete time, a copy is returned. More...
 
void setSizeType (const string path)
 Function to find out the size and the type of a Markov chain described in the MARCA format. Both quantities are directly set in the method, which returns nothing. Adapted from the method HBF::read_marka of Psi/Unix/v1.0. More...
 
int charVectorElt2State (SEXP elt, std::string function)
 Utility function to convert the element of a Rcpp::CharacterVector to a state number. More...
 
virtual void write (FILE *out, bool withReward)
 Method for writing Markov chains in a file with the ERS format. More...
 
void write (string format)
 Method for writing Markov chains in files with various formats. This version uses the given model name. More...
 
std::string toString (std::string format)
 String serialization method for a Markov chain. More...
 

Protected Attributes

int _size
 the number of states; possibly infinite More...
 
double * _stateSpace
 representation of the state space when finite More...
 
double _p
 the probability to jump to the right More...
 
double _q
 the probability to jump to the left More...
 
double _r
 r = 1 - p - q is the proba of staying in the same state More...
 
- Protected Attributes inherited from markovChain
timeType _type
 time type: discrete or continuous More...
 
int _stateSpaceSize
 size of the state space (should be a pointer on the state space itself) More...
 
transitionStructure_generator
 transition structure of the chain More...
 
discreteDistribution_initDistribution
 initial distribution of the process More...
 
bool _debug
 internal debugging indicator More...
 
bool _isAbstract
 true if the object is "abstract", i.e. a pointer to some files More...
 
int _abstractNbre
 number of abstraction parameters More...
 
string * _abstract
 table of abstraction parameters More...
 
string _format
 format/language of the model More...
 
string _modelName
 name of the model More...
 

Additional Inherited Members

- Protected Types inherited from markovChain
typedef void * RInside
 recast nonexisting RInside type to void More...
 
typedef void * SEXP
 recast nonexisting SEXP type to void More...
 

Detailed Description

The 1-dimensional random walk with homogeneous transition probabilities. This model is characterized by:

Constructor & Destructor Documentation

homogeneous1DRandomWalk::homogeneous1DRandomWalk ( double  p,
double  q 
)

Constructor for a homogeneous1DRandomWalk chain with infinite state space.

Author
Alain Jean-Marie
Parameters
pright-jump probability
qleft-jump probability
Returns
an object of type homogeneous1DRandomWalk, with initial state set arbitrarily to 0.
homogeneous1DRandomWalk::homogeneous1DRandomWalk ( int  n,
double  p,
double  q 
)

Constructor for a homogeneous1DRandomWalk chain.

Author
Alain Jean-Marie
Parameters
nsize of the state space of the chain
pright-jump probability
qleft-jump probability
Returns
an object of type markovChain, with initial state set arbitrarily to 0.
homogeneous1DRandomWalk::~homogeneous1DRandomWalk ( )

Destructor for a homogeneous1DRandomWalk chain.

Author
Alain Jean-Marie

Member Function Documentation

void homogeneous1DRandomWalk::makeMarkovChain ( )

Instantiation of the generator for the markovChain ancestor.

Author
Alain Jean-Marie
simulationResult * homogeneous1DRandomWalk::simulateChain ( long int  tMax,
bool  stats,
bool  traj,
bool  trace 
)

Simulates the evolution of a homogeneous1DRandomWalk chain.

Author
Alain Jean-Marie
Parameters
tMaxtime until which the Markov chain is simulated
statsindicates whether occupancy statistics are collected and returned
trajindicates whether a trajectory is returned
traceindicates whether the trajectory should be printed along the way (on stdout)
Returns
a structure with the results of the simulation
Distribution * homogeneous1DRandomWalk::stationaryDistribution ( )

Computes the stationary distribution for a homogeneous1DRandomWalk chain. When the state space is infinite, the Geometric distribution is returned. If the chain is not stable, the (improper) geometric distribution with parameter 1 is returned. When the state space is finite, the truncated Geometric distribution is returned as a discreteDistribution object.

Author
Alain Jean-Marie
Returns
a distribution
discreteDistribution* homogeneous1DRandomWalk::stationaryDistribution ( int  nMax)

Computes the stationary distribution for a homogeneous1DRandomWalk chain. When the state space is infinite, the Geometric distribution is returned. If the chain is not stable, the (improper) geometric distribution with parameter 1 is returned. When the state space is finite, the truncated Geometric distribution is returned as a discreteDistribution object.

Author
Alain Jean-Marie
Parameters
nMaxthe actual maximal state in the random walk
Returns
a distribution
discreteDistribution * homogeneous1DRandomWalk::transientDistribution ( int  t,
int  nMax 
)

Computes the transient distribution for a RW1D Markov Chain.

Author
Alain Jean-Marie
Parameters
ttime at which the distribution is to be computed
nMaxmaximal state for the range on which the distribution is to be computed
Returns
a discrete distribution where the result is stored
void homogeneous1DRandomWalk::write ( string  format,
string  modelName 
)
virtual

Writes a homogeneous1DRandomWalk chain in files with some specified format. Supported formats:

  • Xborne: both Rii and Cuu files are written
  • Psi, Ers, "R"
    Author
    Alain Jean-Marie
    Parameters
    formatformat/language to be used
    modelNamethe name of the model, usually used as prefix for the different files

Reimplemented from markovChain.

Member Data Documentation

double homogeneous1DRandomWalk::_p
protected

the probability to jump to the right

double homogeneous1DRandomWalk::_q
protected

the probability to jump to the left

double homogeneous1DRandomWalk::_r
protected

r = 1 - p - q is the proba of staying in the same state

int homogeneous1DRandomWalk::_size
protected

the number of states; possibly infinite

double* homogeneous1DRandomWalk::_stateSpace
protected

representation of the state space when finite


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