Class R0R4StrategyTestBased

java.lang.Object
edu.cmu.tetrad.search.utils.R0R4StrategyTestBased
All Implemented Interfaces:
R0R4Strategy

public class R0R4StrategyTestBased extends Object implements R0R4Strategy
The FciOrientDataExaminationStrategyTestBased class implements the FciOrientDataExaminationStrategy interface and provides methods for checking unshielded colliders and determining orientations based on the Discriminating Path Rule.

This classes uses a test to determine the sepset for two nodes, e and c, which can only be determined by looking at the data.

Author:
jdramsey
See Also:
  • Constructor Details

    • R0R4StrategyTestBased

      public R0R4StrategyTestBased(IndependenceTest test)
      Creates a new instance of FciOrientDataExaminationStrategyTestBased.
      Parameters:
      test - the IndependenceTest object used by the strategy
    • R0R4StrategyTestBased

      public R0R4StrategyTestBased(IndependenceTest test, long timeout)
      Constructs an instance of R0R4StrategyTestBased with the specified IndependenceTest and timeout.
      Parameters:
      test - the IndependenceTest object used by the strategy
      timeout - the timeout value in milliseconds for the strategy
  • Method Details

    • specialConfiguration

      public static R0R4Strategy specialConfiguration(IndependenceTest test, Knowledge knowledge, boolean verbose)
      Provides a special configuration for creating an instance of FciOrientDataExaminationStrategy.
      Parameters:
      test - the IndependenceTest object used by the strategy
      knowledge - the Knowledge object used by the strategy
      verbose - boolean indicating whether to provide verbose output
      Returns:
      a configured FciOrientDataExaminationStrategy object
      Throws:
      IllegalArgumentException - if test or knowledge is null
    • defaultConfiguration

      public static R0R4Strategy defaultConfiguration(Graph dag, Knowledge knowledge)
      Returns a default configuration of the FciOrientDataExaminationStrategy object.
      Parameters:
      dag - the graph representation
      knowledge - the Knowledge object used by the strategy
      Returns:
      a default configured FciOrientDataExaminationStrategy object
    • defaultConfiguration

      public static R0R4Strategy defaultConfiguration(IndependenceTest test, Knowledge knowledge)
      Returns a default configuration of the FciOrientDataExaminationStrategy object.
      Parameters:
      test - the IndependenceTest object used by the strategy
      knowledge - the Knowledge object used by the strategy
      Returns:
      a configured FciOrientDataExaminationStrategy object
      Throws:
      IllegalArgumentException - if test or knowledge is null
    • isUnshieldedCollider

      public boolean isUnshieldedCollider(Graph graph, Node i, Node j, Node k)
      Checks if a collider is unshielded or not.
      Specified by:
      isUnshieldedCollider in interface R0R4Strategy
      Parameters:
      graph - the graph containing the nodes
      i - the first node of the collider
      j - the second node of the collider
      k - the third node of the collider
      Returns:
      true if the collider is unshielded, false otherwise
    • doDiscriminatingPathOrientation

      public org.apache.commons.lang3.tuple.Pair<DiscriminatingPath, Boolean> doDiscriminatingPathOrientation(DiscriminatingPath discriminatingPath, int recursiveDepth, int maxDiscriminatingPathLength, Graph graph, Set<Node> vNodes) throws InterruptedException
      Does a discriminating path orientation.
      Specified by:
      doDiscriminatingPathOrientation in interface R0R4Strategy
      Parameters:
      discriminatingPath - the discriminating path
      recursiveDepth - the maximum length of a blocking path
      maxDiscriminatingPathLength - the maximum length of a discriminating path
      graph - the graph representation
      vNodes - the set of v-nodes
      Returns:
      The discriminating path is returned as the first element of the pair, and a boolean indicating whether the orientation was done is returned as the second element of the pair.
      Throws:
      IllegalArgumentException - if 'e' is adjacent to 'c'
      IllegalStateException - if a blocking set cannot be found.
      InterruptedException - if the operation is interrupted
      See Also:
    • setPathContainingFallback

      public void setPathContainingFallback(boolean pathContainingFallback)
      Sets the opt-in R4 fallback for recorded separators that do not contain the collider path; see the pathContainingFallback field. Off by default.
      Parameters:
      pathContainingFallback - true to enable the recursive-blocking fallback.
    • setKnowledge

      public void setKnowledge(Knowledge knowledge)
      Sets the knowledge object used by the FciOrientDataExaminationStrategy.
      Specified by:
      setKnowledge in interface R0R4Strategy
      Parameters:
      knowledge - the knowledge object to be set
    • getknowledge

      public Knowledge getknowledge()
      Retrieves the Knowledge object used by the FciOrientDataExaminationStrategy.
      Specified by:
      getknowledge in interface R0R4Strategy
      Returns:
      the Knowledge object used by the strategy
    • setVerbose

      public void setVerbose(boolean verbose)
      Sets the verbose mode for the FciOrientDataExaminationStrategy object.
      Parameters:
      verbose - true to enable verbose output, false otherwise
    • setDepth

      public void setDepth(int depth)
      Sets the depth for the FciOrientDataExaminationStrategy object.
      Parameters:
      depth - the depth to be set for the strategy
    • getTest

      public IndependenceTest getTest()
      Retrieves the IndependenceTest object used by the strategy.
      Returns:
      the IndependenceTest object used by the strategy
    • setMaxLength

      public void setMaxLength(int maxLength)
      Sets the maximum length for relevant paths.
      Parameters:
      maxLength - the maximum length to be set. Set to -1 for no maximum length.
    • setDdpMaxP

      public void setDdpMaxP(boolean ddpMaxP)
      Sets the PreserveMarkov object used by the R0R4StrategyTestBased. Sets whether R4's recursive discriminating-path search picks the strongest candidate separating set (max-p) rather than the first one found. Off by default.
      Parameters:
      ddpMaxP - whether to use the max-p rule
    • setPreserveMarkovHelper

      public void setPreserveMarkovHelper(PreserveMarkov preserveMarkovHelper)
      Sets the PreserveMarkov helper.
      Parameters:
      preserveMarkovHelper - the PreserveMarkov object to be set
    • setBlockingType

      public void setBlockingType(R0R4StrategyTestBased.BlockingType blockingType)
      Sets the blocking type for the strategy.
      Parameters:
      blockingType - the blocking type to be set, which can be either RECURSIVE or GREEDY.
    • setSepsetMap

      public void setSepsetMap(SepsetMap sepsets)
      Sets the SepsetMap used by the R0R4StrategyTestBased.
      Parameters:
      sepsets - the SepsetMap object to be set
    • setSepsetGraph

      public void setSepsetGraph(Graph sepsetGraph)
      Sets the frozen reference graph (G_0) used to compute separators for endpoint pairs that have no recorded separator. Pass the initial PAG; pass null to recompute on the live graph (prior behavior).
      Parameters:
      sepsetGraph - the frozen initial PAG, or null