AIMA.Probability.Reasoning.HiddenMarkovModel.perceptionUpdate C# (CSharp) Method

perceptionUpdate() public method

public perceptionUpdate ( RandomVariable aBelief, String perception ) : RandomVariable
aBelief RandomVariable
perception String
return RandomVariable
        public RandomVariable perceptionUpdate(RandomVariable aBelief,
                String perception)
        {
            RandomVariable newBelief = aBelief.duplicate();

            // one way - use matrices
            Matrix beliefMatrix = aBelief.asMatrix();
            Matrix o_matrix = _sensorModel.asMatrix(perception);
            Matrix updated = o_matrix.times(beliefMatrix);
            newBelief.updateFrom(updated);
            newBelief.normalize();
            return newBelief;

            // alternate way of doing this. clearer in intent.
            // for (String state : aBelief.states()){
            // double probabilityOfPerception= sensorModel.get(state,perception);
            // newBelief.setProbabilityOf(state,probabilityOfPerception *
            // aBelief.getProbabilityOf(state));
            // }
        }

Usage Example

Example #1
0
 public void perceive(String perception)
 {
     _belief = hmm.perceptionUpdate(_belief, perception);
 }