Class FgesFci

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

public final class FgesFci extends StarFci
Uses FGES for the initial step of *-FCI. This is an adjustment to the original GFCI algorithm here:

Ogarrio, J. M., Spirtes, P., & Ramsey, J. (2016, August). A hybrid causal search algorithm for latent variable models. In Conference on probabilistic graphical models (pp. 368-379). PMLR.

See *-FCI for the modifications used. *-FCI requires a test; FGES requires a score, so both are needed.

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

Version:
$Id: $Id
Author:
Juan Miguel Ogarrio, peterspirtes, josephramsey
See Also:
  • Constructor Details

    • FgesFci

      public FgesFci(IndependenceTest test, Score score)
      Constructs a new GFci algorithm with the given independence test and score.
      Parameters:
      test - The independence test to use.
      score - The score to use.
  • Method Details

    • getMarkovCpdag

      public Graph getMarkovCpdag() throws InterruptedException
      Description copied from class: StarFci
      Returns a Markov CPDAG to use as the initial graph in the Star-FCI search.
      Specified by:
      getMarkovCpdag in class StarFci
      Returns:
      This CPDAG.
      Throws:
      InterruptedException - if interrupted.
    • setMaxDegree

      public void setMaxDegree(int maxDegree)
      Sets the maximum indegree of the output graph.
      Parameters:
      maxDegree - This maximum.
    • setOut

      public void setOut(PrintStream out)
      Sets the print stream used for output, default System.out.
      Parameters:
      out - This print stream.
    • setFaithfulnessAssumed

      public void setFaithfulnessAssumed(boolean faithfulnessAssumed)
      Sets whether one-edge faithfulness is assumed. For FGES
      Parameters:
      faithfulnessAssumed - True, if so.
      See Also:
    • setNumThreads

      public void setNumThreads(int numThreads)
      Sets the number of threads to use in the search.
      Parameters:
      numThreads - The number of threads to use. Must be at least 1.