Class FciMax

java.lang.Object
edu.cmu.tetrad.search.FciMax
All Implemented Interfaces:
GraphSearch

public final class FciMax extends Object implements GraphSearch
Extends Erin Korber's implementation of the Fast Causal Inference algorithm (found in FCI.java) with Jiji Zhang's Augmented FCI rules (found in sec. 4.1 of Zhang's 2006 PhD dissertation, "Causal Inference and Reasoning in Causally Insufficient Systems").

This versions uses the max-P collider orientation step.

This class is based off a copy of FCI.java taken from the repository on 2008/12/16, revision 7306. The extension is done by extending doFinalOrientation() with methods for Zhang's rules R5-R10 which implements the augmented search. (By a remark of Zhang's, the rule applications can be staged in this way.)

Author:
Erin Korber, June 2004, Alex Smith, December 2008, Joseph Ramsey, Choh-Man Teng
  • Constructor Details

    • FciMax

      public FciMax(IndependenceTest independenceTest)
      Constructs a new FCI search for the given independence test and background knowledge.
    • FciMax

      public FciMax(IndependenceTest independenceTest, List<Node> searchVars)
      Constructs a new FCI search for the given independence test and background knowledge and a list of variables to search over.
  • Method Details

    • getDepth

      public int getDepth()
    • setDepth

      public void setDepth(int depth)
    • getElapsedTime

      public long getElapsedTime()
    • search

      public Graph search()
      Specified by:
      search in interface GraphSearch
    • getSepsets

      public SepsetMap getSepsets()
      Retrieves the sepset map from FAS.
    • getKnowledge

      public Knowledge getKnowledge()
      Retrieves the background knowledge that was set.
    • setKnowledge

      public void setKnowledge(Knowledge knowledge)
      Sets background knowledge for the search.
    • isCompleteRuleSetUsed

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

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

      public boolean isPossibleDsepSearchDone()
      True iff the (time-consuming) possible dsep step should be done.
    • setPossibleDsepSearchDone

      public void setPossibleDsepSearchDone(boolean possibleDsepSearchDone)
      True iff the (time-consuming) possible dsep step should be done.
    • getMaxPathLength

      public int getMaxPathLength()
      Returns:
      the maximum length of any discriminating path, or -1 of unlimited.
    • setMaxPathLength

      public void setMaxPathLength(int maxPathLength)
      Parameters:
      maxPathLength - the maximum length of any discriminating path, or -1 if unlimited.
    • isVerbose

      public boolean isVerbose()
      True iff verbose output should be printed.
    • setVerbose

      public void setVerbose(boolean verbose)
      True iff verbose output should be printed.
    • getIndependenceTest

      public IndependenceTest getIndependenceTest()
      The independence test.
    • setHeuristic

      public void setHeuristic(int heuristic)
      The FAS heuristic.
    • setStable

      public void setStable(boolean stable)
      The FAS stable option.
    • setDoDiscriminatingPathRule

      public void setDoDiscriminatingPathRule(boolean doDiscriminatingPathRule)