Class VariableEliminationInference

java.lang.Object
edu.cmu.tetrad.bayes.VariableEliminationInference
All Implemented Interfaces:
Serializable

public final class VariableEliminationInference extends Object implements 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)
This class is designed specifically to satisfy the methods required by JunctionTreeUpdater. 2026-02-21 jdramsey + (VE-based implementation provided here)
See Also:
  • Constructor Details

    • VariableEliminationInference

      public VariableEliminationInference(BayesIm bayesIm)
      Construct inference over the given BayesIm.
      Parameters:
      bayesIm - BayesIm to perform inference over
  • Method Details

    • setAllowedCategories

      public void setAllowedCategories(Proposition allowedCategories)
      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 - Node
      category - Category
    • getMarginal

      public double getMarginal(int node, int category)
      Conditional marginal P(node=category | evidence).
      Parameters:
      node - Node
      category - 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 - Node
      parents - Parent nodes
      parentValues - 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 - Variables
      values - Values for variables
      Returns:
      Joint probability