Package edu.cmu.tetrad.search
Class FasStableConcurrentFdr
java.lang.Object
edu.cmu.tetrad.search.FasStableConcurrentFdr
- All Implemented Interfaces:
IFas
Implements the "fast adjacency search" used in several causal algorithm in this package. In the fast adjacency
search, at a given stage of the search, an edge X*-*Y is removed from the graph if X _||_ Y | S, where S is a subset
of size d either of adj(X) or of adj(Y), where d is the depth of the search. The fast adjacency search performs this
procedure for each pair of adjacent edges in the graph and for each depth d = 0, 1, 2, ..., d1, where d1 is either
the maximum depth or else the first such depth at which no edges can be removed. The interpretation of this adjacency
search is different for different algorithm, depending on the assumptions of the algorithm. A mapping from {x, y} to
S({x, y}) is returned for edges x *-* y that have been removed.
This variant uses the PC-Stable modification, calculating independencies in parallel within each depth. It uses a slightly different algorithm from FasStableConcurrent, probably better.
- Author:
- Joseph Ramsey.
-
Constructor Summary
ConstructorsConstructorDescriptionFasStableConcurrentFdr
(Graph externalGraph, IndependenceTest test) Constructs a new FastAdjacencySearch.Constructs a new FastAdjacencySearch. -
Method Summary
Modifier and TypeMethodDescriptiongetAmbiguousTriples
(Node node) int
getDepth()
long
The logger, by default the empty logger.getNodes()
int
int
getOut()
boolean
boolean
search()
Discovers all adjacencies in data.void
setDepth
(int depth) void
setExternalGraph
(Graph externalGraph) void
setKnowledge
(Knowledge knowledge) void
setLogger
(TetradLogger logger) void
setOut
(PrintStream out) void
setVerbose
(boolean verbose)
-
Constructor Details
-
FasStableConcurrentFdr
Constructs a new FastAdjacencySearch. wd -
FasStableConcurrentFdr
Constructs a new FastAdjacencySearch.
-
-
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. -
search
-
getElapsedTime
public long getElapsedTime()- Specified by:
getElapsedTime
in interfaceIFas
-
getDepth
public int getDepth() -
setDepth
public void setDepth(int depth) -
isAggressivelyPreventCycles
public boolean isAggressivelyPreventCycles()- Specified by:
isAggressivelyPreventCycles
in interfaceIFas
-
getIndependenceTest
- Specified by:
getIndependenceTest
in interfaceIFas
-
getKnowledge
- Specified by:
getKnowledge
in interfaceIFas
-
setKnowledge
- Specified by:
setKnowledge
in interfaceIFas
-
getNumIndependenceTests
public int getNumIndependenceTests()- Specified by:
getNumIndependenceTests
in interfaceIFas
-
getNodes
-
getAmbiguousTriples
- Specified by:
getAmbiguousTriples
in interfaceIFas
-
getSepsets
- Specified by:
getSepsets
in interfaceIFas
-
setExternalGraph
-
getLogger
The logger, by default the empty logger. -
setLogger
-
isVerbose
public boolean isVerbose() -
setVerbose
public void setVerbose(boolean verbose) - Specified by:
setVerbose
in interfaceIFas
-
getNumDependenceJudgments
public int getNumDependenceJudgments()- Specified by:
getNumDependenceJudgments
in interfaceIFas
-
setOut
-
getOut
-