Package aima.core.probability.example

Source Code of aima.core.probability.example.DynamicBayesNetExampleFactory

package aima.core.probability.example;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

import aima.core.probability.RandomVariable;
import aima.core.probability.bayes.DynamicBayesianNetwork;
import aima.core.probability.bayes.FiniteNode;
import aima.core.probability.bayes.impl.BayesNet;
import aima.core.probability.bayes.impl.DynamicBayesNet;
import aima.core.probability.bayes.impl.FullCPTNode;

/**
*
* @author Ciaran O'Reilly
*
*/
public class DynamicBayesNetExampleFactory {
  /**
   * Return a Dynamic Bayesian Network of the Umbrella World Network.
   *
   * @return a Dynamic Bayesian Network of the Umbrella World Network.
   */
  public static DynamicBayesianNetwork getUmbrellaWorldNetwork() {
    FiniteNode prior_rain_tm1 = new FullCPTNode(ExampleRV.RAIN_tm1_RV,
        new double[] { 0.5, 0.5 });

    BayesNet priorNetwork = new BayesNet(prior_rain_tm1);

    // Prior belief state
    FiniteNode rain_tm1 = new FullCPTNode(ExampleRV.RAIN_tm1_RV,
        new double[] { 0.5, 0.5 });
    // Transition Model
    FiniteNode rain_t = new FullCPTNode(ExampleRV.RAIN_t_RV, new double[] {
        // R_t-1 = true, R_t = true
        0.7,
        // R_t-1 = true, R_t = false
        0.3,
        // R_t-1 = false, R_t = true
        0.3,
        // R_t-1 = false, R_t = false
        0.7 }, rain_tm1);
    // Sensor Model
    @SuppressWarnings("unused")
    FiniteNode umbrealla_t = new FullCPTNode(ExampleRV.UMBREALLA_t_RV,
        new double[] {
            // R_t = true, U_t = true
            0.9,
            // R_t = true, U_t = false
            0.1,
            // R_t = false, U_t = true
            0.2,
            // R_t = false, U_t = false
            0.8 }, rain_t);

    Map<RandomVariable, RandomVariable> X_0_to_X_1 = new HashMap<RandomVariable, RandomVariable>();
    X_0_to_X_1.put(ExampleRV.RAIN_tm1_RV, ExampleRV.RAIN_t_RV);
    Set<RandomVariable> E_1 = new HashSet<RandomVariable>();
    E_1.add(ExampleRV.UMBREALLA_t_RV);

    return new DynamicBayesNet(priorNetwork, X_0_to_X_1, E_1, rain_tm1);
  }
}
TOP

Related Classes of aima.core.probability.example.DynamicBayesNetExampleFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.