Class PcAll

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

public final class PcAll extends Object implements GraphSearch
Implements a convervative version of PC, in which the Markov condition is assumed but faithfulness is tested locally.
Author:
Joseph Ramsey (this version).
  • Constructor Details

    • PcAll

      public PcAll(IndependenceTest independenceTest)
      Constructs a CPC algorithm that uses the given independence test as oracle. This does not make a copy of the independence test, for fear of duplicating the data set!
  • Method Details

    • isArrowpointAllowed1

      public static boolean isArrowpointAllowed1(Node from, Node to, Knowledge knowledge)
    • isArrowpointAllowed

      public static boolean isArrowpointAllowed(Object from, Object to, Knowledge knowledge)
      Checks if an arrowpoint is allowed by background knowledge.
    • setUseHeuristic

      public void setUseHeuristic(boolean useHeuristic)
    • getMaxPathLength

      public int getMaxPathLength()
    • setMaxPathLength

      public void setMaxPathLength(int maxPathLength)
    • setFasType

      public void setFasType(PcAll.FasType fasType)
    • setConcurrent

      public void setConcurrent(PcAll.Concurrent concurrent)
    • setHeuristic

      public void setHeuristic(int heuristic)
    • isAggressivelyPreventCycles

      public boolean isAggressivelyPreventCycles()
      Returns:
      true just in case edges will not be added if they would create cycles.
    • setAggressivelyPreventCycles

      public void setAggressivelyPreventCycles(boolean aggressivelyPreventCycles)
      Sets to true just in case edges will not be added if they would create cycles.
    • setColliderDiscovery

      public void setColliderDiscovery(PcAll.ColliderDiscovery colliderDiscovery)
    • setConflictRule

      public void setConflictRule(PcAll.ConflictRule conflictRule)
    • getElapsedTime

      public long getElapsedTime()
      Returns:
      the elapsed time of search in milliseconds, after search() has been run.
    • getKnowledge

      public Knowledge getKnowledge()
      Returns:
      the knowledge specification used in the search. Non-null.
    • setKnowledge

      public void setKnowledge(Knowledge knowledge)
      Sets the knowledge specification used in the search. Non-null.
    • getIndependenceTest

      public IndependenceTest getIndependenceTest()
      Returns:
      the independence test used in the search, set in the constructor. This is not returning a copy, for fear of duplicating the data set!
    • getDepth

      public int getDepth()
      Returns:
      the depth of the search--that is, the maximum number of variables conditioned on in any conditional independence test.
    • setDepth

      public void setDepth(int depth)
      Sets the maximum number of variables conditioned on in any conditional independence test. If set to -1, the value of 1000 will be used. May not be set to Integer.MAX_VALUE, due to a Java bug on multi-core systems.
    • getAmbiguousTriples

      public Set<Triple> getAmbiguousTriples()
      Returns:
      the set of ambiguous triples found during the most recent run of the algorithm. Non-null after a call to search().
    • getColliderTriples

      public Set<Triple> getColliderTriples()
      Returns:
      the set of collider triples found during the most recent run of the algorithm. Non-null after a call to search().
    • getNoncolliderTriples

      public Set<Triple> getNoncolliderTriples()
      Returns:
      the set of noncollider triples found during the most recent run of the algorithm. Non-null after a call to search().
    • getAdjacencies

      public Set<Edge> getAdjacencies()
    • getNonadjacencies

      public Set<Edge> getNonadjacencies()
    • search

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

      public Graph search(List<Node> nodes)
    • getSepsets

      public SepsetMap getSepsets()
    • getGraph

      public Graph getGraph()
      The graph that's constructed during the search.
    • setGraph

      public void setGraph(Graph graph)
    • setVerbose

      public void setVerbose(boolean verbose)
    • setExternalGraph

      public void setExternalGraph(Graph externalGraph)