Marmote Core
The project aims at realizing the prototype of a software environment dedicated to modeling with Markov chains.
|
Abstract class for transition structures. These are structures which describe transitions to one state to another one, to which is attached a numeric label. Typical instances should be one-step transition matrices of discrete-time Markov chains, and infinitesimal generators of continuous-time Markov chains. It is also possible that the origin state space and the destination state space are different. More...
#include <transitionStructure.h>
Public Member Functions | |
virtual | ~transitionStructure () |
Destructor of the class. More... | |
int | size () |
Read accessor for the size of the state space. This is the origin state space by default. More... | |
int | origSize () |
Read accessor for the size of the origin state space. More... | |
int | destSize () |
Read accessor for the size of the destination state space. More... | |
timeType | type () |
Read accessor for the time type. More... | |
double | uniformizationRate () |
Read accessor for the uniformization rate. Relevant mostly for discrete-time structures created by uniformization of a continuous-time one. More... | |
void | setType (timeType t) |
Write accessor for the time type. More... | |
void | setUniformizationRate (double rate) |
Write accessor for the uniformization rate. More... | |
virtual bool | setEntry (int i, int j, double val)=0 |
Method to set the value associated with some transition. More... | |
virtual double | getEntry (int i, int j)=0 |
Method to get the value associated with some transition. When state parameters are out of bounds, the returned value should be 0. More... | |
virtual int | getNbElts (int i)=0 |
Method to get the number of non-zero entries in a transition from some state. This can be seen as the number of actually possible transitions from that state. More... | |
virtual int | getCol (int i, int k)=0 |
Method to get the number of the state corresponding to transition number k in the list of possible transitions from some state i. More... | |
virtual double | getEntryByCol (int i, int k)=0 |
Method to get the value attached to transition number k in the list of possible transitions from some state i. More... | |
virtual discreteDistribution * | getTransDistrib (int i)=0 |
Method to get the transition from some state as a probability distribution. More... | |
bool | readEntry (FILE *input) |
Reading from a file, and adding an element to the matrix. The field must be in the form "row column value" with blank spaces as separators. More... | |
virtual double | rowSum (int i)=0 |
Calculating the sum of values corresponding to transitions from some state. More... | |
virtual transitionStructure * | copy ()=0 |
Copying a transition structure. More... | |
virtual transitionStructure * | uniformize ()=0 |
Uniformizing a transition structure. The structure should be of continuous time type. The resulting one will be of discrete time type. If uniformization fails, a NULL pointer should be returned. If the origin structure is already of discrete-time type, a copy should be returned. More... | |
virtual transitionStructure * | embed ()=0 |
Embedding a discrete-time transition structure at jump times of a transition structure. The structure should be of continuous time type. The resulting one will be of discrete time type. If embedding fails, a NULL pointer should be returned. If the origin structure is already of discrete-time type, a copy should be returned. More... | |
virtual void | evaluateMeasure (double *d, double *res) |
Computing the action of the transition structure on some measure, the measure being represented as a vector of real numbers. This corresponds to the multiplication vector/matrix, the row vector being interpreted as a signed measure. More... | |
virtual discreteDistribution * | evaluateMeasure (discreteDistribution *d) |
Computing the action of the transition structure on some probability distribution. More... | |
virtual void | evaluateValue (double *v, double *res)=0 |
Computing the action of the transition structure on some vector of values. This corresponds to the multiplication matrix/vector, the column vector being interpreted as a vector of values attached to the states. More... | |
void | write (FILE *out, std::string format) |
File output method for a transition structure. More... | |
std::string | toString (std::string format) |
String serialization method for a transition structure. More... | |
Protected Member Functions | |
int | consolidate (int i, int *destinations, double *values) |
Method to consolidate (aggregate) transition probabilities from a given state. The method returns the number of different destination states, and modifies the arrays which will containt the lists of destinations and the corresponding probabilities. These arrays must have been allocated beforehand, with a size large enough to handle safely all possibilities. More... | |
Protected Attributes | |
timeType | _type |
the time type of the structure: discrete or continuous. More... | |
long int | _origSize |
size of the origin state space. More... | |
long int | _destSize |
size of the destination state space. More... | |
double | _uniformizationRate |
value related to the uniformization procedure. More... | |
Abstract class for transition structures. These are structures which describe transitions to one state to another one, to which is attached a numeric label. Typical instances should be one-step transition matrices of discrete-time Markov chains, and infinitesimal generators of continuous-time Markov chains. It is also possible that the origin state space and the destination state space are different.
|
inlinevirtual |
Destructor of the class.
|
protected |
Method to consolidate (aggregate) transition probabilities from a given state. The method returns the number of different destination states, and modifies the arrays which will containt the lists of destinations and the corresponding probabilities. These arrays must have been allocated beforehand, with a size large enough to handle safely all possibilities.
i | the origin state |
destinations | the list of destinations |
values | the list of probabilities |
|
pure virtual |
Copying a transition structure.
Implemented in sparseMatrix, multiDimHomTransition, and eventMixture.
|
inline |
Read accessor for the size of the destination state space.
|
pure virtual |
Embedding a discrete-time transition structure at jump times of a transition structure. The structure should be of continuous time type. The resulting one will be of discrete time type. If embedding fails, a NULL pointer should be returned. If the origin structure is already of discrete-time type, a copy should be returned.
Implemented in sparseMatrix, multiDimHomTransition, and eventMixture.
|
inlinevirtual |
Computing the action of the transition structure on some measure, the measure being represented as a vector of real numbers. This corresponds to the multiplication vector/matrix, the row vector being interpreted as a signed measure.
d | the measure to evaluate |
res | the resulting measure |
Reimplemented in sparseMatrix, multiDimHomTransition, and eventMixture.
|
inlinevirtual |
Computing the action of the transition structure on some probability distribution.
d | the distribution to evaluate |
Reimplemented in eventMixture.
|
pure virtual |
Computing the action of the transition structure on some vector of values. This corresponds to the multiplication matrix/vector, the column vector being interpreted as a vector of values attached to the states.
v | the vector of values to evaluate |
res | the resulting vector |
Implemented in sparseMatrix, multiDimHomTransition, and eventMixture.
|
pure virtual |
Method to get the number of the state corresponding to transition number k in the list of possible transitions from some state i.
i | the origin state |
k | the index of transition from state i |
Implemented in sparseMatrix, multiDimHomTransition, and eventMixture.
|
pure virtual |
Method to get the value associated with some transition. When state parameters are out of bounds, the returned value should be 0.
i | the origin state |
j | the destination state |
Implemented in multiDimHomTransition, sparseMatrix, and eventMixture.
|
pure virtual |
Method to get the value attached to transition number k in the list of possible transitions from some state i.
i | the origin state |
k | the index of the transition from state i |
Implemented in sparseMatrix, multiDimHomTransition, and eventMixture.
|
pure virtual |
Method to get the number of non-zero entries in a transition from some state. This can be seen as the number of actually possible transitions from that state.
i | the origin state |
Implemented in multiDimHomTransition, sparseMatrix, and eventMixture.
|
pure virtual |
Method to get the transition from some state as a probability distribution.
i | the origin state |
Implemented in sparseMatrix, multiDimHomTransition, and eventMixture.
|
inline |
Read accessor for the size of the origin state space.
bool transitionStructure::readEntry | ( | FILE * | input | ) |
Reading from a file, and adding an element to the matrix. The field must be in the form "row column value" with blank spaces as separators.
input | is the input flow from which the data is read |
|
pure virtual |
Calculating the sum of values corresponding to transitions from some state.
i | the state |
Implemented in sparseMatrix, multiDimHomTransition, and eventMixture.
|
pure virtual |
Method to set the value associated with some transition.
i | the origin state |
j | the destination state |
val | the value attached to the transition |
Implemented in multiDimHomTransition, sparseMatrix, and eventMixture.
|
inline |
Write accessor for the time type.
t | the time type to be set |
|
inline |
Write accessor for the uniformization rate.
rate | the rate to be set |
|
inline |
Read accessor for the size of the state space. This is the origin state space by default.
std::string transitionStructure::toString | ( | std::string | format | ) |
String serialization method for a transition structure.
format | the format/language to be used. |
|
inline |
Read accessor for the time type.
|
inline |
Read accessor for the uniformization rate. Relevant mostly for discrete-time structures created by uniformization of a continuous-time one.
|
pure virtual |
Uniformizing a transition structure. The structure should be of continuous time type. The resulting one will be of discrete time type. If uniformization fails, a NULL pointer should be returned. If the origin structure is already of discrete-time type, a copy should be returned.
Implemented in sparseMatrix, multiDimHomTransition, and eventMixture.
void transitionStructure::write | ( | FILE * | out, |
std::string | format | ||
) |
File output method for a transition structure.
out | the file descriptor to which the structure should be written. |
format | the format/language to be used. |
|
protected |
size of the destination state space.
|
protected |
size of the origin state space.
|
protected |
the time type of the structure: discrete or continuous.
This determines the nature of the numeric label: probabilities or rates.
|
protected |
value related to the uniformization procedure.