Class Cfci

java.lang.Object
edu.cmu.tetrad.search.Cfci
All Implemented Interfaces:
IGraphSearch

public final class Cfci extends Object implements IGraphSearch
Adjusts FCI (see) to use conservative orientation as in CPC (see). Because the collider orientation is conservative, there may be ambiguous triples; these may be retrieved using that accessor method.

This class is configured to respect knowledge of forbidden and required edges, including knowledge of temporal tiers.

Version:
$Id: $Id
Author:
josephramsey
See Also:
  • Constructor Details

    • Cfci

      public Cfci(IndependenceTest independenceTest)
      Constructs a new FCI search for the given independence test and background knowledge.
      Parameters:
      independenceTest - The independence to use as an oracle.
  • Method Details

    • search

      public Graph search()
      Performs the search and returns the PAG.
      Specified by:
      search in interface IGraphSearch
      Returns:
      The search PAG.
    • setDepth

      public void setDepth(int depth)
      Sets the depth--i.e., the maximum number of variables conditioned on in any test.
      Parameters:
      depth - This maximum.
    • getElapsedTime

      public long getElapsedTime()
      Returns the elapsed time to the search.
      Returns:
      This time.
    • getSepsets

      public SepsetMap getSepsets()
      Returns the map from nodes to their sepsets. For x _||_ y | z1,...,zn, this would map {x, y} to {z1,...,zn}.
      Returns:
      This map.
    • setKnowledge

      public void setKnowledge(Knowledge knowledge)
      Set the knowledge used in the search.
      Parameters:
      knowledge - This knowledge.
      See Also:
    • isCompleteRuleSetUsed

      public boolean isCompleteRuleSetUsed()
      Returns true if Zhang's complete rule set should be used, false if only R1-T1 (the rule set of the original FCI) should be used. False by default.
      Returns:
      True for the complete rule set.
    • setCompleteRuleSetUsed

      public void setCompleteRuleSetUsed(boolean completeRuleSetUsed)
      Sets whether the complete rule set should be used.
      Parameters:
      completeRuleSetUsed - set to true if Zhang's complete rule set should be used, false if only R1-T1 (the rule set of the original FCI) should be used. False by default.
    • getAmbiguousTriples

      public Set<Triple> getAmbiguousTriples()
      Returns the ambiguous triples found in the search.
      Returns:
      This set.
      See Also:
    • isVerbose

      public boolean isVerbose()
      Whether verbose output (about independencies) is output.
      Returns:
      True iff verbose output (about independencies) is output.
    • setVerbose

      public void setVerbose(boolean verbose)
      Whether verbose output (about independencies) is output.
      Parameters:
      verbose - True iff verbose output (about independencies) is output.
    • isPossibleMsepSearchDone

      public boolean isPossibleMsepSearchDone()
      Whether to do the discriminating path rule.
      Returns:
      True, iff the discriminating path rule is done.
    • setPossibleMsepSearchDone

      public void setPossibleMsepSearchDone(boolean possibleMsepSearchDone)
      Whether to do the discriminating path rule.
      Parameters:
      possibleMsepSearchDone - True, iff the discriminating path rule is done.
    • getMaxReachablePathLength

      public int getMaxReachablePathLength()
      Returns the maximum length for any discriminating path. -1 if unlimited; otherwise, a positive integer.
      Returns:
      This length.
    • setMaxReachablePathLength

      public void setMaxReachablePathLength(int maxReachablePathLength)
      Sets the maximum length for any discriminating path. -1 if unlimited; otherwise, a positive integer.
      Parameters:
      maxReachablePathLength - This length.
    • setDoDiscriminatingPathRule

      public void setDoDiscriminatingPathRule(boolean doDiscriminatingPathRule)
      Whether to do the discriminating path rule.
      Parameters:
      doDiscriminatingPathRule - True iff the discriminating path rule is done.
    • setResolveAlmostCyclicPaths

      public void setResolveAlmostCyclicPaths(boolean resolveAlmostCyclicPaths)
      Sets the flag indicating whether to resolve almost cyclic paths.
      Parameters:
      resolveAlmostCyclicPaths - If true, almost cyclic paths will be resolved. If false, they will not be resolved.