Class Fasd

java.lang.Object
edu.cmu.tetrad.search.Fasd
All Implemented Interfaces:
IFas, IGraphSearch

public class Fasd extends Object implements IFas
Adjusts FAS (see) for the deterministic case by refusing to removed edges based on conditional independence tests that are judged to be deterministic. That is, if X _||_ Y | Z, but Z determines X or Y, then the edge X---Y is not removed.

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

Version:
$Id: $Id
Author:
peterspirtes, josephramsey.
See Also:
  • Constructor Details

    • Fasd

      public Fasd(IndependenceTest test)
      Constructs a new FastAdjacencySearch.
      Parameters:
      test - A test to use as a conditional independence oracle.
  • Method Details

    • search

      public Graph search()
      Discovers all adjacencies in data. The procedure is to remove edges in the graph which connect pairs of variables which are independent, conditional on some other set of variables in the graph (the "sepset"). These are removed in tiers. First, edges which are independent conditional on zero other variables are removed, then edges which are independent conditional on one other variable are removed, then two, then three, and so on, until no more edges can be removed from the graph. The edges which remain in the graph after this procedure are the adjacencies in the data.
      Specified by:
      search in interface IGraphSearch
      Returns:
      a graph which indicates which variables are independent conditional on which other variables
    • setDepth

      public void setDepth(int depth)
      Sets the depth of the search.
      Specified by:
      setDepth in interface IFas
      Parameters:
      depth - The maximum search depth. Must be -1 (unlimited) or >= 0.
      Throws:
      IllegalArgumentException - if depth is less than -1
    • setKnowledge

      public void setKnowledge(Knowledge knowledge)
      Sets the knowledge for this object.
      Specified by:
      setKnowledge in interface IFas
      Parameters:
      knowledge - The knowledge to set. Cannot be null.
      Throws:
      NullPointerException - If knowledge is null.
    • getNumIndependenceTests

      public int getNumIndependenceTests()
      Returns the number of conditional independence tests done in the course of search.
      Specified by:
      getNumIndependenceTests in interface IFas
      Returns:
      This number.
    • getSepsets

      public SepsetMap getSepsets()
      Returns the map of node pairs to sepsets from the search.
      Specified by:
      getSepsets in interface IFas
      Returns:
      This map.
    • setExternalGraph

      public void setExternalGraph(Graph externalGraph)
      Sets the external graph. Adjacencies not in this external graph will not be judged adjacent in the search result.
      Parameters:
      externalGraph - This graph.
    • isVerbose

      public boolean isVerbose()
      Returns the current value of the verbose flag.
      Returns:
      true if verbose output is enabled, false otherwise.
    • setVerbose

      public void setVerbose(boolean verbose)
      Sets the verbose flag to control verbose output.
      Specified by:
      setVerbose in interface IFas
      Parameters:
      verbose - True, if verbose output is enabled. False otherwise.
    • getElapsedTime

      public long getElapsedTime()
      Returns the elapsed time of the method execution.
      Specified by:
      getElapsedTime in interface IFas
      Returns:
      the elapsed time in milliseconds
    • getNodes

      public List<Node> getNodes()
      Retrieves the list of nodes from the current object.
      Specified by:
      getNodes in interface IFas
      Returns:
      A list of Node objects representing the nodes in this object.
    • getAmbiguousTriples

      public List<Triple> getAmbiguousTriples(Node node)
      Retrieves a list of ambiguous triples for the given node.
      Specified by:
      getAmbiguousTriples in interface IFas
      Parameters:
      node - The node for which to retrieve the ambiguous triples.
      Returns:
      A list of Triple objects representing the ambiguous triples.
      See Also:
    • setOut

      public void setOut(PrintStream out)
      Sets the output stream for this object.
      Specified by:
      setOut in interface IFas
      Parameters:
      out - The output stream to be set.