aima.core.probability.example.GenericTemporalModelFactory Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aima-core Show documentation
Show all versions of aima-core Show documentation
AIMA-Java Core Algorithms from the book Artificial Intelligence a Modern Approach 3rd Ed.
The newest version!
package aima.core.probability.example;
import java.util.HashMap;
import java.util.Map;
import aima.core.probability.FiniteProbabilityModel;
import aima.core.probability.RandomVariable;
import aima.core.probability.bayes.FiniteNode;
import aima.core.probability.bayes.impl.BayesNet;
import aima.core.probability.bayes.impl.FullCPTNode;
import aima.core.probability.bayes.model.FiniteBayesModel;
/**
*
* @author Ciaran O'Reilly
*
*/
public class GenericTemporalModelFactory {
public static FiniteProbabilityModel getUmbrellaWorldTransitionModel() {
return getUmbrellaWorldModel();
}
public static FiniteProbabilityModel getUmbrellaWorldSensorModel() {
return getUmbrellaWorldModel();
}
public static FiniteProbabilityModel getUmbrellaWorldModel() {
// 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);
return new FiniteBayesModel(new BayesNet(rain_tm1));
}
public static Map getUmbrellaWorld_Xt_to_Xtm1_Map() {
Map tToTm1StateVarMap = new HashMap();
tToTm1StateVarMap.put(ExampleRV.RAIN_t_RV, ExampleRV.RAIN_tm1_RV);
return tToTm1StateVarMap;
}
}