Class RecursiveDiscriminatingPathRule

java.lang.Object
edu.cmu.tetrad.search.RecursiveDiscriminatingPathRule

public class RecursiveDiscriminatingPathRule extends Object
Implements the R4 Discriminating Path rule in the final FCI orientation rules (Zhang 2008) using the block_paths_recursively method as a optimization.
Author:
josephramsey
  • Method Details

    • findDdpSepsetRecursive

      public static Set<Node> findDdpSepsetRecursive(IndependenceTest test, Graph pag, Node x, Node y, FciOrient fciOrient, int maxBlockingPathLength, int maxDdpPathLength, PreserveMarkov preserveMarkovHelper, int depth) throws InterruptedException
      Finds the set of nodes (separator set) for the Recursive Discriminating Path rule in a graph. This method uses a recursive approach to evaluate possible discriminating paths between two nodes x and y in the provided graph pag.
      Parameters:
      test - The independence test object used to check for conditional independence between nodes.
      pag - The graph structure, typically a partial ancestral graph (PAG), being analyzed.
      x - The first target node in the analysis.
      y - The second target node in the analysis.
      fciOrient - An orientation helper object used to apply FCI rules to edges in the graph.
      maxBlockingPathLength - The maximum allowable length of a blocking path for the analysis.
      maxDdpPathLength - The maximum allowable discriminating path length considered for the analysis.
      preserveMarkovHelper - A helper object for additional Markov property checks during the independence tests.
      depth - The maximum subset depth allowed during subset evaluations; a value of -1 allows all subsets.
      Returns:
      A set of nodes that constitutes the separating set (sepset) between x and y, or null if no such set exists.
      Throws:
      InterruptedException - If any.