Class MarkovProcess

  • All Implemented Interfaces:
    java.io.Serializable

    
    public class MarkovProcess
    extends Process
                        

    A class for a continuous time Markov chain

    • Constructor Detail

      • MarkovProcess

        MarkovProcess(Matrix infGen)
        Creates a CTMC with the specified infinitesimal generator
        Parameters:
        infGen - the infinitesimal generator matrix
      • MarkovProcess

        MarkovProcess(Matrix infGen, boolean isFinite)
        Creates a CTMC with the specified infinitesimal generator and finite flag
        Parameters:
        infGen - the infinitesimal generator matrix
        isFinite - whether the CTMC is finite
      • MarkovProcess

        MarkovProcess(Matrix infGen, boolean isFinite, Matrix stateSpace)
        Creates a CTMC with the specified infinitesimal generator, finite flag, and state space
        Parameters:
        infGen - the infinitesimal generator matrix
        isFinite - whether the CTMC is finite
        stateSpace - the state space representation
    • Method Detail

      • toDTMC

         MarkovChain toDTMC()

        Convert to DTMC using uniformization

        Returns:

        the equivalent DTMC

      • setStateSpace

         void setStateSpace(Matrix stateSpace)

        Set the state space

        Parameters:
        stateSpace - the state space matrix
      • getGenerator

         Matrix getGenerator()

        Get the infinitesimal generator matrix

        Returns:

        the generator matrix

      • getProbState

         double getProbState(int state)

        Get probability of a specific state using steady-state analysis

        Parameters:
        state - the state index (0-based)
        Returns:

        the probability of the specified state

      • getProbState

         Matrix getProbState(Matrix state)

        Get probability of a specific state using Cramer's rule

        Parameters:
        state - the state vector (if state space is defined) or single state index
        Returns:

        the probability matrix containing the state probability

      • solve

         Matrix solve()

        Solve the CTMC for steady-state probabilities

        Returns:

        the steady-state probability vector

      • sample

         Matrix sample()

        Sample from the CTMC

        Returns:

        sampled value

      • sample

         Matrix sample(int n)

        Sample n state transitions from the CTMC starting from steady-state

        Parameters:
        n - number of state transitions to sample
        Returns:

        matrix containing sampled states (column vector)

      • sample

         Matrix sample(int n, Matrix pi0, Random random)

        Sample n state transitions from the CTMC

        Parameters:
        n - number of state transitions to sample
        pi0 - initial state distribution (if null, uses steady-state)
        random - random number generator
        Returns:

        matrix containing sampled states (column vector)

      • isFinite

         boolean isFinite()

        Check if the CTMC is finite

        Returns:

        true if finite

      • rand

         static MarkovProcess rand(int nStates)

        Create a random CTMC

        Parameters:
        nStates - number of states
        Returns:

        random CTMC

      • fromSampleSysAggr

         static MarkovProcess fromSampleSysAggr(Matrix samples, Matrix sojournTimes)

        Create CTMC from sample system aggregation

        Parameters:
        samples - matrix where each row is a sample trajectory, each column is a time step
        sojournTimes - matrix of sojourn times corresponding to each state in samples
        Returns:

        CTMC constructed from samples by estimating transition rates

      • fromSampleSysAggr

         static MarkovProcess fromSampleSysAggr(Matrix samples, Matrix sojournTimes, int numStates)

        Create CTMC from sample system aggregation

        Parameters:
        samples - matrix where each row is a sample trajectory, each column is a time step
        sojournTimes - matrix of sojourn times corresponding to each state in samples
        numStates - number of states (if -1, infer from data)
        Returns:

        CTMC constructed from samples by estimating transition rates

      • fromSampleSysAggr

         static MarkovProcess fromSampleSysAggr(Matrix samples)

        Create CTMC from sample system aggregation (assuming unit sojourn times)

        Parameters:
        samples - matrix where each row is a sample trajectory, each column is a time step
        Returns:

        CTMC constructed from samples with unit time steps

      • fromSampleSysAggr

         static MarkovProcess fromSampleSysAggr(Object sa)

        Create CTMC from sample system aggregation (legacy interface)

        Parameters:
        sa - the sample aggregation object
        Returns:

        CTMC constructed from samples