com.ailab.hmm
Class Hmm

java.lang.Object
  |
  +--com.ailab.hmm.Hmm

public class Hmm
extends java.lang.Object
implements java.io.Serializable

Hidden Markov model. This class adds a sequence of observed symbols to the class Model. Please refer to Rabiner 1989.

See Also:
Serialized Form

Constructor Summary
Hmm()
           
Hmm(boolean bRandomize)
           
Hmm(int lobseq)
           
Hmm(int lobseq, boolean bRandomize)
           
Hmm(int lobseq, int nstates, int nsymbols)
           
Hmm(int lobseq, int nstates, int nsymbols, boolean bRandomize)
           
Hmm(int lobseq, int nstates, int nsymbols, int llb, int urb)
           
Hmm(int lobseq, int nstates, int nsymbols, int llb, int urb, boolean bRandomize)
           
Hmm(int lobseq, java.lang.String file)
           
Hmm(java.lang.String file)
           
 
Method Summary
 double baumWelchAlgorithm()
           
 double baumWelchAlgorithm(double min_error)
           
 int[] generateSeq()
           
 int getLenObSeq()
           
 int[] getMaxLikelyState()
          Three canonical questions of HMM a la Ferguson-Rabiner. [
 int getNumStates()
           
 int getNumSymbols()
           
 int[] getObSeq()
           
 int getObSeq(int t)
           
 double getObSeqProbability()
          Three canonical questions of HMM a la Ferguson-Rabiner. [
 void initializeModel()
           
 void initializeModel(boolean bRandomize)
           
static void main(java.lang.String[] args)
           
 double optimizeLambda()
          Three canonical questions of HMM a la Ferguson-Rabiner. [
 void setObSeq()
           
 void setObSeq(boolean bRandomize)
           
 void setObSeq(int[] seq)
           
 double viterbiAlgorithm()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Hmm

public Hmm()

Hmm

public Hmm(boolean bRandomize)

Hmm

public Hmm(int lobseq)

Hmm

public Hmm(int lobseq,
           boolean bRandomize)

Hmm

public Hmm(int lobseq,
           int nstates,
           int nsymbols)

Hmm

public Hmm(int lobseq,
           int nstates,
           int nsymbols,
           boolean bRandomize)

Hmm

public Hmm(int lobseq,
           int nstates,
           int nsymbols,
           int llb,
           int urb)

Hmm

public Hmm(int lobseq,
           int nstates,
           int nsymbols,
           int llb,
           int urb,
           boolean bRandomize)

Hmm

public Hmm(java.lang.String file)

Hmm

public Hmm(int lobseq,
           java.lang.String file)
Method Detail

viterbiAlgorithm

public double viterbiAlgorithm()

getNumStates

public int getNumStates()

getNumSymbols

public int getNumSymbols()

getLenObSeq

public int getLenObSeq()

initializeModel

public void initializeModel()

initializeModel

public void initializeModel(boolean bRandomize)

setObSeq

public void setObSeq()

setObSeq

public void setObSeq(boolean bRandomize)

setObSeq

public void setObSeq(int[] seq)

getObSeq

public int getObSeq(int t)

getObSeq

public int[] getObSeq()

baumWelchAlgorithm

public double baumWelchAlgorithm()

baumWelchAlgorithm

public double baumWelchAlgorithm(double min_error)

generateSeq

public int[] generateSeq()

getObSeqProbability

public double getObSeqProbability()
Three canonical questions of HMM a la Ferguson-Rabiner. [1] Given the observation sequence obSeq and a model lambda, what is the probability of the given sequence given lambda?
Returns:
Probability of the given sequence given lambda

getMaxLikelyState

public int[] getMaxLikelyState()
Three canonical questions of HMM a la Ferguson-Rabiner. [2] Given the observation sequence obSeq and a model lambda, what is the "optimal" sequence of hidden states?
Returns:
Most likely sequence of hidden states

optimizeLambda

public double optimizeLambda()
Three canonical questions of HMM a la Ferguson-Rabiner. [3] How do we adjust the model parameters lambda to maximize the likelihood of the given sequence obSeq?
Returns:
Locally optimal likelihood value of the given sequence

main

public static void main(java.lang.String[] args)