diff viterbi.cpp @ 94:19f3b33a19fb matthiasm-plugin

corrected viterbi frame initialisation
author matthiasm
date Thu, 02 Dec 2010 23:39:57 +0900
parents b6cddb109482
children 99b87ce4bb70
line wrap: on
line diff
--- a/viterbi.cpp	Thu Dec 02 23:11:27 2010 +0900
+++ b/viterbi.cpp	Thu Dec 02 23:39:57 2010 +0900
@@ -12,11 +12,6 @@
     if (trans[0].size() != nState || trans.size() != nState || obs[0].size() != nState) {
         cerr << "ERROR: matrix sizes inconsistent." << endl;
     }
-    
-    for (int iState = 0; iState < nState; ++iState) delta[iState] = init[iState];
-    for (int iFrame = 1; iFrame < nFrame; ++iFrame) {
-        for (int iState = 0; iState < nState; ++iState) delta[iFrame*nState + iState];
-    }
         
     // vector<vector<double> > delta; // "matrix" of conditional probabilities    
     vector<vector<int> > psi; //  "matrix" of remembered indices of the best transitions
@@ -28,7 +23,7 @@
     /* initialise first frame */
     // delta.push_back(init);    
     for (int iState = 0; iState < nState; ++iState) {
-        delta[iState] *= obs[0][iState];
+        delta[iState] = init[iState] * obs[0][iState];
         deltasum += delta[iState];
     }
     for (int iState = 0; iState < nState; ++iState) delta[iState] /= deltasum; // normalise (scale)