private static HiddenMarkovModel trainHMM()
{
int states = 3;
int symbols = 3;
int[][] sequences = new int[][]
{
new int[] { 0, 1, 1, 1, 2 },
new int[] { 0, 1, 1, 1, 2, 2, 2 },
new int[] { 0, 0, 1, 1, 2, 2 },
new int[] { 0, 1, 1, 1, 2, 2, 2 },
new int[] { 0, 1, 1, 1, 2, 1 },
new int[] { 0, 1, 1, 2, 2 },
new int[] { 0, 0, 1, 1, 1, 2, 1 },
new int[] { 0, 0, 0, 1, 1, 1, 2, 1 },
new int[] { 0, 1, 1, 2, 2, 2 },
};
HiddenMarkovModel hmm = new HiddenMarkovModel(new Forward(states), symbols);
var teacher = new BaumWelchLearning(hmm) { Iterations = 100, Tolerance = 0 };
double ll = teacher.Run(sequences);
return hmm;
}