Class VariableEliminationInference
java.lang.Object
edu.cmu.tetrad.bayes.VariableEliminationInference
- All Implemented Interfaces:
Serializable
Exact inference engine over a
BayesIm supporting:
- Soft evidence via allowed categories (
Proposition) - Hard evidence via node=category
- Marginals, conditionals, and joint marginals (all conditional on evidence)
JunctionTreeUpdater.
2026-02-21 jdramsey + (VE-based implementation provided here)- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionVariableEliminationInference(BayesIm bayesIm) Construct inference over the given BayesIm. -
Method Summary
Modifier and TypeMethodDescriptiondouble[]getConditional(int node, int[] parents, int[] parentValues) Conditional distribution P(node | parents=parentValues, evidence).doublegetJointProbability(int[] vars, int[] values) Conditional joint marginal P(vars=values | evidence).doublegetMarginal(int node, int category) Conditional marginal P(node=category | evidence).voidsetAllowedCategories(Proposition allowedCategories) Soft evidence: set allowed categories for each variable.voidsetEvidence(int node, int category) Hard evidence: set node = category.
-
Constructor Details
-
VariableEliminationInference
Construct inference over the given BayesIm.- Parameters:
bayesIm- BayesIm to perform inference over
-
-
Method Details
-
setAllowedCategories
Soft evidence: set allowed categories for each variable. Proposition must be indexed to this BayesIm.- Parameters:
allowedCategories- Proposition specifying allowed categories for each variable
-
setEvidence
public void setEvidence(int node, int category) Hard evidence: set node = category. Pass a negative category to clear hard evidence for that node.- Parameters:
node- Nodecategory- Category
-
getMarginal
public double getMarginal(int node, int category) Conditional marginal P(node=category | evidence).- Parameters:
node- Nodecategory- Category- Returns:
- Conditional marginal probability
-
getConditional
public double[] getConditional(int node, int[] parents, int[] parentValues) Conditional distribution P(node | parents=parentValues, evidence). This returns an array of length numCategories(node).- Parameters:
node- Nodeparents- Parent nodesparentValues- Values for parent nodes- Returns:
- Conditional distribution
-
getJointProbability
public double getJointProbability(int[] vars, int[] values) Conditional joint marginal P(vars=values | evidence). (This is what callers typically mean by "joint marginal".)- Parameters:
vars- Variablesvalues- Values for variables- Returns:
- Joint probability
-