Package edu.cmu.tetrad.search
Class Fasd
java.lang.Object
edu.cmu.tetrad.search.Fasd
- All Implemented Interfaces:
IFas
,IGraphSearch
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.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetAmbiguousTriples
(Node node) Returns an empty list.long
Returns the elapsed time.getNodes()
Returns the nodes being searched over.int
Returns the number of conditional independence tests done in the course of search.Returns the map of node pairs to sepsets from the search.boolean
search()
Discovers all adjacencies in data.void
setDepth
(int depth) Sets the maximum number of variables conditioned on in any test.void
setExternalGraph
(Graph externalGraph) Sets the external graph.void
setKnowledge
(Knowledge knowledge) Sets the knowledge to be used in the search.void
setOut
(PrintStream out) Sets the output to send prints to.void
setVerbose
(boolean verbose) Sets whether verbose output will be printed.
-
Constructor Details
-
Fasd
Constructs a new FastAdjacencySearch.- Parameters:
test
- A test to use as a conditional independence oracle.
-
-
Method Details
-
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 interfaceIGraphSearch
- Returns:
- a graph which indicates which variables are independent conditional on which other variables
-
setDepth
public void setDepth(int depth) Sets the maximum number of variables conditioned on in any test. -
setKnowledge
Sets the knowledge to be used in the search.- Specified by:
setKnowledge
in interfaceIFas
- Parameters:
knowledge
- This knowledge.
-
getNumIndependenceTests
public int getNumIndependenceTests()Returns the number of conditional independence tests done in the course of search.- Specified by:
getNumIndependenceTests
in interfaceIFas
- Returns:
- This number.
-
getSepsets
Returns the map of node pairs to sepsets from the search.- Specified by:
getSepsets
in interfaceIFas
- Returns:
- This map.
-
setExternalGraph
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() -
setVerbose
public void setVerbose(boolean verbose) Sets whether verbose output will be printed.- Specified by:
setVerbose
in interfaceIFas
- Parameters:
verbose
- True, if so.
-
getElapsedTime
public long getElapsedTime()Returns the elapsed time.- Specified by:
getElapsedTime
in interfaceIFas
- Returns:
- This time.
-
getNodes
Returns the nodes being searched over. -
getAmbiguousTriples
Returns an empty list. Not used.- Specified by:
getAmbiguousTriples
in interfaceIFas
- Parameters:
node
- Whichever node.- Returns:
- An empty list.
- See Also:
-
setOut
Sets the output to send prints to.
-