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.

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 ot 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.
    • setVerbose

      public void setVerbose(boolean verbose)
    • isPossibleMsepSearchDone

      public boolean isPossibleMsepSearchDone()
    • setPossibleMsepSearchDone

      public void setPossibleMsepSearchDone(boolean possibleMsepSearchDone)
    • getMaxReachablePathLength

      public int getMaxReachablePathLength()
    • setMaxReachablePathLength

      public void setMaxReachablePathLength(int maxReachablePathLength)
    • setDoDiscriminatingPathRule

      public void setDoDiscriminatingPathRule(boolean doDiscriminatingPathRule)