All Implemented Interfaces:
RandomNumberGenerator, Seedable
Direct Known Subclasses:
HiddenMarkovModel, KnightSatchellTran1995

public class HMMRNG extends SimpleMC
In a (discrete) hidden Markov model, the state is not directly visible, but output, dependent on the state, is visible. Each state has a probability distribution over the possible output tokens (could be continuous). Therefore the sequence of tokens generated by an HMM gives some information about the sequence of states. Note that the adjective 'hidden' refers to the state sequence through which the model passes, not to the parameters of the model; even if the model parameters are known exactly, the model is still 'hidden'. In other words, a hidden Markov model is a Markov chain of (hidden) states and for each state a conditional random number generator (distribution).
See Also:
  • Constructor Details

    • HMMRNG

      public HMMRNG(Vector PI, Matrix A, RandomNumberGenerator[] B)
      Constructs a hidden Markov model.
      PI - the initial state probabilities
      A - the state transition probabilities of the homogeneous hidden Markov chain
      B - the conditional observation random number generators (distributions)
    • HMMRNG

      public HMMRNG(HMMRNG that)
      Copy constructor.
      that - a HiddenMarkovModel
  • Method Details

    • seed

      public void seed(long... seeds)
      Description copied from interface: Seedable
      Seed the random number/vector/scenario generator to produce repeatable experiments.
      Specified by:
      seed in interface Seedable
      seed in class SimpleMC
      seeds - the seeds
    • nextDouble

      public double nextDouble()
      Gets the next simulated observation.
      Specified by:
      nextDouble in interface RandomNumberGenerator
      nextDouble in class SimpleMC
      next observation
    • next

      public HmmInnovation next()
      Gets the next simulated innovation: state and observation.
      the next HMM innovation