Class JunctionTreeAlgorithm

java.lang.Object
edu.cmu.tetrad.bayes.JunctionTreeAlgorithm
All Implemented Interfaces:
TetradSerializable, Serializable

public class JunctionTreeAlgorithm extends Object implements TetradSerializable
Junction Tree Algorithm.

This implementation follows the Weka's implementation.

Nov 8, 2019 2:22:34 PM

Version:
$Id: $Id
Author:
Kevin V. Bui (kvb2@pitt.edu)
See Also:
  • Constructor Details

    • JunctionTreeAlgorithm

      public JunctionTreeAlgorithm(Graph graph, DataModel dataModel)

      Constructor for JunctionTreeAlgorithm.

      Parameters:
      graph - a Graph object
      dataModel - a DataModel object
    • JunctionTreeAlgorithm

      public JunctionTreeAlgorithm(BayesIm bayesIm)

      Constructor for JunctionTreeAlgorithm.

      Parameters:
      bayesIm - a BayesIm object
  • Method Details

    • setEvidence

      public void setEvidence(int iNode, int value)

      setEvidence.

      Parameters:
      iNode - a int
      value - a int
    • getConditionalProbabilities

      public double getConditionalProbabilities(int[] nodes, int[] values, int[] parents, int[] parentValues)
      Get the joint probability of the nodes given their parents. Example: given x <-- z --> y, we can find P(x,y|z). Another example: given x <-- z --> y <-- w, we can find P(x,y|z,w)
      Parameters:
      nodes - an array of int objects
      values - an array of int objects
      parents - an array of int objects
      parentValues - an array of int objects
      Returns:
      a double
    • getConditionalProbabilities

      public double[] getConditionalProbabilities(int iNode, int[] parents, int[] parentValues)
      Get the conditional probability of a node for all of its values.
      Parameters:
      iNode - a int
      parents - an array of int objects
      parentValues - an array of int objects
      Returns:
      an array of double objects
    • getConditionalProbability

      public double getConditionalProbability(int iNode, int value, int[] parents, int[] parentValues)

      getConditionalProbability.

      Parameters:
      iNode - a int
      value - a int
      parents - an array of int objects
      parentValues - an array of int objects
      Returns:
      a double
    • getJointProbabilityAll

      public double getJointProbabilityAll(int[] nodeValues)
      Get the joint probability of all nodes (variables). Given the nodes are X1, X2,...,Xn, then nodeValues[0] = value(X1), nodeValues[1] = value(X2),...,nodeValues[n-1] = value(Xn).
      Parameters:
      nodeValues - an array of values for each node
      Returns:
      a double
    • getJointProbability

      public double getJointProbability(int[] nodes, int[] values)

      getJointProbability.

      Parameters:
      nodes - an array of int objects
      values - an array of int objects
      Returns:
      a double
    • getMarginalProbability

      public double[] getMarginalProbability(int iNode)

      getMarginalProbability.

      Parameters:
      iNode - a int
      Returns:
      an array of double objects
    • getMarginalProbability

      public double getMarginalProbability(int iNode, int value)

      getMarginalProbability.

      Parameters:
      iNode - a int
      value - a int
      Returns:
      a double
    • getNodes

      public List<Node> getNodes()

      getNodes.

      Returns:
      a List object
    • getNumberOfNodes

      public int getNumberOfNodes()

      getNumberOfNodes.

      Returns:
      a int
    • toString

      public String toString()
      Overrides:
      toString in class Object