AIMA.Core.Probability.Reasoning.HMMFactory.createRainmanHMM C# (CSharp) Method

createRainmanHMM() public static method

public static createRainmanHMM ( ) : HiddenMarkovModel
return HiddenMarkovModel
        public static HiddenMarkovModel createRainmanHMM()
        {
            List<String> states = new List<String> {
				HmmConstants.RAINING, HmmConstants.NOT_RAINING };
            // no actions because the observer has no way of changing the hidden
            // state and i spassive
            List<String> perceptions =new List<String> {
				HmmConstants.SEE_UMBRELLA, HmmConstants.SEE_NO_UMBRELLA };

            RandomVariable prior = new RandomVariable(states);

            TransitionModel tm = new TransitionModel(states);
            // tm.setTransitionModelValue(start_state, action, end_state,
            // probability);
            // given a start state and an action the probability of the end state is
            // probability
            tm.setTransitionProbability(HmmConstants.RAINING, HmmConstants.RAINING,
                    0.7);
            tm.setTransitionProbability(HmmConstants.RAINING,
                    HmmConstants.NOT_RAINING, 0.3);
            tm.setTransitionProbability(HmmConstants.NOT_RAINING,
                    HmmConstants.RAINING, 0.3);
            tm.setTransitionProbability(HmmConstants.NOT_RAINING,
                    HmmConstants.NOT_RAINING, 0.7);

            SensorModel sm = new SensorModel(states, perceptions);
            // sm.setSensingProbaility(state,perception,p); given a state the
            // probability of a perception is p
            sm.setSensingProbability(HmmConstants.RAINING,
                    HmmConstants.SEE_UMBRELLA, 0.9);
            sm.setSensingProbability(HmmConstants.RAINING,
                    HmmConstants.SEE_NO_UMBRELLA, 0.1);
            sm.setSensingProbability(HmmConstants.NOT_RAINING,
                    HmmConstants.SEE_UMBRELLA, 0.2);
            sm.setSensingProbability(HmmConstants.NOT_RAINING,
                    HmmConstants.SEE_NO_UMBRELLA, 0.8);

            HiddenMarkovModel hmm = new HiddenMarkovModel(prior, tm, sm);

            // hmm.setSensorModelValue(state,perception,p); given a state the
            // probability of a perception is p

            return hmm;
        }
    }